elementui elcascader懒加载
1 地理位置懒加载; 2 <el-cascader 3 ref="cascaderLoc" 4 @visible-change="changeBgClass" 5 v-model="form.assetLoc" 6 :option="optionsAssetLoc" 7 :props="locationProp" 8 emitPayh="true" 9 @change="getLocNodes" 10 filyerable 11 clearable 12 > 13 </el-cascader> 14 2.data中配置 15 optionsAssetLoc:[], 16 locationProps:{ 17 checkStrictly:true,//严格遵循父子节点互不关联 18 value:"value", 19 lazy:true, 20 lazyLoad:function lazyLoad(node,resolve){ 21 const{data,level,path}=node; 22 if(!data||(data&&data.haschild==false)||(data&&data.leaf==true)){ 23 return resolve([]) 24 } 25 let code=data.value; 26 //调用请求获取数据 27 this.vm.getLocationOption(code,path,node).then( 28 {resolve(res)} 29 ) 30 31 }.bind(this) 32 } 33 created(){ 34 this.getLocationOption(); 35 } 36 methods:{ 37 getLocationOption(code,path,node){ 38 return new Promise(resolve,reject){ 39 let param {code:code||"",async:false}; 40 thisObj.callAPIcom(url,param,"post",res=>{ 41 if(res&&res.resp.code==0){ 42 if(this.optionAssetLoc.length==0){ 43 res.data[0].locData[0].children=[]; 44 this.optionAssetLoc=res.data[0].locData; 45 }else{ 46 let result=res.data[0].locData[0]; 47 if(result.children.length==0){ 48 this.$refs.cascaderLoc.dropDowVisible=false; 49 } 50 resolve(result.children) 51 } 52 } 53 }) 54 } 55 56 } 57 58 59 60 61 62 63 }
1 地理位置懒加载;
2 <el-cascader
3 ref="cascaderLoc"
4 @visible-change="changeBgClass"
5 v-model="form.assetLoc"
6 :option="optionsAssetLoc"
7 :props="locationProp"
8 emitPayh="true"
9 @change="getLocNodes"
10 filyerable
11 clearable
12 >
13 </el-cascader>
14 2.data中配置
15 optionsAssetLoc:[],
16 locationProps:{
17 checkStrictly:true,//严格遵循父子节点互不关联
18 value:"value",
19 lazy:true,
20 lazyLoad:function lazyLoad(node,resolve){
21 const{data,level,path}=node;
22 if(!data||(data&&data.haschild==false)||(data&&data.leaf==true)){
23 return resolve([])
24 }
25 let code=data.value;
26 //调用请求获取数据
27 this.vm.getLocationOption(code,path,node).then(
28 {resolve(res)}
29 )
30
31 }.bind(this)
32 }
33 created(){
34 this.getLocationOption();
35 }
36 methods:{
37 getLocationOption(code,path,node){
38 return new Promise(resolve,reject){
39 let param {code:code||"",async:false};
40 thisObj.callAPIcom(url,param,"post",res=>{
41 if(res&&res.resp.code==0){
42 if(this.optionAssetLoc.length==0){
43 res.data[0].locData[0].children=[];
44 this.optionAssetLoc=res.data[0].locData;
45 }else{
46 let result=res.data[0].locData[0];
47 if(result.children.length==0){
48 this.$refs.cascaderLoc.dropDowVisible=false;
49 }
50 resolve(result.children)
51 }
52 }
53 })
54 }
55
56 }
57
58
59
60
61
62
63 }
徐增友

浙公网安备 33010602011771号