integralRule.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. var app = getApp();
  2. var that;
  3. Page({
  4. data: {
  5. allItems: [],
  6. allTree: [],
  7. item_list: {},
  8. rule_tree: {},
  9. types: '',
  10. isItem: true,//判断是否显示左侧
  11. selectItem: [],//选择的数据
  12. terr: [
  13. { name: '全部', id: 0 }
  14. ],
  15. },
  16. onLoad(query) {
  17. that = this;
  18. this.setData({
  19. terr: [
  20. { name: '全部', id: 0 }
  21. ],
  22. })
  23. dd.setNavigationBar({ title: "积分规则" });
  24. },
  25. onShow() {
  26. this.setData({ types: app.globalData.types })
  27. this.getData();
  28. },
  29. onReset() {
  30. this.setData({
  31. selectItem: [],
  32. isItem: true,
  33. isVal: false
  34. })
  35. },
  36. //搜索
  37. bindKeyInput(e) {
  38. var item_list = this.data.allItems;
  39. var items = item_list.filter((item) => {
  40. return item.remark.indexOf(e.detail.value) >= 0
  41. });
  42. this.setData({
  43. selectItem: items,
  44. isItem: e.detail.value ? false : true,
  45. isVal: e.detail.value ? true : false
  46. })
  47. },
  48. //点击导航栏
  49. activeItem(e) {
  50. var item = e.target.dataset.item;
  51. var index = e.target.dataset.index;
  52. var terr = this.data.terr;
  53. if ((index + 1) == terr.length) { return false };
  54. this.setData({ rule_tree: [] });
  55. if (index == 0) {
  56. this.setData({
  57. terr: [{ name: '全部', id: 0 }],
  58. rule_tree: this.data.allTree,
  59. item_list: this.data.allItems
  60. })
  61. } else {
  62. var arr = terr.slice(0, index + 1);
  63. this.setData({
  64. rule_tree: item.child,
  65. terr: arr
  66. })
  67. this.getItem(item.id);
  68. }
  69. },
  70. //点击一级
  71. activeTree(e) {
  72. var item = e.target.dataset.item
  73. var terr = this.data.terr;
  74. terr.push(item)
  75. this.setData({
  76. rule_tree: item.child,
  77. terr: terr
  78. });
  79. this.getItem(item.id);
  80. },
  81. //从全部中过滤
  82. getItem(id) {
  83. var item_list = this.data.allItems;
  84. var items = item_list.filter((item) => { return item.rule_id == id });
  85. that.setData({
  86. item_list: items,
  87. })
  88. },
  89. // 递归
  90. getItems(id, arr) {
  91. var obj = {};
  92. for (let i = 0; i < arr.length; i++) {
  93. if (id == arr[i].id) {
  94. obj = arr[i];
  95. break;
  96. } else if (arr[i].child.length > 0) {
  97. if(this.getItems(id, arr[i].child).id){
  98. obj =this.getItems(id, arr[i].child)
  99. }
  100. }
  101. }
  102. return obj;
  103. },
  104. getData() {
  105. app.$get("api/integral/rule/trees", { cycle_type: 1 }).then((res) => {
  106. var item_list = res.data.data.item_list
  107. var rule_tree = res.data.data.rule_tree
  108. var list = []
  109. for (let i in item_list) {
  110. for (let k in item_list[i]) {
  111. item_list[i][k].pt_Obj = this.data.types.filter((item) => {
  112. return item_list[i][k].pt_id == item.id
  113. })
  114. item_list[i][k].typeName = that.getItems(item_list[i][k].rule_id, rule_tree);
  115. list.push(item_list[i][k])
  116. }
  117. }
  118. that.setData({
  119. item_list: list,
  120. rule_tree: rule_tree,
  121. allItems: list,
  122. allTree: rule_tree,
  123. })
  124. console.log(this.data.item_list,this.data.rule_tree)
  125. })
  126. },
  127. });