|
@@ -12,7 +12,6 @@
|
|
<el-tag v-else-if="areaData.status === 2" type="success" style="margin-left: 20px">{{ $t('message.device.formI18nOption.online') }}</el-tag>
|
|
<el-tag v-else-if="areaData.status === 2" type="success" style="margin-left: 20px">{{ $t('message.device.formI18nOption.online') }}</el-tag>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
<div class="content-box page-full-part page-full">
|
|
<div class="content-box page-full-part page-full">
|
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
|
<!-- 运行状态 -->
|
|
<!-- 运行状态 -->
|
|
@@ -81,7 +80,7 @@
|
|
<div class="pro-box">
|
|
<div class="pro-box">
|
|
<div class="protitle">{{$t('message.device.deviceInfo')}}</div>
|
|
<div class="protitle">{{$t('message.device.deviceInfo')}}</div>
|
|
<div>
|
|
<div>
|
|
- <el-button size="small" type="primary" v-auth="'edit'" @click="onOpenEditDic(detail)">{{ $t('message.tableI18nAction.edit') }}</el-button>
|
|
|
|
|
|
+ <el-button size="small" :disabled="!canEdit" type="primary" v-auth="'edit'" @click="onOpenEditDic(detail)">{{ $t('message.tableI18nAction.edit') }}</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -134,7 +133,7 @@
|
|
<template #append>{{ $t('message.device.unitSecond') }}</template>
|
|
<template #append>{{ $t('message.device.unitSecond') }}</template>
|
|
</el-input>
|
|
</el-input>
|
|
<!-- 更新 -->
|
|
<!-- 更新 -->
|
|
- <el-button type="primary" @click="onlineTimeoutUpdate">
|
|
|
|
|
|
+ <el-button type="primary" :disabled="!canEdit" @click="onlineTimeoutUpdate">
|
|
<el-icon style="font-size: 18px"><ele-Refresh /></el-icon>
|
|
<el-icon style="font-size: 18px"><ele-Refresh /></el-icon>
|
|
{{ $t('message.device.update') }}
|
|
{{ $t('message.device.update') }}
|
|
</el-button>
|
|
</el-button>
|
|
@@ -147,7 +146,7 @@
|
|
<div class="wu-title">
|
|
<div class="wu-title">
|
|
<div class="title"></div>
|
|
<div class="title"></div>
|
|
<div>
|
|
<div>
|
|
- <el-button size="small" type="primary" v-auth="'add'" @click="onOpenEditAttr()">添加</el-button>
|
|
|
|
|
|
+ <el-button size="small" :disabled="!canEdit" type="primary" v-auth="'add'" @click="onOpenEditAttr()">添加</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -156,12 +155,12 @@
|
|
<el-table-column label="属性名称" prop="name" show-overflow-tooltip />
|
|
<el-table-column label="属性名称" prop="name" show-overflow-tooltip />
|
|
<el-table-column prop="valueType" label="数据类型" width="100" align="center">
|
|
<el-table-column prop="valueType" label="数据类型" width="100" align="center">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
- <span>{{ scope.row.valueType.type }}</span>
|
|
|
|
|
|
+ <span>{{ scope.row.valueType?.type }}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column prop="decimals" label="精度" width="60" align="center">
|
|
<el-table-column prop="decimals" label="精度" width="60" align="center">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
- <span>{{ scope.row.valueType.decimals }}</span>
|
|
|
|
|
|
+ <span>{{ scope.row.valueType?.decimals }}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column prop="unit" label="单位" width="60" align="center">
|
|
<el-table-column prop="unit" label="单位" width="60" align="center">
|
|
@@ -176,11 +175,11 @@
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="说明" prop="desc" show-overflow-tooltip />
|
|
<el-table-column label="说明" prop="desc" show-overflow-tooltip />
|
|
- <el-table-column label="操作" width="150" align="right" header-align="center" fixed="right">
|
|
|
|
|
|
+ <el-table-column label="操作" width="150" align="center" fixed="right">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
- <el-button size="small" text type="primary" v-auth="'edit'" v-if="!scope.row.accessMode" @click="setAttr(scope.row)">设置属性</el-button>
|
|
|
|
- <el-button size="small" text type="warning" v-auth="'edit'" @click="onEditAttr(scope.row)">修改</el-button>
|
|
|
|
- <el-button size="small" text type="danger" v-auth="'del'" @click="onRowDel(scope.row.key, 'attr')">删除</el-button>
|
|
|
|
|
|
+ <el-button size="small" text type="primary" :disabled="!canEdit" v-auth="'edit'" v-if="!scope.row.accessMode" @click="setAttr(scope.row)">设置属性</el-button>
|
|
|
|
+ <el-button size="small" text type="warning" :disabled="!canEdit" v-auth="'edit'" @click="onEditAttr(scope.row)">修改</el-button>
|
|
|
|
+ <el-button size="small" text type="danger" :disabled="!canEdit" v-auth="'del'" @click="onRowDel(scope.row.key, 'attr')">删除</el-button>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
@@ -189,7 +188,7 @@
|
|
<div class="wu-title">
|
|
<div class="wu-title">
|
|
<div class="title"></div>
|
|
<div class="title"></div>
|
|
<div>
|
|
<div>
|
|
- <el-button size="small" type="primary" v-auth="'add'" @click="onOpenEditFun()">添加</el-button>
|
|
|
|
|
|
+ <el-button size="small" type="primary" v-auth="'add'" :disabled="!canEdit" @click="onOpenEditFun()">添加</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -200,8 +199,8 @@
|
|
<el-table-column label="描述" prop="desc" show-overflow-tooltip />
|
|
<el-table-column label="描述" prop="desc" show-overflow-tooltip />
|
|
<el-table-column label="操作" width="300" align="center" fixed="right">
|
|
<el-table-column label="操作" width="300" align="center" fixed="right">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
- <el-button size="small" text type="warning" v-auth="'edit'" @click="onEditFun(scope.row)">修改</el-button>
|
|
|
|
- <el-button size="small" text type="danger" v-auth="'del'" @click="onRowDel(scope.row.key, 'fun')">删除</el-button>
|
|
|
|
|
|
+ <el-button size="small" text type="warning" v-auth="'edit'" :disabled="!canEdit" @click="onEditFun(scope.row)">修改</el-button>
|
|
|
|
+ <el-button size="small" text type="danger" v-auth="'del'" :disabled="!canEdit" @click="onRowDel(scope.row.key, 'fun')">删除</el-button>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
@@ -210,7 +209,7 @@
|
|
<div class="wu-title">
|
|
<div class="wu-title">
|
|
<div class="title"></div>
|
|
<div class="title"></div>
|
|
<div>
|
|
<div>
|
|
- <el-button type="primary" size="small" v-auth="'add'" @click="onOpenEditEvent()">添加</el-button>
|
|
|
|
|
|
+ <el-button type="primary" size="small" v-auth="'add'" :disabled="!canEdit" @click="onOpenEditEvent()">添加</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -228,8 +227,8 @@
|
|
|
|
|
|
<el-table-column label="操作" width="300" align="center" fixed="right">
|
|
<el-table-column label="操作" width="300" align="center" fixed="right">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
- <el-button size="small" text type="warning" v-auth="'edit'" @click="onEditEvent(scope.row)">修改</el-button>
|
|
|
|
- <el-button size="small" text type="danger" v-auth="'del'" @click="onRowDel(scope.row.key, 'event')">删除</el-button>
|
|
|
|
|
|
+ <el-button size="small" text type="warning" v-auth="'edit'" :disabled="!canEdit" @click="onEditEvent(scope.row)">修改</el-button>
|
|
|
|
+ <el-button size="small" text type="danger" v-auth="'del'" :disabled="!canEdit" @click="onRowDel(scope.row.key, 'event')">删除</el-button>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
@@ -238,7 +237,7 @@
|
|
<div class="wu-title">
|
|
<div class="wu-title">
|
|
<div class="title"></div>
|
|
<div class="title"></div>
|
|
<div>
|
|
<div>
|
|
- <el-button size="small" type="primary" v-auth="'add'" @click="onOpenEditTab()">添加</el-button>
|
|
|
|
|
|
+ <el-button size="small" type="primary" v-auth="'add'" :disabled="!canEdit" @click="onOpenEditTab()">添加</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -247,7 +246,7 @@
|
|
<el-table-column label="属性名称" prop="name" show-overflow-tooltip />
|
|
<el-table-column label="属性名称" prop="name" show-overflow-tooltip />
|
|
<el-table-column prop="valueType" label="数据类型" width="120" align="center">
|
|
<el-table-column prop="valueType" label="数据类型" width="120" align="center">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
- <span>{{ scope.row.valueType.type }}</span>
|
|
|
|
|
|
+ <span>{{ scope.row.valueType?.type }}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column prop="accessMode" label="是否只读" width="120" align="center">
|
|
<el-table-column prop="accessMode" label="是否只读" width="120" align="center">
|
|
@@ -259,8 +258,8 @@
|
|
<el-table-column label="描述" prop="desc" show-overflow-tooltip />
|
|
<el-table-column label="描述" prop="desc" show-overflow-tooltip />
|
|
<el-table-column label="操作" width="300" align="center" fixed="right">
|
|
<el-table-column label="操作" width="300" align="center" fixed="right">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
- <el-button size="small" text type="warning" v-auth="'edit'" @click="onEditTag(scope.row)">修改</el-button>
|
|
|
|
- <el-button size="small" text type="danger" v-auth="'del'" @click="onRowDel(scope.row.key, 'tab')">删除</el-button>
|
|
|
|
|
|
+ <el-button size="small" text type="warning" v-auth="'edit'" :disabled="!canEdit" @click="onEditTag(scope.row)">修改</el-button>
|
|
|
|
+ <el-button size="small" text type="danger" v-auth="'del'" :disabled="!canEdit" @click="onRowDel(scope.row.key, 'tab')">删除</el-button>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
@@ -270,7 +269,7 @@
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
<!-- 设备功能 -->
|
|
<!-- 设备功能 -->
|
|
<el-tab-pane :label="$t('message.device.deviceFunction')" name="5">
|
|
<el-tab-pane :label="$t('message.device.deviceFunction')" name="5">
|
|
- <functionCom :device-key="detail.key" :product-key="prodetail.key" v-if="detail.key && prodetail.key && activeName === '5'"></functionCom>
|
|
|
|
|
|
+ <functionCom :status="areaData.status" :device-key="detail.key" :product-key="prodetail.key" v-if="detail.key && prodetail.key && activeName === '5'"></functionCom>
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
<!-- 日志管理 -->
|
|
<!-- 日志管理 -->
|
|
<el-tab-pane :label="$t('message.device.logManagement')" name="4">
|
|
<el-tab-pane :label="$t('message.device.logManagement')" name="4">
|
|
@@ -373,7 +372,7 @@
|
|
<div class="pro-box">
|
|
<div class="pro-box">
|
|
<div class="protitle">设备档案</div>
|
|
<div class="protitle">设备档案</div>
|
|
<div>
|
|
<div>
|
|
- <el-button size="small" type="primary" v-auth="'edit'" @click="onOpenEditAsset">编辑</el-button>
|
|
|
|
|
|
+ <el-button size="small" type="primary" v-auth="'edit'" @click="onOpenEditAsset" :disabled="!canEdit">编辑</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -424,7 +423,7 @@
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script lang="ts">
|
|
<script lang="ts">
|
|
-import { toRefs, reactive, onMounted, ref, defineComponent, nextTick, onUnmounted } from "vue";
|
|
|
|
|
|
+import { toRefs, reactive, onMounted, ref, defineComponent, nextTick, onUnmounted, computed } from "vue";
|
|
import { ElMessageBox, ElMessage, FormInstance } from "element-plus";
|
|
import { ElMessageBox, ElMessage, FormInstance } from "element-plus";
|
|
import functionCom from "./component/function.vue";
|
|
import functionCom from "./component/function.vue";
|
|
import "vue3-json-viewer/dist/index.css";
|
|
import "vue3-json-viewer/dist/index.css";
|
|
@@ -443,7 +442,6 @@ import api from "/@/api/device";
|
|
import datahub from "/@/api/datahub";
|
|
import datahub from "/@/api/datahub";
|
|
import FromData from "/@/views/iot/property/dossier/component/from.vue";
|
|
import FromData from "/@/views/iot/property/dossier/component/from.vue";
|
|
import EditAssetRef from "/@/views/iot/property/dossier/edit.vue";
|
|
import EditAssetRef from "/@/views/iot/property/dossier/edit.vue";
|
|
-
|
|
|
|
import { useRoute } from "vue-router";
|
|
import { useRoute } from "vue-router";
|
|
|
|
|
|
interface TableDataState {
|
|
interface TableDataState {
|
|
@@ -493,6 +491,8 @@ export default defineComponent({
|
|
deviceKey: String,
|
|
deviceKey: String,
|
|
},
|
|
},
|
|
setup(props, context) {
|
|
setup(props, context) {
|
|
|
|
+
|
|
|
|
+ const canEdit = computed(() => state.areaData.status===0);
|
|
let timer: any;
|
|
let timer: any;
|
|
|
|
|
|
onUnmounted(() => clearInterval(timer));
|
|
onUnmounted(() => clearInterval(timer));
|
|
@@ -526,7 +526,7 @@ export default defineComponent({
|
|
phone: [],
|
|
phone: [],
|
|
intro: "",
|
|
intro: "",
|
|
deviceKeyList: [],
|
|
deviceKeyList: [],
|
|
- areaData: [],
|
|
|
|
|
|
+ areaData: {},
|
|
isShowDialog: false,
|
|
isShowDialog: false,
|
|
dialogVisible: false,
|
|
dialogVisible: false,
|
|
logTypeData: [],
|
|
logTypeData: [],
|
|
@@ -1074,6 +1074,7 @@ export default defineComponent({
|
|
};
|
|
};
|
|
|
|
|
|
return {
|
|
return {
|
|
|
|
+ canEdit,
|
|
topicData,
|
|
topicData,
|
|
initData,
|
|
initData,
|
|
logqueryRef,
|
|
logqueryRef,
|