Explorar o código

维修工单双语言1

yuanchao hai 2 meses
pai
achega
70898e1724

+ 31 - 1
src/locales/en.ts

@@ -955,6 +955,36 @@ export default {
     otherCost:'OtherCost(元)',
     DelayKil:'DelayKil(KM)',
     DelayDuration:'DelayDuration',
-    DelayDate:'DelayDate(D)'
+    DelayDate:'DelayDate(D)',
+    MaintItems:'MaintItems',
+    nextMaintTime:'NextMaintTime(H)',
+    nextMaintKil:'NextMaintKil(KM)',
+    nextMaintDate:'NextMaintDate'
+  },
+  inspect:{
+    InspectionItems:'InspectionItems',
+    itemHolder:'Please enter inspection items',
+    sortHolder:'Please enter sort holder',
+    InspectionStandards:'IS',
+    stanHolder:'Please enter inspections standards'
+  },
+  route:{
+    RouteName:'RouteName',
+    nHolder:'Please enter route name',
+    selectInspectionItems:'SelectInspectionItems',
+    unitHolder:'Please select unit',
+    cycle:'Cycle',
+    SelectInspectionDevice:'SelectInspectionDevice',
+    InspectionRoute:'InspectionRoute',
+    planTitle:'PlanTitle',
+    planNumber:'PlanNumber',
+    orderType:'OrderType',
+    IsItConfigured:'IsItConfigured',
+    quantity:'Quantity',
+    safetyStock:'SafetyStock',
+  },
+  stock:{
+    selectStock:'SelectStock',
+    storageTime:'StorageTime'
   },
 }

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

@@ -534,6 +534,7 @@ export default {
     category:'设备类别',
     categoryHolder:'请选择设备类别',
     model:'规格型号',
+    modelHolder:'请输入规格型号',
     picture:'图片',
     remark:'备注',
     remarkHolder:'请输入备注',
@@ -948,7 +949,38 @@ export default {
     otherCost:'其他费用(元)',
     DelayKil:'推迟公里数(KM)',
     DelayDuration:'推迟时长',
-    DelayDate:'推迟自然日期(D)'
+    DelayDate:'推迟自然日期(D)',
+    MaintItems:'保养项',
+    nextMaintTime:'距离下次保养运行时长(H)',
+    nextMaintKil:'距离下次保养公里数(KM)',
+    nextMaintDate:'下次保养自然日期'
+  },
+  inspect:{
+    InspectionItems:'巡检项',
+    itemHolder:'请输入巡检项',
+    sortHolder:'请输入排序',
+    InspectionStandards:'巡检标准',
+    stanHolder:'请输入巡检标准'
+  },
+  route:{
+    RouteName:'路线名称',
+    nHolder:'请输入路线名称',
+    selectInspectionItems:'选择巡检项',
+    unitHolder:'请选择单位',
+    cycle:'周期',
+    SelectInspectionDevice:'选择巡检设备',
+    InspectionRoute:'巡检路线',
+    planTitle:'计划标题',
+    planNumber:'计划编号',
+    orderType:'工单类型',
+    IsItConfigured:'是否配置',
+    quantity:'数量',
+    safetyStock:'安全库存',
+  },
+  stock:{
+    selectStock:'选择库存',
+    storageTime:'入库时间',
+    selectMaterial:'选择物料',
   },
 
   'OAuth 2.0': 'OAuth 2.0' // 避免菜单名是 OAuth 2.0 时,一直 warn 报错

+ 15 - 15
src/views/pms/inspect/item/IotInspectItemForm.vue

@@ -9,7 +9,7 @@
     >
       <el-row>
         <el-col :span="12">
-        <el-form-item label="设备类别" prop="deviceClassify">
+        <el-form-item :label="t('monitor.category')"  prop="deviceClassify">
           <el-tree-select
             filterable
             v-model="formData.deviceClassify"
@@ -17,51 +17,51 @@
             :props="defaultProps"
             check-strictly
             node-key="id"
-            placeholder="请选择设备类别"
+            :placeholder="t('deviceForm.categoryHolder')"
             clearable
           />
         </el-form-item>
           </el-col>
         <el-col :span="12">
-        <el-form-item label="设备名称" prop="deviceId">
+        <el-form-item :label="t('monitor.deviceName')" prop="deviceId">
           <el-select
             v-model="formData.deviceId"
             :model-value="deviceLabel"
-            placeholder="请输入设备"
+            :placeholder="t('monitor.nameHolder')"
             @click="openForm"
           />
         </el-form-item>
           </el-col>
         <el-col :span="12">
-        <el-form-item label="巡检项" prop="item">
-          <el-input v-model="formData.item" placeholder="请输入巡检项" />
+        <el-form-item :label="t('inspect.InspectionItems')" prop="item">
+          <el-input v-model="formData.item" :placeholder="t('inspect.itemHolder')" />
         </el-form-item>
           </el-col>
         <el-col :span="12">
-        <el-form-item label="排序" prop="sort">
-          <el-input v-model="formData.sort" type="number" placeholder="请输入排序" />
+        <el-form-item :label="t('common.sort')" prop="sort">
+          <el-input v-model="formData.sort" type="number" :placeholder="t('common.sortHolder')" />
         </el-form-item>
           </el-col>
         <el-col :span="24">
-          <el-form-item label="巡检标准" prop="standard">
-            <el-input v-model="formData.standard" type="textarea" placeholder="请输入巡检标准" />
+          <el-form-item :label="t('inspect.InspectionStandards')" prop="standard">
+            <el-input v-model="formData.standard" type="textarea" :placeholder="t('inspect.stanHolder')" />
           </el-form-item>
         </el-col>
         <el-col :span="24">
-          <el-form-item label="附件" prop="urls">
+          <el-form-item :label="t('fileInfo.appendix')" prop="urls">
             <UploadFile v-model="formData.urls" :limit="1" :is-show-tip="false" class="min-w-80px" />
           </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('form.remark')" prop="remark">
+          <el-input v-model="formData.remark" type="textarea" :placeholder="t('deviceForm.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('faultForm.ok') }}</el-button>
+      <el-button @click="dialogVisible = false">{{ t('faultForm.cancel') }}</el-button>
     </template>
   </Dialog>
   <DeviceList ref="deviceFormRef" @choose="deviceChoose" />

+ 20 - 19
src/views/pms/inspect/item/index.vue

@@ -8,36 +8,37 @@
       :inline="true"
       label-width="68px"
     >
-      <el-form-item label="巡检项" prop="item">
+      <el-form-item :label="t('inspect.InspectionItems')" prop="item" style="margin-left: 45px">
         <el-input
           v-model="queryParams.item"
-          placeholder="请输入巡检项"
+          :placeholder="t('inspect.itemHolder')"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="创建时间" prop="createTime">
+      <el-form-item :label="t('common.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('operationFill.start')"
+          :end-placeholder="t('operationFill.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('operationFill.search') }}</el-button>
+        <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{ t('operationFill.reset') }}</el-button>
         <el-button
           type="primary"
           plain
           @click="openForm('create')"
           v-hasPermi="['rq:iot-inspect-item:create']"
         >
-          <Icon icon="ep:plus" class="mr-5px" /> 新增
+          <Icon icon="ep:plus" class="mr-5px" /> {{ t('operationFill.add') }}
         </el-button>
         <el-button
           type="success"
@@ -56,26 +57,26 @@
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
 <!--      <el-table-column label="主键id" align="center" prop="id" />-->
-      <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="deviceClassifyName" />
-      <el-table-column label="设备名称" align="center" prop="deviceName" />
-      <el-table-column label="巡检项" align="center" prop="item" />
-      <el-table-column label="巡检标准" align="center" prop="standard" />
-      <el-table-column label="排序" align="center" prop="sort" />
-      <el-table-column label="备注" align="center" prop="remark" />
+      <el-table-column :label="t('monitor.category')" align="center" prop="deviceClassifyName" />
+      <el-table-column :label="t('monitor.deviceName')" align="center" prop="deviceName" />
+      <el-table-column :label="t('inspect.InspectionItems')" align="center" prop="item" />
+      <el-table-column :label="t('inspect.InspectionStandards')" align="center" prop="standard" />
+      <el-table-column :label="t('common.sort')" align="center" prop="sort" />
+      <el-table-column :label="t('form.remark')" align="center" prop="remark" />
       <el-table-column
-        label="创建时间"
+        :label="t('common.createTime')"
         align="center"
         prop="createTime"
         :formatter="dateFormatter"
         width="180px"
       />
 <!--      <el-table-column label="部门id" align="center" prop="deptId" />-->
-      <el-table-column label="操作" align="center" min-width="120px">
+      <el-table-column :label="t('operationFill.operation')" align="center" min-width="120px">
         <template #default="scope">
           <el-button
             link
@@ -83,7 +84,7 @@
             @click="openForm('update', scope.row.id)"
             v-hasPermi="['rq:iot-inspect-item:update']"
           >
-            编辑
+            {{ t('fault.edit') }}
           </el-button>
           <el-button
             link
@@ -91,7 +92,7 @@
             @click="handleDelete(scope.row.id)"
             v-hasPermi="['rq:iot-inspect-item:delete']"
           >
-            删除
+            {{ t('fault.del') }}
           </el-button>
         </template>
       </el-table-column>

+ 10 - 10
src/views/pms/inspect/order/InspectOrderDetail.vue

@@ -11,22 +11,22 @@
       <div class="base-expandable-content">
         <el-row>
           <el-col :span="12">
-            <el-form-item label="计划编码" prop="planCode">
+            <el-form-item :label="t('main.planCode')" prop="planCode">
               <el-input v-model="formData.planCode" disabled />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="工单名称" prop="inspectOrderTitle">
+            <el-form-item :label="t('bomList.name')" prop="inspectOrderTitle">
               <el-input v-model="formData.inspectOrderTitle" disabled />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="工单编码" prop="inspectOrderCode">
+            <el-form-item :label="t('bomList.code')" prop="inspectOrderCode">
               <el-input v-model="formData.inspectOrderCode" disabled />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="负责人" prop="chargeName">
+            <el-form-item :label="t('iotMaintain.PersonInCharge')" prop="chargeName">
               <el-select v-model="formData.chargeName" style="width: 100%" disabled />
               <el-option
                 v-for="item in deptUsers"
@@ -37,7 +37,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="备注" prop="remark">
+            <el-form-item :label="t('iotMaintain.remark')" prop="remark">
               <el-input type="textarea" v-model="formData.remark" disabled />
             </el-form-item>
           </el-col>
@@ -50,10 +50,10 @@
     <ContentWrap>
       <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="t('iotMaintain.deviceCode')" align="center" prop="deviceCode" />
+          <el-table-column :label="t('iotMaintain.deviceName')" align="center" prop="deviceName" />
 <!--          <el-table-column label="路线名称" align="center" prop="routeName" />-->
-          <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-right: 10px">
@@ -64,7 +64,7 @@
                     type="warning"
                     @click="viewRoute(scope.row.orderDetails)"
                   >
-                    巡检路线
+                    {{ t('route.InspectionRoute') }}
                   </el-button>
                 </div>
               </div>
@@ -77,7 +77,7 @@
   <ContentWrap>
     <el-form>
       <el-form-item style="float: right">
-        <el-button @click="close">取 消</el-button>
+        <el-button @click="close">{{t('route.cancel')}}</el-button>
       </el-form-item>
     </el-form>
   </ContentWrap>

+ 15 - 14
src/views/pms/inspect/order/index.vue

@@ -15,10 +15,10 @@
           :inline="true"
           label-width="68px"
         >
-          <el-form-item label="工单名" prop="inspectOrderTitle">
+          <el-form-item :label="t('bomList.name')" prop="inspectOrderTitle">
             <el-input
               v-model="queryParams.inspectOrderTitle"
-              placeholder="请输入工单名"
+              :placeholder="t('bomList.nHolder')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-240px"
@@ -33,10 +33,10 @@
 <!--              class="!w-240px"-->
 <!--            />-->
 <!--          </el-form-item>-->
-          <el-form-item label="工单状态" prop="status">
+          <el-form-item :label="t('operationFill.status')" prop="status">
             <el-select
               v-model="queryParams.status"
-              placeholder="工单状态"
+              :placeholder="t('operationFill.status')"
               clearable
               class="!w-240px"
             >
@@ -61,10 +61,11 @@
 <!--          </el-form-item>-->
           <el-form-item>
             <el-button @click="handleQuery"
-              ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+              ><Icon icon="ep:search" class="mr-5px" />
+              {{ t('operationFill.search') }}</el-button
             >
             <el-button @click="resetQuery"
-              ><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button
+              ><Icon icon="ep:refresh" class="mr-5px" /> {{ t('operationFill.reset') }}</el-button
             >
             <!--          <el-button-->
             <!--            type="primary"-->
@@ -90,20 +91,20 @@
       <!-- 列表 -->
       <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="inspectOrderTitle" />
+          <el-table-column :label="t('bomList.name')" align="center" prop="inspectOrderTitle" />
 <!--          <el-table-column label="工单编码" align="center" prop="inspectOrderCode" />-->
-          <el-table-column label="工单类型" align="center" prop="type" />
-          <el-table-column label="工单状态" align="center" prop="status">
+          <el-table-column :label="t('route.orderType')" align="center" prop="type" />
+          <el-table-column :label="t('operationFill.status')" align="center" prop="status">
             <template #default="scope">
               <dict-tag :type="DICT_TYPE.PMS_INSPECT_ORDER_STATUS" :value="scope.row.status" />
             </template>
           </el-table-column>
-          <el-table-column label="负责人" align="center" prop="chargeName" />
+          <el-table-column :label="t('iotMaintain.PersonInCharge')" align="center" prop="chargeName" />
 <!--          <el-table-column label="备注" align="center" prop="remark" />-->
 <!--          <el-table-column-->
 <!--            label="创建时间"-->
@@ -112,7 +113,7 @@
 <!--            :formatter="dateFormatter"-->
 <!--            width="180px"-->
 <!--          />-->
-          <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-->
@@ -130,7 +131,7 @@
               <!--          >-->
               <!--            删除-->
               <!--          </el-button>-->
-              <el-button link type="primary" @click="openForm(scope.row.id)"> 查看 </el-button>
+              <el-button link type="primary" @click="openForm(scope.row.id)"> {{ t('operationFill.view') }} </el-button>
               <el-button
                 v-if="scope.row.status === 'todo'"
                 link
@@ -138,7 +139,7 @@
                 @click="openWrite(scope.row.id)"
                 v-hasPermi="['rq:iot-inspect-order:update']"
               >
-                填写
+                {{ t('operationFill.fill') }}
               </el-button>
             </template>
           </el-table-column>

+ 18 - 18
src/views/pms/inspect/plan/InspectRouteList.vue

@@ -1,5 +1,5 @@
 <template>
-  <Dialog v-model="dialogVisible" title="选择设备路线" style="width: 1300px; min-height: 600px">
+  <Dialog v-model="dialogVisible" :title="t('route.InspectionRoute')" style="width: 1300px; min-height: 600px">
     <ContentWrap>
       <el-form
         class="-mb-15px"
@@ -8,37 +8,37 @@
         :inline="true"
         label-width="68px"
       >
-        <el-form-item label="设备名称" prop="deviceName">
+        <el-form-item :label="t('monitor.deviceName')" prop="deviceName" style="margin-left: 25px">
           <el-input
             v-model="queryParams.deviceName"
-            placeholder="请输入设备名称"
+            :placeholder="t('iotDevice.nameHolder')"
             clearable
             @keyup.enter="handleQuery"
             class="!w-200px"
           />
         </el-form-item>
-        <el-form-item label="创建时间" prop="createTime">
+        <el-form-item  :label="t('common.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-240px"
           />
         </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>
@@ -58,20 +58,20 @@
           :reserve-selection="false"
           :selectable="(row) => !row.disabled"
         />
-        <el-table-column label="设备编码" align="center" prop="deviceCode" />
-        <el-table-column label="设备名称" align="center" prop="deviceName" />
-        <el-table-column label="路线名称" align="center" prop="routeName" />
+        <el-table-column :label="t('iotDevice.code')" align="center" prop="deviceCode" />
+        <el-table-column :label="t('iotDevice.name')" align="center" prop="deviceName" />
+        <el-table-column :label="t('route.RouteName')" align="center" prop="routeName" />
         <el-table-column
-          label="创建时间"
+          :label="t('common.createTime')"
           align="center"
           prop="createTime"
           width="180"
           :formatter="dateFormatter"
         />
-        <el-table-column label="操作" align="center">
+        <el-table-column :label="t('operationFill.operation')" align="center">
           <template #default="scope">
             <el-button link type="primary" @click="viewRoute(scope.row.itemJson)">
-              查看路线
+              {{ t('operationFill.view') }}
             </el-button>
           </template>
         </el-table-column>
@@ -100,7 +100,7 @@ import { IotInspectRouteApi } from '@/api/pms/inspect/route'
 import { IotInspectItemVO } from '@/api/pms/inspect/item'
 import RouteInspectItemDrawer from "@/views/pms/inspect/plan/RouteInspectItemDrawer.vue";
 import {ref} from "vue";
-
+const { t } = useI18n() // 国际化
 const emit = defineEmits(['choose']) // 定义 success 事件,用于操作成功后的回调
 const dialogVisible = ref(false) // 弹窗的是否展示
 const loading = ref(true) // 列表的加载中

+ 16 - 15
src/views/pms/inspect/plan/IotInspectPlan.vue

@@ -11,15 +11,15 @@
         <div class="base-expandable-content">
           <el-row>
             <el-col :span="12">
-              <el-form-item label="计划名称" prop="planTitle">
-                <el-input v-model="formData.planTitle" placeholder="请输入计划名称" />
+              <el-form-item :label="t('main.planName')" prop="planTitle">
+                <el-input v-model="formData.planTitle" :placeholder="t('main.nameHolder')" />
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="单位" prop="planUnit">
+              <el-form-item :label="t('workOrderMaterial.unit')" prop="planUnit">
                 <el-select
                   v-model="formData.planUnit"
-                  placeholder="请选择单位"
+                  :placeholder="t('route.unitHolder')"
                   :disabled="formType === 'update'"
                   clearable
                 >
@@ -33,7 +33,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="周期" prop="planCycle">
+              <el-form-item :label="t('route.cycle')" prop="planCycle">
                 <el-input
                   type="number"
                   v-model="formData.planCycle"
@@ -60,7 +60,7 @@
             <!--              </el-form-item>-->
             <!--            </el-col>-->
             <el-col :span="24">
-              <el-form-item label="备注" prop="remark">
+              <el-form-item :label="t('form.remark')" prop="remark">
                 <el-input type="textarea" v-model="formData.remark" />
               </el-form-item>
             </el-col>
@@ -81,17 +81,18 @@
           >
             <el-form-item>
               <el-button @click="openForm" type="primary"
-                ><Icon icon="ep:plus" class="mr-5px" /> 选择巡检设备</el-button
+                ><Icon icon="ep:plus" class="mr-5px" />
+                {{ t('route.SelectInspectionDevice') }}</el-button
               >
             </el-form-item>
           </el-form>
         </ContentWrap>
         <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="routeName" />
-            <el-table-column label="操作" align="center" min-width="120px">
+            <el-table-column :label="t('iotDevice.code')" align="center" prop="deviceCode" />
+            <el-table-column :label="t('iotDevice.name')"  align="center" prop="deviceName" />
+            <el-table-column :label="t('route.RouteName')" align="center" prop="routeName" />
+            <el-table-column :label="t('operationFill.operation')" align="center" min-width="120px">
               <template #default="scope">
                 <div
                   style="display: flex; justify-content: center; align-items: center; width: 100%"
@@ -104,7 +105,7 @@
                       @click="viewRoute(scope.row.itemJson)"
                     >
                       <Icon style="vertical-align: middle; color: #c36e5b" icon="ep:view" />
-                      巡检路线
+                      {{ t('route.InspectionRoute') }}
                     </el-button>
                   </div>
                   <div>
@@ -115,7 +116,7 @@
                       @click="handleDelete(scope.row.code)"
                     >
                       <Icon style="vertical-align: middle; color: #ea3434" icon="ep:zoom-out" />
-                      移除
+                      {{ t('form.delete') }}
                     </el-button>
                   </div>
                 </div>
@@ -128,8 +129,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>

+ 22 - 22
src/views/pms/inspect/plan/index.vue

@@ -15,45 +15,45 @@
           :inline="true"
           label-width="68px"
         >
-          <el-form-item label="计划名称" prop="planTitle">
+          <el-form-item :label="t('main.planName')" prop="planTitle" style="margin-left: 25px">
             <el-input
               v-model="queryParams.planTitle"
-              placeholder="请输入计划名称"
+              :placeholder="t('main.nameHolder')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-240px"
             />
           </el-form-item>
-          <el-form-item label="计划编号" prop="planCode">
+          <el-form-item :label="t('main.planCode')" prop="planCode">
             <el-input
               v-model="queryParams.planCode"
-              placeholder="请输入计划编号"
+              :placeholder="t('main.codeHolder')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-240px"
             />
           </el-form-item>
-          <el-form-item label="创建时间" prop="createTime">
+          <el-form-item :label="t('common.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('operationFill.search') }}</el-button>
+            <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />  {{ t('operationFill.reset') }}</el-button>
             <el-button
               type="primary"
               plain
               @click="openForm('create')"
               v-hasPermi="['rq:iot-inspect-plan:create']"
             >
-              <Icon icon="ep:plus" class="mr-5px" /> 新增
+              <Icon icon="ep:plus" class="mr-5px" /> {{ t('action.add') }}
             </el-button>
             <el-button
               type="success"
@@ -71,22 +71,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('iotDevice.serial')" width="70" align="center">
             <template #default="scope">
               {{ scope.$index + 1 }}
             </template>
           </el-table-column>
-          <el-table-column label="计划标题" align="center" prop="planTitle" />
-          <el-table-column label="计划编号" align="center" prop="planCode" />
-          <el-table-column label="周期" align="center" prop="planCycle" />
-          <el-table-column label="单位" align="center" prop="planUnit" >
+          <el-table-column :label="t('route.planTitle')" align="center" prop="planTitle" />
+          <el-table-column :label="t('route.planNumber')" align="center" prop="planCode" />
+          <el-table-column :label="t('route.cycle')" align="center" prop="planCycle" />
+          <el-table-column :label="t('workOrderMaterial.unit')" align="center" prop="planUnit" >
             <template #default="scope">
               <dict-tag :type="DICT_TYPE.PMS_INSPECT_UNIT" :value="scope.row.planUnit" />
             </template>
           </el-table-column>
-          <el-table-column label="负责人" align="center" prop="chargeName" />
+          <el-table-column :label="t('iotMaintain.PersonInCharge')" align="center" prop="chargeName" />
           <!--      <el-table-column label="设备" align="center" prop="deviceIds" />-->
-          <el-table-column label="状态" key="status">
+          <el-table-column :label="t('bomList.status')" key="status">
             <template #default="scope">
               <el-switch
                 v-model="scope.row.status"
@@ -96,16 +96,16 @@
               />
             </template>
           </el-table-column>
-          <el-table-column label="备注" align="center" prop="remark" />
+          <el-table-column :label="t('form.remark')" align="center" prop="remark" />
           <el-table-column
-            label="创建时间"
+            :label="t('table.createTime')"
             align="center"
             prop="createTime"
             :formatter="dateFormatter"
             width="180px"
           />
           <!--      <el-table-column label="部门id" align="center" prop="deptId" />-->
-          <el-table-column label="操作" align="center" min-width="120px">
+          <el-table-column :label="t('operationFill.operation')" align="center" min-width="120px">
             <template #default="scope">
               <el-button
                 link
@@ -113,7 +113,7 @@
                 @click="openForm('update', scope.row.id)"
                 v-hasPermi="['rq:iot-inspect-plan:update']"
               >
-                编辑
+                {{ t('fault.edit') }}
               </el-button>
               <el-button
                 link
@@ -121,7 +121,7 @@
                 @click="handleDelete(scope.row.id)"
                 v-hasPermi="['rq:iot-inspect-plan:delete']"
               >
-                删除
+                {{ t('fault.del') }}
               </el-button>
             </template>
           </el-table-column>

+ 17 - 17
src/views/pms/inspect/route/InspectItemList.vue

@@ -1,5 +1,5 @@
 <template>
-  <Dialog v-model="dialogVisible" title="选择巡检项" style="width: 1300px; min-height: 50%">
+  <Dialog v-model="dialogVisible" :title="t('route.selectInspectionItems')" style="width: 1300px; min-height: 50%">
     <ContentWrap>
       <el-form
         class="-mb-15px"
@@ -8,37 +8,37 @@
         :inline="true"
         label-width="68px"
       >
-        <el-form-item label="巡检项" prop="item">
+        <el-form-item :label="t('inspect.InspectionItems')" prop="item" style="margin-left: 45px">
           <el-input
             v-model="queryParams.item"
-            placeholder="请输入巡检项"
+            :placeholder="t('inspect.itemHolder')"
             clearable
             @keyup.enter="handleQuery"
             class="!w-200px"
           />
         </el-form-item>
-        <el-form-item label="创建时间" prop="createTime">
+        <el-form-item :label="t('common.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-240px"
           />
         </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('operationFill.search') }}</el-button>
+          <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{ t('operationFill.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('workOrderMaterial.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>
@@ -59,18 +59,18 @@
           :reserve-selection="true"
           :selectable="(row) => !row.disabled"
         />
-        <el-table-column label="巡检项" align="center" prop="item" />
-        <el-table-column label="巡检标准" align="center" prop="standard" />
-        <el-table-column label="附件" align="center" prop="urls">
+        <el-table-column :label="t('inspect.InspectionItems')" align="center" prop="item" />
+        <el-table-column :label="t('inspect.InspectionStandards')" align="center" prop="standard" />
+        <el-table-column :label="t('fileInfo.appendix')" align="center" prop="urls">
           <template #default="scope">
             <el-button v-if="scope.row.urls" link type="primary" @click="openWeb(scope.row.urls)">
               <Icon size="19" icon="ep:view"
             /></el-button>
           </template>
         </el-table-column>
-        <el-table-column label="排序" align="center" prop="sort" />
+        <el-table-column :label="t('common.sort')" align="center" prop="sort" />
         <el-table-column
-          label="创建时间"
+          :label="t('common.createTime')"
           align="center"
           prop="createTime"
           :formatter="dateFormatter"
@@ -92,7 +92,7 @@ import { IotDeviceVO } from '@/api/pms/device'
 import { dateFormatter } from '@/utils/formatTime'
 import { useCache } from '@/hooks/web/useCache'
 import { IotInspectItemApi, IotInspectItemVO } from '@/api/pms/inspect/item'
-
+const { t } = useI18n() // 国际化
 const emit = defineEmits(['choose']) // 定义 success 事件,用于操作成功后的回调
 const dialogVisible = ref(false) // 弹窗的是否展示
 const loading = ref(true) // 列表的加载中

+ 13 - 12
src/views/pms/inspect/route/IotInspectRoute.vue

@@ -11,12 +11,12 @@
         <div class="base-expandable-content">
           <el-row>
             <el-col :span="8">
-              <el-form-item label="路线名称" prop="routeName">
-                <el-input v-model="formData.routeName" placeholder="路线名称" />
+              <el-form-item :label="t('route.RouteName')" prop="routeName">
+                <el-input v-model="formData.routeName" :placeholder="t('route.RouteName')" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="设备类别" prop="deviceClassify">
+              <el-form-item :label="t('monitor.category')" prop="deviceClassify">
                 <el-tree-select
                   filterable
                   clearable
@@ -25,16 +25,16 @@
                   :props="defaultProps"
                   check-strictly
                   node-key="id"
-                  placeholder="请选择设备类别"
+                  :placeholder="t('deviceForm.categoryHolder')"
                 />
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="设备" prop="deviceName">
+              <el-form-item :label="t('faultForm.device')" prop="deviceName">
                 <el-input
                   v-model="formData.deviceName"
                   @clear="handleClear"
-                  placeholder="请选择设备"
+                  :placeholder="t('iotMaintain.deviceHolder')"
                   @click="openDevice"
                   clearable
                 />
@@ -57,7 +57,8 @@
           >
             <el-form-item>
               <el-button @click="openForm" type="primary"
-                ><Icon icon="ep:plus" class="mr-5px" /> 选择巡检项</el-button
+                ><Icon icon="ep:plus" class="mr-5px" />
+                {{ t('route.selectInspectionItems') }}</el-button
               >
             </el-form-item>
           </el-form>
@@ -82,14 +83,14 @@
 
               <!-- 组件内容 -->
               <div class="component-content">
-                <span style="font-weight: bold">巡检项:</span
+                <span style="font-weight: bold">{{ t('inspect.InspectionItems') }}:</span
                 ><span style="font-size: 14px">{{ element.item }}</span
                 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                <span style="font-weight: bold">巡检标准:</span
+                <span style="font-weight: bold">{{ t('inspect.InspectionStandards') }}:</span
                 ><span style="font-size: 14px">{{ element.standard }}</span>
               </div>
               <div>
-                <el-button type="warning" @click="deleteDraggable(index)">删除</el-button>
+                <el-button type="warning" @click="deleteDraggable(index)">{{ t('form.delete') }}</el-button>
               </div>
             </div>
           </template>
@@ -99,8 +100,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>

+ 19 - 18
src/views/pms/inspect/route/index.vue

@@ -8,43 +8,44 @@
       :inline="true"
       label-width="68px"
     >
-      <el-form-item label="路线名称" prop="routeName">
+      <el-form-item :label="t('route.RouteName')" prop="routeName" style="margin-left: 25px">
         <el-input
           v-model="queryParams.routeName"
-          placeholder="请输入路线名称"
+          :placeholder="t('route.nHolder')"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="设备分类" prop="deviceClassify">
+      <el-form-item :label="t('monitor.category')" prop="deviceClassify">
         <el-input
           v-model="queryParams.deviceClassify"
-          placeholder="请输入设备分类"
+          :placeholder="t('deviceForm.categoryHolder')"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="设备名称" prop="deviceName">
+      <el-form-item :label="t('monitor.deviceName')"  prop="deviceName">
         <el-input
           v-model="queryParams.deviceName"
-          placeholder="请输入设备名称"
+          :placeholder="t('iotDevice.nameHolder')"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
         />
       </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('file.search')}}</el-button>
+        <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{t('file.reset')}}</el-button>
         <el-button
           type="primary"
           plain
           @click="openForm('create')"
           v-hasPermi="['rq:iot-inspect-route:create']"
         >
-          <Icon icon="ep:plus" class="mr-5px" /> 新增
+          <Icon icon="ep:plus" class="mr-5px" /> {{t('fault.added')}}
         </el-button>
         <el-button
           type="success"
@@ -62,25 +63,25 @@
   <!-- 列表 -->
   <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="routeName" />
-      <el-table-column label="设备分类" align="center" prop="deviceClassifyName" />
-      <el-table-column label="设备名称" align="center" prop="deviceName" />
+      <el-table-column :label="t('route.RouteName')" align="center" prop="routeName" />
+      <el-table-column :label="t('monitor.category')" align="center" prop="deviceClassifyName" />
+      <el-table-column :label="t('monitor.deviceName')" align="center" prop="deviceName" />
 <!--      <el-table-column label="巡检项" align="center" prop="itemJson" />-->
-      <el-table-column label="备注" align="center" prop="remark" />
+      <el-table-column :label="t('form.remark')" align="center" prop="remark" />
       <el-table-column
-        label="创建时间"
+        :label="t('common.createTime')"
         align="center"
         prop="createTime"
         :formatter="dateFormatter"
         width="180px"
       />
 <!--      <el-table-column label="部门id" align="center" prop="deptId" />-->
-      <el-table-column label="操作" align="center" min-width="120px">
+      <el-table-column :label="t('operationFill.operation')" align="center" min-width="120px">
         <template #default="scope">
           <el-button
             link
@@ -88,7 +89,7 @@
             @click="openForm('update', scope.row.id)"
             v-hasPermi="['rq:iot-inspect-route:update']"
           >
-            编辑
+            {{ t('fault.edit') }}
           </el-button>
           <el-button
             link
@@ -96,7 +97,7 @@
             @click="handleDelete(scope.row.id)"
             v-hasPermi="['rq:iot-inspect-route:delete']"
           >
-            删除
+            {{ t('fault.del') }}
           </el-button>
         </template>
       </el-table-column>

+ 16 - 15
src/views/pms/iotlockstock/IotAddToStock.vue

@@ -11,8 +11,8 @@
       <div class="base-expandable-content">
         <el-row>
           <el-col :span="8">
-            <el-form-item label="工厂" prop="factoryId">
-              <el-select v-model="formData.factoryId" clearable placeholder="请选择工厂" class="!w-240px" @change="selectedFactoryChange" disabled>
+            <el-form-item :label="t('workOrderMaterial.factory')" prop="factoryId">
+              <el-select v-model="formData.factoryId" clearable :placeholder="t('faultForm.choose')" class="!w-240px" @change="selectedFactoryChange" disabled>
                 <el-option
                   v-for="item in factoryList"
                   :key="item.id"
@@ -23,8 +23,8 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="成本中心" prop="costCenterId">
-              <el-select v-model="formData.costCenterId" clearable placeholder="请选择成本中心" class="!w-240px" disabled>
+            <el-form-item :label="t('workOrderMaterial.costCenter')" prop="costCenterId">
+              <el-select v-model="formData.costCenterId" clearable :placeholder="t('faultForm.choose')" class="!w-240px" disabled>
                 <el-option
                   v-for="item in costCenterList"
                   :key="item.id"
@@ -49,7 +49,8 @@
       >
         <el-form-item>
           <el-button @click="openForm" type="warning"
-            ><Icon icon="ep:plus" class="mr-5px" /> 新增物料</el-button
+            ><Icon icon="ep:plus" class="mr-5px" />
+            {{ t('fault.added') }}</el-button
           >
         </el-form-item>
       </el-form>
@@ -60,27 +61,27 @@
       <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
         <el-table-column label="工厂id" align="center" prop="factoryId" v-if="false"/>
         <el-table-column label="成本中心id" align="center" prop="costCenterId" v-if="false"/>
-        <el-table-column label="物料编码" align="center" prop="materialCode" />
-        <el-table-column label="物料名称" align="center" prop="materialName" />
-        <el-table-column label="单位" align="center" prop="unit" />
-        <el-table-column label="单价" align="center" prop="unitPrice" :formatter="erpPriceTableColumnFormatter" />
+        <el-table-column :label="t('chooseMaintain.materialCode')" align="center" prop="materialCode" />
+        <el-table-column :label="t('chooseMaintain.materialName')" align="center" prop="materialName" />
+        <el-table-column :label="t('workOrderMaterial.unit')" align="center" prop="unit" />
+        <el-table-column :label="t('workOrderMaterial.unitPrice')"  align="center" prop="unitPrice" :formatter="erpPriceTableColumnFormatter" />
           <!--
           <template #default="scope">
             <el-input v-model="scope.row.unitPrice" />
           </template>
         </el-table-column> -->
-        <el-table-column label="数量" align="center" prop="quantity" :formatter="erpPriceTableColumnFormatter" />
+        <el-table-column :label="t('route.quantity')" align="center" prop="quantity" :formatter="erpPriceTableColumnFormatter" />
           <!--
           <template #default="scope">
             <el-input v-model="scope.row.quantity" />
           </template>
         </el-table-column> -->
-        <el-table-column label="备注" align="center" prop="remark">
+        <el-table-column :label="t('faultForm.remark')" align="center" prop="remark">
           <template #default="scope">
             <el-input v-model="scope.row.remark" />
           </template>
         </el-table-column>
-        <el-table-column label="操作" align="center" min-width="120px">
+        <el-table-column :label="t('maintain.operation')" align="center" min-width="120px">
           <template #default="scope">
             <div style="display: flex; justify-content: center; align-items: center; width: 100%">
               <div>
@@ -91,7 +92,7 @@
                   type="danger"
                   @click="handleDelete(scope.row.code)"
                 >
-                  移除
+                  {{ t('info.delete') }}
                 </el-button>
               </div>
             </div>
@@ -105,8 +106,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('common.save')}}</el-button>
+        <el-button @click="close">{{t('common.cancel')}}</el-button>
       </el-form-item>
     </el-form>
   </ContentWrap>

+ 16 - 16
src/views/pms/iotlockstock/SelectMaterial.vue

@@ -1,6 +1,6 @@
 <template>
   <Dialog v-model="dialogVisible"
-          title="选择物料"
+          :title="t('iotMaintain.selectMaterials')"
           style="width: 1100px; max-height: 800px" @close="handleClose">
     <div>
       <ContentWrap>
@@ -11,28 +11,28 @@
           :inline="true"
           label-width="68px"
         >
-          <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.materialName')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-240px"
             />
           </el-form-item>
-          <el-form-item label="物料编码" prop="code">
+          <el-form-item :label="t('chooseMaintain.materialCode')" prop="code">
             <el-input
               v-model="queryParams.code"
-              placeholder="请输入物料编码"
+              :placeholder="t('chooseMaintain.materialCode')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-240px"
             />
           </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="handleConfirm" class="custom-green-button"><Icon icon="ep:check" 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" /> {{ t('workOrderMaterial.confirm') }}</el-button>
           </el-form-item>
         </el-form>
       </ContentWrap>
@@ -45,7 +45,7 @@
           :show-overflow-tooltip="true"
           @row-click="handleRowClick"
         >
-          <el-table-column width="60" label="选择">
+          <el-table-column width="80" :label="t('deviceList.select')">
             <template #default="{ row }">
               <el-checkbox
                 :model-value="selectedRows.some(item => item.id === row.id)"
@@ -55,20 +55,20 @@
             </template>
           </el-table-column>
           <el-table-column
-            label="物料编码"
+            :label="t('chooseMaintain.materialCode')"
             align="center"
             prop="code"
             :show-overflow-tooltip="true"
           />
           <el-table-column
-            label="物料名称"
+            :label="t('chooseMaintain.materialName')"
             align="center"
             prop="name"
             :show-overflow-tooltip="true"
           />
-          <el-table-column label="规格型号" align="center" prop="model" width="120" />
-          <el-table-column label="单位" align="center" prop="unit" width="120" />
-          <el-table-column label="单价" align="center" prop="unitPrice">
+          <el-table-column :label="t('deviceForm.model')" align="center" prop="model" width="120" />
+          <el-table-column :label="t('workOrderMaterial.unit')" align="center" prop="unit" width="120" />
+          <el-table-column :label="t('workOrderMaterial.unitPrice')" align="center" prop="unitPrice">
             <template #default="scope">
               <el-input
                 v-model="scope.row.unitPrice"
@@ -77,7 +77,7 @@
               />
             </template>
           </el-table-column>
-          <el-table-column label="数量" align="center" prop="quantity">
+          <el-table-column :label="t('route.quantity')" align="center" prop="quantity">
             <template #default="scope">
               <el-input
                 v-model="scope.row.quantity"
@@ -113,7 +113,7 @@ import {DICT_TYPE} from "@/utils/dict";
 import {ContentWrap} from "@/components/ContentWrap";
 
 defineOptions({ name: 'SelectMaterial' })
-
+const { t } = useI18n() // 国际化
 // 调整 emit 类型
 const emit = defineEmits<{
   (e: 'choose', value: MaterialApi.MaterialVO[]): void

+ 22 - 22
src/views/pms/iotlockstock/index.vue

@@ -8,8 +8,8 @@
       :inline="true"
       label-width="68px"
     >
-      <el-form-item label="工厂" prop="factoryId">
-        <el-select v-model="queryParams.factoryId" clearable filterable placeholder="请选择" class="!w-240px" @change="selectedFactoryChange">
+      <el-form-item :label="t('workOrderMaterial.factory')" prop="factoryId">
+        <el-select v-model="queryParams.factoryId" clearable filterable :placeholder="t('faultForm.choose')" class="!w-240px" @change="selectedFactoryChange">
           <el-option
             v-for="item in factoryList"
             :key="item.id"
@@ -30,8 +30,8 @@
         </el-select>
       </el-form-item>
       -->
-      <el-form-item label="成本中心" prop="costCenterId">
-        <el-select v-model="queryParams.costCenterId" clearable filterable placeholder="请选择" class="!w-240px">
+      <el-form-item :label="t('workOrderMaterial.costCenter')" prop="costCenterId">
+        <el-select v-model="queryParams.costCenterId" clearable filterable :placeholder="t('faultForm.choose')" class="!w-240px">
           <el-option
             v-for="item in costCenterList"
             :key="item.id"
@@ -40,45 +40,45 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="物料编码" prop="materialCode">
+      <el-form-item :label="t('chooseMaintain.materialCode')" prop="materialCode">
         <el-input
           v-model="queryParams.materialCode"
-          placeholder="请输入物料编码"
+          :placeholder="t('chooseMaintain.materialCode')"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="物料名称" prop="materialName">
+      <el-form-item :label="t('chooseMaintain.materialName')" prop="materialName">
         <el-input
           v-model="queryParams.materialName"
-          placeholder="请输入物料名称"
+          :placeholder="t('chooseMaintain.materialName')"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="入库时间" prop="storageTime">
+      <el-form-item :label="t('chooseMaintain.createTime')" prop="storageTime">
         <el-date-picker
           v-model="queryParams.storageTime"
           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('operationFill.search') }}</el-button>
+        <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{ t('operationFill.reset') }}</el-button>
         <el-button
           type="primary"
           plain
           @click="openForm('create')"
           v-hasPermi="['pms:iot-lock-stock:create']"
         >
-          <Icon icon="ep:plus" class="mr-5px" /> 手工入库
+          <Icon icon="ep:plus" class="mr-5px" />{{ t('operationFill.add') }}
         </el-button>
         <el-button
           type="success"
@@ -96,15 +96,15 @@
   <!-- 列表 -->
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-      <el-table-column label="工厂" align="center" prop="factory" />
-      <el-table-column label="成本中心" align="center" prop="costCenter" />
-      <el-table-column label="物料编码" align="center" prop="materialCode" />
-      <el-table-column label="物料名称" align="center" prop="materialName" />
-      <el-table-column label="数量" align="center" prop="quantity" :formatter="erpPriceTableColumnFormatter" />
-      <el-table-column label="单价" align="center" prop="unitPrice" :formatter="erpPriceTableColumnFormatter" />
-      <el-table-column label="单位" align="center" prop="unit" />
+      <el-table-column :label="t('workOrderMaterial.factory')" align="center" prop="factory" />
+      <el-table-column :label="t('workOrderMaterial.costCenter')" align="center" prop="costCenter" />
+      <el-table-column :label="t('chooseMaintain.materialCode')" align="center" prop="materialCode" />
+      <el-table-column :label="t('chooseMaintain.materialName')" align="center" prop="materialName" />
+      <el-table-column :label="t('route.quantity')" align="center" prop="quantity" :formatter="erpPriceTableColumnFormatter" />
+      <el-table-column :label="t('workOrderMaterial.unitPrice')" align="center" prop="unitPrice" :formatter="erpPriceTableColumnFormatter" />
+      <el-table-column :label="t('workOrderMaterial.unit')" align="center" prop="unit" />
       <el-table-column
-        label="入库时间"
+        :label="t('stock.storageTime')"
         align="center"
         prop="storageTime"
         :formatter="dateFormatter"

+ 16 - 16
src/views/pms/iotmainworkorder/DeviceAlarmBomList.vue

@@ -1,6 +1,6 @@
 <template>
   <Dialog v-model="dialogVisible"
-          title="保养BOM明细"
+          :title="t('monitor.details')"
           style="width: 1500px; max-height: 800px" @close="handleClose" >
     <ContentWrap>
       <el-table
@@ -9,11 +9,11 @@
         :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="累计运行时间(H)" align="center" prop="totalRunTime" />
-        <el-table-column label="累计运行公里数(KM)" align="center" prop="totalMileage" />
-        <el-table-column label="保养项" align="center" prop="name" />
+        <el-table-column :label="t('iotDevice.code')" align="center" prop="deviceCode" />
+        <el-table-column :label="t('iotDevice.name')" align="center" prop="deviceName" />
+        <el-table-column :label="t('operationFillForm.sumTime')" align="center" prop="totalRunTime" />
+        <el-table-column :label="t('operationFillForm.sumKil')" align="center" prop="totalMileage" />
+        <el-table-column :label="t('mainPlan.MaintItems')" align="center" prop="name" />
         <!--
         <el-table-column label="运行里程" align="center" prop="mileageRule" >
           <template #default="scope">
@@ -47,19 +47,19 @@
         </el-table-column> -->
 
         <template v-if="showTimeColumns">
-          <el-table-column label="上次保养运行时长(H)" align="center" prop="lastRunningTime" />
-          <el-table-column label="运行时间周期(H)" align="center" prop="nextRunningTime" />
-          <el-table-column label="距离下次保养运行时长(H)" align="center" prop="timePeriod" />
+          <el-table-column :label="t('mainPlan.lastMaintenanceOperationTime')" align="center" prop="lastRunningTime" />
+          <el-table-column :label="t('mainPlan.RunTimeCycle')" align="center" prop="nextRunningTime" />
+          <el-table-column :label="t('mainPlan.nextMaintTime')" align="center" prop="timePeriod" />
         </template>
 
         <template v-if="showMileageColumns">
-          <el-table-column label="上次保养里程数(KM)" align="center" prop="lastRunningKilometers" />
-          <el-table-column label="运行里程周期(KM)" align="center" prop="nextRunningKilometers" />
-          <el-table-column label="距离下次保养公里数(KM)" align="center" prop="kilometerCycle" />
+          <el-table-column :label="t('mainPlan.lastMaintenanceMileage')" align="center" prop="lastRunningKilometers" />
+          <el-table-column :label="t('mainPlan.operatingMileageCycle')" align="center" prop="nextRunningKilometers" />
+          <el-table-column :label="t('mainPlan.nextMaintKil')" align="center" prop="kilometerCycle" />
         </template>
 
         <template v-if="showNaturalDateColumns">
-          <el-table-column label="上次保养自然日期" align="center" prop="lastNaturalDate"  width="220">
+          <el-table-column :label="t('mainPlan.lastMaintenanceOperationTime')" align="center" prop="lastNaturalDate"  width="220">
             <template #default="scope">
               <el-date-picker
                 v-model="scope.row.lastNaturalDate"
@@ -72,8 +72,8 @@
               />
             </template>
           </el-table-column>
-          <el-table-column label="自然日周期(D)" align="center" prop="nextNaturalDate" />
-          <el-table-column label="下次保养自然日期" align="center" prop="naturalDatePeriod" />
+          <el-table-column :label="t('mainPlan.NaturalDailyCycle')" align="center" prop="nextNaturalDate" />
+          <el-table-column :label="t('mainPlan.nextMaintDate')" align="center" prop="naturalDatePeriod" />
         </template>
       </el-table>
       <!-- 分页
@@ -96,7 +96,7 @@ import dayjs from 'dayjs'
 import { IotMainWorkOrderBomApi, IotMainWorkOrderBomVO } from '@/api/pms/iotmainworkorderbom'
 import { IotMaintenanceBomApi, IotMaintenanceBomVO } from '@/api/pms/iotmaintenancebom'
 import {propTypes} from "@/utils/propTypes";
-
+const { t } = useI18n() // 国际化
 const emit = defineEmits(['close']) // 定义 success 事件,用于操作成功后的回调
 const dialogVisible = ref(false) // 弹窗的是否展示
 const loading = ref(true) // 列表的加载中

+ 15 - 14
src/views/pms/iotmainworkorder/IotDeviceMainAlarm.vue

@@ -16,19 +16,19 @@
           :inline="true"
           label-width="68px"
         >
-          <el-form-item label="资产编码" prop="deviceCode">
+          <el-form-item :label="t('iotDevice.code')" prop="deviceCode" style="margin-left: 25px">
             <el-input
               v-model="queryParams.deviceCode"
-              placeholder="请输入资产编码"
+              :placeholder="t('iotDevice.codeHolder')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-200px"
             />
           </el-form-item>
-          <el-form-item label="设备名称" prop="deviceName">
+          <el-form-item :label="t('iotDevice.name')" prop="deviceName">
             <el-input
               v-model="queryParams.deviceName"
-              placeholder="请输入设备名称"
+              :placeholder="t('iotDevice.nameHolder')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-200px"
@@ -37,10 +37,11 @@
 
           <el-form-item>
             <el-button @click="handleQuery"
-              ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+              ><Icon icon="ep:search" class="mr-5px" />
+              {{ t('file.search') }}</el-button
             >
             <el-button @click="resetQuery"
-              ><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button
+              ><Icon icon="ep:refresh" class="mr-5px" />  {{ t('file.reset') }}</el-button
             >
             <el-button
               type="success"
@@ -58,20 +59,20 @@
       <!-- 列表 -->
       <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('iotDevice.code')" align="center" prop="deviceCode" />
+          <el-table-column :label="t('iotDevice.name')" 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">
+          <el-table-column :label="t('bomList.serviceDue')" align="center">
             <template #default="scope">
               <template v-if="hasMaintenancePlan(scope.row.mainDistance)">
                 <span :class="getDistanceClass(scope.row.mainDistance)">
@@ -81,13 +82,13 @@
               <span v-else>无保养计划</span>
             </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('iotDevice.dept')" align="center" prop="deptName" />
+          <el-table-column :label="t('monitor.status')" align="center" prop="deviceStatus">
             <template #default="scope">
               <dict-tag :type="DICT_TYPE.PMS_DEVICE_STATUS" :value="scope.row.deviceStatus" />
             </template>
           </el-table-column>
-          <el-table-column label="操作" align="center" min-width="120px">
+          <el-table-column :label="t('monitor.operation')" align="center" min-width="120px">
             <template #default="scope">
               <el-button
                 link
@@ -96,7 +97,7 @@
                 v-hasPermi="['rq:iot-device:query']"
                 v-if="hasMaintenancePlan(scope.row.mainDistance)"
               >
-                详情
+                {{ t('monitor.details') }}
               </el-button>
             </template>
           </el-table-column>

+ 14 - 13
src/views/pms/iotsapstock/IotConfigSafeStock.vue

@@ -10,7 +10,8 @@
       >
         <el-form-item>
           <el-button @click="openForm" type="warning"
-            ><Icon icon="ep:plus" class="mr-5px" /> 选择库存</el-button
+            ><Icon icon="ep:plus" class="mr-5px" />
+            {{ t('stock.selectStock') }}</el-button
           >
         </el-form-item>
       </el-form>
@@ -21,18 +22,18 @@
       <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
         <el-table-column
           type="index"
-          label="序号"
-          width="60"
+          :label="t('iotDevice.serial')"
+          width="70"
           align="center"
         />
         <el-table-column label="id" align="center" prop="id" v-if="false"/>
-        <el-table-column label="物料编码" align="center" prop="materialCode" />
-        <el-table-column label="物料名称" align="center" prop="materialName" />
-        <el-table-column label="单位" align="center" prop="unit" />
-        <el-table-column label="单价" align="center" prop="unitPrice" :formatter="erpPriceTableColumnFormatter" />
-        <el-table-column label="数量" align="center" prop="quantity" :formatter="erpPriceTableColumnFormatter" />
-        <el-table-column label="安全库存" align="center" prop="safetyStock" :formatter="erpPriceTableColumnFormatter" />
-        <el-table-column label="操作" align="center" min-width="120px">
+        <el-table-column :label="t('chooseMaintain.materialCode')" align="center" prop="materialCode" />
+        <el-table-column :label="t('chooseMaintain.materialName')" align="center" prop="materialName" />
+        <el-table-column :label="t('workOrderMaterial.unit')" align="center" prop="unit" />
+        <el-table-column :label="t('workOrderMaterial.unitPrice')" align="center" prop="unitPrice" :formatter="erpPriceTableColumnFormatter" />
+        <el-table-column :label="t('route.quantity')" align="center" prop="quantity" :formatter="erpPriceTableColumnFormatter" />
+        <el-table-column :label="t('route.safetyStock')" align="center" prop="safetyStock" :formatter="erpPriceTableColumnFormatter" />
+        <el-table-column :label="t('workplace.operation')" align="center" min-width="120px">
           <template #default="scope">
             <div style="display: flex; justify-content: center; align-items: center; width: 100%">
               <div>
@@ -43,7 +44,7 @@
                   type="danger"
                   @click="handleDelete(scope.row.code)"
                 >
-                  移除
+                  {{ t('form.delete') }}
                 </el-button>
               </div>
             </div>
@@ -56,8 +57,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>

+ 23 - 23
src/views/pms/iotsapstock/IotSapStockConfig.vue

@@ -8,8 +8,8 @@
       :inline="true"
       label-width="68px"
     >
-      <el-form-item label="工厂" prop="factoryId">
-        <el-select v-model="queryParams.factoryId" clearable placeholder="请选择" class="!w-240px" @change="selectedFactoryChange">
+      <el-form-item :label="t('workOrderMaterial.factory')" prop="factoryId">
+        <el-select v-model="queryParams.factoryId" clearable :placeholder="t('faultForm.choose')" class="!w-240px" @change="selectedFactoryChange">
           <el-option
             v-for="item in factoryList"
             :key="item.id"
@@ -18,8 +18,8 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="库存地点" prop="storageLocationId">
-        <el-select v-model="queryParams.storageLocationId" clearable placeholder="请选择" class="!w-240px">
+      <el-form-item :label="t('workOrderMaterial.storageLocation')" prop="storageLocationId" style="margin-left: 48px">
+        <el-select v-model="queryParams.storageLocationId" clearable :placeholder="t('faultForm.choose')" class="!w-240px" >
           <el-option
             v-for="item in storageLocationList"
             :key="item.id"
@@ -28,45 +28,45 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="物料编码" prop="materialCode">
+      <el-form-item :label="t('chooseMaintain.materialCode')" prop="materialCode">
         <el-input
           v-model="queryParams.materialCode"
-          placeholder="请输入物料编码"
+          :placeholder="t('chooseMaintain.materialCode')"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="物料名称" prop="materialName">
+      <el-form-item :label="t('chooseMaintain.materialName')" prop="materialName">
         <el-input
           v-model="queryParams.materialName"
-          placeholder="请输入物料名称"
+          :placeholder="t('chooseMaintain.materialName')"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="创建时间" prop="createTime">
+      <el-form-item :label="t('chooseMaintain.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('operationFill.search') }}</el-button>
+        <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{ t('operationFill.reset') }}</el-button>
         <el-button
           type="primary"
           plain
           @click="openForm('create')"
           v-hasPermi="['pms:iot-sap-stock:create']"
         >
-          <Icon icon="ep:plus" class="mr-5px" /> 配置安全库存
+          <Icon icon="ep:plus" class="mr-5px" /> {{ t('operationFill.add') }}
         </el-button>
         <el-button
           type="success"
@@ -84,16 +84,16 @@
   <!-- 列表 -->
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-      <el-table-column label="工厂" align="center" prop="factory" />
-      <el-table-column label="库存地点" align="center" prop="projectDepartment" />
-      <el-table-column label="物料编码" align="center" prop="materialCode" />
-      <el-table-column label="物料名称" align="center" prop="materialName" />
-      <el-table-column label="数量" align="center" prop="quantity" />
-      <el-table-column label="单价" align="center" prop="unitPrice" />
-      <el-table-column label="单位" align="center" prop="unit" />
-      <el-table-column label="安全库存" align="center" prop="safetyStock" :formatter="erpPriceTableColumnFormatter"/>
+      <el-table-column :label="t('workOrderMaterial.factory')" align="center" prop="factory" />
+      <el-table-column :label="t('workOrderMaterial.storageLocation')" align="center" prop="projectDepartment" />
+      <el-table-column :label="t('chooseMaintain.materialCode')" align="center" prop="materialCode" />
+      <el-table-column :label="t('chooseMaintain.materialName')" align="center" prop="materialName" />
+      <el-table-column :label="t('route.quantity')" align="center" prop="quantity" />
+      <el-table-column :label="t('workOrderMaterial.unitPrice')" align="center" prop="unitPrice" />
+      <el-table-column :label="t('workOrderMaterial.unit')" align="center" prop="unit" />
+      <el-table-column :label="t('route.safetyStock')" align="center" prop="safetyStock" :formatter="erpPriceTableColumnFormatter"/>
       <el-table-column
-        label="创建时间"
+        :label="t('chooseMaintain.createTime')"
         align="center"
         prop="createTime"
         :formatter="dateFormatter"

+ 17 - 17
src/views/pms/iotsapstock/IotSapStockForm.vue

@@ -7,34 +7,34 @@
       label-width="100px"
       v-loading="formLoading"
     >
-      <el-form-item label="物料编码" prop="materialCode">
-        <el-input v-model="formData.materialCode" placeholder="请输入物料编码" disabled/>
+      <el-form-item :label="t('chooseMaintain.materialCode')" prop="materialCode">
+        <el-input v-model="formData.materialCode" :placeholder="t('chooseMaintain.materialCode')" disabled/>
       </el-form-item>
-      <el-form-item label="物料名称" prop="materialName">
-        <el-input v-model="formData.materialName" placeholder="请输入物料名称" disabled/>
+      <el-form-item :label="t('chooseMaintain.materialName')" prop="materialName">
+        <el-input v-model="formData.materialName" :placeholder="t('chooseMaintain.materialName')" disabled/>
       </el-form-item>
-      <el-form-item label="数量" prop="quantity">
-        <el-input v-model="formData.quantity" placeholder="请输入数量" disabled/>
+      <el-form-item :label="t('route.quantity')" prop="quantity">
+        <el-input v-model="formData.quantity" :placeholder="t('route.quantity')" disabled/>
       </el-form-item>
-      <el-form-item label="单价" prop="unitPrice">
-        <el-input v-model="formData.unitPrice" placeholder="请输入单价" disabled/>
+      <el-form-item :label="t('workOrderMaterial.unitPrice')" prop="unitPrice">
+        <el-input v-model="formData.unitPrice" :placeholder="t('workOrderMaterial.unitPrice')" disabled/>
       </el-form-item>
-      <el-form-item label="单位" prop="unit">
-        <el-input v-model="formData.unit" placeholder="请输入单位" disabled/>
+      <el-form-item :label="t('workOrderMaterial.unit')" prop="unit">
+        <el-input v-model="formData.unit" :placeholder="t('workOrderMaterial.unit')" disabled/>
       </el-form-item>
-      <el-form-item label="安全库存" prop="safetyStock">
-        <el-input v-model="formData.safetyStock" placeholder="请输入安全库存" />
+      <el-form-item :label="t('route.safetyStock')" prop="safetyStock">
+        <el-input v-model="formData.safetyStock" :placeholder="t('route.safetyStock')" />
       </el-form-item>
-      <el-form-item label="排序" prop="sort">
+      <el-form-item :label="t('bomList.sort')" prop="sort">
         <el-input-number v-model="formData.sort" :min="0" controls-position="right" />
       </el-form-item>
-      <el-form-item label="备注" prop="remark">
-        <el-input v-model="formData.remark" placeholder="请输入备注" />
+      <el-form-item :label="t('form.remark')" prop="remark">
+        <el-input v-model="formData.remark" :placeholder="t('form.remark')" />
       </el-form-item>
     </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('operationFillForm.confirm') }}</el-button>
+      <el-button @click="dialogVisible = false">{{ t('operationFillForm.cancel') }}</el-button>
     </template>
   </Dialog>
 </template>

+ 17 - 16
src/views/pms/iotsapstock/SelectSapStock.vue

@@ -1,6 +1,6 @@
 <template>
   <Dialog v-model="dialogVisible"
-          title="选择SAP库存"
+          :title="t('stock.selectStock')"
           style="width: 1100px; max-height: 800px" @close="handleClose">
     <div>
       <ContentWrap>
@@ -11,28 +11,29 @@
           :inline="true"
           label-width="68px"
         >
-          <el-form-item label="物料名称" prop="materialName">
+          <el-form-item :label="t('chooseMaintain.materialName')" prop="materialName" style="margin-left: 35px">
             <el-input
               v-model="queryParams.materialName"
-              placeholder="请输入物料名称"
+              :placeholder="t('chooseMaintain.materialName')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-240px"
             />
           </el-form-item>
-          <el-form-item label="物料编码" prop="code">
+          <el-form-item :label="t('chooseMaintain.materialCode')" prop="code">
             <el-input
               v-model="queryParams.materialCode"
-              placeholder="请输入物料编码"
+              :placeholder="t('chooseMaintain.materialCode')"
               clearable
               @keyup.enter="handleQuery"
               class="!w-240px"
             />
           </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="handleConfirm" class="custom-green-button"><Icon icon="ep:check" 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" /> {{ t('workOrderMaterial.confirm') }}</el-button>
           </el-form-item>
         </el-form>
       </ContentWrap>
@@ -45,7 +46,7 @@
           :show-overflow-tooltip="true"
           @row-click="handleRowClick"
         >
-          <el-table-column width="60" label="选择">
+          <el-table-column width="70" :label="t('deviceList.select')">
             <template #default="{ row }">
               <el-checkbox
                 :model-value="selectedRows.some(item => item.id === row.id)"
@@ -56,21 +57,21 @@
           </el-table-column>
           <el-table-column label="id" align="center" prop="id" width="120" v-if="false"/>
           <el-table-column
-            label="物料编码"
+            :label="t('chooseMaintain.materialCode')"
             align="center"
             prop="materialCode"
             :show-overflow-tooltip="true"
           />
           <el-table-column
-            label="物料名称"
+            :label="t('chooseMaintain.materialName')"
             align="center"
             prop="materialName"
             :show-overflow-tooltip="true"
           />
-          <el-table-column label="数量" align="center" prop="quantity" width="120" />
-          <el-table-column label="单位" align="center" prop="unit" width="120" />
-          <el-table-column label="单价" align="center" prop="unitPrice" width="120" />
-          <el-table-column label="安全库存" align="center" prop="safetyStock">
+          <el-table-column :label="t('route.quantity')" align="center" prop="quantity" width="120" />
+          <el-table-column :label="t('workOrderMaterial.unit')" align="center" prop="unit" width="120" />
+          <el-table-column :label="t('workOrderMaterial.unitPrice')" align="center" prop="unitPrice" width="120" />
+          <el-table-column :label="t('route.safetyStock')" align="center" prop="safetyStock">
             <template #default="scope">
               <el-input
                 v-model="scope.row.safetyStock"
@@ -100,7 +101,7 @@ import * as SapStockApi from '@/api/pms/iotsapstock'
 import {DICT_TYPE} from "@/utils/dict";
 import {ContentWrap} from "@/components/ContentWrap";
 import {IotSapStockApi, IotSapStockVO} from "@/api/pms/iotsapstock";
-
+const { t } = useI18n() // 国际化
 // 调整 emit 类型
 const emit = defineEmits<{
   (e: 'choose', value: SapStockApi.IotSapStockVO[]): void

+ 25 - 25
src/views/pms/iotsapstock/index.vue

@@ -8,8 +8,8 @@
       :inline="true"
       label-width="68px"
     >
-      <el-form-item label="工厂" prop="factoryId">
-        <el-select v-model="queryParams.factoryId" clearable filterable placeholder="请选择" class="!w-240px" @change="selectedFactoryChange">
+      <el-form-item :label="t('workOrderMaterial.factory')" prop="factoryId">
+        <el-select v-model="queryParams.factoryId" clearable filterable :placeholder="t('faultForm.choose')" class="!w-240px" @change="selectedFactoryChange">
           <el-option
             v-for="item in factoryList"
             :key="item.id"
@@ -18,8 +18,8 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="库存地点" prop="storageLocationId">
-        <el-select v-model="queryParams.storageLocationId" clearable filterable placeholder="请选择" class="!w-240px">
+      <el-form-item :label="t('workOrderMaterial.storageLocation')" prop="storageLocationId" style="margin-left: 28px">
+        <el-select v-model="queryParams.storageLocationId" clearable filterable :placeholder="t('faultForm.choose')" class="!w-240px">
           <el-option
             v-for="item in storageLocationList"
             :key="item.id"
@@ -28,39 +28,39 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="物料编码" prop="materialCode">
+      <el-form-item :label="t('chooseMaintain.materialCode')" prop="materialCode">
         <el-input
           v-model="queryParams.materialCode"
-          placeholder="请输入物料编码"
+          :placeholder="t('chooseMaintain.materialCode')"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="物料名称" prop="materialName">
+      <el-form-item :label="t('chooseMaintain.materialName')" prop="materialName">
         <el-input
           v-model="queryParams.materialName"
-          placeholder="请输入物料名称"
+          :placeholder="t('chooseMaintain.materialName')"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="创建时间" prop="createTime">
+      <el-form-item :label="t('chooseMaintain.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 label="是否配置安全库存" prop="configFlag" label-width="140px">
+      <el-form-item :label="t('route.IsItConfigured')" prop="configFlag" label-width="140px">
         <el-select
           v-model="queryParams.configFlag"
-          placeholder="请选择"
+          :placeholder="t('faultForm.choose')"
           clearable
           class="!w-240px"
         >
@@ -73,15 +73,15 @@
         </el-select>
       </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('operationFill.search') }}</el-button>
+        <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />  {{ t('operationFill.reset') }}</el-button>
         <el-button
           type="primary"
           plain
           @click="openForm('create')"
           v-hasPermi="['pms:iot-sap-stock:create']"
         >
-          <Icon icon="ep:plus" class="mr-5px" /> 新增
+          <Icon icon="ep:plus" class="mr-5px" /> {{ t('operationFill.add') }}
         </el-button>
         <el-button
           type="success"
@@ -99,16 +99,16 @@
   <!-- 列表 -->
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-      <el-table-column label="工厂" align="center" prop="factory" />
-      <el-table-column label="库存地点" align="center" prop="projectDepartment" />
-      <el-table-column label="物料编码" align="center" prop="materialCode" />
-      <el-table-column label="物料名称" align="center" prop="materialName" />
-      <el-table-column label="数量" align="center" prop="quantity" />
-      <el-table-column label="单价" align="center" prop="unitPrice" />
-      <el-table-column label="单位" align="center" prop="unit" />
-      <el-table-column label="安全库存" align="center" prop="safetyStock" />
+      <el-table-column :label="t('workOrderMaterial.factory')" align="center" prop="factory" />
+      <el-table-column :label="t('workOrderMaterial.storageLocation')" align="center" prop="projectDepartment" />
+      <el-table-column :label="t('chooseMaintain.materialCode')" align="center" prop="materialCode" />
+      <el-table-column :label="t('chooseMaintain.materialName')" align="center" prop="materialName" />
+      <el-table-column :label="t('route.quantity')" align="center" prop="quantity" />
+      <el-table-column :label="t('workOrderMaterial.unitPrice')" align="center" prop="unitPrice" />
+      <el-table-column :label="t('workOrderMaterial.unit')" align="center" prop="unit" />
+      <el-table-column :label="t('route.safetyStock')" align="center" prop="safetyStock" />
       <el-table-column
-        label="创建时间"
+        :label="t('chooseMaintain.createTime')"
         align="center"
         prop="createTime"
         :formatter="dateFormatter"