el-select和el-tree组成树下拉框以和数据回显
check-strictly :父子是否联动,根据业务修改
运行效果:
代码:
<template>
<div>
<el-select
placeholder="请选择"
v-model="exname"
clearable
@clear="handleClear"
ref="selectUpResId"
style="width: 100%"
>
<el-option hidden :key="1" :value="1"></el-option
><!--这个必不可少否则显示不出来下拉数据-->
<!-- check-strictly :父子是否联动,根据业务修改 -->
<el-tree
:data="options"
node-key="id"
:props="defaultProps"
:default-checked-keys="huixianarr"
@check="handleNodeClick"
show-checkbox
ref="treeForm"
:check-strictly="true"
>
</el-tree>
</el-select>
</div>
</template>
<script>
export default {
data() {
return {
exname: "",
huixianarr: [], //用于回显选中的数据
ids: "", //后台需要的参数id
options: [
{
name: "平行世界",
id: "0",
children: [
{
id: "1",
name: "黑暗之地",
code: "U05000000",
content: null,
level: 1,
type: null,
parentId: null,
img: null,
children: [
{
id: "10",
name: "秘制森美",
code: "CSYWDY05",
content: null,
level: 1,
type: null,
parentId: "1",
img: null,
children: null,
},
{
id: "11",
name: "卡之宝",
code: "U05000003",
content: null,
level: 1,
type: null,
parentId: "1",
img: null,
children: null,
},
{
id: "13",
name: "瓦罗兰大陆",
code: "U05000008",
content: null,
level: 1,
type: null,
parentId: "1",
img: null,
children: null,
},
{
id: "14",
name: "梦幻城",
code: "U05000005",
content: null,
level: 1,
type: null,
parentId: "1",
img: null,
children: [
{
id: "15",
name: "R-长安城",
code: "05000501",
content: null,
level: 1,
type: null,
parentId: "14",
img: null,
children: null,
},
{
id: "16",
name: "M-阎王殿",
code: "05005002",
content: null,
level: 1,
type: null,
parentId: "14",
img: null,
children: null,
},
{
id: "17",
name: "X-天庭",
code: "05005053",
content: null,
level: 1,
type: null,
parentId: "14",
img: null,
children: null,
},
],
},
{
id: "18",
name: "狂战森林",
code: "JZZF",
content: null,
level: 1,
type: null,
parentId: "1",
img: null,
children: null,
},
{
id: "2",
name: "死亡峡谷",
code: "U05000001",
content: null,
level: 1,
type: null,
parentId: "1",
img: null,
children: [
{
id: "3",
name: "静海之地",
code: "U05000011",
content: null,
level: 1,
type: null,
parentId: "2",
img: null,
children: null,
},
],
},
{
id: "21",
name: "艾尔兰大陆",
code: "111",
content: null,
level: 1,
type: null,
parentId: "1",
img: null,
children: null,
},
{
id: "23",
name: "光明之地",
code: "112",
content: null,
level: 1,
type: null,
parentId: "1",
img: null,
children: [
{
id: "24",
name: "阿兹卡班",
code: "123123",
content: null,
level: 1,
type: null,
parentId: "23",
img: null,
children: null,
},
],
},
{
id: "27",
name: "毕得森堡",
code: "DY001",
content: null,
level: 1,
type: null,
parentId: "1",
img: null,
children: null,
},
{
id: "4",
name: "A市",
code: "U05000002",
content: null,
level: 1,
type: null,
parentId: "1",
img: null,
children: [
{
id: "5",
name: "森志",
code: "U050000012",
content: null,
level: 1,
type: null,
parentId: "4",
img: null,
children: null,
},
],
},
{
id: "6",
name: "Wisconsin",
code: "CSYWDY01",
content: null,
level: 1,
type: null,
parentId: "1",
img: null,
children: null,
},
{
id: "7",
name: "M78",
code: "CSYWDY02",
content: null,
level: 1,
type: null,
parentId: "1",
img: null,
children: null,
},
{
id: "8",
name: "艾匹克",
code: "CSYWDY03",
content: null,
level: 1,
type: null,
parentId: "1",
img: null,
children: null,
},
{
id: "9",
name: "霍尔木兹",
code: "CSYWDY04",
content: null,
level: 1,
type: null,
parentId: "1",
img: null,
children: null,
},
],
},
{
id: "12",
name: "古森堡",
code: "QXPGYWDY",
content: null,
level: 1,
type: null,
parentId: "7",
img: null,
children: null,
},
{
id: "20",
name: "德玛西亚",
code: "11101",
content: null,
level: 1,
type: null,
parentId: "21",
img: null,
children: null,
},
{
id: "22",
name: "1111",
code: "1111",
content: null,
level: 1,
type: null,
parentId: "8",
img: null,
children: null,
},
{
id: "25",
name: "123321",
code: "1231233",
content: null,
level: 1,
type: null,
parentId: "6",
img: null,
children: null,
},
],
},
], //树状结构数据
defaultProps: {
children: "children",
label: "name",
},
hxlist: [],
};
},
created() {
//获取到回显数据
this.$nextTick(() => {
this.$refs.treeForm.setCheckedKeys([]);
this.huixianarr = [1, 10, 7];
this.huixianarr.forEach((index) => {
this.setname(this.options[0], index);
});
this.exname = this.hxlist.join(",");
});
},
methods: {
// 节点点击事件
handleNodeClick(data, lst) {
let arr = [],
name = [];
lst.checkedNodes.forEach((item) => {
//过滤拿到选中的id
arr.push(item.id);
});
lst.checkedNodes.forEach((item) => {
//过滤拿到选中的name
name.push(item.name);
});
this.exname = name.join(","); //显示内容
this.ids = arr.join(","); //后台传参需要的id
},
// 选择器配置可以清空选项,用户点击清空按钮触发
handleClear() {
this.ids = "";
},
//递归查树
setname(list, ids) {
list.children.forEach((item) => {
if (item.id == ids) {
this.hxlist.push(item.name);
} else {
if (item.children != null) {
this.setname(item, ids);
}
}
});
},
},
};
</script>
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfkeefj
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24