selectSx.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. defaultSx:['all','DESC'],
  46. },
  47. didMount() {
  48. that = this;
  49. var sxArr=this.data.sxArr;
  50. sxArr.map(item=>{
  51. item.child.map(item2=>{
  52. item2.checked=false;
  53. if(this.props.defaultSx[0]==item2.code){
  54. item2.checked=true;
  55. }
  56. if(this.props.defaultSx[1]==item2.code){
  57. item2.checked=true;
  58. }
  59. })
  60. })
  61. this.setData({ isShow: this.props.isShow,sxArr:sxArr })
  62. },
  63. didUpdate() { },
  64. didUnmount() { },
  65. methods: {
  66. //单
  67. ruleActive(e) {
  68. var index = e.target.dataset.index;
  69. var sxArrItem = `sxArr[${index}].child`;
  70. this.setData({
  71. [sxArrItem]: this.data.sxArr2[index].child
  72. })
  73. var indexChild = e.target.dataset.indexChild;
  74. var isChecked = this.data.sxArr[index].child[indexChild].checked;
  75. var elem = `sxArr[${index}].child[${indexChild}].checked`;
  76. this.setData({
  77. [elem]: !isChecked
  78. })
  79. },
  80. onConfirm() {
  81. var sxArr = this.data.sxArr;
  82. var arr = [];
  83. sxArr.forEach(item => {
  84. if (item.child.length > 0) {
  85. item.child.forEach((a) => {
  86. if (a.checked == true) {
  87. arr.push(a.code);
  88. }
  89. })
  90. }
  91. });
  92. this.props.onConfirm(arr);
  93. this.props.onClose();
  94. },
  95. //关闭
  96. onClose(e) {
  97. this.props.onClose();
  98. },
  99. },
  100. });