const template=`
`; export default { name: "SelectPage", data: function () { return { loading:false, list:[], pageNumber:1, query:'', total:0, data:'', } }, mounted:function (){ if(this.multiple){ if(!this.value){ this.data=[]; } if(typeof this.value==='string'){ this.data=this.value.split(','); } if(this.value instanceof Array){ this.data=this.value.map(res=>{ return res.toString(); }); } }else{ if(this.value===0 || this.value==='0'){ this.data=''; }else{ this.data=this.value?this.value.toString():''; } } this.initList(); }, props:{ value:'', labelField:{ type:String, default:'name' }, keyField:{ type:String, default:'id' }, field:{ type:String, default:'' }, placeholder:{ type:String, default:'' }, url:{ type:String, required:true }, pageSize:{ type:Number, default:7 }, size:{ type:String, default:'default' }, multiple:{ type:Boolean, default:false } }, template:template, emits:['change'], methods:{ initList:function (){ let keyValue=this.value || ''; let postdata={ 'page':this.pageNumber, 'limit':this.pageSize, 'keyField':this.keyField, 'labelField':this.labelField, 'keyValue':keyValue, 'labelValue':'', 'selectpage':true }; Yunqi.ajax.json(this.url,postdata,false).then(res=>{ this.list=res.rows; this.total=res.total; }); }, getList:function (){ let postdata={ 'page':this.pageNumber, 'limit':this.pageSize, 'keyField':this.keyField, 'labelField':this.labelField, 'keyValue':'', 'labelValue':this.query, 'selectpage':true }; Yunqi.ajax.json(this.url,postdata,false).then(res=>{ this.list=res.rows; this.total=res.total; }); }, changeSelect:function (e){ let r=this.data; if(this.multiple){ r=this.data.join(','); } this.$emit('change',this.field?{field: this.field,value:r}:r); }, clearSelect:function (){ this.pageNumber=1; this.getList(); }, remoteMethod:function (query){ this.query=query; if(!query){ return; } this.pageNumber=1; this.getList(); }, changePage:function (e){ this.pageNumber=e; this.getList(); }, getSelectedData:function (){ let r=[]; for(let i=0;i-1){ r.push(this.list[i]); } }else{ if(this.data==this.list[i][this.keyField]){ r.push(this.list[i]); } } } return r; }, select:function (key){ if(this.multiple){ if(this.data.indexOf(key)>-1){ return; } this.data.push(key); }else{ this.data=key; } this.pageNumber=1; let postdata={ 'page':1, 'limit':this.pageSize, 'keyField':this.keyField, 'labelField':this.labelField, 'keyValue':this.data, 'labelValue':'', 'selectpage':true }; Yunqi.ajax.json(this.url,postdata,false).then(res=>{ this.list=res.rows; this.total=res.total; this.changeSelect(); }); }, remove:function (key){ if(this.multiple){ let i=this.data.indexOf(key); if(i>-1){ this.data.splice(i,1); } }else{ this.data=''; } let r=this.data; if(this.multiple){ r=this.data.join(','); } this.changeSelect(); } } };