¶Ô±ÈÐÂÎļþ |
| | |
| | | <?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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?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> |
| | |
| | | <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 |
| | |
| | | <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> |
| | |
| | | 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() { |
| | |
| | | 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; |
| | |
| | | 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) |
| | | |
| | | // å
¨å±æ¹æ³æè½½ |
| | |
| | | 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', // 设置é»è®¤è¯è¨ä¸ºä¸æ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | export const zh = { |
| | | query: {}, |
| | | upload: {}, |
| | | table: {}, |
| | | table: {}, |
| | | }; |
| | | |
| | | export const en = { |
| | | query: {}, |
| | | upload: {}, |
| | | table: {}, |
| | | table: {}, |
| | | }; |
| | |
| | | topNav: { |
| | | center: "个人ä¸å¿", |
| | | logout: "éåºç»å½", |
| | | zh: "䏿", |
| | | en: "è±æ", |
| | | }, |
| | | common: { |
| | | import: "导å
¥", |
| | |
| | | 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", |
| | |
| | | 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 " |
| | | }, |
| | | }; |
| | | }; |
| | |
| | | export const zh = { |
| | | title: { |
| | | pipePlanCapacity: "管路产è½è§å", |
| | | gasPlanCapacity:"æ°æè§å产è½" |
| | | gasPlanCapacity: "æ°æè§å产è½", |
| | | }, |
| | | options:{ |
| | | monthlyStatic:"ææç»è®¡", |
| | | dailyStatic:"ææ¥ç»è®¡" |
| | | options: { |
| | | monthlyStatic: "ææç»è®¡", |
| | | dailyStatic: "ææ¥ç»è®¡", |
| | | }, |
| | | message: { |
| | | update: "æ°æ®æ´æ°æå", |
| | |
| | | metalplanDataSuccess: "é£éè®¡åæ°æ®å·²æåè§£æ", |
| | | metalplanDataError: "é£éè®¡åæ°æ®å·²è§£æå¤±è´¥", |
| | | idNotBeEmpty: "主é®idä¸è½ä¸ºç©º", |
| | | errorMonthEmpty:"è¯·éæ©å¹´æ" |
| | | errorMonthEmpty: "è¯·éæ©å¹´æ", |
| | | }, |
| | | placeholder: { |
| | | startDate: "å¼å§æ¥æ", |
| | | endDate: "ç»ææ¥æ", |
| | | startMonth:"å¼å§æä»½", |
| | | endMonth:"ç»ææä»½", |
| | | to:"è³", |
| | | startMonth: "å¼å§æä»½", |
| | | endMonth: "ç»ææä»½", |
| | | to: "è³", |
| | | documentNumber: "请è¾å
¥åæ®å·", |
| | | customer: "请è¾å
¥å®¢æ·åç§°", |
| | | planWorkOderNO: "请è¾å
¥é£é计åå·¥åå·", |
| | | selectMonth:"éæ©æä»½" |
| | | selectMonth: "éæ©æä»½", |
| | | requireTraceID: "请è¾å
¥éæ±è¿½æº¯ID", |
| | | }, |
| | | btns: { |
| | | batchPlanStartDay: "æ¹éä¿®æ¹è®¡åå¼å·¥æ¥", |
| | |
| | | customer: "客æ·åç§°", |
| | | workOrderNo: "å·¥åå·", |
| | | selectMonth: "éæ©æä»½", |
| | | statistical:"ç»è®¡æ¹å¼", |
| | | selectDateRange: "éæ©åºé´" |
| | | statistical: "ç»è®¡æ¹å¼", |
| | | selectDateRange: "éæ©åºé´", |
| | | requireTraceID: "éæ±è¿½æº¯ID", |
| | | itemNumber: "æå·", |
| | | }, |
| | | upload: { |
| | | prevText: "å°æä»¶æå°æ¤å¤ï¼æ", |
| | |
| | | uploadSheetMetalPlanData: "é£éè®¡åæ°æ®ä¸ä¼ ", |
| | | uploadGasPipelineData: "æ°ä½ç®¡è·¯è®¡åæ°æ®ä¸ä¼ ", |
| | | info: "ä¸ä¼ Excelæä»¶ï¼å
å«é¶ä»¶å·¥åä¿¡æ¯ãç³»ç»å°è§£ææ°æ®å¹¶ä¿åå°æ¬å°ï¼ç¨äºå
³èå°é¶ä»¶è®¡åä¸ã", |
| | | weldSeamInfo:"ä¸ä¼ Excelæä»¶ï¼å
å«çç¼å·¥åä¿¡æ¯ãç³»ç»å°è§£ææ°æ®å¹¶ä¿åå°æ¬å°ï¼ç¨äºå
³èå°çç¼è®¡åä¸ã", |
| | | weldSeamInfo: |
| | | "ä¸ä¼ Excelæä»¶ï¼å
å«çç¼å·¥åä¿¡æ¯ãç³»ç»å°è§£ææ°æ®å¹¶ä¿åå°æ¬å°ï¼ç¨äºå
³èå°çç¼è®¡åä¸ã", |
| | | uploadText: "ç¹å»ä¸ä¼ ", |
| | | fileTypeImport: "ä»
å
许导å
¥xlsãxlsxæ ¼å¼æä»¶ã", |
| | | dataPreview: "æ°æ®é¢è§", |
| | |
| | | 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" |
| | | options: { |
| | | monthlyStatic: "Monthly statistics", |
| | | dailyStatic: "Daily statistics", |
| | | }, |
| | | message: { |
| | | update: "Data update successful", |
| | |
| | | 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", |
| | |
| | | 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", |
| | |
| | | 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" |
| | | }, |
| | | }; |
| | |
| | | :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" |
| | | /> |
| | |
| | | <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> |
| | |
| | | icon="Refresh" |
| | | @click="handleRefresh" |
| | | v-hasPermi="['apsPartRouteStat:edit']" |
| | | >æ´æ°</el-button |
| | | >{{$t("common.common.update")}}</el-button |
| | | > |
| | | </el-col> |
| | | <right-toolbar |
| | |
| | | width: 100, |
| | | }, |
| | | ]; |
| | | getList() |
| | | },{ immediate: true, deep: true }); |
| | | /** æ¥è¯¢é£é计å临æ¶ç®¡çå表 */ |
| | | function getExampleList() { |
| | |
| | | upload.isUploading = false; |
| | | } |
| | | |
| | | // getList(); |
| | | getList(); |
| | | </script> |
| | | <style lang="css" scoped> |
| | | h4 { |
| | |
| | | }, |
| | | ]; |
| | | 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; |
| | |
| | | }, |
| | | ]; |
| | | 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 } |
| | | ); |
| | |
| | | align: "center", |
| | | }, |
| | | ]; |
| | | getList(); |
| | | }, |
| | | { immediate: true, deep: true } |
| | | ); |
| | |
| | | }, |
| | | }); |
| | | |
| | | // getList(); |
| | | getList(); |
| | | </script> |
| | | <style lang="css" scoped> |
| | | h4 { |
| | |
| | | format: "YYYY-MM-DD hh:mm:ss", |
| | | }, |
| | | ] |
| | | getList(); |
| | | },{immediate:true, deep:true}); |
| | | /** æ¥è¯¢é£éç»è®¡å表 */ |
| | | async function getList() { |
| | |
| | | `aps_plate_plan_list_${new Date().getTime()}.xlsx` |
| | | ); |
| | | } |
| | | // getList(); |
| | | getList(); |
| | | // onMounted(async () => { |
| | | // await nextTick(); |
| | | |
| | |
| | | format: "YYYY-MM-DD HH:mm:ss", |
| | | }, |
| | | ]; |
| | | getList(); |
| | | }, |
| | | { immediate: true, deep: true } |
| | | ); |
| | |
| | | // } |
| | | // return null; |
| | | // }; |
| | | // getList(); |
| | | getList(); |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | ::v-deep(.mytable-style.vxe-table .vxe-body--row.row-green) { |
| | |
| | | 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-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="请è¾å
¥éæ±è¿½æº¯ID" |
| | | :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" |
| | |
| | | icon="Download" |
| | | @click="handleExport" |
| | | v-hasPermi="['core:calendar:export']" |
| | | >导åº</el-button |
| | | >{{ $t("common.common.export") }}</el-button |
| | | > |
| | | </el-col> |
| | | <right-toolbar |
| | |
| | | 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([]); |
| | |
| | | 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; |
| | |
| | | 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-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="请è¾å
¥éæ±è¿½æº¯ID" |
| | | :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> |
| | |
| | | icon="Download" |
| | | @click="handleExport" |
| | | v-hasPermi="['core:calendar:export']" |
| | | >导åº</el-button |
| | | >{{ $t("common.common.export") }}</el-button |
| | | > |
| | | </el-col> |
| | | <right-toolbar |
| | |
| | | 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([]); |
| | |
| | | const processList = ref([]); |
| | | const height = ref(document.documentElement.clientHeight - 220 + "px;"); |
| | | // è¡¨æ ¼é
ç½®-å表 |
| | | const columns = ref([ |
| | | { |
| | | title: "éæ±ID", |
| | | field: "description", |
| | | width: 150, |
| | | align: "center", |
| | | }, |
| | | { |
| | | title: "éæ±è¿½æº¯ID", |
| | | 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; |
| | |
| | | // width: 100, |
| | | // }, |
| | | ]; |
| | | getList(); |
| | | }, |
| | | { immediate: true, deep: true } |
| | | ); |
| | |
| | | upload.open = false; |
| | | upload.isUploading = false; |
| | | } |
| | | |
| | | // getList(); |
| | | getList(); |
| | | </script> |
| | | <style lang="css" scoped> |
| | | h4 { |