selectType.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. var app = getApp()
  2. var that;
  3. Component({
  4. mixins: [],
  5. data: {
  6. all_rule_list: {},
  7. rule_tree: {},
  8. terr: [
  9. { name: '全部', id: 0 }
  10. ],
  11. isCreator:false,
  12. creatorName:'',
  13. },
  14. props: {
  15. onClose: (data) => console.log(data),
  16. onConfirm: (data) => console.log(data),
  17. isGzType: '',
  18. defaultId: '',//默认选中
  19. },
  20. didMount() {
  21. that = this;
  22. this.setData({
  23. terr: [{ name: '全部', id: 0 }],
  24. isCreator: app.globalData.isCreator,
  25. creatorName:app.globalData.corpMessage.creators
  26. })
  27. this.getData();
  28. },
  29. didUpdate() { },
  30. didUnmount() { },
  31. methods: {
  32. //搜索
  33. bindKeyInput(e) {
  34. var item_list=this.data.allItems;
  35. var items=item_list.filter((item)=>{
  36. return item.remark.indexOf(e.detail.value) >= 0
  37. });
  38. this.setData({
  39. selectItem: items,
  40. isItem:e.detail.value? false:true
  41. })
  42. },
  43. //点击导航栏
  44. activeItem(e) {
  45. this.setData({ rule_tree: [] });
  46. var item = e.target.dataset.item;
  47. var index = e.target.dataset.index;
  48. var terr = this.data.terr;
  49. if ((index + 1) == terr.length) { return false };
  50. if (index == 0) {
  51. this.setData({
  52. terr: [{ name: '全部', id: 0 }],
  53. rule_tree: this.data.all_rule_list
  54. })
  55. } else {
  56. var arr = terr.slice(0, index + 1);
  57. this.setData({
  58. rule_tree: item.child,
  59. terr: arr
  60. })
  61. }
  62. },
  63. // 点击下一级
  64. openDown(e) {
  65. this.setData({ rule_tree: [] });
  66. var item = e.target.dataset.item;
  67. var terr = this.data.terr;
  68. terr.push(item);
  69. if (item.child.length > 0) {
  70. that.setData({
  71. rule_tree: item.child,
  72. terr: terr
  73. })
  74. }
  75. },
  76. radioChange: function (e) {
  77. this.props.onConfirm(e.detail.value);
  78. this.plusOne();
  79. },
  80. recursion(data) {
  81. for (var i = 0; i < data.length; i++) {
  82. data[i].checked = false;
  83. if (data[i].child.length > 0) {
  84. this.recursion(data[i].child);
  85. }
  86. }
  87. return data;
  88. },
  89. getData() {
  90. var pt_id
  91. if (that.props.isGzType) {
  92. pt_id = app.getTypesItem(that.props.isGzType).id;
  93. }
  94. app.$get("api/integral/rule/trees", { pt_id: pt_id,cycle_type: 1 }).then((res) => {
  95. var rule_tree = res.data.data.rule_tree
  96. if (this.props.defaultId) {
  97. rule_tree.map(item => {
  98. if (this.props.defaultId == item.id) {
  99. item.checked = true;
  100. }
  101. item.child.map(item2 => {
  102. if (this.props.defaultId == item2.id) {
  103. item2.checked = true;
  104. }
  105. })
  106. })
  107. }
  108. that.setData({
  109. rule_tree: rule_tree,
  110. all_rule_list: rule_tree
  111. })
  112. })
  113. },
  114. //关闭
  115. plusOne(e) {
  116. this.props.onClose();
  117. },
  118. },
  119. });