Vue ElementUI 级联选择器支持多选

由于我们部门并没有产品经理,在做一个后台管理系统的过程中遇见了一个比较奇葩的需求,当时觉得如果采用ElemenyUI 的级联选择器岂不是很简单的吗?只是ElementUI的级联选择器并不支持多选,就此作罢。项目上线之后闲来无事,就心血来潮,各种百度之后终于算是写好了一个案列

安装:推荐使用npm安装

npm install ele-multi-cascader

npm install element-ui -S

使用:在main.js

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import ELeMultiCascader from "ele-multi-cascader"
import "ele-multi-cascader/dist/cascader.css"
Vue.use(ElementUI);
Vue.use(ELeMultiCascader);

案列

<template>
  <div id="app">
	<el-form label-width="80px" ref="form" :model="form" :rules="rules" label- 
         position="left">
		<el-form-item label="ISP: " prop="isp">
			<ele-multi-cascader
				clearable
				:options="options"
				v-model="form.isp"
				separator=">"
				placeholder="选择运营商"
				@change="ispChange"
				show-all-levels="true"
				selectChildren="true">
			</ele-multi-cascader>
			&l
Vue中使用Element UI的级联选择器Cascader)实现,并且每个子项带上父级名称,可以通过以下步骤实现: 1. **启用**:在`el-cascader`组件中设置`props.multiple`为`true`。 2. **获取中的值**:通过`v-model`绑定中的值。 3. **格式化中的值**:在中值后,遍历中的节点,将每个子项的父级名称拼接上。 以下是一个示例代码: ```html <template> <el-cascader v-model="selectedOptions" :options="options" :props="{ multiple: true, emitPath: false }" @change="handleChange" clearable ></el-cascader> <div v-if="formattedSelectedOptions.length"> <p>中的项(带父级名称):</p> <ul> <li v-for="(option, index) in formattedSelectedOptions" :key="index"> {{ option }} </li> </ul> </div> </template> <script> export default { data() { return { selectedOptions: [], options: [ { value: 'zhinan', label: '指南', children: [ { value: 'shejiyuanze', label: '设计原则', children: [ { value: 'yizhi', label: '一致' }, { value: 'fankui', label: '反馈' } ] }, { value: 'daohang', label: '导航', children: [ { value: 'cexiangdaohang', label: '侧向导航' }, { value: 'dingbudaohang', label: '顶部导航' } ] } ] } ], formattedSelectedOptions: [] }; }, methods: { handleChange(value) { this.formattedSelectedOptions = value.map(item => { let label = ''; if (Array.isArray(item)) { label = item.map(i => i.label).join(' / '); } else { label = item.label; } return label; }); } } }; </script> ``` 在这个示例中: 1. ****:通过`props.multiple`设置为`true`实现。 2. **格式化中的值**:在`handleChange`方法中,将中的值格式化为带父级名称的字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值