yuanchao 2 місяців тому
батько
коміт
93533644e7

+ 53 - 1
src/locales/en.ts

@@ -707,6 +707,7 @@ export default {
     faultySystem:'FaultySystem',
     faultySystemHolder:'Please enter the fault system',
     failureTime:'FailureTime',
+    failureTimeHolder:'Please select failure time',
     shutDown:'ShutDown',
     picture: 'Picture',
     faultImpact:'FaultImpact',
@@ -777,6 +778,57 @@ export default {
     faultDescription:'FaultDescription',
     repairDescription:'RepairDescription',
     solution:'Solution',
-    remark:'Remark'
+    remark:'Remark',
+    selectMaintenanceItem:'SelectMaintenanceItem',
+    addMaintenanceItems:'AddMaintenanceItems',
+
+    deviceName:'DeviceName',
+    deviceCode:'DeviceCode',
+    repairItems:'RepairItems',
+    repairItemsHolder:'Please enter repair items',
+    numberOfMaterials:'NumberOfMaterials',
+    operation:'Operation',
+    remove:'Remove',
+    selectMaterials:'SelectMaterials',
+    viewMaterials:'ViewMaterials',
+    save: 'Save',
+    cancel: 'Cancel',
+    BOMNodeID:'BOMNodeID',
+    ok: 'Confirm',
+  },
+  workOrderMaterial:{
+    materialCode:'MaterialCode',
+    codeHolder:'Please enter material code',
+    materialName:'MaterialName',
+    nameHolder:'Please enter material name',
+    search:'Search',
+    reset:'Reset',
+    confirm:'Confirm',
+    added:'Added',
+    select:'Select',
+    factory:'Factory',
+    costCenter:'CostCenter',
+    storageLocation:'StorageLocation',
+    unit:'Unit',
+    unitPrice:'UnitPrice',
+    total:'Total',
+    source:'Source',
+    ConsumptionQuantity:'ConsumptionQuantity'
+  },
+  chooseMaintain:{
+    selectRepairItem:'SelectRepairItem',
+    materialCode:'MaterialCode',
+    codeHolder:'Please enter material code',
+    materialName:'MaterialName',
+    nameHolder:'Please enter material name',
+    search:'Search',
+    reset:'Reset',
+    confirm:'Confirm',
+    selectAll:'SelectAll',
+    cancelAllSelection:'CancelAllSelection',
+    deviceName:'DeviceName',
+    deviceCode:'DeviceCode',
+    repairItems:'RepairItems',
+    createTime:'CreateTime',
   },
 }

+ 55 - 1
src/locales/zh-CN.ts

@@ -701,6 +701,7 @@ export default {
     faultySystem:'故障系统',
     faultySystemHolder:'请输入故障系统',
     failureTime:'故障时间',
+    failureTimeHolder:'请选择故障时间',
     shutDown:'是否停机',
     picture: '图片',
     faultImpact:'故障影响',
@@ -775,7 +776,60 @@ export default {
     faultDescription:'故障描述',
     repairDescription:'维修描述',
     solution:'解决办法',
-    remark:'备注'
+    remark:'备注',
+    selectMaintenanceItem:'选择维修项',
+    addMaintenanceItems:'新增维修项',
+    deviceName:'设备名称',
+    deviceCode:'设备编码',
+    repairItems:'维修项',
+    repairItemsHolder:'请输入维修项',
+    numberOfMaterials:'物料数量',
+    operation:'操作',
+    remove:'移除',
+    selectMaterials:'选择物料',
+    viewMaterials:'查看物料',
+    save: '保存',
+    cancel: '取消',
+    BOMNodeID:'BOM节点ID',
+    ok: '确定',
+  },
+  workOrderMaterial:{
+    materialCode:'物料编码',
+    codeHolder:'请输入物料编码',
+    materialName:'物料名称',
+    nameHolder:'请输入物料名称',
+    search:'搜索',
+    reset:'重置',
+    confirm:'确认选择',
+    added:'新增物料',
+    select:'选择',
+    factory:'工厂',
+    costCenter:'成本中心',
+    storageLocation:'库存地点',
+    unit:'单位',
+    unitPrice:'单价',
+    total:'总库存数量',
+    source:'来源',
+    ConsumptionQuantity:'消耗数量'
+  },
+  chooseMaintain:{
+    selectRepairItem:'选择维修项',
+    materialCode:'物料编码',
+    codeHolder:'请输入物料编码',
+    materialName:'物料名称',
+    nameHolder:'请输入物料名称',
+    search:'搜索',
+    reset:'重置',
+    confirm:'确认选择',
+    selectAll:'全选',
+    cancelAllSelection:'取消全选',
+    deviceName:'设备名称',
+    deviceCode:'资产编码',
+    repairItems:'维修项',
+    createTime:'创建时间',
+  },
+  info:{
+
   },
 
   'OAuth 2.0': 'OAuth 2.0' // 避免菜单名是 OAuth 2.0 时,一直 warn 报错

+ 14 - 14
src/views/pms/device/personlog/ConfigDevicePerson.vue

@@ -4,7 +4,7 @@
       <!-- 左侧设备列表 -->
       <el-col :span="12">
         <div class="card">
-          <h3>设备列表</h3>
+          <h3>{{ t('configPerson.deviceList') }}</h3>
           <div class="dept-select">
             <el-tree-select
               clearable
@@ -14,7 +14,7 @@
               check-strictly
               node-key="id"
               filterable
-              placeholder="请选择设备所属部门"
+              :placeholder="t('configPerson.deviceListHolder')"
               @node-click="handleDeptDeviceTreeNodeClick"
             />
           </div>
@@ -37,7 +37,7 @@
       <!-- 右侧责任人选择 -->
       <el-col :span="12">
         <div class="card">
-          <h3>责任人关联设置</h3>
+          <h3>{{ t('configPerson.rp') }}</h3>
           <div class="dept-select">
             <el-tree-select
               clearable
@@ -47,7 +47,7 @@
               check-strictly
               node-key="id"
               filterable
-              placeholder="请选择人员所属部门"
+              :placeholder="t('configPerson.rpHolder')"
               @node-click="handleDeptUserTreeNodeClick"
             />
           </div>
@@ -72,10 +72,10 @@
     <!-- 暂存关联列表 -->
     <div class="submit-area">
       <div class="card">
-        <h3>调整原因<span class="required-star">*</span></h3>
+        <h3>{{ t('configPerson.reasonForAdjustment') }}<span class="required-star">*</span></h3>
         <el-input
           v-model="formData.reason"
-          placeholder="请输入调整原因"
+          :placeholder="t('configPerson.rfaHolder')"
           class="reason-input"
           type="textarea"
           :rows="3"
@@ -84,19 +84,19 @@
         />
       </div>
       <div class="temp-list card">
-        <h3>设备责任人调整记录</h3>
+        <h3>{{ t('configPerson.adjustmentRecords') }}</h3>
         <el-table :data="tempRelations" style="width: 100%">
-          <el-table-column prop="deviceNames" label="设备" width="200" />
-          <el-table-column prop="userNames" label="关联责任人" />
-          <el-table-column prop="reason" label="调整原因" />
-          <el-table-column label="操作" width="120">
+          <el-table-column prop="deviceNames" :label="t('devicePerson.deviceName')" width="200" />
+          <el-table-column prop="userNames" :label="t('devicePerson.rp')" />
+          <el-table-column prop="reason" :label="t('devicePerson.reasonForAdjustment')" />
+          <el-table-column :label="t('devicePerson.operation')" width="120">
             <template #default="{ row }">
               <el-button
                 type="danger"
                 size="small"
                 @click="removeTempRelation(row.deviceIds)"
               >
-                删除
+                {{ t('fault.del') }}
               </el-button>
             </template>
           </el-table-column>
@@ -109,7 +109,7 @@
             @click="submitRelations"
             :disabled="tempRelations.length === 0"
           >
-            保 存
+            {{ t('iotMaintain.save') }}
           </el-button>
         </div>
       </div>
@@ -128,7 +128,7 @@ import * as UserApi from "@/api/system/user";
 import {simpleUserList, UserVO} from "@/api/system/user";
 import { useRouter } from 'vue-router'
 const router = useRouter()
-
+const { t } = useI18n() // 国际化
 defineOptions({ name: 'ConfigDevicePerson' })
 
 const simpleDevices = ref<IotDeviceVO[]>([])

+ 25 - 24
src/views/pms/device/personlog/DevicePerson.vue

@@ -16,29 +16,29 @@
           :inline="true"
           label-width="68px"
         >
-          <el-form-item label="资产编码" prop="deviceCode">
+          <el-form-item :label="t('devicePerson.deviceCode')" prop="deviceCode" style="margin-left: 25px">
             <el-input
               v-model="queryParams.deviceCode"
-              placeholder="请输入资产编码"
+              :placeholder="t('devicePerson.codeHolder')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-200px"
             />
           </el-form-item>
-          <el-form-item label="设备名称" prop="deviceName">
+          <el-form-item :label="t('devicePerson.deviceName')" prop="deviceName">
             <el-input
               v-model="queryParams.deviceName"
-              placeholder="请输入设备名称"
+              :placeholder="t('devicePerson.nameHolder')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-200px"
             />
           </el-form-item>
 
-          <el-form-item label="是否设置了责任人" prop="setFlag" label-width="140px">
+          <el-form-item :label="t('devicePerson.responsiblePerson')" prop="setFlag" label-width="140px">
             <el-select
               v-model="queryParams.setFlag"
-              placeholder="请选择"
+              :placeholder="t('devicePerson.choose')"
               clearable
               class="!w-240px"
             >
@@ -50,10 +50,10 @@
               />
             </el-select>
           </el-form-item>
-          <el-form-item v-show="ifShow" label="设备状态" label-width="85px" prop="deviceStatus">
+          <el-form-item v-show="ifShow" :label="t('devicePerson.status')" label-width="85px" prop="deviceStatus">
             <el-select
               v-model="queryParams.deviceStatus"
-              placeholder="设备状态"
+              :placeholder="t('devicePerson.status')"
               clearable
               class="!w-240px"
             >
@@ -66,10 +66,10 @@
             </el-select>
           </el-form-item>
 
-          <el-form-item v-show="ifShow" label="资产性质" prop="assetProperty">
+          <el-form-item v-show="ifShow" :label="t('devicePerson.assets')" prop="assetProperty">
             <el-select
               v-model="queryParams.assetProperty"
-              placeholder="资产性质"
+              :placeholder="t('devicePerson.assets')"
               clearable
               class="!w-240px"
             >
@@ -82,10 +82,10 @@
             </el-select>
           </el-form-item>
 
-          <el-form-item v-show="ifShow" label="品牌" prop="brand">
+          <el-form-item v-show="ifShow" :label="t('devicePerson.brand')" prop="brand">
             <el-input
               v-model="queryParams.brand"
-              placeholder="请输入品牌"
+              :placeholder="t('devicePerson.brandHolder')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-200px"
@@ -94,16 +94,17 @@
 
           <el-form-item>
             <el-button v-if="!ifShow" @click="moreQuery(true)" type="warning"
-              ><Icon icon="ep:search" class="mr-5px" /> 更多查询</el-button
+              ><Icon icon="ep:search" class="mr-5px" />
+              {{ t('devicePerson.moreSearch') }}</el-button
             >
             <el-button v-if="ifShow" @click="moreQuery(false)" type="danger"
-              ><Icon icon="ep:search" class="mr-5px" /> 收起查询</el-button
+              ><Icon icon="ep:search" class="mr-5px" /> {{ t('devicePerson.closeSearch') }}</el-button
             >
             <el-button @click="handleQuery"
-              ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+              ><Icon icon="ep:search" class="mr-5px" /> {{ t('devicePerson.search') }}</el-button
             >
             <el-button @click="resetQuery"
-              ><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button
+              ><Icon icon="ep:refresh" class="mr-5px" /> {{ t('devicePerson.reset') }}</el-button
             >
             <el-button
               type="primary"
@@ -111,7 +112,7 @@
               @click="openForm('create', undefined, queryParams.deptId)"
               v-hasPermi="['rq:iot-device:create']"
             >
-              <Icon icon="ep:plus" class="mr-5px" /> 设置责任人
+              <Icon icon="ep:plus" class="mr-5px" /> {{ t('devicePerson.setUp') }}
             </el-button>
             <el-button
               type="success"
@@ -129,22 +130,22 @@
       <!-- 列表 -->
       <ContentWrap>
         <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-          <el-table-column label="序号" width="60" align="center">
+          <el-table-column :label="t('monitor.serial')" width="70" align="center">
             <template #default="scope">
               {{ scope.$index + 1 }}
             </template>
           </el-table-column>
-          <el-table-column label="资产编码" align="center" prop="deviceCode" />
-          <el-table-column label="设备名称" align="center" prop="deviceName">
+          <el-table-column :label="t('monitor.deviceCode')" align="center" prop="deviceCode" />
+          <el-table-column :label="t('monitor.deviceName')" align="center" prop="deviceName">
             <template #default="scope">
               <el-link :underline="false" type="primary" @click="handleDetail(scope.row.id)">
                 {{ scope.row.deviceName }}
               </el-link>
             </template>
           </el-table-column>
-          <el-table-column label="所在部门" align="center" prop="deptName" />
-          <el-table-column label="责任人" align="center" prop="responsibleNames" />
-          <el-table-column label="操作" align="center" min-width="120px">
+          <el-table-column :label="t('devicePerson.dept')" align="center" prop="deptName" />
+          <el-table-column :label="t('devicePerson.rp')" align="center" prop="responsibleNames" />
+          <el-table-column :label="t('devicePerson.operation')" align="center" min-width="120px">
             <template #default="scope">
               <el-button
                 link
@@ -152,7 +153,7 @@
                 @click="handleView(scope.row.id)"
                 v-hasPermi="['rq:iot-device:query']"
               >
-                调整记录
+                {{ t('devicePerson.adjustmentRecords') }}
               </el-button>
             </template>
           </el-table-column>

+ 9 - 9
src/views/pms/device/personlog/DevicePersonLogDrawer.vue

@@ -1,6 +1,6 @@
 <template>
   <el-drawer
-    title="设备责任人调整记录"
+    :title="t('configDevice.adjustmentRecords')"
     :append-to-body="true"
     :model-value="modelValue"
     @update:model-value="$emit('update:modelValue', $event)"
@@ -12,14 +12,14 @@
     <template v-if="deviceId">
       <div v-loading="loading" style="height: 100%">
         <el-table :data="devicePersons" style="width: 100%">
-          <el-table-column prop="deviceName" label="设备名称" width="180" />
-          <el-table-column prop="deviceCode" label="设备编码" width="180" />
-          <el-table-column prop="oldPersonNames" label="调整前责任人" width="180" />
-          <el-table-column prop="newPersonNames" label="调用后责任人" width="180" />
-          <el-table-column prop="reason" label="调整原因" width="180" />
-          <el-table-column prop="creatorName" label="调整人" width="180" />
+          <el-table-column prop="deviceName" :label="t('deviceStatus.deviceName')" width="180" />
+          <el-table-column prop="deviceCode" :label="t('deviceStatus.deviceCode')" width="180" />
+          <el-table-column prop="oldPersonNames" :label="t('deviceStatus.beforePerson')" width="180" />
+          <el-table-column prop="newPersonNames" :label="t('deviceStatus.afterPerson')" width="180" />
+          <el-table-column prop="reason" :label="t('configDevice.reasonForAdjustment')" width="180" />
+          <el-table-column prop="creatorName"  :label="t('deviceStatus.adjuster')" width="180" />
           <el-table-column
-            label="调整时间"
+            :label="t('deviceStatus.adjustTime')"
             align="center"
             prop="createTime"
             width="180"
@@ -39,7 +39,7 @@
   </el-drawer>
 </template>
 <script setup lang="ts">
-
+const { t } = useI18n() // 国际化
 import { ref, watch, defineOptions, defineEmits } from 'vue'
 import { ElMessage } from 'element-plus'
 import {dateFormatter} from "@/utils/formatTime";

+ 13 - 13
src/views/pms/device/statuslog/ConfigDeviceStatus.vue

@@ -4,7 +4,7 @@
       <!-- 左侧设备列表 -->
       <el-col :span="12" class="col-wrapper">
         <div class="card">
-          <h3>设备列表</h3>
+          <h3>{{ t('configPerson.deviceList') }}</h3>
           <div class="dept-select">
             <el-tree-select
               clearable
@@ -14,7 +14,7 @@
               check-strictly
               node-key="id"
               filterable
-              placeholder="请选择设备所属部门"
+              :placeholder="t('configPerson.deviceListHolder')"
               @node-click="handleDeptDeviceTreeNodeClick"
             />
           </div>
@@ -37,12 +37,12 @@
       <!-- 右侧设备状态 -->
       <el-col :span="12" class="col-wrapper">
         <div class="card">
-          <h3>设备状态</h3>
+          <h3>{{ t('configDevice.rp') }}</h3>
           <div class="dept-select">
             <el-select
               v-model="formData.deviceStatus"
               @change="handleStatusChange"
-              placeholder="请选择"
+              :placeholder="t('deviceStatus.choose')"
               clearable
               :disabled="selectedDevices.length === 0"
             >
@@ -57,7 +57,7 @@
 
           <el-input
             v-model="formData.reason"
-            placeholder="请输入调整原因"
+            :placeholder="t('configDevice.rfaHolder')"
             :disabled="!formData.deviceStatus"
             class="reason-input"
             type="textarea"
@@ -74,27 +74,27 @@
 
     <!-- 暂存关联列表 -->
     <div class="temp-list card">
-      <h3>设备状态调整记录</h3>
+      <h3>{{ t('configPerson.adjustmentRecords') }}</h3>
       <el-table :data="tempRelations" style="width: 100%">
-        <el-table-column prop="deviceNames" label="设备" width="200" >
+        <el-table-column prop="deviceNames" :label="t('deviceStatus.deviceName')" width="200" >
           <template #default="{ row }">
             {{ row.deviceNames }}
           </template>
         </el-table-column>
-        <el-table-column prop="status" label="状态" >
+        <el-table-column prop="status" :label="t('deviceStatus.status')" >
           <template #default="scope">
             <dict-tag :type="DICT_TYPE.PMS_DEVICE_STATUS" :value="scope.row.status" />
           </template>
         </el-table-column>
-        <el-table-column prop="reason" label="调整原因" />
-        <el-table-column label="操作" width="120">
+        <el-table-column prop="reason" :label="t('configDevice.reasonForAdjustment')" />
+        <el-table-column :label="t('deviceStatus.operation')" width="120">
           <template #default="{ row }">
             <el-button
               type="danger"
               size="small"
               @click="removeTempRelation(row.deviceId)"
             >
-              删除
+              {{ t('fault.del') }}
             </el-button>
           </template>
         </el-table-column>
@@ -107,7 +107,7 @@
           @click="submitRelations"
           :disabled="tempRelations.length === 0"
         >
-          保 存
+          {{ t('iotMaintain.save') }}
         </el-button>
       </div>
     </div>
@@ -124,7 +124,7 @@ import {simpleUserList, UserVO} from "@/api/system/user";
 import {DICT_TYPE, getStrDictOptions} from "@/utils/dict";
 import { useRouter } from 'vue-router'
 const router = useRouter()
-
+const { t } = useI18n() // 国际化
 defineOptions({ name: 'ConfigDeviceStatus' })
 
 const simpleDevices = ref<IotDeviceVO[]>([])

+ 25 - 24
src/views/pms/device/statuslog/DeviceStatus.vue

@@ -16,28 +16,28 @@
           :inline="true"
           label-width="68px"
         >
-          <el-form-item label="资产编码" prop="deviceCode">
+          <el-form-item :label="t('devicePerson.deviceCode')" prop="deviceCode" style="margin-left: 25px">
             <el-input
               v-model="queryParams.deviceCode"
-              placeholder="请输入资产编码"
+              :placeholder="t('devicePerson.codeHolder')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-200px"
             />
           </el-form-item>
-          <el-form-item label="设备名称" prop="deviceName">
+          <el-form-item :label="t('devicePerson.deviceName')" prop="deviceName">
             <el-input
               v-model="queryParams.deviceName"
-              placeholder="请输入设备名称"
+              :placeholder="t('devicePerson.nameHolder')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-200px"
             />
           </el-form-item>
-          <el-form-item label="是否调整了状态" prop="setFlag" label-width="140px">
+          <el-form-item :label="t('deviceStatus.statusAdjust')" prop="setFlag" label-width="140px">
             <el-select
               v-model="queryParams.setFlag"
-              placeholder="请选择"
+              :label="t('deviceStatus.statusAdjust')"
               clearable
               class="!w-240px"
             >
@@ -49,10 +49,10 @@
               />
             </el-select>
           </el-form-item>
-          <el-form-item v-show="ifShow" label="设备状态" label-width="85px" prop="deviceStatus">
+          <el-form-item v-show="ifShow" :label="t('devicePerson.status')" label-width="85px" prop="deviceStatus">
             <el-select
               v-model="queryParams.deviceStatus"
-              placeholder="设备状态"
+              :label="t('devicePerson.status')"
               clearable
               class="!w-240px"
             >
@@ -65,10 +65,10 @@
             </el-select>
           </el-form-item>
 
-          <el-form-item v-show="ifShow" label="资产性质" prop="assetProperty">
+          <el-form-item v-show="ifShow" :label="t('devicePerson.assets')" prop="assetProperty">
             <el-select
               v-model="queryParams.assetProperty"
-              placeholder="资产性质"
+              :label="t('devicePerson.assetsHolder')"
               clearable
               class="!w-240px"
             >
@@ -81,10 +81,10 @@
             </el-select>
           </el-form-item>
 
-          <el-form-item v-show="ifShow" label="品牌" prop="brand">
+          <el-form-item v-show="ifShow" :label="t('devicePerson.brand')" prop="brand">
             <el-input
               v-model="queryParams.brand"
-              placeholder="请输入品牌"
+              :label="t('devicePerson.brandHolder')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-200px"
@@ -93,16 +93,17 @@
 
           <el-form-item>
             <el-button v-if="!ifShow" @click="moreQuery(true)" type="warning"
-              ><Icon icon="ep:search" class="mr-5px" /> 更多查询</el-button
+              ><Icon icon="ep:search" class="mr-5px" />
+              {{ t('devicePerson.moreSearch') }}</el-button
             >
             <el-button v-if="ifShow" @click="moreQuery(false)" type="danger"
-              ><Icon icon="ep:search" class="mr-5px" /> 收起查询</el-button
+              ><Icon icon="ep:search" class="mr-5px" /> {{ t('devicePerson.closeSearch') }}</el-button
             >
             <el-button @click="handleQuery"
-              ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+              ><Icon icon="ep:search" class="mr-5px" /> {{ t('devicePerson.search') }}</el-button
             >
             <el-button @click="resetQuery"
-              ><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button
+              ><Icon icon="ep:refresh" class="mr-5px" /> {{ t('devicePerson.reset') }}</el-button
             >
             <el-button
               type="primary"
@@ -110,7 +111,7 @@
               @click="openForm('create', undefined, queryParams.deptId)"
               v-hasPermi="['rq:iot-device:create']"
             >
-              <Icon icon="ep:plus" class="mr-5px" /> 调整状态
+              <Icon icon="ep:plus" class="mr-5px" /> {{ t('devicePerson.setUp') }}
             </el-button>
             <el-button
               type="success"
@@ -128,21 +129,21 @@
       <!-- 列表 -->
       <ContentWrap>
         <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-          <el-table-column label="序号" width="60" align="center">
+          <el-table-column :label="t('monitor.serial')" width="70" align="center" >
             <template #default="scope">
               {{ scope.$index + 1 }}
             </template>
           </el-table-column>
-          <el-table-column label="资产编码" align="center" prop="deviceCode" />
-          <el-table-column label="设备名称" align="center" prop="deviceName">
+          <el-table-column :label="t('monitor.deviceCode')" align="center" prop="deviceCode" />
+          <el-table-column :label="t('monitor.deviceName')" align="center" prop="deviceName">
             <template #default="scope">
               <el-link :underline="false" type="primary" @click="handleDetail(scope.row.id)">
                 {{ scope.row.deviceName }}
               </el-link>
             </template>
           </el-table-column>
-          <el-table-column label="所在部门" align="center" prop="deptName" />
-          <el-table-column label="设备状态" align="center" prop="deviceStatus">
+          <el-table-column :label="t('devicePerson.dept')" align="center" prop="deptName" />
+          <el-table-column :label="t('deviceStatus.status')" align="center" prop="deviceStatus">
             <template #default="scope">
               <dict-tag :type="DICT_TYPE.PMS_DEVICE_STATUS" :value="scope.row.deviceStatus" />
             </template>
@@ -155,7 +156,7 @@
             :formatter="dateFormatter"
             width="180px"
           /> -->
-          <el-table-column label="操作" align="center" min-width="120px">
+          <el-table-column :label="t('deviceStatus.operation')" align="center" min-width="120px">
             <template #default="scope">
               <el-button
                 link
@@ -163,7 +164,7 @@
                 @click="handleView(scope.row.id)"
                 v-hasPermi="['rq:iot-device:query']"
               >
-                调整记录
+                {{ t('deviceStatus.adjustmentRecords') }}
               </el-button>
             </template>
           </el-table-column>

+ 9 - 9
src/views/pms/device/statuslog/DeviceStatusLogDrawer.vue

@@ -1,6 +1,6 @@
 <template>
   <el-drawer
-    title="设备状态调整记录"
+    :title="t('configDevice.adjustmentRecords')"
     :append-to-body="true"
     :model-value="modelValue"
     @update:model-value="$emit('update:modelValue', $event)"
@@ -12,22 +12,22 @@
     <template v-if="deviceId">
       <div v-loading="loading" style="height: 100%">
         <el-table :data="deviceStatuses" style="width: 100%">
-          <el-table-column prop="deviceName" label="设备名称" width="180" />
-          <el-table-column prop="deviceCode" label="设备编码" width="180" />
-          <el-table-column prop="oldStatus" label="调整前状态" width="180" >
+          <el-table-column prop="deviceName" :label="t('deviceStatus.deviceName')" width="180" />
+          <el-table-column prop="deviceCode" :label="t('deviceStatus.deviceCode')" width="180" />
+          <el-table-column prop="oldStatus" :label="t('deviceStatus.beforeStatus')" width="180" >
             <template #default="scope">
               <dict-tag :type="DICT_TYPE.PMS_DEVICE_STATUS" :value="scope.row.oldStatus" />
             </template>
           </el-table-column>
-          <el-table-column prop="newStatus" label="调用后状态" width="180" >
+          <el-table-column prop="newStatus" :label="t('deviceStatus.afterStatus')" width="180" >
             <template #default="scope">
               <dict-tag :type="DICT_TYPE.PMS_DEVICE_STATUS" :value="scope.row.newStatus" />
             </template>
           </el-table-column>
-          <el-table-column prop="reason" label="调整原因" width="180" />
-          <el-table-column prop="creatorName" label="调整人" width="180" />
+          <el-table-column prop="reason" :label="t('configDevice.reasonForAdjustment')" width="180" />
+          <el-table-column prop="creatorName" :label="t('deviceStatus.adjuster')" width="180" />
           <el-table-column
-            label="调整时间"
+            :label="t('deviceStatus.adjustTime')"
             align="center"
             prop="createTime"
             width="180"
@@ -55,7 +55,7 @@ import {dateFormatter} from "@/utils/formatTime";
 import {DICT_TYPE} from "@/utils/dict";
 const drawerVisible = ref<boolean>(false)
 const emit = defineEmits(['update:modelValue', 'add', 'delete'])
-
+const { t } = useI18n() // 国际化
 defineOptions({
   name: 'DeviceStatusLogDrawer'
 })

+ 1 - 1
src/views/pms/failure/IotFailureReportForm.vue

@@ -57,7 +57,7 @@
           v-model="formData.failureTime"
           type="datetime"
           value-format="x"
-          placeholder="选择故障时间"
+          :placeholder="t('faultForm.failureTimeHolder')"
         />
       </el-form-item>
         </el-col>

+ 26 - 22
src/views/pms/iotmainworkorder/WorkOrderMaterial.vue

@@ -8,30 +8,34 @@
         :inline="true"
         label-width="68px"
       >
-        <el-form-item label="物料编码" prop="code">
+        <el-form-item :label="t('workOrderMaterial.materialCode')" prop="code">
           <el-input
             v-model="queryParams.materialCode"
-            placeholder="请输入物料编码"
+            :placeholder="t('workOrderMaterial.codeHolder')"
             clearable
             @keyup.enter="handleQuery"
           />
         </el-form-item>
-        <el-form-item label="物料名称" prop="name">
+        <el-form-item :label="t('workOrderMaterial.materialName')" prop="name">
           <el-input
             v-model="queryParams.materialName"
-            placeholder="请输入物料名称"
+            :placeholder="t('workOrderMaterial.nameHolder')"
             clearable
             @keyup.enter="handleQuery"
           />
         </el-form-item>
         <el-form-item>
-          <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
-          <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
+          <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" />
+            {{ t('workOrderMaterial.search') }}</el-button>
+          <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />
+            {{ t('workOrderMaterial.reset') }}</el-button>
           <el-button @click="handleConfirm" class="custom-green-button"
-            ><Icon icon="ep:check" class="mr-5px" /> 确认选择</el-button
+            ><Icon icon="ep:check" class="mr-5px" />
+            {{ t('workOrderMaterial.confirm') }}</el-button
           >
           <el-button @click="handleView" type="warning"
-            ><Icon icon="ep:plus" class="mr-5px" /> 新增物料</el-button
+            ><Icon icon="ep:plus" class="mr-5px" />
+            {{ t('workOrderMaterial.added') }}</el-button
           >
         </el-form-item>
       </el-form>
@@ -46,7 +50,7 @@
         @row-click="handleRowClick"
         :row-class-name="rowClassName"
       >
-        <el-table-column width="60" label="选择">
+        <el-table-column width="60" :label="t('workOrderMaterial.select')">
           <template #default="{ row }">
             <el-checkbox
               :model-value="selectedRows.some(item =>
@@ -61,65 +65,65 @@
           </template>
         </el-table-column>
         <el-table-column
-          label="工厂"
+          :label="t('workOrderMaterial.factory')"
           align="center"
           prop="factoryId"
           class="!w-100px"
           v-if="false"
         />
         <el-table-column
-          label="工厂"
+          :label="t('workOrderMaterial.factory')"
           align="center"
           prop="factory"
           :show-overflow-tooltip="true"
           class="!w-100px"
         />
         <el-table-column
-          label="成本中心"
+          :label="t('workOrderMaterial.costCenter')"
           align="center"
           prop="costCenterId"
           class="!w-100px"
           v-if="false"
         />
         <el-table-column
-          label="成本中心"
+          :label="t('workOrderMaterial.costCenter')"
           align="center"
           prop="costCenter"
           :show-overflow-tooltip="true"
           class="!w-100px"
         />
         <el-table-column
-          label="库存地点"
+          :label="t('workOrderMaterial.storageLocation')"
           align="center"
           prop="storageLocationId"
           class="!w-100px"
           v-if="false"
         />
         <el-table-column
-          label="库存地点"
+          :label="t('workOrderMaterial.storageLocation')"
           align="center"
           prop="projectDepartment"
           :show-overflow-tooltip="true"
           class="!w-100px"
         />
         <el-table-column
-          label="物料编码"
+          :label="t('workOrderMaterial.materialCode')"
           align="center"
           prop="materialCode"
           :show-overflow-tooltip="true"
           class="!w-100px"
         />
         <el-table-column
-          label="物料名称"
+          :label="t('workOrderMaterial.materialName')"
           align="center"
           prop="materialName"
           :show-overflow-tooltip="true"
         />
-        <el-table-column label="单位" align="center" prop="unit" />
-        <el-table-column label="单价(元)" align="center" prop="unitPrice" />
-        <el-table-column label="总库存数量" align="center" prop="totalInventoryQuantity" />
-        <el-table-column label="来源" align="center" prop="materialSource" />
-        <el-table-column label="消耗数量" align="center" prop="quantity">
+        <el-table-column :label="t('workOrderMaterial.unit')" align="center" prop="unit" />
+        <el-table-column :label="t('workOrderMaterial.unitPrice')" align="center" prop="unitPrice" />
+        <el-table-column :label="t('workOrderMaterial.total')" align="center" prop="totalInventoryQuantity" />
+        <el-table-column :label="t('workOrderMaterial.source')" align="center" prop="materialSource" />
+        <el-table-column :label="t('workOrderMaterial.ConsumptionQuantity')" align="center" prop="quantity">
           <template #default="scope">
             <el-input
               v-model="scope.row.quantity"

+ 25 - 23
src/views/pms/maintain/IotMaintain.vue

@@ -24,7 +24,7 @@
             </el-col>
             <el-col :span="8">
               <el-form-item :label="t('iotMaintain.repairType')" prop="type">
-                <el-select v-model="formData.type" placeholder="请选择维修类型" clearable>
+                <el-select v-model="formData.type" :placeholder="t('iotMaintain.repairTypeHolder')" clearable>
                   <el-option
                     v-for="dict in getStrDictOptions(DICT_TYPE.PMS_MAIN_TYPE)"
                     :key="dict.value"
@@ -163,10 +163,12 @@
             <!--          <el-button @click="openMaterialForm" type="primary"-->
             <!--            ><Icon icon="ep:plus" class="mr-5px" /> 选择物料</el-button>-->
             <el-button @click="openMaintainForm" type="primary"
-              ><Icon icon="ep:plus" class="mr-5px" /> 选择维修项</el-button
+              ><Icon icon="ep:plus" class="mr-5px" />
+              {{ t('iotMaintain.selectMaintenanceItem') }}</el-button
             >
             <el-button @click="openMaintainItem" type="warning"
-              ><Icon icon="ep:plus" class="mr-5px" /> 新增维修项</el-button
+              ><Icon icon="ep:plus" class="mr-5px" />
+              {{ t('iotMaintain.addMaintenanceItems') }}</el-button
             >
             <!--          <el-button @click="handleViewNew" type="warning"-->
             <!--            ><Icon icon="ep:plus" class="mr-5px" /> 新增物料</el-button>-->
@@ -177,15 +179,15 @@
       <!-- 列表 -->
       <ContentWrap>
         <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-          <el-table-column label="资产编码" align="center" prop="deviceCode" />
-          <el-table-column label="设备名称" align="center" prop="deviceName" />
-          <el-table-column label="维修项" align="center" prop="name" />
-          <el-table-column label="已选物料数" align="center" prop="materialCount" >
+          <el-table-column :label="t('iotMaintain.deviceCode')" align="center" prop="deviceCode" />
+          <el-table-column :label="t('iotMaintain.deviceName')" align="center" prop="deviceName" />
+          <el-table-column :label="t('iotMaintain.repairItems')"  align="center" prop="name" />
+          <el-table-column :label="t('iotMaintain.numberOfMaterials')" align="center" prop="materialCount" >
             <template #default="scope">
               <el-tag v-if="scope.row.materialCount" type="danger"> {{scope.row.materialCount}}</el-tag>
             </template>
           </el-table-column>
-          <el-table-column label="操作" align="center" min-width="120px">
+          <el-table-column :label="t('iotMaintain.operation')" align="center" min-width="120px">
             <template #default="scope">
               <div style="display: flex; justify-content: center; align-items: center; width: 100%">
                 <div>
@@ -196,17 +198,17 @@
                     @click="handleDelete(scope.row.bomNodeId)"
                   >
                     <Icon style="vertical-align: middle; color: #ea3434" icon="ep:zoom-out" />
-                    移除
+                    {{ t('iotMaintain.remove') }}
                   </el-button>
                 </div>
                 <div style="margin-left: 12px">
                   <el-button link type="primary" @click="openMaterialForm(scope.row)">
-                    选择物料
+                    {{ t('iotMaintain.selectMaterials') }}
                   </el-button>
                 </div>
                 <div style="margin-left: 12px">
                   <el-button link type="primary" @click="handleViewNew(scope.row.bomNodeId)">
-                    查看物料
+                    {{ t('iotMaintain.viewMaterials') }}
                   </el-button>
                 </div>
               </div>
@@ -222,8 +224,8 @@
     <ContentWrap>
       <el-form>
         <el-form-item style="float: right">
-          <el-button @click="submitForm" type="primary" :disabled="formLoading">保 存</el-button>
-          <el-button @click="close">取 消</el-button>
+          <el-button @click="submitForm" type="primary" :disabled="formLoading">{{ t('iotMaintain.save') }}</el-button>
+          <el-button @click="close">{{ t('iotMaintain.cancel') }}</el-button>
         </el-form-item>
       </el-form>
     </ContentWrap>
@@ -236,7 +238,7 @@
       :materials="materialList.filter((item) => item.bomNodeId === currentBomNodeId)"
       @delete = "materialDelete"
     />
-    <Dialog title="维修项" v-model="addItemVisible" style="min-height: 300px">
+    <Dialog :title="t('iotMaintain.repairItems')" v-model="addItemVisible" style="min-height: 300px">
       <el-form
         ref="addFormRef"
         :model="addFormData"
@@ -244,23 +246,23 @@
         label-position="right"
         label-width="68px"
       >
-        <el-form-item label="BOM节点id" v-if="false" prop="deviceCode">
+        <el-form-item :label="t('iotMaintain.BOMNodeID')" v-if="false" prop="deviceCode">
           <el-input v-model="addFormData.bomNodeId" disabled />
         </el-form-item>
-        <el-form-item label="资产编码" prop="deviceCode">
+        <el-form-item :label="t('iotMaintain.deviceCode')" prop="deviceCode">
           <el-input v-model="addFormData.deviceCode" disabled />
         </el-form-item>
-        <el-form-item label="设备名称" prop="deviceName">
+        <el-form-item :label="t('iotMaintain.deviceName')" prop="deviceName">
           <el-input v-model="addFormData.deviceName" disabled />
         </el-form-item>
-        <el-form-item label="维修项" prop="name">
-          <el-input v-model="addFormData.name" placeholder="请输入维修项" />
+        <el-form-item :label="t('iotMaintain.repairItems')" prop="name">
+          <el-input v-model="addFormData.name" :placeholder="t('iotMaintain.repairItemsHolder')" />
         </el-form-item>
       </el-form>
       <el-form>
         <el-form-item style="float: right">
-          <el-button @click="handleConfirm" type="primary">确 定</el-button>
-          <el-button @click="closeDialog">取 消</el-button>
+          <el-button @click="handleConfirm" type="primary">{{ t('iotMaintain.ok') }}</el-button>
+          <el-button @click="closeDialog">{{  t('iotMaintain.cancel')  }}</el-button>
         </el-form-item>
       </el-form>
     </Dialog>
@@ -409,14 +411,14 @@ const openMaterialForm = (row: any) => {
 const maintainFormRef = ref()
 const openMaintainForm = (type: string, id?: number) => {
   if (!formData.value.deviceId) {
-    message.error('请选择设备')
+    message.error(t('iotMaintain.deviceHolder'))
     return
   }
   maintainFormRef.value.open(type, formData.value.deviceId)
 }
 const openMaintainItem = () => {
   if (!formData.value.deviceId) {
-    message.error('请选择设备')
+    message.error(t('iotMaintain.deviceHolder'))
     return
   }
   addItemVisible.value = true

+ 21 - 15
src/views/pms/maintain/material/ChooseMaintain.vue

@@ -1,5 +1,5 @@
 <template>
-  <Dialog v-model="dialogVisible" title="选择维修项" style="width: 1100px; min-height: 300px">
+  <Dialog v-model="dialogVisible" :title="t('chooseMaintain.selectRepairItem')" style="width: 1100px; min-height: 300px">
     <ContentWrap>
       <el-form
         class="-mb-15px"
@@ -8,33 +8,38 @@
         :inline="true"
         label-width="68px"
       >
-        <el-form-item label="物料编码" prop="code">
+        <el-form-item :label="t('chooseMaintain.materialCode')" prop="code" style="margin-left: 25px">
           <el-input
             v-model="queryParams.code"
-            placeholder="请输入物料编码"
+            :placeholder="t('chooseMaintain.codeHolder')"
             clearable
             @keyup.enter="handleQuery"
           />
         </el-form-item>
-        <el-form-item label="物料名称" prop="name">
+        <el-form-item :label="t('chooseMaintain.materialName')" prop="name" style="margin-left: 25px">
           <el-input
             v-model="queryParams.name"
-            placeholder="请输入物料名称"
+            :placeholder="t('chooseMaintain.nameHolder')"
             clearable
             @keyup.enter="handleQuery"
           />
         </el-form-item>
         <el-form-item>
-          <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
-          <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
+          <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" />
+            {{ t('chooseMaintain.search') }}</el-button>
+          <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />
+            {{ t('chooseMaintain.reset')  }}</el-button>
           <el-button @click="handleConfirm" type="danger"
-            ><Icon icon="ep:check" class="mr-5px" /> 确认选择</el-button
+            ><Icon icon="ep:check" class="mr-5px" />
+            {{ t('chooseMaintain.confirm')  }}</el-button
           >
           <el-button @click="toggleAll" type="primary"
-            ><Icon icon="ep:refresh" class="mr-5px" />全选</el-button
+            ><Icon icon="ep:refresh" class="mr-5px" />
+            {{ t('chooseMaintain.selectAll') }}</el-button
           >
           <el-button @click="invertSelection" type="info"
-            ><Icon icon="ep:refresh" class="mr-5px" />取消全选</el-button
+            ><Icon icon="ep:refresh" class="mr-5px" />
+            {{ t('chooseMaintain.cancelAllSelection') }}</el-button
           >
         </el-form-item>
       </el-form>
@@ -56,27 +61,27 @@
           :selectable="(row) => !row.disabled"
         />
         <el-table-column
-          label="资产编码"
+          :label=" t('chooseMaintain.deviceCode')"
           align="center"
           prop="deviceCode"
           :show-overflow-tooltip="true"
           class="!w-100px"
         />
         <el-table-column
-          label="设备名称"
+          :label=" t('chooseMaintain.deviceName')"
           align="center"
           prop="deviceName"
           :show-overflow-tooltip="true"
         />
         <el-table-column
-          label="设备名称"
+          :label=" t('chooseMaintain.deviceName')"
           align="center"
           prop="deviceName"
           :show-overflow-tooltip="true"
         />
-        <el-table-column label="维修项" align="center" prop="name" :show-overflow-tooltip="true" />
+        <el-table-column :label=" t('chooseMaintain.repairItems')" align="center" prop="name" :show-overflow-tooltip="true" />
         <el-table-column
-          label="创建时间"
+          :label="t('chooseMaintain.createTime')"
           align="center"
           prop="createTime"
           :formatter="dateFormatter"
@@ -108,6 +113,7 @@ const selectedRows = ref<any[]>([]) // 多选数据(存储所有选中行的
 const list = ref<any[]>([]) // 列表的数据
 const total = ref(0) // 列表的总页数
 const tableRef = ref()
+const { t } = useI18n() // 国际化
 const queryParams = reactive({
   pageNo: 1,
   pageSize: 10,