element ui级联选择器--懒加载数据
程序员文章站
2022-03-03 22:09:19
...
一、vue模板
<el-cascader :props="destiOptionsr" clearable placeholder="请选择目的地2" v-model="value"></el-cascader>
二、JAVASCRIPT代码,加载数据源
export default {
name: "Truckprice",
data() {
return {
destiOptionsr:{
//懒加载的方式加载数据源
lazy:true,
//this.getData定义加载数据源的方法
lazyLoad: this.getData,
},
},
methods:{
getData(node,resolve){
//node是当前点击的节点
const { data } = node;
//获取当前被点击的节点的value
const val=node.value;
//如果没有子节点,回调函数resolve返回空
if (data && ((data.haschild === false) || (data.leaf === true))) {
return resolve([]);
}
let zone = {
zone: val,
};
//被点击的节点的value传输到后端,一共两级,如果value为空,说明请求的是第一级的数据,如果value不为空,说明请求的是第二级的数据
this.$axios.post(this.$host + 'api/gettrucknetwork',zone).then(res => {
resolve(res.data);
})
},
}
}
三、tp5提供后端数据
//获取拖车网点,element ui懒加载
public function gettrucknetwork(Request $request){
//获取前端传递过来的参数zone
$zone=$request->param('zone');
$data=[];
//如果zone为空,则在数据表FivLcltruckPrice中搜索zone,作为第一级数据返回
if($zone==''||$zone==null){
$zone=FivLcltruckPrice::distinct(true)->field('zone')->select();
foreach($zone as $key=>$value){
$data[$key]['value']=$value->zone;
$data[$key]['label']=$value->zone;
//一共两级,这是第一级,所以不是叶子节点leaf=false
$data[$key]['leaf']=false;
}
}else{
//如果zone不为空,则在数据表FivLcltruckPrice中搜索address,作为第二级数据返回
$address=FivLcltruckPrice::where('zone',$zone)->field('address')->select();
foreach($address as $key=>$value){
$data[$key]['value']=$value->address;
$data[$key]['label']=$value->address;
//一共两级,这是第二级,所以是叶子节点leaf=true
$data[$key]['leaf']=true;
}
}
//数据以json格式返回到前端
return json($data);
}
上一篇: axios 和vue
下一篇: mysql怎么删除视图?
推荐阅读
-
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
-
Element UI 中国省市区级联数据
-
基于element-ui封装可搜索的懒加载tree组件的实现
-
element ui 懒加载树节点内子项的动态更新
-
element-UI级联选择器--数据回显
-
用vue解决element-ui级联选择器最后暂无数据的问题
-
element UI表格实现加载数据loading以及无数据时样式展示
-
解决 element-ui el-table表格组件先显示暂无数据 之后再加载数据的问题
-
详解关于element级联选择器数据回显问题
-
element ui el-carousel 滚动图 vue 基于vue-lazyload图片懒加载、延迟加载 解决方案