selectSxZp.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. var app = getApp()
  2. var that;
  3. Component({
  4. mixins: [],
  5. data: {
  6. isShow: false,
  7. typeIndex: 1,
  8. sxArr: [
  9. {
  10. name: '积分类型',
  11. child: [
  12. { name: "全部", code: 0, checked: true },
  13. // { name: "绩效分", code: 1, checked: false },
  14. { name: "A分", code: 2, checked: false },
  15. { name: "B分", code: 3, checked: false },
  16. ],
  17. },
  18. {
  19. name: '任务状态',
  20. child: [
  21. { name: "全部", code: "all", checked: true },
  22. { name: "进行中", code: "running", checked: false },
  23. { name: "已完成", code: "complete", checked: false },
  24. ],
  25. },
  26. {
  27. name: '排序',
  28. child: [
  29. { name: "按发布时间", code: "publish", checked: true },
  30. { name: "按截止时间", code: "expire", checked: false },
  31. ],
  32. }
  33. ],
  34. sxArr2: [
  35. {
  36. name: '积分类型',
  37. child: [
  38. { name: "全部", code: 0, checked: false },
  39. // { name: "绩效分", code: 1, checked: false },
  40. { name: "A分", code: 2, checked: false },
  41. { name: "B分", code: 3, checked: false },
  42. ],
  43. },
  44. {
  45. name: '任务状态',
  46. child: [
  47. { name: "全部", code: "all", checked: false },
  48. { name: "进行中", code: "running", checked: false },
  49. { name: "已完成", code: "complete", checked: false },
  50. ],
  51. },
  52. {
  53. name: '排序',
  54. child: [
  55. { name: "按发布时间", code: "publish", checked: false },
  56. { name: "按截止时间", code: "expire", checked: false },
  57. ],
  58. }
  59. ],
  60. },
  61. props: {
  62. onConfirm: (data) => console.log(data),
  63. onClose: (data) => console.log(data),
  64. defaultSx: [0, 'all', 'publish'],
  65. typeIndex: 1,
  66. },
  67. didMount() {
  68. that = this;
  69. var sxArr = this.data.sxArr;
  70. if (this.props.defaultSx.length > 0) {
  71. sxArr.map(item => {
  72. item.child.map(item2 => {
  73. item2.checked = false;
  74. if (this.props.defaultSx[0] == item2.code) {
  75. item2.checked = true;
  76. }
  77. if (this.props.defaultSx[1] == item2.code) {
  78. item2.checked = true;
  79. }
  80. if (this.props.defaultSx[2] == item2.code) {
  81. item2.checked = true;
  82. }
  83. })
  84. })
  85. } else {
  86. this.props.defaultSx = [0, 'all', 'publish'];
  87. sxArr.map(item => {
  88. item.child.map(item2 => {
  89. item2.checked = false;
  90. if (this.props.defaultSx[0] == item2.code) {
  91. item2.checked = true;
  92. }
  93. if (this.props.defaultSx[1] == item2.code) {
  94. item2.checked = true;
  95. }
  96. if (this.props.defaultSx[2] == item2.code) {
  97. item2.checked = true;
  98. }
  99. })
  100. })
  101. }
  102. this.setData({ isShow: this.props.isShow, sxArr: sxArr, typeIndex: this.props.typeIndex })
  103. },
  104. methods: {
  105. //单
  106. ruleActive(e) {
  107. var index = e.target.dataset.index;
  108. var sxArrItem = `sxArr[${index}].child`;
  109. this.setData({
  110. [sxArrItem]: this.data.sxArr2[index].child
  111. })
  112. var indexChild = e.target.dataset.indexChild;
  113. var isChecked = this.data.sxArr[index].child[indexChild].checked;
  114. var elem = `sxArr[${index}].child[${indexChild}].checked`;
  115. this.setData({
  116. [elem]: !isChecked
  117. })
  118. },
  119. onConfirm() {
  120. var sxArr = this.data.sxArr;
  121. var arr = [];
  122. sxArr.forEach(item => {
  123. if (item.child.length > 0) {
  124. item.child.forEach((a) => {
  125. if (a.checked == true) {
  126. arr.push(a.code);
  127. }
  128. })
  129. }
  130. });
  131. this.props.onConfirm(arr);
  132. this.props.onClose();
  133. },
  134. //关闭
  135. onClose(e) {
  136. this.props.onClose();
  137. },
  138. },
  139. });