Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

zhangcl 2 mesiacov pred
rodič
commit
eb5f7dde77

+ 25 - 0
src/locales/en.ts

@@ -764,6 +764,10 @@ export default {
     failureImpactHolder:'Please enter failure impact',
     faultySystemHolder: 'Please enter faulty system',
     remarkHolder:'Please enter remark',
+    PersonInCharge:'PersonInCharge',
+    supplier:'Supplier',
+    suppHolder:'Please enter supplier',
+    attachment:'Attachment',
 
     device:'Device',
     repairType:'RepairType',
@@ -775,9 +779,12 @@ export default {
     faultySystem:'FaultySystem',
     picture: 'Picture',
     repairCosts:'RepairCosts',
+    costHolder:'Please enter repair costs',
+
     faultDescription:'FaultDescription',
     repairDescription:'RepairDescription',
     solution:'Solution',
+    soHolder:'Please enter solution',
     remark:'Remark',
     selectMaintenanceItem:'SelectMaintenanceItem',
     addMaintenanceItems:'AddMaintenanceItems',
@@ -831,4 +838,22 @@ export default {
     repairItems:'RepairItems',
     createTime:'CreateTime',
   },
+  info:{
+    deviceClass:'DeviceClass',
+    classHolder:'Please select device class',
+    faultySystem:'FaultySystem',
+    faultySystemHolder:'Please enter faulty system',
+    createTime: 'CreateTime',
+    start:'StartDate',
+    end:'EndDate',
+    search:'Search',
+    reset:'Reset',
+    add:'Add',
+    description:'Description',
+    delete: 'Delete',
+    edit: 'Edit',
+    classHolder1:'Device class cannot be empty',
+    faultyImpact:'Faulty impact cannot be empty',
+    solution:'Solution cannot be empty',
+  },
 }

+ 22 - 4
src/locales/zh-CN.ts

@@ -760,9 +760,10 @@ export default {
     faultySystemHolder: '请输入故障系统',
     remarkHolder:'请输入备注',
     repairTypeHolder:'请选择维修类型',
-
-
-
+    PersonInCharge:'负责人',
+    supplier:'供应商',
+    suppHolder:'请输入供应商',
+    attachment:'委外相关附件',
 
     repairType:'维修类型',
     shutDown:'是否停机',
@@ -773,6 +774,8 @@ export default {
     faultySystem:'故障系统',
     picture: '图片',
     repairCosts:'维修费用',
+    costHolder:'请输入维修费用',
+
     faultDescription:'故障描述',
     repairDescription:'维修描述',
     solution:'解决办法',
@@ -829,7 +832,22 @@ export default {
     createTime:'创建时间',
   },
   info:{
-
+    deviceClass:'设备分类',
+    classHolder:'请选择设备分类',
+    faultySystem:'故障系统',
+    faultySystemHolder:'请输入故障系统',
+    createTime: '创建时间',
+    start:'开始日期',
+    end:'结束日期',
+    search:'搜索',
+    reset:'重置',
+    add:'新增',
+    description:'描述',
+    delete: '删除',
+    edit: '编辑',
+    classHolder1:'设备分类不能为空',
+    faultyImpact:'故障影响不能为空',
+    solution:'解决办法不能为空',
   },
 
   'OAuth 2.0': 'OAuth 2.0' // 避免菜单名是 OAuth 2.0 时,一直 warn 报错

+ 2 - 4
src/views/Home/Index.vue

@@ -279,6 +279,7 @@ const getStats = async () => {
   })
   IotStatApi.getDeviceStatusCount().then((res) => {
     typeData.value = res
+    debugger
     initCharts()
   })
   IotStatApi.getSafeCount().then((res) => {
@@ -333,10 +334,7 @@ const initCharts = () => {
         labelLine: {
           show: false
         },
-        data: Object.entries(typeData.value).map(([name, value]) => ({
-          name,
-          value
-        }))
+        data: typeData.value
       }
     ]
   })

+ 7 - 7
src/views/pms/device/allotlog/ConfigDeviceAllot.vue

@@ -4,7 +4,7 @@
       <!-- 左侧设备列表 -->
       <el-col :span="12" class="col-height">
         <div class="card left-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" class="col-height">
         <div class="card right-card">
-          <h3>部门列表</h3>
+          <h3>{{ t('configDevice.deptList') }}</h3>
           <ContentWrap class="dept-tree-container" height="400px">
             <DeptTree2 ref="deptTreeRef" v-model="selectedDeptId" height="100%" @update:modelValue="handleDeptChange"/>
           </ContentWrap>
@@ -50,7 +50,7 @@
       <div class="card">
         <el-input
           v-model="formData.reason"
-          placeholder="请输入调拨原因"
+          :placeholder="t('configDevice.rfaHolder')"
           class="reason-input"
           type="textarea"
           :rows="3"
@@ -63,10 +63,10 @@
         @click="submitRelations"
         :disabled="tempRelations.length === 0"
       >
-        保 存
+        {{ t('iotMaintain.save') }}
       </el-button>
       <div class="temp-list card" v-if="false">
-        <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="deptName" label="部门" />
@@ -98,7 +98,7 @@ import {IotDeviceApi, IotDeviceVO} from "@/api/pms/device";
 import DeptTree2 from "@/views/pms/device/DeptTree2.vue";
 import { useRouter } from 'vue-router'
 const router = useRouter()
-
+const { t } = useI18n() // 国际化
 defineOptions({ name: 'ConfigDeviceAllot' })
 const selectedDeptId = ref<number | string>('')
 const simpleDevices = ref<IotDeviceVO[]>([])

+ 24 - 24
src/views/pms/device/allotlog/DeviceAllot.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.transfer')" prop="setFlag" label-width="140px">
             <el-select
               v-model="queryParams.setFlag"
-              placeholder="请选择"
+              :placeholder="t('deviceStatus.choose')"
               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="设备状态"
+              :placeholder="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="资产性质"
+              :placeholder="t('devicePerson.assets')"
               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="请输入品牌"
+              :placeholder="t('devicePerson.brandHolder')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-200px"
@@ -93,16 +93,16 @@
 
           <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 +110,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 +128,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 +155,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 +163,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/allotlog/DeviceAllotLogDrawer.vue

@@ -1,6 +1,6 @@
 <template>
   <el-drawer
-    title="设备调拨记录"
+    :title="t('configPerson.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="deviceAllots" style="width: 100%">
-          <el-table-column prop="deviceName" label="设备名称" width="180" />
-          <el-table-column prop="deviceCode" label="设备编码" width="180" />
-          <el-table-column prop="oldDeptName" label="调整前部门" width="180" />
-          <el-table-column prop="newDeptName" 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="oldDeptName" :label="t('deviceStatus.beforeDept')" width="180" />
+          <el-table-column prop="newDeptName" :label="t('deviceStatus.afterDept')" 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";

+ 5 - 2
src/views/pms/device/monitor/TdDeviceInfo.vue

@@ -158,8 +158,11 @@ const formatTime = timestamp => {
 }
 const result = ref([])
 const getChart = async (range) =>{
-
-  result.value = await IotStatApi.getDeviceInfoChart(params.code, topic.value, range[0], range[1])
+  loading.value = true
+  await IotStatApi.getDeviceInfoChart(params.code, topic.value, range[0], range[1]).then(res=>{
+    result.value = res
+      loading.value = false
+  })
 }
 // 初始化图表
 const renderChart = async () => {

+ 1 - 1
src/views/pms/device/monitor/TdDeviceLabel.vue

@@ -9,7 +9,7 @@
       @click="selectTag(index)"
     >
       <span class="property">{{ tag.modelName }}</span>
-      <span class="value">{{ tag.valueType }}</span>
+      <span class="value">{{ tag.value }}</span>
     </div>
   </div>
 </template>

+ 2 - 2
src/views/pms/device/statuslog/DeviceStatus.vue

@@ -68,7 +68,7 @@
           <el-form-item v-show="ifShow" :label="t('devicePerson.assets')" prop="assetProperty">
             <el-select
               v-model="queryParams.assetProperty"
-              :label="t('devicePerson.assetsHolder')"
+              :placeholder="t('devicePerson.assetsHolder')"
               clearable
               class="!w-240px"
             >
@@ -84,7 +84,7 @@
           <el-form-item v-show="ifShow" :label="t('devicePerson.brand')" prop="brand">
             <el-input
               v-model="queryParams.brand"
-              :label="t('devicePerson.brandHolder')"
+              :placeholder="t('devicePerson.brandHolder')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-200px"

+ 16 - 16
src/views/pms/information/IotInformationDbForm.vue

@@ -9,47 +9,47 @@
     >
       <el-row>
         <el-col :span="12">
-          <el-form-item label="设备分类" prop="deviceType">
+          <el-form-item :label="t('info.deviceClass')" prop="deviceType">
             <el-tree-select
               v-model="formData.deviceType"
               :data="productClassifyList"
               :props="defaultProps"
               check-strictly
               node-key="id"
-              placeholder="请选择设备分类"
+              :placeholder="t('deviceForm.category')"
             />
           </el-form-item>
         </el-col>
         <el-col :span="12">
-        <el-form-item label="故障影响" prop="failureInfluence">
-          <el-input v-model="formData.failureInfluence" placeholder="请输入故障影响" />
+        <el-form-item :label="t('faultForm.faultImpact')" prop="failureInfluence">
+          <el-input v-model="formData.failureInfluence" :placeholder="t('faultForm.faultImpactHolder')" />
         </el-form-item>
           </el-col>
         <el-col :span="12">
-        <el-form-item label="故障系统" prop="failureSystem">
-          <el-input v-model="formData.failureSystem" placeholder="请输入故障系统" />
+        <el-form-item :label="t('faultForm.faultySystem')" prop="failureSystem">
+          <el-input v-model="formData.failureSystem" :placeholder="t('faultForm.faultySystemHolder')" />
         </el-form-item>
           </el-col>
         <el-col :span="12">
-          <el-form-item label="解决办法" prop="solutions">
-            <el-input v-model="formData.solutions" placeholder="请输入解决办法" />
+          <el-form-item :label="t('iotMaintain.solution')" prop="solutions">
+            <el-input v-model="formData.solutions" :placeholder="t('iotMaintain.soHolder')" />
           </el-form-item>
         </el-col>
         <el-col :span="24">
-        <el-form-item label="描述" prop="description">
+        <el-form-item :label="t('info.description')" prop="description">
           <el-input v-model="formData.description" type="textarea" height="150px" />
         </el-form-item>
           </el-col>
         <el-col :span="24">
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" />
+        <el-form-item :label="t('iotMaintain.remark')" prop="remark">
+          <el-input v-model="formData.remark" type="textarea" :placeholder="t('iotMaintain.remarkHolder')" />
         </el-form-item>
           </el-col>
       </el-row>
     </el-form>
     <template #footer>
-      <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
-      <el-button @click="dialogVisible = false">取 消</el-button>
+      <el-button @click="submitForm" type="primary" :disabled="formLoading">{{ t('iotMaintain.ok') }}</el-button>
+      <el-button @click="dialogVisible = false">{{ t('iotMaintain.cancel') }}</el-button>
     </template>
   </Dialog>
 </template>
@@ -82,9 +82,9 @@ const formData = ref({
   auditStatus: undefined,
 })
 const formRules = reactive({
-  deviceType: [{ required: true, message: '设备分类不能为空', trigger: 'change' }],
-  failureInfluence: [{ required: true, message: '故障影响不能为空', trigger: 'change' }],
-  solutions: [{ required: true, message: '解决办法不能为空', trigger: 'change' }],
+  deviceType: [{ required: true, message: t('info.classHolder1'), trigger: 'change' }],
+  failureInfluence: [{ required: true, message: t('info.faultyImpact'), trigger: 'change' }],
+  solutions: [{ required: true, message: t('info.solution'), trigger: 'change' }],
 })
 const formRef = ref() // 表单 Ref
 

+ 24 - 21
src/views/pms/information/index.vue

@@ -8,46 +8,49 @@
       :inline="true"
       label-width="68px"
     >
-      <el-form-item label="设备分类" prop="deviceType">
+      <el-form-item :label="t('info.deviceClass')" prop="deviceType" style="margin-left: 25px">
         <el-select
           v-model="queryParams.deviceType"
-          placeholder="请选择设备分类"
+          :placeholder="t('info.classHolder')"
           clearable
           class="!w-240px"
         >
           <el-option label="请选择字典生成" value="" />
         </el-select>
       </el-form-item>
-      <el-form-item label="故障系统" prop="failureSystem">
+      <el-form-item :label="t('info.faultySystem')" prop="failureSystem">
         <el-input
           v-model="queryParams.failureSystem"
-          placeholder="请输入故障系统"
+          :placeholder="t('info.faultySystemHolder')"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="创建时间" prop="createTime">
+      <el-form-item :label="t('info.createTime')" prop="createTime">
         <el-date-picker
           v-model="queryParams.createTime"
           value-format="YYYY-MM-DD HH:mm:ss"
           type="daterange"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
+          :start-placeholder="t('info.start')"
+          :end-placeholder="t('info.end')"
           :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
           class="!w-220px"
         />
       </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('info.search') }}</el-button>
+        <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />
+          {{ t('info.reset') }}</el-button>
         <el-button
           type="primary"
           plain
           @click="openForm('create')"
           v-hasPermi="['rq:iot-information-db:create']"
         >
-          <Icon icon="ep:plus" class="mr-5px" /> 新增
+          <Icon icon="ep:plus" class="mr-5px" />
+          {{ t('info.add') }}
         </el-button>
         <el-button
           type="success"
@@ -65,26 +68,26 @@
   <!-- 列表 -->
   <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('iotDevice.serial')" width="70" align="center">
         <template #default="scope">
           {{ scope.$index + 1 }}
         </template>
       </el-table-column>
-      <el-table-column label="设备分类" align="center" prop="className" />
-      <el-table-column label="故障影响" align="center" prop="failureInfluence" />
-      <el-table-column label="故障系统" align="center" prop="failureSystem" />
-      <el-table-column label="描述" align="center" prop="description" />
-      <el-table-column label="解决办法" align="center" prop="solutions" />
-      <el-table-column label="备注" align="center" prop="remark" />
+      <el-table-column :label="t('info.deviceClass')" align="center" prop="className" />
+      <el-table-column :label="t('faultForm.faultImpact')" align="center" prop="failureInfluence" />
+      <el-table-column :label="t('iotMaintain.faultySystem')" align="center" prop="failureSystem" />
+      <el-table-column :label="t('info.description')" align="center" prop="description" />
+      <el-table-column :label="t('iotMaintain.solution')" align="center" prop="solutions" />
+      <el-table-column :label="t('iotMaintain.remark')" align="center" prop="remark" />
       <el-table-column
-        label="创建时间"
+        :label="t('info.createTime')"
         align="center"
         prop="createTime"
         :formatter="dateFormatter"
         width="180px"
       />
       <!--      <el-table-column label="审核状态" align="center" prop="auditStatus" />-->
-      <el-table-column label="操作" align="center" min-width="120px">
+      <el-table-column :label="t('iotMaintain.operation')" align="center" min-width="120px">
         <template #default="scope">
           <el-button
             link
@@ -92,7 +95,7 @@
             @click="openForm('update', scope.row.id)"
             v-hasPermi="['rq:iot-information-db:update']"
           >
-            编辑
+            {{ t('info.edit') }}
           </el-button>
           <el-button
             link
@@ -100,7 +103,7 @@
             @click="handleDelete(scope.row.id)"
             v-hasPermi="['rq:iot-information-db:delete']"
           >
-            删除
+            {{ t('info.delete') }}
           </el-button>
         </template>
       </el-table-column>

+ 24 - 24
src/views/pms/maintain/IotMaintainDetail.vue

@@ -11,12 +11,12 @@
       <div class="base-expandable-content">
         <el-row>
           <el-col :span="8">
-            <el-form-item label="设备" prop="deviceName">
+            <el-form-item :label="t('maintain.deviceName')" prop="deviceName">
               <el-select disabled v-model="formData.deviceName" />
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="状态" prop="status">
+            <el-form-item :label="t('maintain.status')" prop="status">
               <el-select v-model="formData.status" clearable disabled>
                 <el-option
                   v-for="dict in getStrDictOptions(DICT_TYPE.PMS_MAIN_STATUS)"
@@ -28,7 +28,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="维修类型" prop="type">
+            <el-form-item :label="t('iotMaintain.repairType')" prop="type">
               <el-select disabled v-model="formData.type" clearable>
                 <el-option
                   v-for="dict in getStrDictOptions(DICT_TYPE.PMS_MAIN_TYPE)"
@@ -40,7 +40,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="是否停机" prop="ifStop">
+            <el-form-item :label="t('iotMaintain.shutDown')" prop="ifStop">
               <el-select v-model="formData.ifStop" clearable disabled>
                 <el-option
                   v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
@@ -53,7 +53,7 @@
           </el-col>
           <el-col :span="8">
             <el-form-item
-              label="维修开始时间"
+              :label="t('iotMaintain.startTime')"
               prop="maintainStartTime"
               :rules="formData.type === 'in' ? startRule : []"
             >
@@ -68,7 +68,7 @@
           </el-col>
           <el-col :span="8">
             <el-form-item
-              label="维修结束时间"
+              :label="t('iotMaintain.endTime')"
               prop="maintainEndTime"
               :rules="formData.type === 'in' ? endRule : []"
             >
@@ -82,7 +82,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="维修负责人" prop="maintainPerson">
+            <el-form-item :label="t('iotMaintain.PersonInCharge')" prop="maintainPerson">
               <el-select
                 v-model="formData.maintainPerson"
                 filterable
@@ -100,7 +100,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="故障时间" prop="failureTime">
+            <el-form-item :label="t('iotMaintain.failureTime')" prop="failureTime">
               <el-date-picker
                 disabled
                 style="width: 150%"
@@ -111,17 +111,17 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="故障影响" prop="failureInfluence">
+            <el-form-item :label="t('iotMaintain.failureImpact')" prop="failureInfluence">
               <el-input v-model="formData.failureInfluence" disabled />
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="故障系统" prop="failureSystem">
+            <el-form-item :label="t('iotMaintain.faultySystem')" prop="failureSystem">
               <el-input v-model="formData.failureSystem" disabled />
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="图片" prop="pic">
+            <el-form-item :label="t('iotMaintain.picture')" prop="pic">
               <UploadImg v-model="formData.pic" :disabled="true" height="55px" />
             </el-form-item>
           </el-col>
@@ -131,50 +131,50 @@
 <!--            </el-form-item>-->
 <!--          </el-col>-->
                     <el-col :span="8" v-if="formData.type === 'out'&&formData.maintainPerson===userId">
-                      <el-form-item label="供应商" prop="supplier">
+                      <el-form-item :label="t('iotMaintain.supplier')" prop="supplier">
                         <el-select
                           disabled
                           v-model="formData.supplierName"
-                          placeholder="请输入供应商"
+                          :placeholder="t('iotMaintain.suppHolder')"
                           :model-value="supplierLabel"
                         />
                       </el-form-item>
                     </el-col>
                     <el-col :span="8">
-                      <el-form-item label="维修费用" prop="maintainFee">
+                      <el-form-item :label="t('iotMaintain.repairCosts')" prop="maintainFee">
                         <el-input-number
                           disabled
                           v-model="formData.maintainFee"
                           :min="0"
                           :precision="2"
                           :step="0.1"
-                          placeholder="请输入维修费用"
+                          :placeholder="t('iotMaintain.costHolder')"
                           style="width: 100%"
                         />
                       </el-form-item>
                     </el-col>
                     <el-col :span="8" v-if="formData.type === 'out'&&formData.maintainPerson===userId">
-                      <el-form-item label="委外相关附件" prop="outFile">
+                      <el-form-item :label="t('iotMaintain.attachment')" prop="outFile">
                         <UploadFile disabled="" v-model="formData.outFile" class="min-w-80px" />
                       </el-form-item>
                     </el-col>
           <el-col :span="8">
-            <el-form-item label="故障描述" prop="description">
+            <el-form-item :label="t('iotMaintain.faultDescription')" prop="description">
               <el-input type="textarea" v-model="formData.description" disabled />
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="维修描述" prop="maintainDescription">
+            <el-form-item :label="t('iotMaintain.repairDescription')" prop="maintainDescription">
               <el-input type="textarea" v-model="formData.maintainDescription" disabled />
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="解决办法" prop="solution">
+            <el-form-item :label="t('iotMaintain.solution')" prop="solution">
               <el-input type="textarea" v-model="formData.solution" disabled />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="备注" prop="remark">
+            <el-form-item :label="t('iotMaintain.remark')" prop="remark">
               <el-input v-model="formData.remark" type="textarea" disabled />
             </el-form-item>
           </el-col>
@@ -186,11 +186,11 @@
     <!-- 列表 -->
     <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="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="操作" 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 style="margin-left: 12px">

+ 1 - 1
src/views/pms/maintain/index.vue

@@ -169,7 +169,7 @@
             </template>
           </el-table-column>
           <el-table-column
-            label="维修开始时间"
+            :label="t('iotMaintain.startTime')"
             align="center"
             prop="maintainStartTime"
             :formatter="dateFormatter"