selectSx.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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. name: '积分分类',
  25. child: [
  26. { name: "B分", code: "3", checked: true },
  27. { name: "A分", code: "2", checked: false },
  28. ],
  29. }
  30. ],
  31. sxArr2: [
  32. {
  33. name: '人员',
  34. child: [
  35. { name: "全部", code: "all", checked: false },
  36. { name: "管理者", code: "manager", checked: false },
  37. { name: "员工", code: "employee", checked: false },
  38. ],
  39. },
  40. {
  41. name: '排序',
  42. child: [
  43. { name: "从高到低", code: "DESC", checked: false },
  44. { name: "从低到高", code: "ASC", checked: false },
  45. ],
  46. },
  47. {
  48. name: '积分分类',
  49. child: [
  50. { name: "B分", code: "3", checked: false },
  51. { name: "A分", code: "2", checked: false },
  52. ],
  53. }
  54. ]
  55. },
  56. props: {
  57. onConfirm: (data) => console.log(data),
  58. onClose: (data) => console.log(data),
  59. defaultSx:['all','DESC','3'],
  60. },
  61. didMount() {
  62. that = this;
  63. var sxArr=this.data.sxArr;
  64. sxArr.map(item=>{
  65. item.child.map(item2=>{
  66. item2.checked=false;
  67. if(this.props.defaultSx[0]==item2.code){
  68. item2.checked=true;
  69. }
  70. if(this.props.defaultSx[1]==item2.code){
  71. item2.checked=true;
  72. }
  73. if(this.props.defaultSx[2]==item2.code){
  74. item2.checked=true;
  75. }
  76. })
  77. })
  78. this.setData({ isShow: this.props.isShow,sxArr:sxArr })
  79. },
  80. didUpdate() { },
  81. didUnmount() { },
  82. methods: {
  83. //单
  84. ruleActive(e) {
  85. var index = e.target.dataset.index;
  86. var sxArrItem = `sxArr[${index}].child`;
  87. this.setData({
  88. [sxArrItem]: this.data.sxArr2[index].child
  89. })
  90. var indexChild = e.target.dataset.indexChild;
  91. var isChecked = this.data.sxArr[index].child[indexChild].checked;
  92. var elem = `sxArr[${index}].child[${indexChild}].checked`;
  93. this.setData({
  94. [elem]: !isChecked
  95. })
  96. },
  97. onConfirm() {
  98. var sxArr = this.data.sxArr;
  99. var arr = [];
  100. sxArr.forEach(item => {
  101. if (item.child.length > 0) {
  102. item.child.forEach((a) => {
  103. if (a.checked == true) {
  104. arr.push(a.code);
  105. }
  106. })
  107. }
  108. });
  109. this.props.onConfirm(arr);
  110. this.props.onClose();
  111. },
  112. //关闭
  113. onClose(e) {
  114. this.props.onClose();
  115. },
  116. },
  117. });