selectRule.js 3.3 KB

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