selectType.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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. activeItem(e) {
  30. this.setData({ rule_tree: [] });
  31. var item = e.target.dataset.item;
  32. var index = e.target.dataset.index;
  33. var terr = this.data.terr;
  34. if ((index + 1) == terr.length) { return false };
  35. if (index == 0) {
  36. this.setData({
  37. terr: [{ name: '全部', id: 0 }],
  38. rule_tree: this.data.all_rule_list
  39. })
  40. } else {
  41. var arr = terr.slice(0, index + 1);
  42. this.setData({
  43. rule_tree: item.child,
  44. terr: arr
  45. })
  46. }
  47. },
  48. // 点击下一级
  49. openDown(e) {
  50. this.setData({ rule_tree: [] });
  51. var item = e.target.dataset.item;
  52. var terr = this.data.terr;
  53. terr.push(item);
  54. if (item.child.length > 0) {
  55. that.setData({
  56. rule_tree: item.child,
  57. terr: terr
  58. })
  59. }
  60. },
  61. radioChange: function (e) {
  62. this.props.onConfirm(e.detail.value);
  63. this.plusOne();
  64. },
  65. recursion(data) {
  66. for (var i = 0; i < data.length; i++) {
  67. data[i].checked = false;
  68. if (data[i].child.length > 0) {
  69. this.recursion(data[i].child);
  70. }
  71. }
  72. return data;
  73. },
  74. getData() {
  75. var pt_id
  76. if (that.props.isGzType) {
  77. pt_id = app.getTypesItem(that.props.isGzType).id;
  78. }
  79. app.$get("api/integral/rule/trees", { pt_id: pt_id }).then((res) => {
  80. var rule_tree = res.data.data.rule_tree
  81. if (this.props.defaultId) {
  82. rule_tree.map(item => {
  83. if (this.props.defaultId == item.id) {
  84. item.checked = true;
  85. }
  86. item.child.map(item2 => {
  87. if (this.props.defaultId == item2.id) {
  88. item2.checked = true;
  89. }
  90. })
  91. })
  92. }
  93. that.setData({
  94. rule_tree: rule_tree,
  95. all_rule_list: rule_tree
  96. })
  97. })
  98. },
  99. //关闭
  100. plusOne(e) {
  101. this.props.onClose();
  102. },
  103. },
  104. });