selectSx.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. var app = getApp()
  2. var that;
  3. Component({
  4. mixins: [],
  5. data: {
  6. isShow: false,
  7. sxArr: [
  8. {
  9. name: '人员',
  10. child: [
  11. { name: "全部", code: "all", checked: true },
  12. { name: "管理者", code: "manager", checked: false },
  13. { name: "员工", code: "employee", checked: false },
  14. ],
  15. },
  16. {
  17. name: '排序',
  18. child: [
  19. { name: "从高到低", code: "DESC", checked: true },
  20. { name: "从低到高", code: "ASC", checked: false },
  21. ],
  22. }
  23. ],
  24. sxArr2: [
  25. {
  26. name: '人员',
  27. child: [
  28. { name: "全部", code: "all", checked: false },
  29. { name: "管理者", code: "manager", checked: false },
  30. { name: "员工", code: "employee", checked: false },
  31. ],
  32. },
  33. {
  34. name: '排序',
  35. child: [
  36. { name: "从高到低", code: "DESC", checked: false },
  37. { name: "从低到高", code: "ASC", checked: false },
  38. ],
  39. }
  40. ]
  41. },
  42. props: {
  43. onConfirm: (data) => console.log(data),
  44. onClose: (data) => console.log(data),
  45. },
  46. didMount() {
  47. that = this;
  48. this.setData({ isShow: this.props.isShow })
  49. },
  50. didUpdate() { },
  51. didUnmount() { },
  52. methods: {
  53. //单
  54. ruleActive(e) {
  55. var index = e.target.dataset.index;
  56. var sxArrItem = `sxArr[${index}].child`;
  57. this.setData({
  58. [sxArrItem]: this.data.sxArr2[index].child
  59. })
  60. var indexChild = e.target.dataset.indexChild;
  61. var isChecked = this.data.sxArr[index].child[indexChild].checked;
  62. var elem = `sxArr[${index}].child[${indexChild}].checked`;
  63. this.setData({
  64. [elem]: !isChecked
  65. })
  66. },
  67. onConfirm() {
  68. var sxArr = this.data.sxArr;
  69. var arr = [];
  70. sxArr.forEach(item => {
  71. if (item.child.length > 0) {
  72. item.child.forEach((a) => {
  73. if (a.checked == true) {
  74. arr.push(a.code);
  75. }
  76. })
  77. }
  78. });
  79. this.props.onConfirm(arr);
  80. this.props.onClose();
  81. },
  82. radioChange: function (e) {
  83. if (e.detail.value) {
  84. var arr = e.detail.value;
  85. this.setData({
  86. selectUserId: e.detail.value
  87. })
  88. } else {
  89. this.setData({
  90. selectUserId: []
  91. })
  92. }
  93. },
  94. //关闭
  95. onClose(e) {
  96. this.props.onClose();
  97. },
  98. },
  99. });