dk-dropdown-switch.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. /*******************************************************************************
  2. * Copyright(c) 2021 dongke All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:
  5. * 2.功能描述:一览界面状态下拉组件-switch
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * jyh 2021-4-28 1.00 新建
  9. *******************************************************************************/
  10. Component({
  11. /**
  12. * 组件的属性列表
  13. */
  14. properties: {
  15. dataList: {
  16. type: [Array],
  17. default: []
  18. },
  19. onAllChanageFlag:{
  20. type:Boolean,
  21. value:true
  22. }
  23. },
  24. /**
  25. * 组件的初始数据
  26. */
  27. data: {
  28. allCheck: true
  29. },
  30. lifetimes: {
  31. attached: function () {},
  32. detached: function () {
  33. // 在组件实例被从页面节点树移除时执行
  34. },
  35. },
  36. /**
  37. * 组件的方法列表
  38. */
  39. methods: {
  40. /**
  41. * 调用查询
  42. * @param {*} e
  43. */
  44. commit(e) {
  45. // 取出被选中的数据
  46. let dataListTemp = [];
  47. let values = []
  48. for (let index = 0; index < this.data.dataList.length; index++) {
  49. if (this.data.dataList[index].checked) {
  50. let item = this.data.dataList[index]
  51. dataListTemp.push(item.text);
  52. values.push(item.value)
  53. }
  54. }
  55. this.triggerEvent('commit', {
  56. values: values.join(','),
  57. dataList: dataListTemp
  58. })
  59. },
  60. // 切换功能
  61. onSwitchChange(e) {
  62. var index = e.target.dataset.index;
  63. var dataList = this.data.dataList;
  64. var truenumber = 0
  65. var falsenumber = 0
  66. var allflag=false
  67. // 设置点击的项目 的值
  68. for (let i = 0; i < dataList.length; i++) {
  69. if (i == index) {
  70. dataList[i].checked = !dataList[i].checked
  71. break;
  72. }
  73. }
  74. for (let i = 0; i < dataList.length; i++) {
  75. if (dataList[i].checked) {
  76. truenumber++
  77. } else {
  78. falsenumber++
  79. }
  80. }
  81. if(dataList.length==truenumber){
  82. allflag=true
  83. }
  84. if(dataList.length==falsenumber){
  85. allflag=false
  86. }
  87. this.setData({
  88. dataList: dataList,
  89. allCheck:allflag
  90. });
  91. this.triggerEvent('onSwitchChange', {
  92. index: index
  93. })
  94. },
  95. /**
  96. * 全选/全不选
  97. * @param {*} e
  98. */
  99. onAllChanage(e) {
  100. let allCheck = e.detail
  101. var dataList = this.data.dataList;
  102. // 设置点击的项目 的值
  103. for (let i = 0; i < dataList.length; i++) {
  104. dataList[i].checked = allCheck
  105. }
  106. this.setData({
  107. dataList: dataList,
  108. allCheck: allCheck
  109. });
  110. },
  111. }
  112. })