|
|
<template>
|
|
|
<el-dialog
|
|
|
class="addLineDialog"
|
|
|
title="设置"
|
|
|
:visible.sync="isShow"
|
|
|
:close-on-click-modal="false"
|
|
|
width="40%"
|
|
|
>
|
|
|
<!-- <el-form
|
|
|
label-position="left"
|
|
|
ref="formInfo"
|
|
|
label-width="100px"
|
|
|
:rules="rules"
|
|
|
:model="formdata"
|
|
|
>
|
|
|
<el-form-item label="通道:" prop="name">
|
|
|
<el-tree
|
|
|
:data="listnr"
|
|
|
show-checkbox
|
|
|
:props="defaultProps"
|
|
|
ref="tree"
|
|
|
node-key="id"
|
|
|
:default-expand-all="true"
|
|
|
></el-tree>
|
|
|
</el-form-item>
|
|
|
</el-form> -->
|
|
|
<div class="flexnr">
|
|
|
<div class="w50">通道:</div>
|
|
|
<el-tree :data="listnr" show-checkbox :props="defaultProps" ref="tree" node-key="id" :default-expand-all="true"></el-tree>
|
|
|
</div>
|
|
|
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<!-- <el-button @click="getCheckedNodes">获取</el-button> -->
|
|
|
<el-button @click="isShow = false">取 消</el-button>
|
|
|
<el-button type="primary" @click="submitForm()">确 定</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
</template>
|
|
|
<script>
|
|
|
import {
|
|
|
setScheduleRulel,
|
|
|
getScheduleRulelAccessList,
|
|
|
} from "@/utils/api/index";
|
|
|
export default {
|
|
|
props: {
|
|
|
title: String,
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
isShow: false,
|
|
|
formdata: {},
|
|
|
rules: {
|
|
|
name: [{ required: true, message: "请选择通道", trigger: "blur" }],
|
|
|
},
|
|
|
listnr: [],
|
|
|
defaultProps: {
|
|
|
children: "list",
|
|
|
label: "name",
|
|
|
},
|
|
|
selid: 0,
|
|
|
ruleid: "",
|
|
|
parmsList: [],//选中的通道
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
|
},
|
|
|
methods: {
|
|
|
//判断
|
|
|
getdataform(val) {
|
|
|
this.selid = val.id;
|
|
|
this.getlistnr()
|
|
|
},
|
|
|
//获取所有通道
|
|
|
getlistnr() {
|
|
|
getScheduleRulelAccessList({})
|
|
|
.then((res) => {
|
|
|
this.listnr = res.data.list;
|
|
|
})
|
|
|
.catch((err) => {});
|
|
|
},
|
|
|
|
|
|
//获取所选值
|
|
|
getCheckedNodes() {
|
|
|
this.parmsList = []
|
|
|
const checkedNodes = this.$refs.tree.getCheckedNodes(false, true); //若节点可被选择,则返回目前被选中的节点所组成的数组
|
|
|
//const checkedParam = []; //定义选中的数组
|
|
|
let index = -1;
|
|
|
// console.log(checkedNodes);
|
|
|
if (checkedNodes.length !== 0) {
|
|
|
checkedNodes.forEach((item) => {
|
|
|
// 父节点结构的情况 判断是否有list子节点,如果有定义数组结构
|
|
|
if (item.list !== undefined) {
|
|
|
index++;
|
|
|
this.parmsList[index] = {
|
|
|
//name: item.name,
|
|
|
termid: item.id,
|
|
|
channelidlist: [],
|
|
|
};
|
|
|
} else {
|
|
|
//如果没有list 把子节点id push到 定义的数组channelidlist中
|
|
|
this.parmsList[index].channelidlist.push(item.id);
|
|
|
}
|
|
|
//通过bsManufacturer 判断是否是 线路 获取线路id
|
|
|
// if (item.bsManufacturer !== undefined) {
|
|
|
// this.ruleid = item.id;
|
|
|
// console.log(this.ruleid);
|
|
|
// }
|
|
|
});
|
|
|
}
|
|
|
// console.log(this.parmsList);
|
|
|
//遍历删除没有channelichilddlist的数据,只留下通道
|
|
|
this.parmsList = this.parmsList
|
|
|
.filter((item) => item.channelidlist.length !== 0)
|
|
|
.map((item) => {
|
|
|
return {
|
|
|
termid: item.termid,
|
|
|
channelidlist: item.channelidlist,
|
|
|
};
|
|
|
});
|
|
|
console.log(this.parmsList);
|
|
|
return this.parmsList;
|
|
|
},
|
|
|
|
|
|
// 保存确定操作
|
|
|
submitForm() {
|
|
|
this.getCheckedNodes()
|
|
|
if (this.parmsList.length==0) return this.$message.error("通道不能为空");
|
|
|
setScheduleRulel({ list: this.parmsList, ruleid: this.selid })
|
|
|
.then((res) => {
|
|
|
this.isShow = false;
|
|
|
this.$message.success("添加成功");
|
|
|
this.$parent.deviceList();
|
|
|
})
|
|
|
.catch((err) => {
|
|
|
this.$message.error("添加失败");
|
|
|
});
|
|
|
},
|
|
|
display() {
|
|
|
this.isShow = true;
|
|
|
},
|
|
|
hide() {
|
|
|
this.isShow = false;
|
|
|
},
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
<style lang="less" scoped>
|
|
|
.flexnr {
|
|
|
display: flex;
|
|
|
align-items: start;
|
|
|
}
|
|
|
.w50{
|
|
|
width: 50px;
|
|
|
}
|
|
|
</style>
|