YZProjectCloud/yanzhu-ui-app/miniprogram/pages/components/voucher-select/index.js

131 lines
2.4 KiB
JavaScript
Raw Normal View History

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