selectRule.js 3.7 KB

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