|  | @@ -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>
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  |      </div>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      <div class="content-box page-full-part page-full">
 | 
	
		
			
				|  |  |        <el-tabs v-model="activeName" @tab-click="handleClick">
 | 
	
		
			
				|  |  |          <!-- 运行状态 -->
 | 
	
	
		
			
				|  | @@ -81,7 +80,7 @@
 | 
	
		
			
				|  |  |            <div class="pro-box">
 | 
	
		
			
				|  |  |              <div class="protitle">{{$t('message.device.deviceInfo')}}</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>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -134,7 +133,7 @@
 | 
	
		
			
				|  |  |                <template #append>{{ $t('message.device.unitSecond') }}</template>
 | 
	
		
			
				|  |  |              </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>
 | 
	
		
			
				|  |  |                {{ $t('message.device.update') }}
 | 
	
		
			
				|  |  |              </el-button>
 | 
	
	
		
			
				|  | @@ -147,7 +146,7 @@
 | 
	
		
			
				|  |  |                <div class="wu-title">
 | 
	
		
			
				|  |  |                  <div class="title"></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>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -156,12 +155,12 @@
 | 
	
		
			
				|  |  |                  <el-table-column label="属性名称" prop="name" show-overflow-tooltip />
 | 
	
		
			
				|  |  |                  <el-table-column prop="valueType" label="数据类型" width="100" align="center">
 | 
	
		
			
				|  |  |                    <template #default="scope">
 | 
	
		
			
				|  |  | -                    <span>{{ scope.row.valueType.type }}</span>
 | 
	
		
			
				|  |  | +                    <span>{{ scope.row.valueType?.type }}</span>
 | 
	
		
			
				|  |  |                    </template>
 | 
	
		
			
				|  |  |                  </el-table-column>
 | 
	
		
			
				|  |  |                  <el-table-column prop="decimals" label="精度" width="60" align="center">
 | 
	
		
			
				|  |  |                    <template #default="scope">
 | 
	
		
			
				|  |  | -                    <span>{{ scope.row.valueType.decimals }}</span>
 | 
	
		
			
				|  |  | +                    <span>{{ scope.row.valueType?.decimals }}</span>
 | 
	
		
			
				|  |  |                    </template>
 | 
	
		
			
				|  |  |                  </el-table-column>
 | 
	
		
			
				|  |  |                  <el-table-column prop="unit" label="单位" width="60" align="center">
 | 
	
	
		
			
				|  | @@ -176,11 +175,11 @@
 | 
	
		
			
				|  |  |                    </template>
 | 
	
		
			
				|  |  |                  </el-table-column>
 | 
	
		
			
				|  |  |                  <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">
 | 
	
		
			
				|  |  | -                    <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>
 | 
	
		
			
				|  |  |                  </el-table-column>
 | 
	
		
			
				|  |  |                </el-table>
 | 
	
	
		
			
				|  | @@ -189,7 +188,7 @@
 | 
	
		
			
				|  |  |                <div class="wu-title">
 | 
	
		
			
				|  |  |                  <div class="title"></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>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -200,8 +199,8 @@
 | 
	
		
			
				|  |  |                  <el-table-column label="描述" prop="desc" show-overflow-tooltip />
 | 
	
		
			
				|  |  |                  <el-table-column label="操作" width="300" align="center" fixed="right">
 | 
	
		
			
				|  |  |                    <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>
 | 
	
		
			
				|  |  |                  </el-table-column>
 | 
	
		
			
				|  |  |                </el-table>
 | 
	
	
		
			
				|  | @@ -210,7 +209,7 @@
 | 
	
		
			
				|  |  |                <div class="wu-title">
 | 
	
		
			
				|  |  |                  <div class="title"></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>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -228,8 +227,8 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  <el-table-column label="操作" width="300" align="center" fixed="right">
 | 
	
		
			
				|  |  |                    <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>
 | 
	
		
			
				|  |  |                  </el-table-column>
 | 
	
		
			
				|  |  |                </el-table>
 | 
	
	
		
			
				|  | @@ -238,7 +237,7 @@
 | 
	
		
			
				|  |  |                <div class="wu-title">
 | 
	
		
			
				|  |  |                  <div class="title"></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>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -247,7 +246,7 @@
 | 
	
		
			
				|  |  |                  <el-table-column label="属性名称" prop="name" show-overflow-tooltip />
 | 
	
		
			
				|  |  |                  <el-table-column prop="valueType" label="数据类型" width="120" align="center">
 | 
	
		
			
				|  |  |                    <template #default="scope">
 | 
	
		
			
				|  |  | -                    <span>{{ scope.row.valueType.type }}</span>
 | 
	
		
			
				|  |  | +                    <span>{{ scope.row.valueType?.type }}</span>
 | 
	
		
			
				|  |  |                    </template>
 | 
	
		
			
				|  |  |                  </el-table-column>
 | 
	
		
			
				|  |  |                  <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="操作" width="300" align="center" fixed="right">
 | 
	
		
			
				|  |  |                    <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>
 | 
	
		
			
				|  |  |                  </el-table-column>
 | 
	
		
			
				|  |  |                </el-table>
 | 
	
	
		
			
				|  | @@ -270,7 +269,7 @@
 | 
	
		
			
				|  |  |          </el-tab-pane>
 | 
	
		
			
				|  |  |          <!-- 设备功能 -->
 | 
	
		
			
				|  |  |          <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 :label="$t('message.device.logManagement')" name="4">
 | 
	
	
		
			
				|  | @@ -373,7 +372,7 @@
 | 
	
		
			
				|  |  |              <div class="pro-box">
 | 
	
		
			
				|  |  |                <div class="protitle">设备档案</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>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -424,7 +423,7 @@
 | 
	
		
			
				|  |  |    </div>
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  <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 functionCom from "./component/function.vue";
 | 
	
		
			
				|  |  |  import "vue3-json-viewer/dist/index.css";
 | 
	
	
		
			
				|  | @@ -443,7 +442,6 @@ import api from "/@/api/device";
 | 
	
		
			
				|  |  |  import datahub from "/@/api/datahub";
 | 
	
		
			
				|  |  |  import FromData from "/@/views/iot/property/dossier/component/from.vue";
 | 
	
		
			
				|  |  |  import EditAssetRef from "/@/views/iot/property/dossier/edit.vue";
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  import { useRoute } from "vue-router";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  interface TableDataState {
 | 
	
	
		
			
				|  | @@ -493,6 +491,8 @@ export default defineComponent({
 | 
	
		
			
				|  |  |      deviceKey: String,
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    setup(props, context) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const canEdit = computed(() => state.areaData.status===0);
 | 
	
		
			
				|  |  |      let timer: any;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      onUnmounted(() => clearInterval(timer));
 | 
	
	
		
			
				|  | @@ -526,7 +526,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |        phone: [],
 | 
	
		
			
				|  |  |        intro: "",
 | 
	
		
			
				|  |  |        deviceKeyList: [],
 | 
	
		
			
				|  |  | -      areaData: [],
 | 
	
		
			
				|  |  | +      areaData: {},
 | 
	
		
			
				|  |  |        isShowDialog: false,
 | 
	
		
			
				|  |  |        dialogVisible: false,
 | 
	
		
			
				|  |  |        logTypeData: [],
 | 
	
	
		
			
				|  | @@ -1074,6 +1074,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      return {
 | 
	
		
			
				|  |  | +      canEdit,
 | 
	
		
			
				|  |  |        topicData,
 | 
	
		
			
				|  |  |        initData,
 | 
	
		
			
				|  |  |        logqueryRef,
 |