大家好,欢迎来到IT知识分享网。
Vue 学习随笔 —— Cascader 级联选择器
前言
一、Cascader 级联选择器
二、使用步骤
1. 引入
代码如下:
<el-form-item label="xxx" prop="item" > <el-cascader ref="cascader" clearable :props="props1" :value="id" // v-model 与 value 使用其中一个即可 :options="itemList" // 接口返回的树形字典数据 :show-all-levels="false" placeholder="请选择" @change="handleChange" > </el-cascader> </el-form-item>
2. 数据定义
代码如下:
data() {
return {
props1: {
value:'id', label:'label', }, id:[], form: {
item: '', itemList: [], // 分类 }, releaseTime: "", } } }
3. 获取点击label的值
handleChange() {
// 使用 getCheckedNodes 可以获取到数组 this.form.item = this.$refs["cascader"].getCheckedNodes()[0].pathLabels[2] console.log("this.form.item",this.form.item) },
4、 推荐方法
获取 label 中文值, props 抛出 lebel 值
<el-cascader ref="cascader" clearable :value="id" v-model="form.Item" :options="ItemList" :show-all-levels="false" :props="{value: 'label'}" placeholder="请选择" @change="handleDept" > </el-cascader>
获取 id 值, props 抛出 id 的值
<el-cascader ref="cascader" clearable :value="id" :options="departmentList" :show-all-levels="false" :props="{value: 'id'}" placeholder="请选择" @change="handleDept" > </el-cascader>
数据处理,取最后一级
handleChange(val) {
console.log(111, val) if(!val) return this.form.Item = val.slice(-1).toString() },
三、补充
tips 1
<el-cascader size="small" style="width: 100%;" placeholder="试试搜索" v-model="form.data" :options="dataOptions" :props="{ multiple: true }" @change="getData" :show-all-levels="false" collapse-tags filterable clearable> </el-cascader>
tps2
<el-cascader size="small" style="width: 85%;" :options="profitOptions" v-model="form.data" :props="{ multiple: true, checkStrictly: true, emitPath: false }" :show-all-levels="false" @change="getData" collapse-tags filterable clearable> </el-cascader> <script> ... // 可通过次方法获取多选中的最后一层数据 methods: {
getData(val){
let data = val.map( v=> {
return v.slice(-1).toString() }) } } </script>
<el-cascader size="small" style="width: 85%;" :options="profitOptions" v-model="profitCenterList" :props="{ multiple: true, checkStrictly: true, propsCascader}" :show-all-levels="false" @change="getProfitCenter" collapse-tags filterable clearable> </el-cascader> // 级联选择器回显 getParentsById(list, id) {
// list - 数据列表 // id --- 最后一层的 id for (let i in list) {
if (list[i][this.propsCascader.value || 'value'] == id) {
return [list[i][this.propsCascader.value || 'value']] } if (list[i].children) {
let node = this.getParentsById(list[i].children, id) if (node !== undefined) {
// 追加父节点 node.unshift(list[i][this.propsCascader.value || 'value']) return node } } } },
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120444.html


