// components/pop-sheet/index.js Component({ /** * 组件的属性列表 */ properties: { show: Boolean, multiple: { type: Boolean, value: false }, title: String, proName: String, single: String, outSide: Array, list: Array }, /** * 组件的初始数据 */ data: { item: {} }, /** * 组件的方法列表 */ methods: { /** * 关闭弹窗 */ close: function () { this.triggerEvent('close', { item: this.data.multiple ? this.data.list.filter(item => { return item.checked }) : this.data.item, single: this.data.single }) }, /** * 选中列表 */ filterFun: function (params) { const item = params.currentTarget.dataset.item; const index = params.currentTarget.dataset.index; item.checked = !item.checked; this.data.outSide?.forEach(el => { if (item[this.data.proName] == el) { this.data.list.forEach(ele => { ele.checked = false; }) } else { this.data.list.filter(els => { if (els[this.data.proName] == el) els.checked = false }) } }) this.data.item = item; this.data.list[index] = item; this.setData(this.data) if (!this.data.multiple) this.close(); }, /** * 确定/取消 */ submit: function (params) { this.close(); }, } })