jhwxapp/miniprogram/newComponents/select-group-person/index.js

123 lines
3.6 KiB
JavaScript
Raw Normal View History

2023-08-21 18:55:48 +08:00
// newComponents/select-group-person/index.js
Component({
/**
* 组件的属性列表
*/
properties: {
title:{
type:String
},
2023-08-24 18:44:06 +08:00
index:{
type:String
},
2023-08-21 18:55:48 +08:00
choose:{
2023-08-24 18:44:06 +08:00
type:String
2023-08-21 18:55:48 +08:00
},
multiple:{
type:Boolean,
value:true
},
rectifierData:{
type:Array,
value:[]
}
},
observers: {
2023-08-24 18:44:06 +08:00
2023-08-21 18:55:48 +08:00
},
lifetimes: {
created: function(){
//在组件实例刚刚被创建时执行,注意此时不能调用 setData
},
attached: function () {
//在组件实例进入页面节点树时执行
},
ready: function () {
// 在组件在视图层布局完成后执行
},
detached: function () {
// 在组件实例被从页面节点树移除时执行
},
},
/**
* 组件的初始数据
*/
data: {
show:false,
gridData:[],
2023-08-24 18:44:06 +08:00
selectedIndex:[]
2023-08-21 18:55:48 +08:00
},
/**
* 组件的方法列表
*/
methods: {
onAddResponsible(){
this.setData({
show:true
})
},
onClose(){
this.setData({
show:false
})
},
onSelected(e){
var data = this.data.rectifierData;
let ei = e.currentTarget.dataset.index;
let index = ei.split('_');
let userdata = data[index[0]].userinfoList[index[1]];
let of = this.data.selectedIndex.indexOf(ei);
if(of>-1){
this.data.selectedIndex.splice(of, 1);
userdata.state = false;
}else{
this.data.selectedIndex.push(ei);
userdata.state = true;
}
if(!this.data.multiple && this.data.selectedIndex.length>0){
if(this.data.selectedIndex.length>1){
this.data.selectedIndex.forEach((item) =>{
let _indexs = item.split('_');
data[_indexs[0]].userinfoList[_indexs[1]].state = false;
});
userdata.state = true;
this.data.selectedIndex=[];
this.data.selectedIndex.push(ei);
}
let _gridData=[{userName:userdata.nickName+" ["+userdata.jobTypeName+"]",phoneNumber:userdata.phonenumber}];
this.triggerEvent('selected',_gridData)
this.setData({
2023-08-24 18:44:06 +08:00
choose:_gridData[0].userName,
2023-08-21 18:55:48 +08:00
rectifierData:data,
show:false
})
}else{
this.setData({
rectifierData : data
})
}
},
onConfirm(){
2023-08-24 18:44:06 +08:00
var data = this.data.rectifierData;
let _gridData=[];
let chooses="";
2023-08-25 00:56:53 +08:00
if(this.data.selectedIndex.length>0){
2023-08-24 18:44:06 +08:00
this.data.selectedIndex.forEach((item) =>{
let _indexs = item.split('_');
let name = data[_indexs[0]].userinfoList[_indexs[1]].nickName+" ["+data[_indexs[0]].userinfoList[_indexs[1]].jobTypeName+"]";
_gridData.push({userName:name,phoneNumber:data[_indexs[0]].userinfoList[_indexs[1]].phonenumber});
chooses+=","+name;
});
}
this.triggerEvent('selected',_gridData)
2023-08-21 18:55:48 +08:00
this.setData({
2023-08-24 18:44:06 +08:00
choose:chooses.substring(1),
2023-08-21 18:55:48 +08:00
show:false
})
}
}
})