selectRule.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. var app = getApp()
  2. var that;
  3. Component({
  4. mixins: [],
  5. data: {
  6. allItems:[],
  7. item_list: {},
  8. rule_tree: {},
  9. types:'',
  10. activeIndex:'',//一级索引
  11. activeItemIndex:'',//二级索引
  12. item_child_list:[],//子数据集合
  13. isItem:true,//判断是否显示左侧
  14. selectItem:[],//选择的数据
  15. isCreator:false,
  16. creatorName:'',
  17. },
  18. props: {
  19. onClose: (data) => console.log(data),
  20. onConfirm:(data) => console.log(data),
  21. isGzType:'',
  22. defaultId:'',//默认选中
  23. if_ab: 0,
  24. },
  25. didMount() {
  26. that = this;
  27. this.setData({types:app.globalData.types,isCreator: app.globalData.isCreator,creatorName:app.globalData.corpMessage.creators})
  28. this.getData();
  29. },
  30. didUpdate() { },
  31. didUnmount() { },
  32. methods: {
  33. onReset(){
  34. this.setData({
  35. selectItem: [],
  36. isItem:true,
  37. isVal:false
  38. })
  39. },
  40. //搜索
  41. bindKeyInput(e) {
  42. var item_list=this.data.allItems;
  43. var items=item_list.filter((item)=>{
  44. return item.remark.indexOf(e.detail.value) >= 0
  45. });
  46. this.setData({
  47. selectItem: items,
  48. isItem:e.detail.value? false:true,
  49. isVal:e.detail.value? true:false
  50. })
  51. },
  52. //点击一级
  53. activeTree(e){
  54. var item=e.target.dataset.item
  55. var item_list=this.data.allItems;
  56. if(item.id==this.data.activeIndex){
  57. this.setData({
  58. activeIndex:'',
  59. item_child_list:[],
  60. item_list: item_list,
  61. activeItemIndex:'',
  62. })
  63. return false;
  64. }
  65. this.setData({item_child_list:[]});
  66. if(item.child&&item.child.length>0){
  67. // this.setData({
  68. // activeItemIndex:item.child[0].id
  69. // })
  70. // if(item.child[0].child&&item.child[0].child.length>0){
  71. // this.setData({
  72. // item_child_list:item.child[0].child
  73. // })
  74. // }
  75. }
  76. this.setData({
  77. activeIndex:item.id
  78. })
  79. this.getItem(item.id);
  80. },
  81. //点击二级
  82. activeItem(e){
  83. var item=e.target.dataset.item
  84. this.setData({
  85. activeItemIndex:item.id,
  86. item_list:[]
  87. });
  88. if(item.child&&item.child.length>0){
  89. this.setData({
  90. item_child_list:item.child
  91. })
  92. }else{
  93. this.setData({
  94. item_child_list:[]
  95. })
  96. }
  97. this.getItem(item.id);
  98. },
  99. openDetail(e){
  100. var id=e.target.dataset.item.id;
  101. this.setData({
  102. activeItemIndex:id,
  103. item_child_list:e.target.dataset.item.child
  104. });
  105. this.getItem(id);
  106. },
  107. getItem(id){
  108. var item_list=this.data.allItems;
  109. var items=item_list.filter((item)=>{return item.rule_id==id});
  110. that.setData({
  111. item_list: items,
  112. })
  113. },
  114. radioChange: function (e) {
  115. this.props.onConfirm(e.detail.value);
  116. this.plusOne();
  117. },
  118. getData() {
  119. var pt_id,typeObj;
  120. if(that.props.isGzType){
  121. typeObj=app.getTypesItem(that.props.isGzType);
  122. pt_id=typeObj.id;
  123. }
  124. app.$get2("api/integral/rule/trees", { pt_id: pt_id,cycle_type: 1 }).then((res)=>{
  125. var item_list = res.data.data.item_list
  126. var rule_tree = res.data.data.rule_tree
  127. var list = []
  128. for (let i in item_list) {
  129. for (let k in item_list[i]) {
  130. item_list[i][k].pt_Obj=that.props.isGzType? typeObj:app.getTypesItem(item_list[i][k].pt_id);
  131. list.push(item_list[i][k])
  132. }
  133. }
  134. if(this.props.defaultId){
  135. list.map(item=>{
  136. if(this.props.defaultId==item.id){
  137. item.checked=true;
  138. }
  139. })
  140. }
  141. that.setData({
  142. item_list: list,
  143. rule_tree:rule_tree,
  144. allItems:list,
  145. })
  146. })
  147. },
  148. //关闭
  149. plusOne(e) {
  150. this.props.onClose();
  151. },
  152. },
  153. });