selectType.js 2.8 KB

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