|
@@ -1,82 +1,24 @@
|
|
|
<template>
|
|
|
<div id="dynamicdata">
|
|
|
- <!-- 按钮及提示 -->
|
|
|
- <div class="text-right">
|
|
|
- <span v-if="tipsType==1">最后一次执行时间:{{lastUpdateTime}}</span>
|
|
|
- <span v-if="tipsType==2" style="color:red;">
|
|
|
- 原始点位变化,部分标识受到影响,请重新执行对应规则
|
|
|
- <i class="el-icon-right"></i>
|
|
|
- </span>
|
|
|
- <span v-if="tipsType==3" style="color:red;">
|
|
|
- 对应规则有更新,记得执行哦
|
|
|
- <i class="el-icon-right"></i>
|
|
|
- </span>
|
|
|
- <el-button size="medium" @click="apply">按对应规则自动设定动态参数信息点</el-button>
|
|
|
- <el-button size="medium" type="primary" @click="toAddRelation">填充对应规则</el-button>
|
|
|
- </div>
|
|
|
<!-- tab分页 -->
|
|
|
- <el-tabs v-model="curType">
|
|
|
- <el-tab-pane v-for="(item) in typeList" :key="item.Name" :label="item.Name+'('+item.Rcount+'/'+item.Sum+')'" :name="item.Name"></el-tab-pane>
|
|
|
- </el-tabs>
|
|
|
- <!-- 查询条件 -->
|
|
|
- <div class="query-area">
|
|
|
- <el-form ref="form" :model="form" :inline="true">
|
|
|
- <el-row>
|
|
|
- <div class="query-item">
|
|
|
- <el-form-item>
|
|
|
- <el-input placeholder="请输入设备标识关键字" v-model="form.EquipmentMark" class="input-with-select">
|
|
|
- <el-button slot="append" icon="el-icon-search" @click="queryTableData"></el-button>
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- </div>
|
|
|
- <div class="query-item">
|
|
|
- <label>数据源</label>
|
|
|
- <dataSource :Related="true" @change="changeDataSource"></dataSource>
|
|
|
- </div>
|
|
|
- <div class="query-item">
|
|
|
- <dictionary-device @change="changeDictionary" :Related="true"></dictionary-device>
|
|
|
- </div>
|
|
|
- <div class="query-item">
|
|
|
- <label>位置标签</label>
|
|
|
- <locationFlag :Related="true" @change="changeLocationFlag"></locationFlag>
|
|
|
- </div>
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- <!-- 列表区域 -->
|
|
|
- <div class="table-area">
|
|
|
- <el-table :data="tableData" style="width: 100%" height="100%" v-show="1" v-loading="loading">
|
|
|
- <el-table-column label="点位表中出现的所有设备">
|
|
|
- <el-table-column prop="EquipmentMark" label="设备标识" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column prop="LocationFlag" label="位置标签" show-overflow-tooltip>
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-tooltip :content="scope.row.LocationFlag.toString()" placement="top">
|
|
|
- <span>{{scope.row.LocationFlag.toString()}}</span>
|
|
|
- </el-tooltip>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="Datasource" label="数据源" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column prop="SubTypeName" label="数字字典设备类型" show-overflow-tooltip></el-table-column>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="对应物理世界中的设备实例">
|
|
|
- <el-table-column prop="EquipLocalName" label="对应的设备实例" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column prop="FloorLocalName" label="实例所在建筑楼层" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column prop="RoomLocalName" label="实例所在业务空间" show-overflow-tooltip></el-table-column>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="action" label="操作">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button size="mini" @click="handleDelete(scope.$index, scope.row)" type="danger" plain :disabled="scope.row.Related=='False'">清除对应</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </div>
|
|
|
- <!-- 分页 -->
|
|
|
- <el-pagination class="fr" v-show="tableData && tableData.length" @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
|
|
- :current-page="page.pageNumber" :page-sizes="page.pageSizes" :page-size="page.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="page.total"></el-pagination>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="17">
|
|
|
+ <el-tabs v-model="curType">
|
|
|
+ <el-tab-pane v-for="(item) in typeList" :key="item.Name" :label="item.Name+'('+item.Rcount+'/'+item.Sum+')'" :name="item.Name">
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="7" style="text-align:right;">
|
|
|
+ <span style="margin-right:10px;">最后配置时间:{{lastUpdateTime}}</span>
|
|
|
+ <el-tooltip class="item" effect="dark" :content="tipCon" placement="left">
|
|
|
+ <el-button size="small" type="primary" @click="apply" icon="el-icon-refresh" style="float:right;">配置</el-button>
|
|
|
+ </el-tooltip>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <equip-rules v-if="curType=='设备'" ref="equip" :typeName="curType"></equip-rules>
|
|
|
+ <!-- <parts-rules v-if="!curType=='设备'" ref="parts" :typeName="'设备'"></parts-rules> -->
|
|
|
<!-- 应用规则弹窗 -->
|
|
|
<apply-rules-dialog ref="apply"></apply-rules-dialog>
|
|
|
- <!-- 清除对应关系弹窗 -->
|
|
|
- <del-relation-dialog ref="del" @refresh="refresh"></del-relation-dialog>
|
|
|
<!-- 规则更新提示 -->
|
|
|
<el-dialog title="提示" :visible.sync="ruleDialogShow" width="25%" @close="rulesClose">
|
|
|
<span>{{ruleDialogStr}}</span>
|
|
@@ -91,17 +33,12 @@
|
|
|
import tools from "@/utils/tools";
|
|
|
import { mapGetters, mapActions } from "vuex";
|
|
|
import applyRulesDialog from "@/components/point/dynamicdata/applyRulesDialog";
|
|
|
-import delRelationDialog from "@/components/point/dynamicdata/delRelationDialog";
|
|
|
-import dictionaryDevice from "@/components/point/dynamicdata/dictionaryDevice";
|
|
|
-import dataSource from "@/components/point/dynamicdata/dataSource";
|
|
|
-import locationFlag from "@/components/point/dynamicdata/locationFlag";
|
|
|
+import equipRules from "@/components/point/dynamicdata/equipRules";
|
|
|
+import partsRules from "@/components/point/dynamicdata/partsRules";
|
|
|
import {
|
|
|
dynamicClashConfirm,
|
|
|
dynamicExecute,
|
|
|
dynamicPromptmessage,
|
|
|
- dynamicPromptobjs,
|
|
|
- dynamicQuery,
|
|
|
- dynamicQueryPoint,
|
|
|
dynamicPointTypeList
|
|
|
} from "@/api/scan/request";
|
|
|
export default {
|
|
@@ -112,40 +49,22 @@ export default {
|
|
|
return {
|
|
|
curType: "", //当前所在tab页
|
|
|
typeList: [], //tab页list
|
|
|
- sourceList: [], //数据源
|
|
|
- DynEquipList: [], //数据字典设备类型
|
|
|
- LocFlagList: [], //位置标签
|
|
|
- tableData: [], //列表数据
|
|
|
- page: {
|
|
|
- pageSize: 50,
|
|
|
- pageSizes: [10, 20, 50, 100],
|
|
|
- pageNumber: 1,
|
|
|
- total: 0
|
|
|
- },
|
|
|
- form: {
|
|
|
- EquipmentMark: "", //设备标识关键字
|
|
|
- SubTypeName: [], //数据字典设备类型
|
|
|
- LocationFlag: [], //位置标签
|
|
|
- Datasource: [] //数据源
|
|
|
- }, //查询条件
|
|
|
lastUpdateTime: "", //最后更新时间
|
|
|
tipsType: 1, //提示信息种类
|
|
|
ruleDialogShow: false, //规则提示执行弹窗
|
|
|
ruleDialogStr: "", //规则提示执行弹窗文字
|
|
|
- loading: false //列表loading
|
|
|
+ tipCon: '按对应规则自动设定实例动态参数信息点', //配置按钮提示文字
|
|
|
};
|
|
|
},
|
|
|
components: {
|
|
|
applyRulesDialog,
|
|
|
- delRelationDialog,
|
|
|
- dictionaryDevice,
|
|
|
- dataSource,
|
|
|
- locationFlag
|
|
|
+ equipRules,
|
|
|
+ partsRules
|
|
|
},
|
|
|
created() {
|
|
|
this.init();
|
|
|
},
|
|
|
- mounted() {},
|
|
|
+ mounted() { },
|
|
|
methods: {
|
|
|
//获取查询条件-提示信息
|
|
|
init() {
|
|
@@ -157,24 +76,20 @@ export default {
|
|
|
if (res.Result == "success") {
|
|
|
if (res.Content.length) {
|
|
|
for (let i = 0; i < res.Content.length; i++) {
|
|
|
- if (res.Content[i].Type == "未执行对应规则") {
|
|
|
- this.tipsType = 3;
|
|
|
- this.ruleDialogStr = "对应规则更新,是否现在执行?";
|
|
|
- this.ruleDialogShow = true;
|
|
|
- return;
|
|
|
+ if (res.Content[i].Type == "最后一次执行时间") {
|
|
|
+ this.lastUpdateTime = res.Content[i].Content;
|
|
|
+ this.tipsType = 1;
|
|
|
}
|
|
|
if (res.Content[i].Type == "原始点位增删") {
|
|
|
this.tipsType = 2;
|
|
|
this.ruleDialogStr =
|
|
|
"原始点位变化,部分标识受到影响,请重新执行对应规则";
|
|
|
this.ruleDialogShow = true;
|
|
|
- return;
|
|
|
}
|
|
|
- if (res.Content[i].Type == "最后一次执行时间") {
|
|
|
- this.lastUpdateTime = res.Content[i].Content;
|
|
|
- this.tipsType = 1;
|
|
|
- this.ruleDialogShow = false;
|
|
|
- return;
|
|
|
+ if (res.Content[i].Type == "未执行对应规则") {
|
|
|
+ this.tipsType = 3;
|
|
|
+ this.ruleDialogStr = "对应规则更新,是否现在执行?";
|
|
|
+ this.ruleDialogShow = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -192,7 +107,7 @@ export default {
|
|
|
//记录上次操作的tab页
|
|
|
this.curType =
|
|
|
this.curType != 0 ? this.curType : this.typeList[0].Name;
|
|
|
- this.getTableData();
|
|
|
+ // this.getTableData();
|
|
|
} else {
|
|
|
this.tableData = [];
|
|
|
}
|
|
@@ -208,88 +123,12 @@ export default {
|
|
|
});
|
|
|
// this.$refs.apply.showDialog();
|
|
|
},
|
|
|
- //清除对应关系
|
|
|
- handleDelete(index, row) {
|
|
|
- this.$refs.del.showDialog(row);
|
|
|
- },
|
|
|
- //改变pagesize
|
|
|
- handleSizeChange(pageSize) {
|
|
|
- this.page.pageSize = pageSize;
|
|
|
- this.getTableData();
|
|
|
- },
|
|
|
- //改变pageno
|
|
|
- handleCurrentChange(pageNo) {
|
|
|
- this.page.pageNumber = pageNo;
|
|
|
- this.getTableData();
|
|
|
- },
|
|
|
- //跳转至填充对应规则
|
|
|
- toAddRelation() {
|
|
|
- this.$router.push({ name: "addRelation" });
|
|
|
- },
|
|
|
- //获取表格数据
|
|
|
- getTableData() {
|
|
|
- let param = {
|
|
|
- PageNumber: this.page.pageNumber,
|
|
|
- PageSize: this.page.pageSize,
|
|
|
- TypeNameList: [this.curType]
|
|
|
- };
|
|
|
- //处理查询条件
|
|
|
- if (this.form.EquipmentMark && this.form.EquipmentMark.length) {
|
|
|
- param.EquipmentMark = this.form.EquipmentMark;
|
|
|
- }
|
|
|
- if (this.form.SubTypeName.length) {
|
|
|
- param.SubTypeNameList = this.form.SubTypeName;
|
|
|
- }
|
|
|
- if (this.form.LocationFlag.length) {
|
|
|
- param.LocationFlagList = this.form.LocationFlag;
|
|
|
- }
|
|
|
- if (this.form.Datasource.length) {
|
|
|
- param.DatasourceList = this.form.Datasource;
|
|
|
- }
|
|
|
- this.loading = true;
|
|
|
- // 查询对应关系(P1)
|
|
|
- dynamicQuery(param, res => {
|
|
|
- this.loading = false;
|
|
|
- if (res.Result == "success") {
|
|
|
- this.tableData = res.Content;
|
|
|
- this.page.total = res.Total;
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- //刷新列表
|
|
|
- refresh() {
|
|
|
- this.page.pageNumber = 1;
|
|
|
- this.getTypeNames();
|
|
|
- },
|
|
|
//规则执行弹窗
|
|
|
rulesClose() {
|
|
|
this.ruleDialogShow = false;
|
|
|
},
|
|
|
//现在执行
|
|
|
- nowDo() {},
|
|
|
- //数据字典设备类型修改
|
|
|
- changeDictionary(val) {
|
|
|
- this.page.pageNumber = 1;
|
|
|
- this.form.SubTypeName = val;
|
|
|
- this.getTableData();
|
|
|
- },
|
|
|
- //数据源修改
|
|
|
- changeDataSource(val) {
|
|
|
- this.page.pageNumber = 1;
|
|
|
- this.form.Datasource = val;
|
|
|
- this.getTableData();
|
|
|
- },
|
|
|
- //修改位置标签
|
|
|
- changeLocationFlag(val) {
|
|
|
- this.page.pageNumber = 1;
|
|
|
- this.form.LocationFlag = val;
|
|
|
- this.getTableData();
|
|
|
- },
|
|
|
- //查询列表
|
|
|
- queryTableData() {
|
|
|
- this.page.pageNumber = 1;
|
|
|
- this.getTableData();
|
|
|
- }
|
|
|
+ nowDo() { },
|
|
|
},
|
|
|
watch: {
|
|
|
projectId() {
|
|
@@ -305,28 +144,6 @@ export default {
|
|
|
background-color: #fff;
|
|
|
padding: 10px;
|
|
|
position: relative;
|
|
|
- /deep/ .text-right {
|
|
|
- text-align: right;
|
|
|
- }
|
|
|
- .query-item {
|
|
|
- float: left;
|
|
|
- & + .query-item {
|
|
|
- margin-left: 10px;
|
|
|
- }
|
|
|
- }
|
|
|
- .table-area {
|
|
|
- width: 100%;
|
|
|
- height: calc(100% - 215px);
|
|
|
- td div {
|
|
|
- white-space: nowrap;
|
|
|
- text-overflow: ellipsis;
|
|
|
- overflow: hidden;
|
|
|
- }
|
|
|
- }
|
|
|
- .fr {
|
|
|
- padding-top: 10px;
|
|
|
- float: right;
|
|
|
- }
|
|
|
}
|
|
|
</style>
|
|
|
|