فهرست منبع

feat: 设备管理-设备-详情-物模型:支持多语言

vera_min 1 ماه پیش
والد
کامیت
991c58b772

+ 2 - 1
src/i18n/pages/iotmanagerI18n/en.ts

@@ -308,7 +308,8 @@ export default {
 			importDevice: "Import Device",
 			exportDevice: "Export Device",
 			batchCheckStatus: "Batch Check Status",
-			addTag: "Add Tag"
+			addTag: "Add Tag",
+			setAttr: "Set Attribute"
 		},
 		rules: {
 			productName: "Product name cannot be empty",

+ 2 - 1
src/i18n/pages/iotmanagerI18n/zh-cn.ts

@@ -308,7 +308,8 @@ export default {
 			importDevice: "导入设备",
 			exportDevice: "导出设备",
 			batchCheckStatus: "批量检测状态",
-			addTag: "添加标签"
+			addTag: "添加标签",
+			setAttr: "设置属性"
 		},
 		rules: {
 			productName: "产品名称不能为空",

+ 2 - 1
src/i18n/pages/iotmanagerI18n/zh-tw.ts

@@ -308,7 +308,8 @@ export default {
 			importDevice: "导入设备",
 			exportDevice: "导出设备",
 			batchCheckStatus: "批量檢查狀態",
-			addTag: "添加標籤"
+			addTag: "添加標籤",
+			setAttr: "設置屬性"
 		},
 		rules: {
 			productName: "產品名稱不能為空",

+ 34 - 16
src/views/iot/device/instance/detail.vue

@@ -142,44 +142,59 @@
         <!-- 物模型 -->
         <el-tab-pane :label="$t('message.device.thingModel')" name="2">
           <el-tabs type="border-card" v-model="activetab" @tab-click="wuhandleClick">
-            <el-tab-pane label="属性定义" name="attr">
+            <!-- 属性定义 -->
+            <el-tab-pane :label="$t('message.device.productDetail.propertyDefinition')" name="attr">
               <div class="wu-title">
                 <div class="title"></div>
+                <!-- 新增 -->
                 <div>
-                  <el-button size="small" :disabled="!canEdit" type="primary" v-auth="'add'" @click="onOpenEditAttr()">添加</el-button>
+                  <el-button size="small" :disabled="!canEdit" type="primary" v-auth="'add'" @click="onOpenEditAttr()">{{$t('message.tableI18nAction.add')}}</el-button>
                 </div>
               </div>
 
               <el-table style="width: 100%" :data="tableData.data" v-loading="tableLoading" v-if="activetab == 'attr'">
-                <el-table-column label="属性标识" align="center" prop="key" />
-                <el-table-column label="属性名称" prop="name" show-overflow-tooltip />
-                <el-table-column prop="valueType" label="数据类型" width="100" align="center">
+                <!-- 属性标识 -->
+                <el-table-column :label="$t('message.device.productDetail.propertyIdentifier')" align="center" prop="key" />
+                <!-- 属性名称 -->
+                <el-table-column :label="$t('message.device.productDetail.propertyName')" prop="name" show-overflow-tooltip />
+                <!-- 数据类型 -->
+                <el-table-column prop="valueType" :label="$t('message.device.productDetail.dataType')" width="100" align="center">
                   <template #default="scope">
                     <span>{{ scope.row.valueType?.type }}</span>
                   </template>
                 </el-table-column>
-                <el-table-column prop="decimals" label="精度" width="60" align="center">
+                <!-- 精度 -->
+                <el-table-column prop="decimals" :label="$t('message.device.productDetail.precision')" :width="currentLang == 'en' ? '100' : '60'" align="center">
                   <template #default="scope">
                     <span>{{ scope.row.valueType?.decimals }}</span>
                   </template>
                 </el-table-column>
-                <el-table-column prop="unit" label="单位" width="60" align="center">
+                <!-- 单位 -->
+                <el-table-column prop="unit" :label="$t('message.device.productDetail.unit')" width="60" align="center">
                   <template #default="scope">
                     <span>{{ scope.row.valueType.unit }}</span>
                   </template>
                 </el-table-column>
-                <el-table-column prop="accessMode" label="是否只读" width="120" align="center">
+                <!-- 是否只读 -->
+                <el-table-column prop="accessMode" :label="$t('message.device.productDetail.readOnly')" width="120" align="center">
                   <template #default="scope">
-                    <el-tag type="info" size="small" v-if="scope.row.accessMode">只读</el-tag>
-                    <el-tag type="success" size="small" v-else>读写</el-tag>
+                    <!-- 只读 -->
+                    <el-tag type="info" size="small" v-if="scope.row.accessMode">{{ $t('message.device.productDetail.readonly') }}</el-tag>
+                    <!-- 读写 -->
+                    <el-tag type="success" size="small" v-else>{{ $t('message.device.productDetail.readWrite') }}</el-tag>
                   </template>
                 </el-table-column>
-                <el-table-column label="说明" prop="desc" show-overflow-tooltip />
-                <el-table-column label="操作" width="150" align="center" fixed="right">
+                <!-- 说明 -->
+                <el-table-column :label="$t('message.device.productDetail.remark')" prop="desc" show-overflow-tooltip />
+                <!-- 操作 -->
+                <el-table-column :label="$t('message.tableI18nColumn.operation')" width="150" align="center" fixed="right">
                   <template #default="scope">
-                    <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>
+                    <!-- 设置属性 -->
+                    <el-button size="small" text type="primary" :disabled="!canEdit" v-auth="'edit'" v-if="!scope.row.accessMode" @click="setAttr(scope.row)">{{ $t('message.device.formI18nButton.setAttr') }}</el-button>
+                    <!-- 编辑 -->
+                    <el-button size="small" text type="warning" :disabled="!canEdit" v-auth="'edit'" @click="onEditAttr(scope.row)">{{ $t('message.tableI18nAction.edit') }}</el-button>
+                    <!-- 删除 -->
+                    <el-button size="small" text type="danger" :disabled="!canEdit" v-auth="'del'" @click="onRowDel(scope.row.key, 'attr')">{{ $t('message.tableI18nAction.delete') }}</el-button>
                   </template>
                 </el-table-column>
               </el-table>
@@ -443,6 +458,7 @@ 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";
+import { useI18n } from 'vue-i18n';
 
 interface TableDataState {
   isShowDialog: boolean;
@@ -491,7 +507,8 @@ export default defineComponent({
     deviceKey: String,
   },
   setup(props, context) {
-
+    const { locale, t } = useI18n();
+    const currentLang = computed(() => locale.value);
     const canEdit = computed(() => state.areaData.status===0);
     let timer: any;
 
@@ -1074,6 +1091,7 @@ export default defineComponent({
     };
 
     return {
+      currentLang,
       canEdit,
       topicData,
       initData,