CD配唱片
2025-05-06 5e4dc3af68c2bb0a5a33fcb395e7704207125ce8
提交中英文
已添加3个文件
已修改15个文件
418 ■■■■■ 文件已修改
src/assets/images/en.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/zh.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/Navbar.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/i18n/index.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/i18n/locales/basic/index.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/i18n/locales/common/index.js 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/i18n/locales/plan/index.js 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicData/processRouteDataPreparate/index.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/gasPiping/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/gasProduceStatics/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/pipeProduceStatics/index.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/platePlan/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/platePlanList/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/plateProcessStat/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/sheetMetalRedundantReport/index.vue 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/sheetMetalSupplyGap/index.vue 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/partPlan/index.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
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>
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() {
@@ -160,6 +174,12 @@
    display: flex;
    .mt5{
      margin-top:5px;
      .zh_icon {
        width: 35px;
        height: 35px;
        border:none;
        outline: none;
      }
    }
    &:focus {
      outline: none;
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)
// å…¨å±€æ–¹æ³•挂载
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', // è®¾ç½®é»˜è®¤è¯­è¨€ä¸ºä¸­æ–‡
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: {},
};
src/utils/i18n/locales/common/index.js
@@ -2,6 +2,8 @@
  topNav: {
    center: "个人中心",
    logout: "退出登录",
    zh: "中文",
    en: "英文",
  },
  common: {
    import: "导入",
@@ -15,13 +17,16 @@
    column: "显隐列",
    edit:"编辑",
    save:"保存",
    cancel:"取消"
  }
    cancel: "取消",
    placeholder:"请输入"
  },
};
export const en = {
  topNav: {
    center: "Personal Center",
    logout: "Logout",
    zh: "Chinese",
    en: "English",
  },
  common: {
    import: "Import",
@@ -35,6 +40,7 @@
    column: "Explicit implicit column",
    edit:"Edit",
    save:"Save",
    cancel:"Cancel"
    cancel: "Cancel",
    placeholder:"Please enter the "
  },
};
src/utils/i18n/locales/plan/index.js
@@ -1,11 +1,11 @@
export const zh = {
  title: {
    pipePlanCapacity: "管路产能规划",
    gasPlanCapacity:"气柜规划产能"
    gasPlanCapacity: "气柜规划产能",
  },
  options:{
    monthlyStatic:"按月统计",
    dailyStatic:"按日统计"
    dailyStatic: "按日统计",
  },
  message: {
    update: "数据更新成功",
@@ -14,7 +14,7 @@
    metalplanDataSuccess: "钣金计划数据已成功解析",
    metalplanDataError: "钣金计划数据已解析失败",
    idNotBeEmpty: "主键id不能为空",
    errorMonthEmpty:"请选择年月"
    errorMonthEmpty: "请选择年月",
  },
  placeholder: {
    startDate: "开始日期",
@@ -25,7 +25,8 @@
    documentNumber: "请输入单据号",
    customer: "请输入客户名称",
    planWorkOderNO: "请输入钣金计划工单号",
    selectMonth:"选择月份"
    selectMonth: "选择月份",
    requireTraceID: "请输入需求追溯ID",
  },
  btns: {
    batchPlanStartDay: "批量修改计划开工日",
@@ -41,7 +42,9 @@
    workOrderNo: "工单号",
    selectMonth: "选择月份",
    statistical:"统计方式",
    selectDateRange: "选择区间"
    selectDateRange: "选择区间",
    requireTraceID: "需求追溯ID",
    itemNumber: "料号",
  },
  upload: {
    prevText: "将文件拖到此处,或",
@@ -49,7 +52,8 @@
    uploadSheetMetalPlanData: "钣金计划数据上传",
    uploadGasPipelineData: "气体管路计划数据上传",
    info: "上传Excel文件,包含零件工单信息。系统将解析数据并保存到本地,用于关联到零件计划中。",
    weldSeamInfo:"上传Excel文件,包含焊缝工单信息。系统将解析数据并保存到本地,用于关联到焊缝计划中。",
    weldSeamInfo:
      "上传Excel文件,包含焊缝工单信息。系统将解析数据并保存到本地,用于关联到焊缝计划中。",
    uploadText: "点击上传",
    fileTypeImport: "仅允许导入xls、xlsx格式文件。",
    dataPreview: "数据预览",
@@ -131,16 +135,30 @@
    days: "天数",
    monthProduceAllNum: "月产出数量",
    remark: "备注",
    // é’£é‡‘供应缺口报表
    requireID: "需求ID",
    requireTraceID: "需求追溯ID",
    bomLowCode:"BOM低阶码",
    matchState:"匹配状态",
    matchPattern:"匹配模式",
    unmatchedDemandQuantity:"未匹配需求数量",
    requirementDate:"需求日期",
    applicableFactories:"适用工厂",
    productionBase:"生产基地",
    // é’£é‡‘冗余工单报表
    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"
    dailyStatic: "Daily statistics",
  },
  message: {
    update: "Data update successful",
@@ -150,7 +168,7 @@
    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",
@@ -161,7 +179,8 @@
    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",
@@ -177,7 +196,9 @@
    workOrderNo: "Work order number",
    selectMonth: "Select Month",
    statistical:"Statistical method",
    selectDateRange: "Select interval"
    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",
    // é’£é‡‘供应缺口报表
    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",
    // é’£é‡‘冗余工单报表
    subItemPartNumber:"Sub Item Part Number",
    mismatchedProductionQuantity:"Mismatched Production Quantity",
    workorderCreationTime:"Work order creation time"
  },
};
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
src/views/mainPlan/gasPiping/index.vue
@@ -694,7 +694,6 @@
      width: 100,
    },
  ];
  getList()
},{ immediate: true, deep: true });
/** æŸ¥è¯¢é’£é‡‘计划临时管理列表 */
function getExampleList() {
@@ -845,7 +844,7 @@
  upload.isUploading = false;
}
// getList();
getList();
</script>
<style lang="css" scoped>
h4 {
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;
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 }
);
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 {
src/views/mainPlan/platePlanList/index.vue
@@ -264,7 +264,6 @@
      format: "YYYY-MM-DD hh:mm:ss",
    },
  ]
  getList();
},{immediate:true, deep:true});
/** æŸ¥è¯¢é’£é‡‘统计列表 */
async function getList() {
@@ -426,7 +425,7 @@
    `aps_plate_plan_list_${new Date().getTime()}.xlsx`
  );
}
// getList();
getList();
// onMounted(async () => {
//   await nextTick();
  
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) {
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="需求追溯ID" prop="description">
            <el-input
              style="width: 140px"
              v-model="queryParams.description"
              placeholder="请输入需求追溯ID"
              clearable
              @keyup.enter="handleQuery"
            />
          </el-form-item>
        </el-col>
        <el-col :span="5">
          <el-form-item label="料号" prop="description">
            <el-input
              style="width: 140px"
              v-model="queryParams.description"
              placeholder="请输入料号"
              clearable
              @keyup.enter="handleQuery"
            />
          </el-form-item>
        </el-col>
        <el-col :span="14" style="text-align: right">
          <el-form-item class="column-with-margin">
            <el-button type="primary" icon="Search" @click="handleQuery"
              >查询</el-button
        <el-col :span="locale === 'zh' ? 5 : 10">
          <el-form-item
            :label="$t('plan.query.requireTraceID')"
            prop="description"
            >
            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
            <el-input
              :style="{ width: locale === 'zh' ? '140px' : '300px' }"
              v-model="queryParams.description"
              :placeholder="`${$t('plan.placeholder.requireTraceID')}`"
              clearable
              @keyup.enter="handleQuery"
            />
          </el-form-item>
        </el-col>
        <el-col :span="locale === 'zh' ? 8 : 9">
          <el-form-item :label="$t('plan.query.itemNumber')" prop="description">
            <el-input
              :style="{ width: locale === 'zh' ? '140px' : '210px' }"
              v-model="queryParams.description"
              :placeholder="`${$t('common.common.placeholder')}${$t(
                'plan.query.itemNumber'
              )}`"
              clearable
              @keyup.enter="handleQuery"
            />
          </el-form-item>
        </el-col>
        <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">{{
              $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,33 +132,43 @@
const processList = ref([]);
const height = ref(document.documentElement.clientHeight - 220 + "px;");
// è¡¨æ ¼é…ç½®-列表
const columns = ref([
const columns = ref([]);
// åˆ†é¡µå±žæ€§
const page = ref({
  total: 0,
  current: 1,
  size: 10,
});
watch(
  locale,
  (newLocale) => {
    columns.value = [
  {
    title: "工单号",
        title: t("plan.table.workOrderNo"),
    field: "description",
    width: 150,
    align: "center"
        align: "center",
  },
  {
    title: "子件料号",
        title: t("plan.table.subItemPartNumber"),
    field: "type",
    width: 200,
    align: "center"
        align: "center",
  },
  {
    title: "生产数量",
        title: t("plan.table.productionQuantity"),
    field: "effectiveDate",
    width: 200,
    align: "center",
  },
  {
    title: "未匹配生产数量",
        title: t("plan.table.mismatchedProductionQuantity"),
    field: "expiringDate",
    width: 200,
    align: "center"
        align: "center",
  },
  {
    title: "适用工厂",
        title: t("plan.table.applicableFactories"),
    field: "applicableFactory",
    width: 200,
    align: "center",
@@ -165,37 +183,33 @@
    },
  },
  {
    title: "生产基地",
        title: t("plan.table.productionBase"),
    field: "expiringDate",
    width: 200,
    align: "center"
        align: "center",
  },
  {
    title: "计划开工日",
        title: t("plan.table.planStartDay"),
    field: "createTime",
    width: 200,
    align: "center",
  },
  {
    title: "计划完工日",
        title: t("plan.table.planEndDayDate"),
    field: "updateTime",
    width: 100,
    align: "center",
  },
  {
    title: "工单创建时间",
        title: t("plan.table.workorderCreationTime"),
    field: "updateTime",
    width: 100,
    align: "center",
  },
]);
// åˆ†é¡µå±žæ€§
const page = ref({
  total: 0,
  current: 1,
  size: 10,
});
    ];
  },
  { immediate: true, deep: true }
);
/** æŸ¥è¯¢æ—¥åŽ†ç®¡ç†åˆ—è¡¨ */
function getList() {
  loading.value = true;
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="需求追溯ID" prop="description">
            <el-input
              style="width: 140px"
              v-model="queryParams.description"
              placeholder="请输入需求追溯ID"
              clearable
              @keyup.enter="handleQuery"
            />
          </el-form-item>
        </el-col>
        <el-col :span="5">
          <el-form-item label="料号" prop="description">
            <el-input
              style="width: 140px"
              v-model="queryParams.description"
              placeholder="请输入料号"
              clearable
              @keyup.enter="handleQuery"
            />
          </el-form-item>
        </el-col>
        <el-col :span="14" style="text-align: right">
          <el-form-item class="column-with-margin">
            <el-button type="primary" icon="Search" @click="handleQuery"
              >查询</el-button
        <el-col :span="locale === 'zh' ? 5 : 10">
          <el-form-item
            :label="$t('plan.query.requireTraceID')"
            prop="description"
            >
            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
            <el-input
              :style="{ width: locale === 'zh' ? '140px' : '300px' }"
              v-model="queryParams.description"
              :placeholder="`${$t('plan.placeholder.requireTraceID')}`"
              clearable
              @keyup.enter="handleQuery"
            />
          </el-form-item>
        </el-col>
        <el-col :span="locale === 'zh' ? 8 : 9">
          <el-form-item :label="$t('plan.query.itemNumber')" prop="description">
            <el-input
              :style="{ width: locale === 'zh' ? '140px' : '210px' }"
              v-model="queryParams.description"
              :placeholder="`${$t('common.common.placeholder')}${$t(
                'plan.query.itemNumber'
              )}`"
              clearable
              @keyup.enter="handleQuery"
            />
          </el-form-item>
        </el-col>
        <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">{{
              $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,69 +132,79 @@
const processList = ref([]);
const height = ref(document.documentElement.clientHeight - 220 + "px;");
// è¡¨æ ¼é…ç½®-列表
const columns = ref([
const columns = ref([]);
// åˆ†é¡µå±žæ€§
const page = ref({
  total: 0,
  current: 1,
  size: 10,
});
watch(
  locale,
  (newLocale) => {
    columns.value = [
  {
    title: "需求ID",
        title: t("plan.table.requireID"),
    field: "description",
    width: 150,
    align: "center",
  },
  {
    title: "需求追溯ID",
        title: t("plan.table.requireTraceID"),
    field: "type",
    width: 200,
    align: "center",
  },
  {
    title: "料号",
        title: t("plan.table.itemNumber"),
    field: "effectiveDate",
    width: 200,
    align: "center",
  },
  {
    title: "BOM低阶码",
        title: t("plan.table.bomLowCode"),
    field: "expiringDate",
    width: 200,
    align: "center",
  },
  {
    title: "匹配状态",
        title: t("plan.table.matchState"),
    field: "expiringDate",
    width: 200,
    align: "center",
  },
  {
    title: "匹配模式",
        title: t("plan.table.matchPattern"),
    field: "createTime",
    width: 200,
    align: "center",
  },
  {
    title: "未匹配需求数量",
        title: t("plan.table.unmatchedDemandQuantity"),
    field: "createTime",
    width: 200,
    align: "center",
  },
  {
    title: "计划开工日",
        title: t("plan.table.planStartDay"),
    field: "createTime",
    width: 200,
    align: "center",
  },
  {
    title: "计划完工日",
        title: t("plan.table.planEndDayDate"),
    field: "updateTime",
    width: 100,
    align: "center",
  },
  {
    title: "需求日期",
        title: t("plan.table.requirementDate"),
    field: "updateTime",
    width: 100,
    align: "center",
  },
  {
    title: "适用工厂",
        title: t("plan.table.applicableFactories"),
    field: "applicableFactory",
    width: 200,
    align: "center",
@@ -200,19 +219,15 @@
    },
  },
  {
    title: "生产基地",
        title: t("plan.table.productionBase"),
    field: "updateTime",
    width: 100,
    align: "center",
  },
]);
// åˆ†é¡µå±žæ€§
const page = ref({
  total: 0,
  current: 1,
  size: 10,
});
    ];
  },
  { immediate: true, deep: true }
);
/** æŸ¥è¯¢æ—¥åŽ†ç®¡ç†åˆ—è¡¨ */
function getList() {
  loading.value = true;
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 {