yuanchao hai 2 meses
pai
achega
f7ed9f46dc

+ 22 - 4
src/locales/en.ts

@@ -55,7 +55,8 @@ export default {
     updateTime: 'Update Time',
     copy: 'Copy',
     copySuccess: 'Copy Success',
-    copyError: 'Copy Error'
+    copyError: 'Copy Error',
+    leftNode:'Please select the left node'
   },
   lock: {
     lockScreen: 'Lock screen',
@@ -495,7 +496,8 @@ export default {
     operation:'Operation',
     duty:'RP',
     view:'View',
-    fill:'Fill'
+    fill:'Fill',
+    all:'All',
   },
   operationFillForm:{
     team:'Team',
@@ -967,7 +969,9 @@ export default {
     itemHolder:'Please enter inspection items',
     sortHolder:'Please enter sort holder',
     InspectionStandards:'IS',
-    stanHolder:'Please enter inspections standards'
+    stanHolder:'Please enter inspections standards',
+    isException:'IsException',
+    exceptionDes:'ExceptionDes'
   },
   route:{
     RouteName:'RouteName',
@@ -987,7 +991,21 @@ export default {
   stock:{
     selectStock:'SelectStock',
     storageTime:'StorageTime',
+    selectMaterial:'SelectMaterial',
     quantity: 'quantity',
-    requQuantity: 'requisitionQuantity'
+    requQuantity: 'requisitionQuantity',
+    DelayMaintenance:'DelayMaintenance',
+    DelayReason:'DelayReason',
+    MaterialMaster:'MaterialMaster'
+  },
+  process:{
+    processName:'ProcessName',
+    holder:'Please enter process name',
+    classify:'Please select process classify',
+    status:'Please select process status',
+    advancedFilter:'AdvancedFilter',
+    belongProcess:'BelongProcess',
+    selProcess:'Please select process ',
+    InitiationTime:'InitiationTime',
   },
 }

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

@@ -55,7 +55,8 @@ export default {
     updateTime: '更新时间',
     copy: '复制',
     copySuccess: '复制成功',
-    copyError: '复制失败'
+    copyError: '复制失败',
+    leftNode:'请选择左侧节点'
   },
   lock: {
     lockScreen: '锁定屏幕',
@@ -490,7 +491,8 @@ export default {
     operation:'操作',
     duty:'责任人',
     view:'查看',
-    fill:'填写'
+    fill:'填写',
+    all:'全部',
   },
   operationFillForm:{
     team:'所属队伍',
@@ -961,7 +963,9 @@ export default {
     itemHolder:'请输入巡检项',
     sortHolder:'请输入排序',
     InspectionStandards:'巡检标准',
-    stanHolder:'请输入巡检标准'
+    stanHolder:'请输入巡检标准',
+    isException:'是否异常',
+    exceptionDes:'异常描述'
   },
   route:{
     RouteName:'路线名称',
@@ -983,7 +987,20 @@ export default {
     storageTime:'入库时间',
     selectMaterial:'选择物料',
     quantity: '库存数量',
-    requQuantity: '领用数量'
+    requQuantity: '领用数量',
+    DelayMaintenance:'推迟保养',
+    DelayReason:'推迟原因',
+    MaterialMaster:'物料主数据'
+  },
+  process:{
+    processName:'流程名称',
+    holder:'请输入流程名称',
+    classify:'请选择流程分类',
+    status:'请选择流程状态',
+    advancedFilter:'高级筛选',
+    belongProcess:'所属流程',
+    selProcess:'请选择流程定义 ',
+    InitiationTime:'发起时间',
   },
 
   'OAuth 2.0': 'OAuth 2.0' // 避免菜单名是 OAuth 2.0 时,一直 warn 报错

+ 18 - 18
src/views/bpm/processInstance/index.vue

@@ -10,10 +10,10 @@
       :inline="true"
       label-width="68px"
     >
-      <el-form-item label="" prop="name">
+      <el-form-item :label="t('process.processName')" prop="name" style="margin-left: 35px">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入流程名称"
+          :placeholder="t('process.holder')"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
@@ -21,13 +21,13 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> {{t('operationFill.search')}}</el-button>
       </el-form-item>
 
-      <el-form-item label="" prop="category" class="absolute right-[300px]">
+      <el-form-item label="" prop="category" class="absolute right-[400px]">
         <el-select
           v-model="queryParams.category"
-          placeholder="请选择流程分类"
+          :placeholder="t('process.classify')"
           clearable
           class="!w-155px"
           @change="handleQuery"
@@ -40,10 +40,10 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="" prop="status" class="absolute right-[130px]">
+      <el-form-item label="" prop="status" class="absolute right-[230px]">
         <el-select
           v-model="queryParams.status"
-          placeholder="请选择流程状态"
+          :placeholder="t('process.status')"
           clearable
           class="!w-155px"
           @change="handleQuery"
@@ -68,18 +68,19 @@
         >
           <template #reference>
             <el-button @click="showPopover = !showPopover">
-              <Icon icon="ep:plus" class="mr-5px" />高级筛选
+              <Icon icon="ep:plus" class="mr-5px" />
+              {{ t('process.advancedFilter') }}
             </el-button>
           </template>
           <el-form-item
-            label="所属流程"
+            :label="t('process.belongProcess')"
             class="font-bold"
             label-position="top"
             prop="processDefinitionKey"
           >
             <el-select
               v-model="queryParams.processDefinitionKey"
-              placeholder="请选择流程定义"
+              :placeholder="t('process.selProcess')"
               clearable
               class="!w-390px"
               @change="handleQuery"
@@ -92,22 +93,22 @@
               />
             </el-select>
           </el-form-item>
-          <el-form-item label="发起时间" class="font-bold" label-position="top" prop="createTime">
+          <el-form-item :label="t('process.InitiationTime')" class="font-bold" label-position="top" 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-240px"
             />
           </el-form-item>
           <el-form-item class="font-bold" label-position="top">
             <div class="flex justify-end w-full">
-              <el-button @click="resetQuery">清空</el-button>
-              <el-button @click="showPopover = false">取消</el-button>
-              <el-button type="primary" @click="handleQuery">确认</el-button>
+              <el-button @click="resetQuery">{{ t('common.reset') }}</el-button>
+              <el-button @click="showPopover = false">{{ t('common.cancel') }}</el-button>
+              <el-button type="primary" @click="handleQuery">{{ t('common.ok') }}</el-button>
             </div>
           </el-form-item>
         </el-popover>
@@ -118,7 +119,7 @@
   <!-- 列表 -->
   <ContentWrap>
     <el-table v-loading="loading" :data="list">
-      <el-table-column label="流程名称" align="center" prop="name" min-width="200px" fixed="left" />
+      <el-table-column :label="t('process.processName')" align="center" prop="name" min-width="200px" fixed="left" />
       <el-table-column label="摘要" prop="summary" width="180" fixed="left">
         <template #default="scope">
           <div class="flex flex-col" v-if="scope.row.summary && scope.row.summary.length > 0">
@@ -225,7 +226,6 @@ import { CategoryApi, CategoryVO } from '@/api/bpm/category'
 import { ProcessInstanceVO } from '@/api/bpm/processInstance'
 import * as DefinitionApi from '@/api/bpm/definition'
 import { BpmProcessInstanceStatus } from '@/utils/constants'
-
 defineOptions({ name: 'BpmProcessInstanceMy' })
 
 const router = useRouter() // 路由

+ 1 - 1
src/views/pms/inspect/item/index.vue

@@ -17,7 +17,7 @@
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item :label="t('common.createTime')" prop="createTime">
+      <el-form-item :label="t('common.createTime')" prop="createTime" label-width="100px">
         <el-date-picker
           v-model="queryParams.createTime"
           value-format="YYYY-MM-DD HH:mm:ss"

+ 9 - 8
src/views/pms/inspect/order/WriteOrder.vue

@@ -53,10 +53,10 @@
                     clearable
                   />
                 </el-form-item>
-                <el-form-item label="是否异常" prop="ifNormal">
+                <el-form-item :label="t('inspect.isException')" prop="ifNormal">
                   <el-select
                     v-model="formData[tabIndex][currentStep[tabIndex]].ifNormal"
-                    placeholder="请选择是否异常"
+                    :placeholder="t('inspect.isException')"
                     clearable
                   >
                     <el-option
@@ -69,7 +69,7 @@
                 </el-form-item>
 
                 <el-form-item
-                  label="异常描述"
+                  :label="t('inspect.exceptionDes')"
                   prop="description"
                   :rules="formData[tabIndex][currentStep[tabIndex]].ifNormal ? descriptionRule : []"
                 >
@@ -77,11 +77,11 @@
                     v-model="formData[tabIndex][currentStep[tabIndex]].description"
                     type="textarea"
                     :rows="5"
-                    placeholder="请填写异常描述"
+                    :placeholder="t('inspect.exceptionDes')"
                   />
                 </el-form-item>
 
-                <el-form-item label="图片" prop="picUrl">
+                <el-form-item :label="t('deviceForm.picture')" prop="picUrl">
                   <UploadImg
                     v-model="formData[tabIndex][currentStep[tabIndex]].picUrl"
                     height="55px"
@@ -106,17 +106,18 @@
             </ContentWrap>
             <ContentWrap style="margin-top: 50px">
               <el-card>
-                <span style="font-weight: bold">巡检标准:</span
+                <span style="font-weight: bold">{{ t('inspect.InspectionStandards') }}:</span
                 >{{ tab.orderDetails[currentStep[tabIndex]].standard }}<br />
                 <el-divider />
-                <span style="font-weight: bold">附件:</span>
+                <span style="font-weight: bold">{{ t('fileInfo.appendix') }}:</span>
                 <el-button
                   v-if="tab.orderDetails[currentStep[tabIndex]].urls"
                   link
                   type="primary"
                   @click="openWeb(tab.orderDetails[currentStep[tabIndex]].urls)"
                 >
-                  <Icon size="19" icon="ep:view" />预览
+                  <Icon size="19" icon="ep:view" />
+                  {{ t('action.preview') }}
                 </el-button>
               </el-card>
             </ContentWrap>

+ 7 - 7
src/views/pms/inspect/plan/RouteInspectItemDrawer.vue

@@ -1,6 +1,6 @@
 <template>
   <el-drawer
-    title="巡检路线"
+    :title="t('route.InspectionRoute')"
     :append-to-body="true"
     :model-value="modelValue"
     @update:model-value="$emit('update:modelValue', $event)"
@@ -28,15 +28,15 @@
 
             <!-- 组件内容 -->
             <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
+              >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-weight: bold">{{ t('inspect.InspectionStandards') }}:</span
               ><span style="font-size: 14px">{{ element.standard }}</span><br/>
               <div v-if="element.ifNormal!=undefined">
-                <span style="font-weight: bold;color: #2bb673">是否异常:</span><span style="font-size: 14px">{{ element.ifNormal?"是":"否" }}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                <span style="font-weight: bold;color: #2bb673">异常描述:</span
+                <span style="font-weight: bold;color: #2bb673">{{ t('inspect.isException') }}:</span><span style="font-size: 14px">{{ element.ifNormal?"是":"否" }}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                <span style="font-weight: bold;color: #2bb673">{{ t('inspect.exceptionDes') }}:</span
               ><span style="font-size: 14px">{{ element.description }}</span><br/>
-                <span style="font-weight: bold;color: #2bb673" v-if="element.picUrl">图片:<span style="font-size: 14px;vertical-align: middle"><Icon style="color: deepskyblue" icon="ep:view" @click="openWeb(element.picUrl)" /></span></span>
+                <span style="font-weight: bold;color: #2bb673" v-if="element.picUrl">{{ t('deviceForm.picture') }}:<span style="font-size: 14px;vertical-align: middle"><Icon style="color: deepskyblue" icon="ep:view" @click="openWeb(element.picUrl)" /></span></span>
               </div>
             </div>
           </div>
@@ -48,7 +48,7 @@
 <script setup lang="ts">
 import { defineEmits, defineOptions, ref } from 'vue'
 import draggable from 'vuedraggable'
-
+const { t } = useI18n() // 国际化
 const drawerVisible = ref<boolean>(false)
 const emit = defineEmits(['update:modelValue', 'add'])
 const items = ref([])

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

@@ -33,7 +33,7 @@
               class="!w-240px"
             />
           </el-form-item>
-          <el-form-item :label="t('common.createTime')" prop="createTime">
+          <el-form-item :label="t('common.createTime')" prop="createTime" label-width="100px">
             <el-date-picker
               v-model="queryParams.createTime"
               value-format="YYYY-MM-DD HH:mm:ss"

+ 50 - 50
src/views/pms/iotmainworkorder/IotMainWorkOrder.vue

@@ -11,13 +11,13 @@
       <div class="base-expandable-content">
         <el-row>
           <el-col :span="8">
-            <el-form-item label="工单名称" prop="name">
+            <el-form-item :label="t('bomList.name')" prop="name">
               <el-input type="text" v-model="formData.name" />
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="保养方式" prop="type">
-              <el-select v-model="formData.outsourcingFlag" placeholder="请选择保养方式" clearable>
+            <el-form-item :label="t('mainPlan.MaintenanceMethod')" prop="type">
+              <el-select v-model="formData.outsourcingFlag" :placeholder="t('faultForm.choose')" clearable>
                 <el-option
                   v-for="dict in getIntDictOptions(DICT_TYPE.PMS_ORDER_PROCESS_MODE)"
                   :key="dict.value"
@@ -33,7 +33,7 @@
             -->
           </el-col>
           <el-col :span="8">
-            <el-form-item label="保养费用" prop="cost">
+            <el-form-item :label="t('mainPlan.MaintenanceCost')" prop="cost">
               <el-input
                 v-model="formData.cost"
                 placeholder="根据物料消耗自动生成"
@@ -58,29 +58,29 @@
             -->
           </el-col>
           <el-col :span="8">
-            <el-form-item label="实际保养开始时间" prop="actualStartTime">
+            <el-form-item :label="t('fault.start')" prop="actualStartTime">
               <el-date-picker
                 style="width: 150%"
                 v-model="formData.actualStartTime"
                 type="datetime"
                 value-format="x"
-                placeholder="实际保养开始时间"
+                :placeholder="t('fault.start')"
               />
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="实际保养结束时间" prop="actualEndTime">
+            <el-form-item :label="t('fault.end')" prop="actualEndTime">
               <el-date-picker
                 style="width: 150%"
                 v-model="formData.actualEndTime"
                 type="datetime"
                 value-format="x"
-                placeholder="实际保养结束时间"
+                :placeholder="t('fault.end')"
               />
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="其他费用" prop="otherCost">
+            <el-form-item :label="t('mainPlan.otherCost')" prop="otherCost">
               <el-input
                 v-model="formData.otherCost"
                 @input="handleInput(formData.otherCost, 'otherCost')"
@@ -89,8 +89,8 @@
             </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('faultForm.remark')" prop="remark">
+              <el-input v-model="formData.remark" type="textarea" :placeholder="t('faultForm.rHolder')" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -122,17 +122,17 @@
         <!-- 添加序号列 -->
         <el-table-column
           type="index"
-          label="序号"
-          width="60"
+          :label="t('maintain.serial')"
+          width="70"
           align="center"
         />
-        <el-table-column label="bom节点" align="center" prop="bomNodeId" v-if="false"/>
-        <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" :formatter="erpPriceTableColumnFormatter"/>
-        <el-table-column label="累计运行公里数(KM)" align="center" prop="totalMileage" :formatter="erpPriceTableColumnFormatter"/>
-        <el-table-column label="保养项" align="center" prop="name" />
-        <el-table-column label="运行里程" key="mileageRule" width="80">
+        <el-table-column :label="t('bomList.bomNode')" align="center" prop="bomNodeId" v-if="false"/>
+        <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" :formatter="erpPriceTableColumnFormatter"/>
+        <el-table-column :label="t('operationFillForm.sumKil')" align="center" prop="totalMileage" :formatter="erpPriceTableColumnFormatter"/>
+        <el-table-column :label="t('mainPlan.MaintItems')" align="center" prop="name" />
+        <el-table-column :label="t('main.mileage')" key="mileageRule" width="80">
           <template #default="scope">
             <el-switch
               v-model="scope.row.mileageRule"
@@ -142,7 +142,7 @@
             />
           </template>
         </el-table-column>
-        <el-table-column label="运行时间" key="runningTimeRule" width="80">
+        <el-table-column :label="t('main.runTime')" key="runningTimeRule" width="90">
           <template #default="scope">
             <el-switch
               v-model="scope.row.runningTimeRule"
@@ -152,7 +152,7 @@
             />
           </template>
         </el-table-column>
-        <el-table-column label="自然日期" key="naturalDateRule" width="80">
+        <el-table-column :label="t('main.date')" key="naturalDateRule" width="80">
           <template #default="scope">
             <el-switch
               v-model="scope.row.naturalDateRule"
@@ -162,7 +162,7 @@
             />
           </template>
         </el-table-column>
-        <el-table-column label="已选物料数" align="center" width="100">
+        <el-table-column :label="t('iotMaintain.numberOfMaterials')" align="center" width="180">
           <template #default="scope">
             {{ getMaterialCount(scope.row.bomNodeId) }}
           </template>
@@ -172,7 +172,7 @@
           </template>
           -->
         </el-table-column>
-        <el-table-column label="操作" align="center" min-width="120px">
+        <el-table-column :label="t('iotMaintain.operation')" align="center" min-width="120px">
           <template #default="scope">
             <div style="display: flex; justify-content: center; align-items: center; width: 100%">
               <!-- 新增配置按钮 -->
@@ -182,7 +182,7 @@
                   type="primary"
                   @click="openConfigDialog(scope.row)"
                 >
-                  推迟保养
+                  {{ t('stock.DelayMaintenance') }}
                 </el-button>
               </div>
               <div style="margin-left: 12px">
@@ -191,7 +191,7 @@
                   type="primary"
                   @click="openMaterialForm(scope.row)"
                 >
-                  选择物料
+                  {{ t('stock.selectMaterial') }}
                 </el-button>
               </div>
               <div style="margin-left: 12px">
@@ -200,7 +200,7 @@
                   type="primary"
                   @click="handleView(scope.row.bomNodeId)"
                 >
-                  物料详情
+                  {{ t('bomList.materialDetail') }}
                 </el-button>
               </div>
             </div>
@@ -212,7 +212,7 @@
     <!-- 选择的物料列表 -->
     <ContentWrap>
       <el-table v-loading="false" :data="materialList" :stripe="true" :show-overflow-tooltip="true" v-if="false">
-        <el-table-column label="bom节点" align="center" prop="bomNodeId" />
+        <el-table-column :label="t('bomList.bomNode')" align="center" prop="bomNodeId" />
         <el-table-column label="工厂id" align="center" prop="factoryId" v-if="false"/>
         <el-table-column label="工厂名称" align="center" prop="factory" v-if="false"/>
         <el-table-column label="成本中心id" align="center" prop="costCenterId" v-if="false"/>
@@ -232,8 +232,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>
@@ -249,11 +249,11 @@
     </template>
     <el-form :model="configDialog.form" label-width="200px" :rules="configFormRules" ref="configFormRef">
       <div class="form-group">
-        <div class="group-title">基础保养记录</div>
+        <div class="group-title">{{ t('mainPlan.basicMaintenanceRecords') }}</div>
         <!-- 里程配置 -->
         <el-form-item
           v-if="configDialog.current?.mileageRule === 0"
-          label="上次保养里程数(KM)"
+          :label="t('mainPlan.lastMaintenanceMileage')"
           prop="lastRunningKilometers"
         >
           <el-input-number
@@ -269,7 +269,7 @@
         <!-- 推迟公里数 -->
         <el-form-item
           v-if="configDialog.current?.mileageRule === 0"
-          label="推迟公里数(KM)"
+          :label="t('mainPlan.DelayKil')"
           prop="delayKilometers"
         >
           <el-input-number
@@ -284,7 +284,7 @@
         <!-- 运行时间配置 -->
         <el-form-item
           v-if="configDialog.current?.runningTimeRule === 0"
-          label="上次保养运行时间(H)"
+          :label="t('mainPlan.lastMaintenanceOperationTime')"
           prop="lastRunningTime"
         >
           <el-input-number
@@ -300,7 +300,7 @@
         <!-- 推迟时长 -->
         <el-form-item
           v-if="configDialog.current?.runningTimeRule === 0"
-          label="推迟时长(H)"
+          :label="t('mainPlan.DelayDuration')"
           prop="delayDuration"
         >
           <el-input-number
@@ -315,7 +315,7 @@
         <!-- 自然日期配置 -->
         <el-form-item
           v-if="configDialog.current?.naturalDateRule === 0"
-          label="上次保养自然日期"
+          :label="t('mainPlan.lastMaintenanceNaturalDate')"
           prop="lastNaturalDate"
         >
           <el-date-picker
@@ -331,7 +331,7 @@
         <!-- 推迟自然日期 -->
         <el-form-item
           v-if="configDialog.current?.naturalDateRule === 0"
-          label="推迟自然日期(D)"
+          :label="t('mainPlan.DelayDate')"
           prop="delayNaturalDate"
         >
           <el-input-number
@@ -344,7 +344,7 @@
           />
         </el-form-item>
         <el-form-item
-          label="推迟原因"
+          :label="t('stock.DelayReason')"
           prop="delayReason"
           v-if="configDialog.current?.mileageRule === 0 ||
               configDialog.current?.runningTimeRule === 0 ||
@@ -354,18 +354,18 @@
             v-model="configDialog.form.delayReason"
             type="textarea"
             :rows="2"
-            placeholder="请填写推迟原因"
+            :placeholder="t('stock.DelayReason')"
             style="width: 60%"
           />
         </el-form-item>
       </div>
 
       <div class="form-group" v-if="configDialog.current?.mileageRule === 0">
-        <div class="group-title">运行里程规则配置</div>
+        <div class="group-title">{{ t('mainPlan.operatingMileageRuleConfiguration') }}</div>
         <!-- 保养规则周期值 + 提前量 -->
         <el-form-item
           v-if="configDialog.current?.mileageRule === 0"
-          label="运行里程周期(KM)"
+          :label="t('mainPlan.operatingMileageCycle')"
           prop="nextRunningKilometers"
         >
           <el-input-number
@@ -380,7 +380,7 @@
         </el-form-item>
         <el-form-item
           v-if="configDialog.current?.mileageRule === 0"
-          label="运行里程周期-提前量(KM)"
+          :label="t('mainPlan.OperatingMileageCycle_lead')"
           prop="kiloCycleLead"
         >
           <el-input-number
@@ -396,10 +396,10 @@
       </div>
 
       <div class="form-group" v-if="configDialog.current?.runningTimeRule === 0">
-        <div class="group-title">运行时间规则配置</div>
+        <div class="group-title">{{ t('mainPlan.RunTimeRuleConfiguration') }}</div>
         <el-form-item
           v-if="configDialog.current?.runningTimeRule === 0"
-          label="运行时间周期(H)"
+          :label="t('mainPlan.RunTimeCycle')"
           prop="nextRunningTime"
         >
           <el-input-number
@@ -414,7 +414,7 @@
         </el-form-item>
         <el-form-item
           v-if="configDialog.current?.runningTimeRule === 0"
-          label="运行时间周期-提前量(H)"
+          :label="t('mainPlan.RunTimeCycle_Lead')"
           prop="timePeriodLead"
         >
           <el-input-number
@@ -430,10 +430,10 @@
       </div>
 
       <div class="form-group" v-if="configDialog.current?.naturalDateRule === 0">
-        <div class="group-title">自然日规则配置</div>
+        <div class="group-title">{{ t('mainPlan.NaturalDayRuleConfig') }}</div>
         <el-form-item
           v-if="configDialog.current?.naturalDateRule === 0"
-          label="自然日周期(D)"
+          :label="t('mainPlan.NaturalDailyCycle') "
           prop="nextNaturalDate"
         >
           <el-input-number
@@ -447,7 +447,7 @@
         </el-form-item>
         <el-form-item
           v-if="configDialog.current?.naturalDateRule === 0"
-          label="自然日周期-提前量(D)"
+          :label="t('mainPlan.NaturalDailyCycle_Lead') "
           prop="naturalDatePeriodLead"
         >
           <el-input-number
@@ -462,8 +462,8 @@
       </div>
     </el-form>
     <template #footer>
-      <el-button @click="configDialog.visible = false">取消</el-button>
-      <el-button type="primary" @click="saveConfig">保存</el-button>
+      <el-button @click="configDialog.visible = false">{{ t('common.cancel')}}</el-button>
+      <el-button type="primary" @click="saveConfig">{{ t('common.ok')}}</el-button>
     </template>
   </el-dialog>
   <!-- 表单弹窗:添加/修改 -->

+ 35 - 34
src/views/pms/iotmainworkorder/IotMainWorkOrderAdd.vue

@@ -11,14 +11,14 @@
       <div class="base-expandable-content">
         <el-row>
           <el-col :span="8">
-            <el-form-item label="工单名称" prop="name">
+            <el-form-item :label="t('bomList.name')" prop="name">
 <!--              <el-input type="text" v-model="formData.name" />-->
               <lang-input v-model="formData.name" />
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="保养方式" prop="type">
-              <el-select v-model="formData.outsourcingFlag" placeholder="请选择保养方式" clearable>
+            <el-form-item :label="t('mainPlan.MaintenanceMethod')" prop="type">
+              <el-select v-model="formData.outsourcingFlag" :placeholder="t('faultForm.choose')" clearable>
                 <el-option
                   v-for="dict in getIntDictOptions(DICT_TYPE.PMS_ORDER_PROCESS_MODE)"
                   :key="dict.value"
@@ -35,7 +35,7 @@
 
           </el-col>
           <el-col :span="8">
-            <el-form-item label="保养费用" prop="cost">
+            <el-form-item :label="t('mainPlan.MaintenanceCost')" prop="cost">
               <el-input
                 v-model="formData.cost"
                 placeholder="根据物料消耗自动生成"
@@ -60,29 +60,29 @@
             -->
           </el-col>
           <el-col :span="8">
-            <el-form-item label="实际保养开始时间" prop="actualStartTime">
+            <el-form-item :label="t('fault.start')" prop="actualStartTime">
               <el-date-picker
                 style="width: 150%"
                 v-model="formData.actualStartTime"
                 type="datetime"
                 value-format="x"
-                placeholder="实际保养开始时间"
+                :placeholder="t('fault.start')"
               />
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="实际保养结束时间" prop="actualEndTime">
+            <el-form-item :label="t('fault.end')" prop="actualEndTime">
               <el-date-picker
                 style="width: 150%"
                 v-model="formData.actualEndTime"
                 type="datetime"
                 value-format="x"
-                placeholder="实际保养结束时间"
+                :placeholder="t('fault.end')"
               />
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="其他费用" prop="otherCost">
+            <el-form-item :label="t('mainPlan.otherCost')" prop="otherCost">
               <el-input
                 v-model="formData.otherCost"
                 @input="handleInput(formData.otherCost, 'otherCost')"
@@ -91,8 +91,8 @@
             </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('faultForm.remark')" prop="remark">
+              <el-input v-model="formData.remark" type="textarea" :placeholder="t('faultForm.rHolder')" />
             </el-form-item>
           </el-col>
 
@@ -112,7 +112,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('maintain.added') }}</el-button>
       </el-form-item>
       </el-form>
     </ContentWrap>
@@ -123,16 +124,16 @@
         <!-- 添加序号列 -->
         <el-table-column
           type="index"
-          label="序号"
-          width="60"
+          :label="t('maintain.serial')"
+          width="70"
           align="center"
         />
-        <el-table-column label="bom节点" align="center" prop="bomNodeId" v-if="false"/>
-        <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" :formatter="erpPriceTableColumnFormatter"/>
-        <el-table-column label="累计运行公里数(KM)" align="center" prop="totalMileage" :formatter="erpPriceTableColumnFormatter"/>
-        <el-table-column label="保养项" align="center" prop="name" />
+        <el-table-column :label="t('bomList.bomNode')" align="center" prop="bomNodeId" v-if="false"/>
+        <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" :formatter="erpPriceTableColumnFormatter"/>
+        <el-table-column :label="t('operationFillForm.sumKil')" align="center" prop="totalMileage" :formatter="erpPriceTableColumnFormatter"/>
+        <el-table-column :label="t('mainPlan.MaintItems')" align="center" prop="name" />
         <!--
         <el-table-column label="运行里程" key="mileageRule" width="80">
           <template #default="scope">
@@ -162,7 +163,7 @@
           </template>
         </el-table-column>
         -->
-        <el-table-column label="已选物料数" align="center" width="100">
+        <el-table-column :label="t('iotMaintain.numberOfMaterials')" align="center" width="100">
           <!--
           <template #default="scope">
             {{ hasMaterial(scope.row.bomNodeId) ? '是' : '否' }}
@@ -172,7 +173,7 @@
             {{ getMaterialCount(scope.row.bomNodeId) }}
           </template>
         </el-table-column>
-        <el-table-column label="操作" align="center" min-width="120px">
+        <el-table-column :label="t('iotMaintain.operation')" align="center" min-width="120px">
           <template #default="scope">
             <div style="display: flex; justify-content: center; align-items: center; width: 100%">
               <div>
@@ -183,7 +184,7 @@
                   type="danger"
                   @click="handleDelete(scope.row.deviceId+'-'+scope.row.bomNodeId)"
                 >
-                  移除
+                  {{ t('iotMaintain.remove') }}
                 </el-button>
               </div>
               <!-- 新增配置按钮
@@ -202,7 +203,7 @@
                   type="primary"
                   @click="openMaterialForm(scope.row)"
                 >
-                  选择物料
+                  {{ t('iotMaintain.selectMaterials') }}
                 </el-button>
               </div>
               <div style="margin-left: 12px">
@@ -211,7 +212,7 @@
                   type="primary"
                   @click="handleView(scope.row.bomNodeId)"
                 >
-                  物料详情
+                  {{ t('bomList.materialDetail') }}
                 </el-button>
               </div>
             </div>
@@ -223,13 +224,13 @@
     <!-- 选择的物料列表 -->
     <ContentWrap>
       <el-table v-loading="false" :data="materialList" :stripe="true" :show-overflow-tooltip="true" v-if="false">
-        <el-table-column label="bom节点" align="center" prop="bomNodeId" />
-        <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="单价(CNY/元)" align="center" prop="unitPrice" :formatter="erpPriceTableColumnFormatter"/>
-        <el-table-column label="消耗数量" align="center" prop="quantity" />
-        <el-table-column label="总库存数量" align="center" prop="totalInventoryQuantity" />
+        <el-table-column :label="t('bomList.bomNode')" align="center" prop="bomNodeId" />
+        <el-table-column :label="t('workOrderMaterial.materialCode')" align="center" prop="materialCode" />
+        <el-table-column :label="t('workOrderMaterial.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('workOrderMaterial.ConsumptionQuantity')" align="center" prop="quantity" />
+        <el-table-column :label="t('workOrderMaterial.total')" align="center" prop="totalInventoryQuantity" />
       </el-table>
     </ContentWrap>
 
@@ -237,8 +238,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>

+ 2 - 2
src/views/pms/iotmainworkorder/index.vue

@@ -32,7 +32,7 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item :label="t('common.createTime')" prop="createTime">
+      <el-form-item :label="t('common.createTime')" prop="createTime" label-width="100px">
         <el-date-picker
           v-model="queryParams.createTime"
           value-format="YYYY-MM-DD HH:mm:ss"
@@ -213,7 +213,7 @@ const resetQuery = () => {
 // 保养状态 下拉列表 添加数据字典外的选项
 const resultOptions = computed(() => [
   {
-    label: '全部',
+    label: t('operationFill.all'),
     value: '0' // 空值会触发 clearable 效果
   },
   ...getStrDictOptions(DICT_TYPE.PMS_MAIN_WORK_ORDER_RESULT)

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

@@ -39,7 +39,7 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item :label="t('operationFill.createTime')" prop="createTime">
+        <el-form-item :label="t('operationFill.createTime')" prop="createTime" label-width="100px">
           <el-date-picker
             v-model="queryParams.createTime"
             value-format="YYYY-MM-DD HH:mm:ss"

+ 14 - 14
src/views/pms/maintain/material/MaintainMaterialDrawer.vue

@@ -1,6 +1,6 @@
 <template>
   <el-drawer
-    title="新增物料"
+    :title="t('workOrderMaterial.added')"
     :append-to-body="true"
     :model-value="modelValue"
     @update:model-value="$emit('update:modelValue', $event)"
@@ -16,24 +16,24 @@
       label-width="100px"
       v-loading="formLoading"
     >
-      <el-form-item label="物料主数据" prop="code1" style="margin-bottom: 30px">
+      <el-form-item :label="t('stock.MaterialMaster')" prop="code1" style="margin-bottom: 30px">
         <el-select
           v-model="drawerFormData.code1"
           :model-value="materialLabel"
-          placeholder="请输入物料主数据"
+          :placeholder="t('stock.MaterialMaster')"
           @click="openForm"
         />
       </el-form-item>
-      <el-form-item label="物料编码" prop="code1" style="margin-bottom: 30px">
+      <el-form-item :label="t('workOrderMaterial.materialCode')" prop="code1" style="margin-bottom: 30px">
         <el-input v-model="drawerFormData.code1" disabled />
       </el-form-item>
-      <el-form-item label="物料名称" prop="name1" style="margin-bottom: 30px">
+      <el-form-item :label="t('workOrderMaterial.materialName')" prop="name1" style="margin-bottom: 30px">
         <el-input v-model="drawerFormData.name1" disabled />
       </el-form-item>
-      <el-form-item label="单位" prop="unit1" style="margin-bottom: 30px">
-        <el-input v-model="drawerFormData.unit1" disabled placeholder="请输入单位" />
+      <el-form-item :label="t('workOrderMaterial.unit')" prop="unit1" style="margin-bottom: 30px">
+        <el-input v-model="drawerFormData.unit1" disabled :placeholder="t('workOrderMaterial.unit')" />
       </el-form-item>
-      <el-form-item label="消耗数量" prop="depleteCount1" style="margin-bottom: 30px">
+      <el-form-item :label="t('workOrderMaterial.ConsumptionQuantity')" prop="depleteCount1" style="margin-bottom: 30px">
         <el-input-number
           v-model="drawerFormData.depleteCount1"
           :min="0"
@@ -44,7 +44,7 @@
           controls-position="right"
         />
       </el-form-item>
-      <el-form-item label="单价(元)" prop="price1" style="margin-bottom: 30px">
+      <el-form-item :label="t('workOrderMaterial.unitPrice')" prop="price1" style="margin-bottom: 30px">
         <el-input-number
           v-model="drawerFormData.price1"
           :min="0"
@@ -54,13 +54,13 @@
           controls-position="right"
         />
       </el-form-item>
-      <el-form-item label="备注" prop="remark1" style="margin-bottom: 30px">
-        <el-input v-model="drawerFormData.remark1" type="textarea" placeholder="请输入备注" />
+      <el-form-item :label="t('deviceForm.remark')" prop="remark1" style="margin-bottom: 30px">
+        <el-input v-model="drawerFormData.remark1" type="textarea" :placeholder="t('deviceForm.remarkHolder')" />
       </el-form-item>
     </el-form>
     <template #footer>
-      <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
-      <el-button @click="handleClose">取 消</el-button>
+      <el-button @click="submitForm" type="primary" :disabled="formLoading">{{ t('common.ok') }}</el-button>
+      <el-button @click="handleClose">{{ t('common.cancel') }}</el-button>
     </template>
   </el-drawer>
   <MaterialSelect ref="materialFormRef" @choose="materialChoose" />
@@ -71,7 +71,7 @@ import { ElMessage } from 'element-plus'
 import * as PmsMaterialApi from '@/api/pms/material'
 import { CommonStatusEnum } from '@/utils/constants'
 import MaterialSelect from './MaterialSelect.vue'
-
+const { t } = useI18n() // 国际化
 const drawerVisible = ref<boolean>(false)
 const emit = defineEmits(['update:modelValue', 'add'])
 const materialLabel = ref('') // 表单的类型:create - 新增;update - 修改

+ 1 - 1
src/views/system/tree/index.vue

@@ -251,7 +251,7 @@ const handleDelete = async (id: number) => {
 const formRef = ref()
 const openForm = (type: string, id?: number) => {
   if (!queryParams.classId) {
-    message.error('请选择左侧节点')
+    message.error(t('common.leftNode'))
     return
   }
   formRef.value.open(type, id)