selectJx.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. var app = getApp()
  2. var that;
  3. Component({
  4. mixins: [],
  5. data: {
  6. allItems: [],
  7. item_list: {},
  8. list: [],
  9. child_list: [],
  10. activeIndex: '',//一级索引
  11. },
  12. props: {
  13. onClose: (data) => console.log(data),
  14. onConfirm: (data) => console.log(data),
  15. defaultId: '',//默认选中
  16. tree: false,//是否使用 api/per/package/tree||api/per/package/list
  17. },
  18. didMount() {
  19. that = this;
  20. this.getData();
  21. },
  22. didUpdate() { },
  23. didUnmount() { },
  24. methods: {
  25. //点击一级
  26. activeTree(e) {
  27. var item = e.target.dataset.item
  28. if (item.id == this.data.activeIndex) {
  29. return false;
  30. }
  31. this.setData({
  32. activeIndex: item.id,
  33. child_list: item.list
  34. })
  35. },
  36. openDetail(e) {
  37. var id = e.target.dataset.item.id;
  38. this.setData({
  39. activeItemIndex: id,
  40. });
  41. this.getItem(id);
  42. },
  43. getItem(id) {
  44. var item_list = this.data.allItems;
  45. var items = item_list.filter((item) => { return item.rule_id == id });
  46. that.setData({
  47. item_list: items,
  48. })
  49. },
  50. radioChange: function (e) {
  51. this.props.onConfirm(e.detail.value);
  52. this.plusOne();
  53. },
  54. getData() {
  55. // that.setData({
  56. // list: [],
  57. // child_list: child_list,
  58. // activeIndex: activeIndex
  59. // })
  60. let data = {};
  61. let str = 'api/per/package/tree';
  62. if (this.props.tree) {
  63. data = { page: 0, is_manage_scope: 1 };
  64. str = 'api/per/package/list';
  65. }
  66. app.$get2(str, data).then((res) => {
  67. if (this.props.tree) {
  68. let obj = res.data.data.list;
  69. let arr = [
  70. { name: '月度', id: 2, list: [] },
  71. { name: '日', id: 1, list: [] },
  72. { name: '季度', id: 3, list: [] },
  73. { name: '半年度', id: 4, list: [] },
  74. { name: '年度', id: 5, list: [] },
  75. { name: '自定义', id: 6, list: [] }
  76. ];
  77. obj.forEach(item => {
  78. arr.forEach(item2 => {
  79. if (item2.id == item.cycle_type) {
  80. item2.list.push(item);
  81. }
  82. });
  83. });
  84. let data = arr;
  85. let list = [];
  86. data.forEach(item => {
  87. if (item.list.length > 0) {
  88. list.push(item);
  89. }
  90. });
  91. this.setList(list)
  92. } else {
  93. var list = res.data.data
  94. this.setList(list)
  95. }
  96. })
  97. },
  98. setList(list) {
  99. let child_list = [];
  100. let activeIndex;
  101. list.some(item => {
  102. if (item.list.length > 0) {
  103. child_list = item.list;
  104. activeIndex = item.id
  105. return true;
  106. }
  107. });
  108. that.setData({
  109. list: list,
  110. child_list: child_list,
  111. activeIndex: activeIndex
  112. })
  113. },
  114. //关闭
  115. plusOne(e) {
  116. this.props.onClose();
  117. },
  118. },
  119. });