|
@@ -72,7 +72,21 @@
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button size="mini" type="text" icon="el-icon-info" @click="handleDetail(scope.row)">详情</el-button>
|
|
|
-
|
|
|
+ <!-- 下拉菜单 -->
|
|
|
+ <el-dropdown @command="handleOperate(scope.row)">
|
|
|
+ <el-button type="text" size="mini">
|
|
|
+ 操作<i class="el-icon-arrow-down el-icon--right"></i>
|
|
|
+ </el-button>
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item
|
|
|
+ v-for="ability in abilityData"
|
|
|
+ :key="ability.abilityKey"
|
|
|
+ :command="ability"
|
|
|
+ >
|
|
|
+ {{ ability.abilityName }}
|
|
|
+ </el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -117,16 +131,19 @@
|
|
|
<div slot="header" class="clearfix">
|
|
|
<span class="section-title">设备参数</span>
|
|
|
</div>
|
|
|
- <el-table :data="attrData" style="width: 100%" :show-header="true" :empty-text="'暂无数据'">
|
|
|
- <el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
|
|
|
- <el-table-column label="属性名称" prop="attrName"></el-table-column>
|
|
|
- <el-table-column label="属性标识" prop="attrKey"></el-table-column>
|
|
|
- <el-table-column label="属性值" prop="attrValue"></el-table-column>
|
|
|
- <el-table-column label="属性值描述" prop="attrValueName"></el-table-column>
|
|
|
- </el-table>
|
|
|
+ <div v-for="(tableData, tableName) in attrTables" :key="tableName">
|
|
|
+ <p class="section-title">{{ tableData.title }}</p>
|
|
|
+ <el-table :data="tableData.data" style="width: 100%" :show-header="true" :empty-text="'暂无数据'">
|
|
|
+ <el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
|
|
|
+ <el-table-column label="属性名称" prop="attrName"></el-table-column>
|
|
|
+ <el-table-column label="属性标识" prop="attrKey"></el-table-column>
|
|
|
+ <el-table-column label="属性值" prop="attrValue"></el-table-column>
|
|
|
+ <el-table-column label="属性值描述" prop="attrValueName"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
</el-card>
|
|
|
</div>
|
|
|
- <!--能力-->
|
|
|
+ <!--设备能力-->
|
|
|
<div v-if="activeTab === 'ability'">
|
|
|
<el-card class="box-card">
|
|
|
<div slot="header" class="clearfix">
|
|
@@ -135,31 +152,16 @@
|
|
|
<el-table :data="abilityData" style="width: 100%" :show-header="true" :empty-text="'暂无数据'">
|
|
|
<el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
|
|
|
<el-table-column label="能力名称" prop="abilityName"></el-table-column>
|
|
|
- <el-table-column label="能力键" prop="abilityKey"></el-table-column>
|
|
|
- <el-table-column label="能力参数" prop="abilityParam"></el-table-column>
|
|
|
<el-table-column label="能力描述" prop="abilityDesc"></el-table-column>
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
-
|
|
|
-
|
|
|
- <template slot-scope="scope">
|
|
|
-<!-- <el-button size="mini" type="text" icon="el-icon-info" @click="handleOpenOperate(scope.row)">开启</el-button>
|
|
|
- <el-button size="mini" type="text" icon="el-icon-info" @click="handleColseOperate(scope.row)">关闭</el-button> -->
|
|
|
- <el-dropdown size="mini" split-button type="primary" icon="el-icon-info" @command="handleCommand">
|
|
|
- 操作
|
|
|
- <el-dropdown-menu slot="dropdown">
|
|
|
- <el-dropdown-item icon="el-icon-plus" command="open" :data="scope.row">执行</el-dropdown-item>
|
|
|
- <el-dropdown-item icon="el-icon-circle-plus" command="close" :data="scope.row">关闭</el-dropdown-item>
|
|
|
- <el-dropdown-item icon="el-icon-circle-plus-outline">锁定</el-dropdown-item>
|
|
|
- <el-dropdown-item icon="el-icon-check">开启</el-dropdown-item>
|
|
|
- <el-dropdown-item icon="el-icon-circle-check">执行日志</el-dropdown-item>
|
|
|
- </el-dropdown-menu>
|
|
|
- </el-dropdown>
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-info" @click="handleOperate(scope.row)">执行</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</el-card>
|
|
|
</div>
|
|
|
- <!--事件-->
|
|
|
+ <!--设备事件-->
|
|
|
<div v-if="activeTab === 'event'">
|
|
|
<el-card class="box-card">
|
|
|
<div slot="header" class="clearfix">
|
|
@@ -235,6 +237,16 @@ export default {
|
|
|
attrData: [],
|
|
|
abilityData: [],
|
|
|
eventData: [],
|
|
|
+ BaseData: [],
|
|
|
+ ProtocolData: [],
|
|
|
+ StateData: [],
|
|
|
+ MeasureData: [],
|
|
|
+ attrTables: {
|
|
|
+ Base: { title: '基础属性', data: [] },
|
|
|
+ Protocol: { title: '协议属性', data: [] },
|
|
|
+ State: { title: '状态属性', data: [] },
|
|
|
+ Measure: { title: '测量属性', data: [] }
|
|
|
+ },
|
|
|
// 查询参数
|
|
|
queryParams: {
|
|
|
pageNum: 1,
|
|
@@ -255,34 +267,16 @@ export default {
|
|
|
this.getSubCategorygetByCode()
|
|
|
},
|
|
|
methods: {
|
|
|
- handleCommand(command, row) {
|
|
|
- if (command === 'open') {
|
|
|
- this.handleOpenOperate(row);
|
|
|
- } else if (command === 'close') {
|
|
|
- this.handleCloseOperate(row);
|
|
|
- }
|
|
|
- },
|
|
|
- /**设备能力-操作按钮*/
|
|
|
- handleOpenOperate(row) {
|
|
|
- // 调用接口
|
|
|
- listcallAbility({
|
|
|
- abilityKey: 'event-1',
|
|
|
- objCode: this.curRow.deviceCode,
|
|
|
- objType:'2',
|
|
|
- modeCode:this.curRow.modeCode,
|
|
|
- abilityParam:'{\"type\":\"event\",\"key\":1}',
|
|
|
- }).then(response => {
|
|
|
- this.$message({ message: '设备能力执行成功', type: 'success' });
|
|
|
|
|
|
- })
|
|
|
- },
|
|
|
- handleCloseOperate(row) {
|
|
|
+ /**设备能力-执行按钮*/
|
|
|
+ handleOperate(row) {
|
|
|
+ console.log("row",row)
|
|
|
listcallAbility({
|
|
|
- abilityKey: 'event-0',
|
|
|
+ abilityKey:row.abilityKey,
|
|
|
objCode: this.curRow.deviceCode,
|
|
|
objType:'2',
|
|
|
- modeCode:this.curRow.modeCode,
|
|
|
- abilityParam:'{\"type\":\"event\",\"key\":0}',
|
|
|
+ modeCode:row.modeCode,
|
|
|
+ abilityParam:row.abilityParam,
|
|
|
}).then(response => {
|
|
|
this.$message({ message: '设备能力执行成功', type: 'success' });
|
|
|
|
|
@@ -323,8 +317,10 @@ export default {
|
|
|
this.loading = true
|
|
|
listDevRecursionByArea(this.queryParams).then(response => {
|
|
|
this.deviceList = response.rows
|
|
|
+ console.log("this.deviceList",this.deviceList)
|
|
|
this.total = response.total
|
|
|
this.loading = false
|
|
|
+
|
|
|
})
|
|
|
},
|
|
|
/** 查询区域树结构 */
|
|
@@ -366,18 +362,22 @@ export default {
|
|
|
handleDetail (row) {
|
|
|
this.reset()
|
|
|
this.curRow = row
|
|
|
- console.log('设备data', this.curRow)
|
|
|
+ console.log('设备this.curRow', this.curRow)
|
|
|
getModelByCode(this.curRow.deviceModel).then(response => {
|
|
|
this.open = true
|
|
|
const code = response.data
|
|
|
console.log('code', code)
|
|
|
this.eventData = response.data?.eventList || [];
|
|
|
// 过滤
|
|
|
- this.abilityData = response.data.abilityList.filter(item => item.hiddenFlag === 1)||[]
|
|
|
+ this.abilityData = response.data?.abilityList.filter(item => item.hiddenFlag === 1) || [];
|
|
|
+ this.attrData=response.data?.attrList || [];
|
|
|
})
|
|
|
getObjAttr(2, this.curRow.deviceCode).then(response => {
|
|
|
- this.attrData = response.data.attrs
|
|
|
- })
|
|
|
+ this.attrTables.Base.data = response.data?.Base || [];
|
|
|
+ this.attrTables.Protocol.data = response.data?.Protocol || [];
|
|
|
+ this.attrTables.State.data = response.data?.State || [];
|
|
|
+ this.attrTables.Measure.data = response.data?.Measure || [];
|
|
|
+ });
|
|
|
this.activeTab = 'basic';
|
|
|
},
|
|
|
getFacsOptions () {
|