/******************************************************************************* * Copyright(c) 2021 dongke All rights reserved. / Confidential * 类的信息: * 1.程序名称: * 2.功能描述:一览界面状态下拉组件-switch * 编辑履历: * 作者 日期 版本 修改内容 * jyh 2021-4-28 1.00 新建 *******************************************************************************/ Component({ /** * 组件的属性列表 */ properties: { dataList: { type: [Array], default: [] }, onAllChanageFlag:{ type:Boolean, value:true }, switchCode:{ type:String, }, switchKey:{ type:String, } }, /** * 组件的初始数据 */ data: { allCheck: true }, lifetimes: { attached: function () {}, detached: function () { // 在组件实例被从页面节点树移除时执行 }, }, /** * 组件的方法列表 */ methods: { /** * 调用查询 * @param {*} e */ commit(e) { // 取出被选中的数据 let dataListTemp = []; let dataListNameTemp = []; let values = [] for (let index = 0; index < this.data.dataList.length; index++) { let item = this.data.dataList[index] dataListTemp.push(item); if (item.checked) { dataListNameTemp.push(item.title); values.push(item.value) } } this.triggerEvent('commit', { values: values.join(','), valueList:values, dataTitle:dataListNameTemp, dataList: dataListTemp, code: this.data.switchCode, key: this.data.switchKey }) }, // 切换功能 onSwitchChange(e) { var index = e.target.dataset.index; var dataList = this.data.dataList; var truenumber = 0 var falsenumber = 0 var allflag=false // 设置点击的项目 的值 for (let i = 0; i < dataList.length; i++) { if (i == index) { dataList[i].checked = !dataList[i].checked break; } } for (let i = 0; i < dataList.length; i++) { if (dataList[i].checked) { truenumber++ } else { falsenumber++ } } if(dataList.length==truenumber){ allflag=true } if(dataList.length==falsenumber){ allflag=false } this.setData({ dataList: dataList, allCheck:allflag }); this.triggerEvent('onSwitchChange', { index: index }) }, /** * 全选/全不选 * @param {*} e */ onAllChanage(e) { let allCheck = e.detail var dataList = this.data.dataList; // 设置点击的项目 的值 for (let i = 0; i < dataList.length; i++) { dataList[i].checked = allCheck } this.setData({ dataList: dataList, allCheck: allCheck }); }, } })