From 5e4dc3af68c2bb0a5a33fcb395e7704207125ce8 Mon Sep 17 00:00:00 2001
From: CD配唱片 <CD配唱片>
Date: 星期二, 06 五月 2025 18:49:19 +0800
Subject: [PATCH] 提交中英文

---
 src/views/mainPlan/pipeProduceStatics/index.vue         |    9 
 src/views/mainPlan/sheetMetalSupplyGap/index.vue        |  213 ++++++++++---------
 src/views/mainPlan/plateProcessStat/index.vue           |    3 
 src/utils/i18n/locales/basic/index.js                   |   13 +
 src/layout/components/Navbar.vue                        |   42 ++-
 src/views/mainPlan/platePlanList/index.vue              |    3 
 src/assets/images/en.svg                                |    1 
 src/utils/i18n/locales/common/index.js                  |   22 +
 src/views/mainPlan/gasPiping/index.vue                  |    3 
 src/views/mainPlan/gasProduceStatics/index.vue          |    8 
 src/utils/i18n/index.js                                 |    7 
 src/utils/i18n/locales/plan/index.js                    |   81 +++++--
 src/main.js                                             |    5 
 src/views/basicData/processRouteDataPreparate/index.vue |   18 +
 src/views/partPlan/index.vue                            |    4 
 src/views/mainPlan/platePlan/index.vue                  |    3 
 src/assets/images/zh.svg                                |    1 
 src/views/mainPlan/sheetMetalRedundantReport/index.vue  |  178 ++++++++-------
 18 files changed, 357 insertions(+), 257 deletions(-)

diff --git a/src/assets/images/en.svg b/src/assets/images/en.svg
new file mode 100644
index 0000000..4571805
--- /dev/null
+++ b/src/assets/images/en.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1746519038303" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5341" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M879.104 696.832V629.76h-27.648v67.584h-134.144v176.128h27.136V849.92h107.008v128h27.648v-128h107.52v23.552h27.136v-176.128h-134.656z m-27.648 126.464h-107.008v-100.352h107.008v100.352z m135.168 0h-107.52v-100.352h107.52v100.352zM739.84 605.184V146.432c0-55.296-44.544-99.84-99.84-99.84H110.08C54.784 46.592 10.24 91.136 10.24 146.432v529.92c0 55.296 44.544 99.84 99.84 99.84h458.752c13.824 0 25.088-11.264 25.088-25.088 0-66.56 54.272-120.832 120.832-120.832 13.824 0 25.088-11.264 25.088-25.088z m-365.568-59.392H209.92V276.992h159.232v31.744H239.104v81.92h121.856v31.744H239.104v91.136h135.168v32.256z m165.888 0h-26.624V427.52c0-14.336-1.024-24.576-3.584-31.232-2.048-6.144-6.144-11.264-11.264-15.36-5.12-3.584-11.776-5.632-17.92-5.632-12.288-0.512-23.552 5.12-30.72 14.336-7.68 9.728-11.776 26.112-11.776 49.664v106.496h-27.136v-194.56H435.2V378.88c5.12-9.728 12.288-17.92 21.504-24.064 8.704-5.632 18.944-8.192 29.184-7.68 8.704 0 16.384 1.536 23.552 5.12 7.168 3.584 12.8 7.68 17.408 13.312 4.608 6.144 8.192 13.312 9.728 20.992 2.048 8.704 3.072 22.016 3.072 39.936v119.296z" p-id="5342" fill="#333333"></path></svg>
\ No newline at end of file
diff --git a/src/assets/images/zh.svg b/src/assets/images/zh.svg
new file mode 100644
index 0000000..a701189
--- /dev/null
+++ b/src/assets/images/zh.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1746518962767" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2623" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M524.8 550.4h83.2v83.2H524.8zM633.6 550.4h83.2v83.2H633.6z" fill="" p-id="2624"></path><path d="M832 326.4H467.2c-12.8 0-19.2 6.4-19.2 19.2 0 51.2-44.8 96-96 96-12.8 0-19.2 6.4-19.2 19.2V832c0 44.8 38.4 76.8 76.8 76.8H832c44.8 0 76.8-38.4 76.8-76.8V403.2c6.4-38.4-32-76.8-76.8-76.8z m-89.6 345.6h-19.2v-19.2H633.6v102.4h-19.2v-102.4H524.8v19.2h-19.2V531.2h108.8v-57.6h19.2v51.2h108.8v147.2z" fill="" p-id="2625"></path><path d="M108.8 377.6V166.4h128V192H134.4v64h96v25.6H134.4v70.4h108.8v25.6H108.8zM268.8 377.6V224h19.2v19.2l19.2-19.2h25.6c6.4 0 12.8 0 19.2 6.4 6.4 0 12.8 6.4 12.8 12.8 6.4 6.4 6.4 12.8 6.4 19.2v128h-19.2V288v-25.6c0-6.4-6.4-6.4-6.4-12.8s-12.8-6.4-19.2-6.4c-12.8 0-19.2 6.4-25.6 12.8-6.4 6.4-6.4 19.2-6.4 38.4v83.2h-25.6z" fill="" p-id="2626"></path></svg>
\ No newline at end of file
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 94099fc..a2de976 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -20,8 +20,18 @@
     <div class="right-menu">
       <template v-if="appStore.device !== 'mobile'"> </template>
       <div class="mt5">
-          <el-button @click="changeLanguage('zh')">涓枃</el-button>
-          <el-button @click="changeLanguage('en')">English</el-button>
+        <!-- <el-button @click="changeLanguage('zh')">涓枃</el-button>
+          <el-button @click="changeLanguage('en')">English</el-button> -->
+        <el-dropdown>
+          <img class="zh_icon" v-if="locale==='zh'" src="@/assets/images/zh.svg" alt="zh" />
+          <img class="zh_icon" v-if="locale==='en'" src="@/assets/images/en.svg" alt="en" />
+          <template #dropdown>
+            <el-dropdown-menu>
+              <el-dropdown-item  @click="changeLanguage('zh','zh-CN')">{{ $t(`common.topNav.zh`) }}</el-dropdown-item>
+              <el-dropdown-item @click="changeLanguage('en','en-US')">{{ $t(`common.topNav.en`) }}</el-dropdown-item>
+            </el-dropdown-menu>
+          </template>
+        </el-dropdown>
       </div>
       <div class="avatar-container">
         <el-dropdown
@@ -36,13 +46,13 @@
           <template #dropdown>
             <el-dropdown-menu>
               <router-link to="/user/profile">
-                <el-dropdown-item>{{ $t(`topNav.center`) }}</el-dropdown-item>
+                <el-dropdown-item>{{ $t(`common.topNav.center`) }}</el-dropdown-item>
               </router-link>
               <!-- <el-dropdown-item command="setLayout" v-if="settingsStore.showSettings">
                 <span>甯冨眬璁剧疆</span>
               </el-dropdown-item> -->
               <el-dropdown-item divided command="logout">
-                <span>{{ $t(`topNav.logout`) }}</span>
+                <span>{{ $t(`common.topNav.logout`) }}</span>
               </el-dropdown-item>
             </el-dropdown-menu>
           </template>
@@ -65,16 +75,20 @@
 import useAppStore from "@/store/modules/app";
 import useUserStore from "@/store/modules/user";
 import useSettingsStore from "@/store/modules/settings";
-import useLanguageStore from "@/store/modules/language"
-import { useI18n } from 'vue-i18n'//瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+import useLanguageStore from "@/store/modules/language";
+import { VxeUI } from 'vxe-table'
+import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+const { t, locale } = useI18n();
 const appStore = useAppStore();
 const userStore = useUserStore();
 const settingsStore = useSettingsStore();
 const languageStore = useLanguageStore();
 const { proxy } = getCurrentInstance();
-function changeLanguage(type) {
-  proxy.$i18n.locale = type;
-  languageStore.setLocale(type)
+function changeLanguage(type1,type2) {
+  proxy.$i18n.locale = type1;
+  languageStore.setLocale(type1);
+  VxeUI.setLanguage(type2)
+  // console.log(VxeUI.getLanguage(),'VxeUI.getLanguage()')
 }
 
 function toggleSideBar() {
@@ -158,8 +172,14 @@
     height: 100%;
     line-height: 50px;
     display: flex;
-    .mt5{
-      margin-top:5px;
+    .mt5 {
+      margin-top: 5px;
+      .zh_icon {
+        width: 35px;
+        height: 35px;
+        border:none;
+        outline: none;
+      }
     }
     &:focus {
       outline: none;
diff --git a/src/main.js b/src/main.js
index 496881d..c68bb70 100644
--- a/src/main.js
+++ b/src/main.js
@@ -48,6 +48,11 @@
 import VxeUITable from 'vxe-table'
 import 'vxe-table/lib/style.css'
 import i18n from '@/utils/i18n' // 寮曞叆 i18n 閰嶇疆鏂囦欢
+import zhCN from 'vxe-table/lib/locale/lang/zh-CN' // 涓枃(绠�浣�)
+import enUS from 'vxe-table/lib/locale/lang/en-US'
+// 娉ㄥ唽璇█
+VxeUITable.setI18n('zh-CN', zhCN)
+VxeUITable.setI18n('en-US', enUS)
 const app = createApp(App)
 
 // 鍏ㄥ眬鏂规硶鎸傝浇
diff --git a/src/utils/i18n/index.js b/src/utils/i18n/index.js
index 3a11011..0e58105 100644
--- a/src/utils/i18n/index.js
+++ b/src/utils/i18n/index.js
@@ -2,14 +2,17 @@
 import { createI18n } from 'vue-i18n'
 import {zh as planZh, en as planEn} from './locales/plan'
 import {zh as commonZh, en as commonEn} from './locales/common'
+import {zh as basicZh, en as basicEn} from './locales/basic'
 // import {zh as testZh, en as testEn} from './test' 
 let EN = {
   plan: planEn,
-  common: commonEn
+  common: commonEn,
+  basic: basicEn
 }
 let ZH = {
   plan: planZh,
-  common: commonZh
+  common: commonZh,
+  basic: basicZh
 }
 const i18n = createI18n({
   locale: 'zh', // 璁剧疆榛樿璇█涓轰腑鏂�
diff --git a/src/utils/i18n/locales/basic/index.js b/src/utils/i18n/locales/basic/index.js
new file mode 100644
index 0000000..f6c7e6d
--- /dev/null
+++ b/src/utils/i18n/locales/basic/index.js
@@ -0,0 +1,13 @@
+export const zh = {
+  query: {},
+  upload: {},
+  table: {},
+  table: {},
+};
+
+export const en = {
+  query: {},
+  upload: {},
+  table: {},
+  table: {},
+};
diff --git a/src/utils/i18n/locales/common/index.js b/src/utils/i18n/locales/common/index.js
index 16ed4c1..d15fd0c 100644
--- a/src/utils/i18n/locales/common/index.js
+++ b/src/utils/i18n/locales/common/index.js
@@ -2,6 +2,8 @@
   topNav: {
     center: "涓汉涓績",
     logout: "閫�鍑虹櫥褰�",
+    zh: "涓枃",
+    en: "鑻辨枃",
   },
   common: {
     import: "瀵煎叆",
@@ -13,15 +15,18 @@
     showSearch: "鏄剧ず鎼滅储",
     refresh: "鍒锋柊",
     column: "鏄鹃殣鍒�",
-    edit:"缂栬緫",
-    save:"淇濆瓨",
-    cancel:"鍙栨秷"
-  }
+    edit: "缂栬緫",
+    save: "淇濆瓨",
+    cancel: "鍙栨秷",
+    placeholder:"璇疯緭鍏�"
+  },
 };
 export const en = {
   topNav: {
     center: "Personal Center",
     logout: "Logout",
+    zh: "Chinese",
+    en: "English",
   },
   common: {
     import: "Import",
@@ -33,8 +38,9 @@
     showSearch: "Display search",
     refresh: "Refresh",
     column: "Explicit implicit column",
-    edit:"Edit",
-    save:"Save",
-    cancel:"Cancel"
+    edit: "Edit",
+    save: "Save",
+    cancel: "Cancel",
+    placeholder:"Please enter the "
   },
-};
\ No newline at end of file
+};
diff --git a/src/utils/i18n/locales/plan/index.js b/src/utils/i18n/locales/plan/index.js
index d0dc41c..71ff675 100644
--- a/src/utils/i18n/locales/plan/index.js
+++ b/src/utils/i18n/locales/plan/index.js
@@ -1,11 +1,11 @@
 export const zh = {
   title: {
     pipePlanCapacity: "绠¤矾浜ц兘瑙勫垝",
-    gasPlanCapacity:"姘旀煖瑙勫垝浜ц兘"
+    gasPlanCapacity: "姘旀煖瑙勫垝浜ц兘",
   },
-  options:{
-    monthlyStatic:"鎸夋湀缁熻",
-    dailyStatic:"鎸夋棩缁熻"
+  options: {
+    monthlyStatic: "鎸夋湀缁熻",
+    dailyStatic: "鎸夋棩缁熻",
   },
   message: {
     update: "鏁版嵁鏇存柊鎴愬姛",
@@ -14,18 +14,19 @@
     metalplanDataSuccess: "閽i噾璁″垝鏁版嵁宸叉垚鍔熻В鏋�",
     metalplanDataError: "閽i噾璁″垝鏁版嵁宸茶В鏋愬け璐�",
     idNotBeEmpty: "涓婚敭id涓嶈兘涓虹┖",
-    errorMonthEmpty:"璇烽�夋嫨骞存湀"
+    errorMonthEmpty: "璇烽�夋嫨骞存湀",
   },
   placeholder: {
     startDate: "寮�濮嬫棩鏈�",
     endDate: "缁撴潫鏃ユ湡",
-    startMonth:"寮�濮嬫湀浠�",
-    endMonth:"缁撴潫鏈堜唤",
-    to:"鑷�",
+    startMonth: "寮�濮嬫湀浠�",
+    endMonth: "缁撴潫鏈堜唤",
+    to: "鑷�",
     documentNumber: "璇疯緭鍏ュ崟鎹彿",
     customer: "璇疯緭鍏ュ鎴峰悕绉�",
     planWorkOderNO: "璇疯緭鍏ラ挘閲戣鍒掑伐鍗曞彿",
-    selectMonth:"閫夋嫨鏈堜唤"
+    selectMonth: "閫夋嫨鏈堜唤",
+    requireTraceID: "璇疯緭鍏ラ渶姹傝拷婧疘D",
   },
   btns: {
     batchPlanStartDay: "鎵归噺淇敼璁″垝寮�宸ユ棩",
@@ -40,8 +41,10 @@
     customer: "瀹㈡埛鍚嶇О",
     workOrderNo: "宸ュ崟鍙�",
     selectMonth: "閫夋嫨鏈堜唤",
-    statistical:"缁熻鏂瑰紡",
-    selectDateRange: "閫夋嫨鍖洪棿"
+    statistical: "缁熻鏂瑰紡",
+    selectDateRange: "閫夋嫨鍖洪棿",
+    requireTraceID: "闇�姹傝拷婧疘D",
+    itemNumber: "鏂欏彿",
   },
   upload: {
     prevText: "灏嗘枃浠舵嫋鍒版澶勶紝鎴�",
@@ -49,7 +52,8 @@
     uploadSheetMetalPlanData: "閽i噾璁″垝鏁版嵁涓婁紶",
     uploadGasPipelineData: "姘斾綋绠¤矾璁″垝鏁版嵁涓婁紶",
     info: "涓婁紶Excel鏂囦欢锛屽寘鍚浂浠跺伐鍗曚俊鎭�傜郴缁熷皢瑙f瀽鏁版嵁骞朵繚瀛樺埌鏈湴锛岀敤浜庡叧鑱斿埌闆朵欢璁″垝涓��",
-    weldSeamInfo:"涓婁紶Excel鏂囦欢锛屽寘鍚剨缂濆伐鍗曚俊鎭�傜郴缁熷皢瑙f瀽鏁版嵁骞朵繚瀛樺埌鏈湴锛岀敤浜庡叧鑱斿埌鐒婄紳璁″垝涓��",
+    weldSeamInfo:
+      "涓婁紶Excel鏂囦欢锛屽寘鍚剨缂濆伐鍗曚俊鎭�傜郴缁熷皢瑙f瀽鏁版嵁骞朵繚瀛樺埌鏈湴锛岀敤浜庡叧鑱斿埌鐒婄紳璁″垝涓��",
     uploadText: "鐐瑰嚮涓婁紶",
     fileTypeImport: "浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�",
     dataPreview: "鏁版嵁棰勮",
@@ -131,16 +135,30 @@
     days: "澶╂暟",
     monthProduceAllNum: "鏈堜骇鍑烘暟閲�",
     remark: "澶囨敞",
+    // 閽i噾渚涘簲缂哄彛鎶ヨ〃
+    requireID: "闇�姹侷D",
+    requireTraceID: "闇�姹傝拷婧疘D",
+    bomLowCode:"BOM浣庨樁鐮�",
+    matchState:"鍖归厤鐘舵��",
+    matchPattern:"鍖归厤妯″紡",
+    unmatchedDemandQuantity:"鏈尮閰嶉渶姹傛暟閲�",
+    requirementDate:"闇�姹傛棩鏈�",
+    applicableFactories:"閫傜敤宸ュ巶",
+    productionBase:"鐢熶骇鍩哄湴",
+    // 閽i噾鍐椾綑宸ュ崟鎶ヨ〃
+    subItemPartNumber:"瀛愪欢鏂欏彿",
+    mismatchedProductionQuantity:"鏈尮閰嶇敓浜ф暟閲�",
+    workorderCreationTime:"宸ュ崟鍒涘缓鏃堕棿"
   },
 };
 export const en = {
   title: {
     pipePlanCapacity: "Pipeline planning capacity",
-    gasPlanCapacity: "Gas holder planning production capacity"
+    gasPlanCapacity: "Gas holder planning production capacity",
   },
-  options:{
-    monthlyStatic:"Monthly statistics",
-    dailyStatic:"Daily statistics"
+  options: {
+    monthlyStatic: "Monthly statistics",
+    dailyStatic: "Daily statistics",
   },
   message: {
     update: "Data update successful",
@@ -150,18 +168,19 @@
     metalplanDataSuccess: "Sheet metal plan data successfully parsed",
     metalplanDataError: "Sheet metal plan data parsing failed",
     idNotBeEmpty: "The primary key ID cannot be empty",
-    errorMonthEmpty:"Please select year and month"
+    errorMonthEmpty: "Please select year and month",
   },
   placeholder: {
     startDate: "Start date",
     endDate: "End date",
-    startMonth:"Start Month",
-    endMonth:"End Month",
-    to:"To",
+    startMonth: "Start Month",
+    endMonth: "End Month",
+    to: "To",
     documentNumber: "Please enter the document number",
     customer: "Please enter the customer name",
     planWorkOderNO: "Please enter the sheet metal plan work order number",
-    selectMonth:"Select Month"
+    selectMonth: "Select Month",
+    requireTraceID: "Please enter the requirement traceability ID",
   },
   btns: {
     batchPlanStartDay: "Batch modification of planned start date",
@@ -176,8 +195,10 @@
     customer: "Customer Name",
     workOrderNo: "Work order number",
     selectMonth: "Select Month",
-    statistical:"Statistical method",
-    selectDateRange: "Select interval"
+    statistical: "Statistical method",
+    selectDateRange: "Select interval",
+    requireTraceID: "Requirement traceability ID",
+    itemNumber: "Item number",
   },
   upload: {
     prevText: "Drag the file here, or",
@@ -268,5 +289,19 @@
     days: "Days",
     monthProduceAllNum: "Monthly output quantity",
     remark: "notes",
+    // 閽i噾渚涘簲缂哄彛鎶ヨ〃
+    requireID: "Requirement ID",
+    requireTraceID: "Requirement traceability ID",
+    bomLowCode:"BOM low-level code",
+    matchState:"Match State",
+    matchPattern:"Match Pattern",
+    unmatchedDemandQuantity:"Unmatched Demand Quantity",
+    requirementDate:"Requirement Date",
+    applicableFactories:"Applicable Factories",
+    productionBase:"Production Base",
+    // 閽i噾鍐椾綑宸ュ崟鎶ヨ〃
+    subItemPartNumber:"Sub Item Part Number",
+    mismatchedProductionQuantity:"Mismatched Production Quantity",
+    workorderCreationTime:"Work order creation time"
   },
 };
diff --git a/src/views/basicData/processRouteDataPreparate/index.vue b/src/views/basicData/processRouteDataPreparate/index.vue
index ba13333..61cebba 100644
--- a/src/views/basicData/processRouteDataPreparate/index.vue
+++ b/src/views/basicData/processRouteDataPreparate/index.vue
@@ -7,15 +7,17 @@
         :rules="rules"
         :inline="true"
         v-show="showSearch"
-        label-width="68px"
+        :label-width="locale === 'zh' ? '90px' : '120px'"
       >
         <el-row :gutter="20">
           <el-col :span="6">
-            <el-form-item label="鏂欏彿" prop="itemCode">
+            <el-form-item :label="$t('plan.query.itemNumber')" prop="itemCode">
               <el-input
                 style="width: 240px"
                 v-model="queryParams.itemCode"
-                placeholder="璇疯緭鍏ユ枡鍙�"
+                 :placeholder="`${$t('common.common.placeholder')}${$t(
+                'plan.query.itemNumber'
+              )}`"
                 clearable
                 @keyup.enter="handleQuery"
               />
@@ -24,9 +26,13 @@
           <el-col :span="18" style="text-align: right">
             <el-form-item>
               <el-button type="primary" icon="Search" @click="handleQuery"
-                >鏌ヨ</el-button
+                >{{
+              $t("common.common.query")
+            }}</el-button
               >
-              <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
+              <el-button icon="Refresh" @click="resetQuery">{{
+              $t("common.common.reset")
+            }}</el-button>
             </el-form-item>
           </el-col>
         </el-row>
@@ -40,7 +46,7 @@
           icon="Refresh"
           @click="handleRefresh"
           v-hasPermi="['apsPartRouteStat:edit']"
-          >鏇存柊</el-button
+          >{{$t("common.common.update")}}</el-button
         >
       </el-col>
       <right-toolbar
diff --git a/src/views/mainPlan/gasPiping/index.vue b/src/views/mainPlan/gasPiping/index.vue
index 6aa652e..baadb48 100644
--- a/src/views/mainPlan/gasPiping/index.vue
+++ b/src/views/mainPlan/gasPiping/index.vue
@@ -694,7 +694,6 @@
       width: 100,
     },
   ];
-  getList()
 },{ immediate: true, deep: true });
 /** 鏌ヨ閽i噾璁″垝涓存椂绠$悊鍒楄〃 */
 function getExampleList() {
@@ -845,7 +844,7 @@
   upload.isUploading = false;
 }
 
-// getList();
+getList();
 </script>
 <style lang="css" scoped>
 h4 {
diff --git a/src/views/mainPlan/gasProduceStatics/index.vue b/src/views/mainPlan/gasProduceStatics/index.vue
index 8c45dba..29d43d4 100644
--- a/src/views/mainPlan/gasProduceStatics/index.vue
+++ b/src/views/mainPlan/gasProduceStatics/index.vue
@@ -148,13 +148,7 @@
     },
   ];
   queryParams.value.searchType = t("plan.options.monthlyStatic");
-  if (
-    (!queryParams.value.monthRange && dayCom.value == false) ||
-    (!queryParams.value.monthDays && dayCom.value == true)
-  ) {
-    return;
-  }
-  getGasList();
+  handleQuery()
 },{ immediate: true, deep: true });
 function handleChangeSelectType(e) {
   searchTypeValue.value = e;
diff --git a/src/views/mainPlan/pipeProduceStatics/index.vue b/src/views/mainPlan/pipeProduceStatics/index.vue
index 5422290..a5cc880 100644
--- a/src/views/mainPlan/pipeProduceStatics/index.vue
+++ b/src/views/mainPlan/pipeProduceStatics/index.vue
@@ -154,14 +154,7 @@
       },
     ];
     queryParams.value.searchType = t("plan.options.monthlyStatic");
-    if (
-      (!queryParams.value.monthRange && dayCom.value == false) ||
-      (!queryParams.value.monthDays && dayCom.value == true)
-    ) {
-      return;
-    }
-    // queryParams.value.pageNum = 1;
-    getPipeList();
+    handleQuery();
   },
   { immediate: true, deep: true }
 );
diff --git a/src/views/mainPlan/platePlan/index.vue b/src/views/mainPlan/platePlan/index.vue
index 835b280..f3ff9d1 100644
--- a/src/views/mainPlan/platePlan/index.vue
+++ b/src/views/mainPlan/platePlan/index.vue
@@ -789,7 +789,6 @@
         align: "center",
       },
     ];
-    getList();
   },
   { immediate: true, deep: true }
 );
@@ -1034,7 +1033,7 @@
   },
 });
 
-// getList();
+getList();
 </script>
 <style lang="css" scoped>
 h4 {
diff --git a/src/views/mainPlan/platePlanList/index.vue b/src/views/mainPlan/platePlanList/index.vue
index 0d95149..965df29 100644
--- a/src/views/mainPlan/platePlanList/index.vue
+++ b/src/views/mainPlan/platePlanList/index.vue
@@ -264,7 +264,6 @@
       format: "YYYY-MM-DD hh:mm:ss",
     },
   ]
-  getList();
 },{immediate:true, deep:true});
 /** 鏌ヨ閽i噾缁熻鍒楄〃 */
 async function getList() {
@@ -426,7 +425,7 @@
     `aps_plate_plan_list_${new Date().getTime()}.xlsx`
   );
 }
-// getList();
+getList();
 // onMounted(async () => {
 //   await nextTick();
   
diff --git a/src/views/mainPlan/plateProcessStat/index.vue b/src/views/mainPlan/plateProcessStat/index.vue
index 6c4e13d..774688b 100644
--- a/src/views/mainPlan/plateProcessStat/index.vue
+++ b/src/views/mainPlan/plateProcessStat/index.vue
@@ -216,7 +216,6 @@
         format: "YYYY-MM-DD HH:mm:ss",
       },
     ];
-    getList();
   },
   { immediate: true, deep: true }
 );
@@ -385,7 +384,7 @@
 //   }
 //   return null;
 // };
-// getList();
+getList();
 </script>
 <style lang="scss" scoped>
 ::v-deep(.mytable-style.vxe-table .vxe-body--row.row-green) {
diff --git a/src/views/mainPlan/sheetMetalRedundantReport/index.vue b/src/views/mainPlan/sheetMetalRedundantReport/index.vue
index 858de3e..0681d75 100644
--- a/src/views/mainPlan/sheetMetalRedundantReport/index.vue
+++ b/src/views/mainPlan/sheetMetalRedundantReport/index.vue
@@ -6,44 +6,50 @@
       ref="queryRef"
       :inline="true"
       v-show="showSearch"
-      label-width="90px"
+      :label-width="locale === 'zh' ? '90px' : '200px'"
     >
       <el-row type="flex" justify="left">
-        <el-col :span="5">
-          <el-form-item label="闇�姹傝拷婧疘D" prop="description">
+        <el-col :span="locale === 'zh' ? 5 : 10">
+          <el-form-item
+            :label="$t('plan.query.requireTraceID')"
+            prop="description"
+          >
             <el-input
-              style="width: 140px"
+              :style="{ width: locale === 'zh' ? '140px' : '300px' }"
               v-model="queryParams.description"
-              placeholder="璇疯緭鍏ラ渶姹傝拷婧疘D"
+              :placeholder="`${$t('plan.placeholder.requireTraceID')}`"
               clearable
               @keyup.enter="handleQuery"
             />
           </el-form-item>
         </el-col>
-        <el-col :span="5">
-          <el-form-item label="鏂欏彿" prop="description">
+        <el-col :span="locale === 'zh' ? 8 : 9">
+          <el-form-item :label="$t('plan.query.itemNumber')" prop="description">
             <el-input
-              style="width: 140px"
+              :style="{ width: locale === 'zh' ? '140px' : '210px' }"
               v-model="queryParams.description"
-              placeholder="璇疯緭鍏ユ枡鍙�"
+              :placeholder="`${$t('common.common.placeholder')}${$t(
+                'plan.query.itemNumber'
+              )}`"
               clearable
               @keyup.enter="handleQuery"
             />
           </el-form-item>
         </el-col>
-        <el-col :span="14" style="text-align: right">
+        <el-col :span="locale === 'zh' ? 11 : 5" style="text-align: right">
           <el-form-item class="column-with-margin">
-            <el-button type="primary" icon="Search" @click="handleQuery"
-              >鏌ヨ</el-button
-            >
-            <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
+            <el-button type="primary" icon="Search" @click="handleQuery">{{
+              $t("common.common.query")
+            }}</el-button>
+            <el-button icon="Refresh" @click="resetQuery">{{
+              $t("common.common.reset")
+            }}</el-button>
           </el-form-item>
         </el-col>
       </el-row>
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-
       <el-col :span="1.5">
         <el-button
           type="warning"
@@ -51,7 +57,7 @@
           icon="Download"
           @click="handleExport"
           v-hasPermi="['core:calendar:export']"
-          >瀵煎嚭</el-button
+          >{{ $t("common.common.export") }}</el-button
         >
       </el-col>
       <right-toolbar
@@ -89,6 +95,8 @@
 import { listAll_plant } from "@/api/basicData/plant";
 import { listAll_shop, listAps_shop } from "@/api/basicData/shop";
 import { selectProcessNameList } from "@/api/basicData/processRoute.js";
+import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+const { t, locale } = useI18n();
 const { proxy } = getCurrentInstance();
 const tableRef = ref();
 const calendarList = ref([]);
@@ -124,78 +132,84 @@
 const processList = ref([]);
 const height = ref(document.documentElement.clientHeight - 220 + "px;");
 // 琛ㄦ牸閰嶇疆-鍒楄〃
-const columns = ref([
-  {
-    title: "宸ュ崟鍙�",
-    field: "description",
-    width: 150,
-    align: "center"
-  },
-  {
-    title: "瀛愪欢鏂欏彿",
-    field: "type",
-    width: 200,
-    align: "center"
-  },
-  {
-    title: "鐢熶骇鏁伴噺",
-    field: "effectiveDate",
-    width: 200,
-    align: "center",
-  },
-  {
-    title: "鏈尮閰嶇敓浜ф暟閲�",
-    field: "expiringDate",
-    width: 200,
-    align: "center"
-  },
-  {
-    title: "閫傜敤宸ュ巶",
-    field: "applicableFactory",
-    width: 200,
-    align: "center",
-    formatter: ({ cellValue, row, column }) => {
-      if (cellValue) {
-        for (let i = 0; i < plantList.value.length; i++) {
-          if (cellValue === plantList.value[i].plantCode) {
-            return plantList.value[i].plantName;
-          }
-        }
-      }
-    },
-  },
-  {
-    title: "鐢熶骇鍩哄湴",
-    field: "expiringDate",
-    width: 200,
-    align: "center"
-  },
-  {
-    title: "璁″垝寮�宸ユ棩",
-    field: "createTime",
-    width: 200,
-    align: "center",
-  },
-  {
-    title: "璁″垝瀹屽伐鏃�",
-    field: "updateTime",
-    width: 100,
-    align: "center",
-  },
-  {
-    title: "宸ュ崟鍒涘缓鏃堕棿",
-    field: "updateTime",
-    width: 100,
-    align: "center",
-  },
-]);
+const columns = ref([]);
 // 鍒嗛〉灞炴��
 const page = ref({
   total: 0,
   current: 1,
   size: 10,
 });
-
+watch(
+  locale,
+  (newLocale) => {
+    columns.value = [
+      {
+        title: t("plan.table.workOrderNo"),
+        field: "description",
+        width: 150,
+        align: "center",
+      },
+      {
+        title: t("plan.table.subItemPartNumber"),
+        field: "type",
+        width: 200,
+        align: "center",
+      },
+      {
+        title: t("plan.table.productionQuantity"),
+        field: "effectiveDate",
+        width: 200,
+        align: "center",
+      },
+      {
+        title: t("plan.table.mismatchedProductionQuantity"),
+        field: "expiringDate",
+        width: 200,
+        align: "center",
+      },
+      {
+        title: t("plan.table.applicableFactories"),
+        field: "applicableFactory",
+        width: 200,
+        align: "center",
+        formatter: ({ cellValue, row, column }) => {
+          if (cellValue) {
+            for (let i = 0; i < plantList.value.length; i++) {
+              if (cellValue === plantList.value[i].plantCode) {
+                return plantList.value[i].plantName;
+              }
+            }
+          }
+        },
+      },
+      {
+        title: t("plan.table.productionBase"),
+        field: "expiringDate",
+        width: 200,
+        align: "center",
+      },
+      {
+        title: t("plan.table.planStartDay"),
+        field: "createTime",
+        width: 200,
+        align: "center",
+      },
+      {
+        title: t("plan.table.planEndDayDate"),
+        field: "updateTime",
+        width: 100,
+        align: "center",
+      },
+      {
+        title: t("plan.table.workorderCreationTime"),
+        field: "updateTime",
+        width: 100,
+        align: "center",
+      },
+    ];
+  },
+  { immediate: true, deep: true }
+);
 /** 鏌ヨ鏃ュ巻绠$悊鍒楄〃 */
 function getList() {
   loading.value = true;
diff --git a/src/views/mainPlan/sheetMetalSupplyGap/index.vue b/src/views/mainPlan/sheetMetalSupplyGap/index.vue
index d60e9aa..3ec494f 100644
--- a/src/views/mainPlan/sheetMetalSupplyGap/index.vue
+++ b/src/views/mainPlan/sheetMetalSupplyGap/index.vue
@@ -6,37 +6,44 @@
       ref="queryRef"
       :inline="true"
       v-show="showSearch"
-      label-width="90px"
+      :label-width="locale === 'zh' ? '90px' : '200px'"
     >
       <el-row type="flex" justify="left">
-        <el-col :span="5">
-          <el-form-item label="闇�姹傝拷婧疘D" prop="description">
+        <el-col :span="locale === 'zh' ? 5 : 10">
+          <el-form-item
+            :label="$t('plan.query.requireTraceID')"
+            prop="description"
+          >
             <el-input
-              style="width: 140px"
+              :style="{ width: locale === 'zh' ? '140px' : '300px' }"
               v-model="queryParams.description"
-              placeholder="璇疯緭鍏ラ渶姹傝拷婧疘D"
+              :placeholder="`${$t('plan.placeholder.requireTraceID')}`"
               clearable
               @keyup.enter="handleQuery"
             />
           </el-form-item>
         </el-col>
-        <el-col :span="5">
-          <el-form-item label="鏂欏彿" prop="description">
+        <el-col :span="locale === 'zh' ? 8 : 9">
+          <el-form-item :label="$t('plan.query.itemNumber')" prop="description">
             <el-input
-              style="width: 140px"
+              :style="{ width: locale === 'zh' ? '140px' : '210px' }"
               v-model="queryParams.description"
-              placeholder="璇疯緭鍏ユ枡鍙�"
+              :placeholder="`${$t('common.common.placeholder')}${$t(
+                'plan.query.itemNumber'
+              )}`"
               clearable
               @keyup.enter="handleQuery"
             />
           </el-form-item>
         </el-col>
-        <el-col :span="14" style="text-align: right">
+        <el-col :span="locale === 'zh' ? 11 : 5" style="text-align: right">
           <el-form-item class="column-with-margin">
-            <el-button type="primary" icon="Search" @click="handleQuery"
-              >鏌ヨ</el-button
-            >
-            <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
+            <el-button type="primary" icon="Search" @click="handleQuery">{{
+              $t("common.common.query")
+            }}</el-button>
+            <el-button icon="Refresh" @click="resetQuery">{{
+              $t("common.common.reset")
+            }}</el-button>
           </el-form-item>
         </el-col>
       </el-row>
@@ -50,7 +57,7 @@
           icon="Download"
           @click="handleExport"
           v-hasPermi="['core:calendar:export']"
-          >瀵煎嚭</el-button
+          >{{ $t("common.common.export") }}</el-button
         >
       </el-col>
       <right-toolbar
@@ -88,6 +95,8 @@
 import { listAll_plant } from "@/api/basicData/plant";
 import { listAll_shop, listAps_shop } from "@/api/basicData/shop";
 import { selectProcessNameList } from "@/api/basicData/processRoute.js";
+import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+const { t, locale } = useI18n();
 const { proxy } = getCurrentInstance();
 const tableRef = ref();
 const calendarList = ref([]);
@@ -123,96 +132,102 @@
 const processList = ref([]);
 const height = ref(document.documentElement.clientHeight - 220 + "px;");
 // 琛ㄦ牸閰嶇疆-鍒楄〃
-const columns = ref([
-  {
-    title: "闇�姹侷D",
-    field: "description",
-    width: 150,
-    align: "center",
-  },
-  {
-    title: "闇�姹傝拷婧疘D",
-    field: "type",
-    width: 200,
-    align: "center",
-  },
-  {
-    title: "鏂欏彿",
-    field: "effectiveDate",
-    width: 200,
-    align: "center",
-  },
-  {
-    title: "BOM浣庨樁鐮�",
-    field: "expiringDate",
-    width: 200,
-    align: "center",
-  },
-  {
-    title: "鍖归厤鐘舵��",
-    field: "expiringDate",
-    width: 200,
-    align: "center",
-  },
-  {
-    title: "鍖归厤妯″紡",
-    field: "createTime",
-    width: 200,
-    align: "center",
-  },
-  {
-    title: "鏈尮閰嶉渶姹傛暟閲�",
-    field: "createTime",
-    width: 200,
-    align: "center",
-  },
-  {
-    title: "璁″垝寮�宸ユ棩",
-    field: "createTime",
-    width: 200,
-    align: "center",
-  },
-  {
-    title: "璁″垝瀹屽伐鏃�",
-    field: "updateTime",
-    width: 100,
-    align: "center",
-  },
-  {
-    title: "闇�姹傛棩鏈�",
-    field: "updateTime",
-    width: 100,
-    align: "center",
-  },
-  {
-    title: "閫傜敤宸ュ巶",
-    field: "applicableFactory",
-    width: 200,
-    align: "center",
-    formatter: ({ cellValue, row, column }) => {
-      if (cellValue) {
-        for (let i = 0; i < plantList.value.length; i++) {
-          if (cellValue === plantList.value[i].plantCode) {
-            return plantList.value[i].plantName;
-          }
-        }
-      }
-    },
-  },
-  {
-    title: "鐢熶骇鍩哄湴",
-    field: "updateTime",
-    width: 100,
-    align: "center",
-  },
-]);
+const columns = ref([]);
 // 鍒嗛〉灞炴��
 const page = ref({
   total: 0,
   current: 1,
   size: 10,
 });
-
+watch(
+  locale,
+  (newLocale) => {
+    columns.value = [
+      {
+        title: t("plan.table.requireID"),
+        field: "description",
+        width: 150,
+        align: "center",
+      },
+      {
+        title: t("plan.table.requireTraceID"),
+        field: "type",
+        width: 200,
+        align: "center",
+      },
+      {
+        title: t("plan.table.itemNumber"),
+        field: "effectiveDate",
+        width: 200,
+        align: "center",
+      },
+      {
+        title: t("plan.table.bomLowCode"),
+        field: "expiringDate",
+        width: 200,
+        align: "center",
+      },
+      {
+        title: t("plan.table.matchState"),
+        field: "expiringDate",
+        width: 200,
+        align: "center",
+      },
+      {
+        title: t("plan.table.matchPattern"),
+        field: "createTime",
+        width: 200,
+        align: "center",
+      },
+      {
+        title: t("plan.table.unmatchedDemandQuantity"),
+        field: "createTime",
+        width: 200,
+        align: "center",
+      },
+      {
+        title: t("plan.table.planStartDay"),
+        field: "createTime",
+        width: 200,
+        align: "center",
+      },
+      {
+        title: t("plan.table.planEndDayDate"),
+        field: "updateTime",
+        width: 100,
+        align: "center",
+      },
+      {
+        title: t("plan.table.requirementDate"),
+        field: "updateTime",
+        width: 100,
+        align: "center",
+      },
+      {
+        title: t("plan.table.applicableFactories"),
+        field: "applicableFactory",
+        width: 200,
+        align: "center",
+        formatter: ({ cellValue, row, column }) => {
+          if (cellValue) {
+            for (let i = 0; i < plantList.value.length; i++) {
+              if (cellValue === plantList.value[i].plantCode) {
+                return plantList.value[i].plantName;
+              }
+            }
+          }
+        },
+      },
+      {
+        title: t("plan.table.productionBase"),
+        field: "updateTime",
+        width: 100,
+        align: "center",
+      },
+    ];
+  },
+  { immediate: true, deep: true }
+);
 /** 鏌ヨ鏃ュ巻绠$悊鍒楄〃 */
 function getList() {
   loading.value = true;
diff --git a/src/views/partPlan/index.vue b/src/views/partPlan/index.vue
index 91e48ac..26f9129 100644
--- a/src/views/partPlan/index.vue
+++ b/src/views/partPlan/index.vue
@@ -721,7 +721,6 @@
       //   width: 100,
       // },
     ];
-    getList();
   },
   { immediate: true, deep: true }
 );
@@ -873,8 +872,7 @@
   upload.open = false;
   upload.isUploading = false;
 }
-
-// getList();
+getList();
 </script>
 <style lang="css" scoped>
 h4 {

--
Gitblit v1.9.3