// pages/components/voucher-select/index.js Component({ /** * 组件的属性列表 */ properties: { columns: { type: Array }, placeholder: { type: String }, selectValue: { type: String }, selectIndex: { type: String }, background: { type: String }, value: { type: String, value: "" } }, /**数据监听 */ observers: { columns: function (vals) { if(vals.length>0){ this.setData({ item: [] }) let _vals = this.data.value; if(_vals!='' && typeof _vals === 'number'){ for (let i = 0; i < vals.length; i++) { if (_vals == columns[i].id) { this.setData({ value: columns[i].text }) break; } } } }else{ this.setData({ item: [], value: '' }) } }, selectValue: function (val) { let columns = this.data.columns; if (val && columns) { for (let i = 0; i < columns.length; i++) { if (val == columns[i].id) { val = columns[i].text; break; } } } this.setData({ value: val }) }, selectIndex: function (val) { this.setData({ index: val }) } }, lifetimes: { created: function () { //在组件实例刚刚被创建时执行,注意此时不能调用 setData }, attached: function () { //在组件实例进入页面节点树时执行 }, ready: function () { // 在组件在视图层布局完成后执行 }, detached: function () { // 在组件实例被从页面节点树移除时执行 }, }, /** * 组件的初始数据 */ data: { show: false, item: '', index: '' }, /** * 组件的方法列表 */ methods: { showPopup() { this.setData({ show: true }); }, onClose() { this.setData({ show: false }); }, onSelectChange(e) { this.setData({ item: e.detail.value }) }, onConfirm() { let _item = this.data.item; if(_item.length==0){ _item = this.data.columns[0]; } this.setData({ value: _item.text }) this.triggerEvent('change', _item) this.setData({ show: false }); } } })