dk-dropdown-switch.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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. switchCode:{
  24. type:String,
  25. },
  26. switchKey:{
  27. type:String,
  28. }
  29. },
  30. /**
  31. * 组件的初始数据
  32. */
  33. data: {
  34. allCheck: true
  35. },
  36. lifetimes: {
  37. attached: function () {},
  38. detached: function () {
  39. // 在组件实例被从页面节点树移除时执行
  40. },
  41. },
  42. /**
  43. * 组件的方法列表
  44. */
  45. methods: {
  46. /**
  47. * 调用查询
  48. * @param {*} e
  49. */
  50. commit(e) {
  51. // 取出被选中的数据
  52. let dataListTemp = [];
  53. let dataListNameTemp = [];
  54. let values = []
  55. for (let index = 0; index < this.data.dataList.length; index++) {
  56. let item = this.data.dataList[index]
  57. dataListTemp.push(item);
  58. if (item.checked) {
  59. dataListNameTemp.push(item.title);
  60. values.push(item.value)
  61. }
  62. }
  63. console.log()
  64. this.triggerEvent('commit', {
  65. values: values.join(','),
  66. valueList:values,
  67. dataTitle:dataListNameTemp,
  68. dataList: dataListTemp,
  69. code: this.data.switchCode,
  70. key: this.data.switchKey
  71. })
  72. },
  73. // 切换功能
  74. onSwitchChange(e) {
  75. var index = e.target.dataset.index;
  76. var dataList = this.data.dataList;
  77. var truenumber = 0
  78. var falsenumber = 0
  79. var allflag=false
  80. // 设置点击的项目 的值
  81. for (let i = 0; i < dataList.length; i++) {
  82. if (i == index) {
  83. dataList[i].checked = !dataList[i].checked
  84. break;
  85. }
  86. }
  87. for (let i = 0; i < dataList.length; i++) {
  88. if (dataList[i].checked) {
  89. truenumber++
  90. } else {
  91. falsenumber++
  92. }
  93. }
  94. if(dataList.length==truenumber){
  95. allflag=true
  96. }
  97. if(dataList.length==falsenumber){
  98. allflag=false
  99. }
  100. this.setData({
  101. dataList: dataList,
  102. allCheck:allflag
  103. });
  104. this.triggerEvent('onSwitchChange', {
  105. index: index
  106. })
  107. },
  108. /**
  109. * 全选/全不选
  110. * @param {*} e
  111. */
  112. onAllChanage(e) {
  113. let allCheck = e.detail
  114. var dataList = this.data.dataList;
  115. // 设置点击的项目 的值
  116. for (let i = 0; i < dataList.length; i++) {
  117. dataList[i].checked = allCheck
  118. }
  119. this.setData({
  120. dataList: dataList,
  121. allCheck: allCheck
  122. });
  123. },
  124. }
  125. })