selectRule.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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. },
  16. props: {
  17. onClose: (data) => console.log(data),
  18. onConfirm:(data) => console.log(data),
  19. isGzType:'',
  20. defaultId:'',//默认选中
  21. },
  22. didMount() {
  23. that = this;
  24. this.setData({types:app.globalData.types})
  25. this.getData();
  26. },
  27. didUpdate() { },
  28. didUnmount() { },
  29. methods: {
  30. //搜索
  31. bindKeyInput(e) {
  32. var item_list=this.data.allItems;
  33. var items=item_list.filter((item)=>{
  34. return item.remark.indexOf(e.detail.value) >= 0
  35. });
  36. this.setData({
  37. selectItem: items,
  38. isItem:e.detail.value? false:true
  39. })
  40. },
  41. //点击一级
  42. activeTree(e){
  43. var item=e.target.dataset.item
  44. var item_list=this.data.allItems;
  45. if(item.id==this.data.activeIndex){
  46. this.setData({
  47. activeIndex:'',
  48. item_child_list:[],
  49. item_list: item_list,
  50. activeItemIndex:'',
  51. })
  52. return false;
  53. }
  54. this.setData({item_child_list:[]});
  55. if(item.child&&item.child.length>0){
  56. // this.setData({
  57. // activeItemIndex:item.child[0].id
  58. // })
  59. // if(item.child[0].child&&item.child[0].child.length>0){
  60. // this.setData({
  61. // item_child_list:item.child[0].child
  62. // })
  63. // }
  64. }
  65. this.setData({
  66. activeIndex:item.id
  67. })
  68. this.getItem(item.id);
  69. },
  70. //点击二级
  71. activeItem(e){
  72. var item=e.target.dataset.item
  73. this.setData({
  74. activeItemIndex:item.id,
  75. item_list:[]
  76. });
  77. if(item.child&&item.child.length>0){
  78. this.setData({
  79. item_child_list:item.child
  80. })
  81. }else{
  82. this.setData({
  83. item_child_list:[]
  84. })
  85. }
  86. this.getItem(item.id);
  87. },
  88. openDetail(e){
  89. var id=e.target.dataset.item.id;
  90. this.setData({
  91. activeItemIndex:id,
  92. item_child_list:[]
  93. });
  94. this.getItem(id);
  95. },
  96. getItem(id){
  97. var item_list=this.data.allItems;
  98. var items=item_list.filter((item)=>{return item.rule_id==id});
  99. that.setData({
  100. item_list: items,
  101. })
  102. },
  103. radioChange: function (e) {
  104. this.props.onConfirm(e.detail.value);
  105. this.plusOne();
  106. },
  107. getData() {
  108. var pt_id,typeObj;
  109. if(that.props.isGzType){
  110. typeObj=app.getTypesItem(that.props.isGzType);
  111. pt_id=typeObj.id;
  112. }
  113. app.$get("api/integral/rule/trees", { pt_id: pt_id,cycle_type: 1 }).then((res)=>{
  114. var item_list = res.data.data.item_list
  115. var rule_tree = res.data.data.rule_tree
  116. var list = []
  117. for (let i in item_list) {
  118. for (let k in item_list[i]) {
  119. item_list[i][k].pt_Obj=that.props.isGzType? typeObj:app.getTypesItem(item_list[i][k].pt_id);
  120. list.push(item_list[i][k])
  121. }
  122. }
  123. if(this.props.defaultId){
  124. list.map(item=>{
  125. if(this.props.defaultId==item.id){
  126. item.checked=true;
  127. }
  128. })
  129. }
  130. that.setData({
  131. item_list: list,
  132. rule_tree:rule_tree,
  133. allItems:list,
  134. })
  135. })
  136. },
  137. //关闭
  138. plusOne(e) {
  139. this.props.onClose();
  140. },
  141. },
  142. });