You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

301 lines
8.0 KiB
Vue

2 years ago
<template>
2 years ago
<el-dialog
2 years ago
class="photoSetDialog"
2 years ago
title="设置"
:visible.sync="isShow"
:close-on-click-modal="false"
2 years ago
width="720px"
2 years ago
>
<!-- <div class="flexnr">
2 years ago
<div class="w50">通道:</div>
2 years ago
<el-tree
:data="listnr"
show-checkbox
:props="defaultProps"
ref="tree"
node-key="id"
:default-expand-all="true"
></el-tree>
</div> -->
<div class="setTimeTd">
2 years ago
<h3>时间表规则</h3>
<el-descriptions title="" :column="3" border>
<el-descriptions-item label="开始时间"> 12:00:07</el-descriptions-item>
<el-descriptions-item label="结束时间"> 16:00:07</el-descriptions-item>
<el-descriptions-item label="时间间隔(分)">
<el-tag size="small">60</el-tag>
</el-descriptions-item>
</el-descriptions>
<h3>设置通道</h3>
2 years ago
<div class="chooseTDBox">
<label>选择通道</label>
<div class="checkBox">
<el-checkbox-group v-model="checkList">
<el-checkbox label="通道1" border></el-checkbox>
<el-checkbox label="通道2" border></el-checkbox>
<el-checkbox label="通道3" border></el-checkbox>
<el-checkbox label="通道4" border></el-checkbox>
</el-checkbox-group>
</div>
</div>
<div class="treeTable">
<el-table
:data="tableData"
style="width: 100%; margin-bottom: 20px"
row-key="id"
border
stripe
default-expand-all
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
>
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column prop="date" label="电压"> </el-table-column>
<el-table-column prop="name" label="线路11"> </el-table-column>
<el-table-column prop="address" label="装置"> </el-table-column>
</el-table>
</div>
<!-- <div class="setCheckbox">
<el-table
ref="multipleTable"
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
@selection-change="handleSelectionChange"
>
<el-table-column label="电压等级">
<template> 220KV</template>
</el-table-column>
<el-table-column prop="name" label="线路名称">
<template> 线路 </template>
</el-table-column>
<el-table-column
width="160"
prop="address"
label="装置信息"
show-overflow-tooltip
>
<template> XY-SIMULATOR-0001 </template>
</el-table-column>
2 years ago
<el-table-column label="全选">
<template>
<el-checkbox v-model="checked">1</el-checkbox></template
>
</el-table-column>
<el-table-column label="全选">
<template
><el-checkbox v-model="checked">2</el-checkbox></template
>
</el-table-column>
</el-table>
2 years ago
</div> -->
2 years ago
</div>
2 years ago
<div slot="footer" class="dialog-footer">
2 years ago
<!-- <el-button @click="getCheckedNodes"></el-button> -->
2 years ago
<el-button @click="isShow = false"> </el-button>
<el-button type="primary" @click="submitForm()"> </el-button>
</div>
</el-dialog>
</template>
<script>
2 years ago
import {
setScheduleRulel,
getScheduleRulelAccessList,
} from "@/utils/api/index";
2 years ago
export default {
props: {
2 years ago
title: String,
2 years ago
},
data() {
return {
isShow: false,
formdata: {},
rules: {
2 years ago
name: [{ required: true, message: "请选择通道", trigger: "blur" }],
2 years ago
},
listnr: [],
defaultProps: {
2 years ago
children: "list",
label: "name",
2 years ago
},
2 years ago
selid: 0,
ruleid: "",
2 years ago
parmsList: [], //选中的通道
tableData: [
{
2 years ago
id: 2,
date: "220kv",
name: "线路11",
address: "asdadadadad",
children: [
{
id: 31,
date: "220kv",
name: "线路11",
address: "asdadadadad",
},
{
id: 32,
date: "220kv",
name: "线路11",
address: "asdadadadad",
},
],
},
{
2 years ago
id: 3,
date: "220kv",
name: "线路11",
address: "asdadadadad",
children: [
{
id: 31,
date: "220kv",
name: "线路11",
address: "asdadadadad",
},
{
id: 32,
date: "220kv",
name: "线路11",
address: "asdadadadad",
},
],
},
],
multipleSelection: [],
2 years ago
checkList: [],
2 years ago
};
},
2 years ago
mounted() {},
2 years ago
methods: {
//判断
2 years ago
getdataform(val) {
this.selid = val.id;
2 years ago
this.getlistnr();
2 years ago
},
//获取所有通道
2 years ago
getlistnr() {
getScheduleRulelAccessList({})
.then((res) => {
this.listnr = res.data.list;
})
.catch((err) => {});
2 years ago
},
2 years ago
2 years ago
//获取所选值
getCheckedNodes() {
2 years ago
this.parmsList = [];
const checkedNodes = this.$refs.tree.getCheckedNodes(false, true); //若节点可被选择,则返回目前被选中的节点所组成的数组
//const checkedParam = []; //定义选中的数组
let index = -1;
2 years ago
// 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
2 years ago
// if (item.bsManufacturer !== undefined) {
// this.ruleid = item.id;
// console.log(this.ruleid);
// }
});
}
2 years ago
// 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;
2 years ago
},
2 years ago
2 years ago
// 保存确定操作
submitForm() {
2 years ago
this.getCheckedNodes();
if (this.parmsList.length == 0)
return this.$message.error("通道不能为空");
2 years ago
setScheduleRulel({ list: this.parmsList, ruleid: this.selid })
.then((res) => {
this.isShow = false;
this.$message.success("添加成功");
this.$parent.deviceList();
})
.catch((err) => {
this.$message.error("添加失败");
});
2 years ago
},
display() {
2 years ago
this.isShow = true;
2 years ago
},
hide() {
2 years ago
this.isShow = false;
},
},
2 years ago
};
</script>
2 years ago
<style lang="less">
.photoSetDialog {
2 years ago
.el-dialog__body {
// height: 360px;
// overflow: auto;
}
2 years ago
.flexnr {
2 years ago
height: 360px;
overflow: auto;
2 years ago
display: flex;
align-items: flex-start;
2 years ago
.el-tree {
flex: 1;
}
2 years ago
}
.w50 {
width: 50px;
}
.setTimeTd {
h3 {
margin: 8px 0px;
font-size: 16px;
line-height: 24px;
}
.setCheckbox {
.el-table__header .el-table-column--selection .cell .el-checkbox:after {
color: #333;
content: "全选";
font-size: 16px;
margin-left: 12px;
font-weight: bold;
}
}
}
2 years ago
.chooseTDBox {
display: flex;
align-items: center;
label {
margin-right: 8px;
}
}
.treeTable {
margin-top: 16px;
}
2 years ago
}
</style>