Component({ properties: { list: { type: Array, value: [{ label: "筛选1", index: null, showName: "name", //显示字段 valueKey: "name", //返回Key selectKey: "id", //传参 代表选着字段 不传参返回整个选择对象 value: "", //选中值 list: [{ name: "a1", id: 0 }, { name: "a2", id: 1 }] }] }, handle: Function, //按钮回调函数 zIndex: { type: String, value: 99999, } }, data: {}, methods: { /* 选择 */ onSelect(e) { const { item, //被选项 index, //列表下标 i //被选项下标 } = e.currentTarget.dataset; if (this.data.list[index].index == i) { this.setData({ [`list[${index}].value`]: "", [`list[${index}].index`]: null }); } else { this.setData({ [`list[${index}].value`]: this.data.list[index].selectKey ? item[this.data.list[index].selectKey] : item, [`list[${index}].index`]: i }); } let obj = {}; this.data.list.forEach(v => { if (v.type == 'multilevelClass') { obj[v.valueKey] = getApp().globalData.temporaryId; delete(getApp().globalData.temporaryId); } else { obj[v.valueKey] = v.value; } }); this.triggerEvent("handle", obj); }, } })