From a07f90d6106971923e8f761f253a9b4d30a60752 Mon Sep 17 00:00:00 2001
From: CD配唱片 <CD配唱片>
Date: 星期二, 06 五月 2025 15:37:30 +0800
Subject: [PATCH] Merge branch 'feature-i18n' into dev
---
src/views/mainPlan/pipeProduceStatics/index.vue | 157 +
src/views/mainPlan/plateProcessStat/index.vue | 477 ++--
src/layout/components/Navbar.vue | 110
src/views/mainPlan/platePlanList/index.vue | 240 +-
src/components/RightToolbar/index.vue | 6
src/utils/i18n/locales/common/index.js | 40
src/views/mainPlan/gasPiping/index.vue | 1112 ++++++-----
src/views/mainPlan/gasProduceStatics/index.vue | 132
src/utils/i18n/index.js | 24
src/views/mainPlan/apsPartRoutStat/index.vue | 175 +
.env.development | 2
src/views/mainPlan/gasPlanning/index.vue | 183 +
src/utils/i18n/locales/plan/index.js | 272 ++
src/main.js | 4
src/views/partPlan/index.vue | 1099 ++++++-----
package.json | 5
src/views/mainPlan/platePlan/index.vue | 1414 ++++++++------
src/views/mainPlan/weldSeam/index.vue | 6
src/store/modules/language.js | 13
19 files changed, 3,171 insertions(+), 2,300 deletions(-)
diff --git a/.env.development b/.env.development
index 605a602..a4a0a7d 100644
--- a/.env.development
+++ b/.env.development
@@ -10,4 +10,4 @@
# 閰嶅悎鍚庣鏈嶅姟
# VITE_APP_LOCAL = 'int'
# VITE_APP_LOCAL = 'zhl'
-VITE_APP_LOCAL = 'hjy'
\ No newline at end of file
+VITE_APP_LOCAL = 'cxl'
\ No newline at end of file
diff --git a/package.json b/package.json
index c43b476..5d3a564 100644
--- a/package.json
+++ b/package.json
@@ -34,12 +34,13 @@
"splitpanes": "3.1.5",
"vue": "3.4.31",
"vue-cropper": "1.1.1",
+ "vue-i18n": "^12.0.0-alpha.2",
"vue-router": "4.4.0",
"vuedraggable": "4.1.0",
"vxe-pc-ui": "4.5.15",
- "xlsx": "^0.18.5",
"vxe-table": "^4.13.8",
- "xe-utils": "^3.7.4"
+ "xe-utils": "^3.7.4",
+ "xlsx": "^0.18.5"
},
"devDependencies": {
"@vitejs/plugin-vue": "5.0.5",
diff --git a/src/components/RightToolbar/index.vue b/src/components/RightToolbar/index.vue
index 5a53dd4..ef4281c 100644
--- a/src/components/RightToolbar/index.vue
+++ b/src/components/RightToolbar/index.vue
@@ -1,13 +1,13 @@
<template>
<div class="top-right-btn" :style="style">
<el-row>
- <el-tooltip class="item" effect="dark" :content="showSearch ? '闅愯棌鎼滅储' : '鏄剧ず鎼滅储'" placement="top" v-if="search">
+ <el-tooltip class="item" effect="dark" :content="showSearch ? $t('common.common.hideSearch') : $t('common.common.showSearch')" placement="top" v-if="search">
<el-button circle icon="Search" @click="toggleSearch()" />
</el-tooltip>
- <el-tooltip class="item" effect="dark" content="鍒锋柊" placement="top">
+ <el-tooltip class="item" effect="dark" :content="$t('common.common.refresh')" placement="top">
<el-button circle icon="Refresh" @click="refresh()" />
</el-tooltip>
- <el-tooltip class="item" effect="dark" content="鏄鹃殣鍒�" placement="top" v-if="columns">
+ <el-tooltip class="item" effect="dark" :content="$t('common.common.column')" placement="top" v-if="columns">
<el-button circle icon="Menu" @click="showColumn()" v-if="showColumnsType == 'transfer'"/>
<el-dropdown trigger="click" :hide-on-click="false" style="padding-left: 12px" v-if="showColumnsType == 'checkbox'">
<el-button circle icon="Menu" />
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 34da618..94099fc 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -1,15 +1,34 @@
<template>
<div class="navbar">
- <hamburger id="hamburger-container" :is-active="appStore.sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
- <breadcrumb v-if="!settingsStore.topNav" id="breadcrumb-container" class="breadcrumb-container" />
- <top-nav v-if="settingsStore.topNav" id="topmenu-container" class="topmenu-container" />
+ <hamburger
+ id="hamburger-container"
+ :is-active="appStore.sidebar.opened"
+ class="hamburger-container"
+ @toggleClick="toggleSideBar"
+ />
+ <breadcrumb
+ v-if="!settingsStore.topNav"
+ id="breadcrumb-container"
+ class="breadcrumb-container"
+ />
+ <top-nav
+ v-if="settingsStore.topNav"
+ id="topmenu-container"
+ class="topmenu-container"
+ />
<div class="right-menu">
- <template v-if="appStore.device !== 'mobile'">
-
- </template>
+ <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>
+ </div>
<div class="avatar-container">
- <el-dropdown @command="handleCommand" class="right-menu-item hover-effect" trigger="click">
+ <el-dropdown
+ @command="handleCommand"
+ class="right-menu-item hover-effect"
+ trigger="click"
+ >
<div class="avatar-wrapper">
<img :src="userStore.avatar" class="user-avatar" />
<el-icon><caret-bottom /></el-icon>
@@ -17,13 +36,13 @@
<template #dropdown>
<el-dropdown-menu>
<router-link to="/user/profile">
- <el-dropdown-item>涓汉涓績</el-dropdown-item>
+ <el-dropdown-item>{{ $t(`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>閫�鍑虹櫥褰�</span>
+ <span>{{ $t(`topNav.logout`) }}</span>
</el-dropdown-item>
</el-dropdown-menu>
</template>
@@ -34,25 +53,32 @@
</template>
<script setup>
-import { ElMessageBox } from 'element-plus'
-import Breadcrumb from '@/components/Breadcrumb'
-import TopNav from '@/components/TopNav'
-import Hamburger from '@/components/Hamburger'
-import Screenfull from '@/components/Screenfull'
-import SizeSelect from '@/components/SizeSelect'
-import HeaderSearch from '@/components/HeaderSearch'
-import RuoYiGit from '@/components/RuoYi/Git'
-import RuoYiDoc from '@/components/RuoYi/Doc'
-import useAppStore from '@/store/modules/app'
-import useUserStore from '@/store/modules/user'
-import useSettingsStore from '@/store/modules/settings'
-
-const appStore = useAppStore()
-const userStore = useUserStore()
-const settingsStore = useSettingsStore()
+import { ElMessageBox } from "element-plus";
+import Breadcrumb from "@/components/Breadcrumb";
+import TopNav from "@/components/TopNav";
+import Hamburger from "@/components/Hamburger";
+import Screenfull from "@/components/Screenfull";
+import SizeSelect from "@/components/SizeSelect";
+import HeaderSearch from "@/components/HeaderSearch";
+import RuoYiGit from "@/components/RuoYi/Git";
+import RuoYiDoc from "@/components/RuoYi/Doc";
+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涓娇鐢ㄥ浗闄呭寲
+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 toggleSideBar() {
- appStore.toggleSideBar()
+ appStore.toggleSideBar();
}
function handleCommand(command) {
@@ -69,28 +95,30 @@
}
function logout() {
- ElMessageBox.confirm('纭畾娉ㄩ攢骞堕��鍑虹郴缁熷悧锛�', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- userStore.logOut().then(() => {
- location.href = '/index';
+ ElMessageBox.confirm("纭畾娉ㄩ攢骞堕��鍑虹郴缁熷悧锛�", "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+ userStore.logOut().then(() => {
+ location.href = "/index";
+ });
})
- }).catch(() => { });
+ .catch(() => {});
}
-const emits = defineEmits(['setLayout'])
+const emits = defineEmits(["setLayout"]);
function setLayout() {
- emits('setLayout');
+ emits("setLayout");
}
function toggleTheme() {
- settingsStore.toggleTheme()
+ settingsStore.toggleTheme();
}
</script>
-<style lang='scss' scoped>
+<style lang="scss" scoped>
.navbar {
height: 50px;
overflow: hidden;
@@ -130,7 +158,9 @@
height: 100%;
line-height: 50px;
display: flex;
-
+ .mt5{
+ margin-top:5px;
+ }
&:focus {
outline: none;
}
@@ -158,7 +188,7 @@
svg {
transition: transform 0.3s;
-
+
&:hover {
transform: scale(1.15);
}
diff --git a/src/main.js b/src/main.js
index 3177e06..496881d 100644
--- a/src/main.js
+++ b/src/main.js
@@ -47,8 +47,7 @@
import 'vxe-pc-ui/lib/style.css'
import VxeUITable from 'vxe-table'
import 'vxe-table/lib/style.css'
-
-
+import i18n from '@/utils/i18n' // 寮曞叆 i18n 閰嶇疆鏂囦欢
const app = createApp(App)
// 鍏ㄥ眬鏂规硶鎸傝浇
@@ -86,4 +85,5 @@
})
app.use(VxeUIAll)
app.use(VxeUITable)
+app.use(i18n)
app.mount('#app')
diff --git a/src/store/modules/language.js b/src/store/modules/language.js
new file mode 100644
index 0000000..f12a558
--- /dev/null
+++ b/src/store/modules/language.js
@@ -0,0 +1,13 @@
+const useLanguageStore = defineStore("language", {
+ state: () => ({
+ locale: "zh",
+ }),
+ actions: {
+ setLocale(locale) {
+ this.locale = locale; // 璁剧疆璇█骞舵洿鏂扮姸鎬�
+ console.log(this.locale,"this.localethis.locale")
+ }
+ },
+});
+
+export default useLanguageStore;
diff --git a/src/utils/i18n/index.js b/src/utils/i18n/index.js
new file mode 100644
index 0000000..3a11011
--- /dev/null
+++ b/src/utils/i18n/index.js
@@ -0,0 +1,24 @@
+// i18n.js 鎴栫被浼肩殑閰嶇疆鏂囦欢
+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 testZh, en as testEn} from './test'
+let EN = {
+ plan: planEn,
+ common: commonEn
+}
+let ZH = {
+ plan: planZh,
+ common: commonZh
+}
+const i18n = createI18n({
+ locale: 'zh', // 璁剧疆榛樿璇█涓轰腑鏂�
+ fallbackLocale: 'zh',
+ globalInjection:true,
+ legacy: false, // you must specify 'legacy: false' option
+ messages: {
+ en: EN,
+ zh: ZH
+ },
+})
+export default i18n
\ No newline at end of file
diff --git a/src/utils/i18n/locales/common/index.js b/src/utils/i18n/locales/common/index.js
new file mode 100644
index 0000000..16ed4c1
--- /dev/null
+++ b/src/utils/i18n/locales/common/index.js
@@ -0,0 +1,40 @@
+export const zh = {
+ topNav: {
+ center: "涓汉涓績",
+ logout: "閫�鍑虹櫥褰�",
+ },
+ common: {
+ import: "瀵煎叆",
+ export: "瀵煎嚭",
+ update: "鏇存柊",
+ query: "鏌ヨ",
+ reset: "閲嶇疆",
+ hideSearch: "闅愯棌鎼滅储",
+ showSearch: "鏄剧ず鎼滅储",
+ refresh: "鍒锋柊",
+ column: "鏄鹃殣鍒�",
+ edit:"缂栬緫",
+ save:"淇濆瓨",
+ cancel:"鍙栨秷"
+ }
+};
+export const en = {
+ topNav: {
+ center: "Personal Center",
+ logout: "Logout",
+ },
+ common: {
+ import: "Import",
+ export: "Export",
+ update: "Update",
+ query: "Query",
+ reset: "Reset",
+ hideSearch: "Hide Search",
+ showSearch: "Display search",
+ refresh: "Refresh",
+ column: "Explicit implicit column",
+ edit:"Edit",
+ save:"Save",
+ cancel:"Cancel"
+ },
+};
\ No newline at end of file
diff --git a/src/utils/i18n/locales/plan/index.js b/src/utils/i18n/locales/plan/index.js
new file mode 100644
index 0000000..d0dc41c
--- /dev/null
+++ b/src/utils/i18n/locales/plan/index.js
@@ -0,0 +1,272 @@
+export const zh = {
+ title: {
+ pipePlanCapacity: "绠¤矾浜ц兘瑙勫垝",
+ gasPlanCapacity:"姘旀煖瑙勫垝浜ц兘"
+ },
+ options:{
+ monthlyStatic:"鎸夋湀缁熻",
+ dailyStatic:"鎸夋棩缁熻"
+ },
+ message: {
+ update: "鏁版嵁鏇存柊鎴愬姛",
+ dataWorkorderSuccess: "闆朵欢宸ュ崟鏁版嵁宸叉垚鍔熻В鏋�",
+ dataWorkorderError: "闆朵欢宸ュ崟鏁版嵁宸茶В鏋愬け璐�",
+ metalplanDataSuccess: "閽i噾璁″垝鏁版嵁宸叉垚鍔熻В鏋�",
+ metalplanDataError: "閽i噾璁″垝鏁版嵁宸茶В鏋愬け璐�",
+ idNotBeEmpty: "涓婚敭id涓嶈兘涓虹┖",
+ errorMonthEmpty:"璇烽�夋嫨骞存湀"
+ },
+ placeholder: {
+ startDate: "寮�濮嬫棩鏈�",
+ endDate: "缁撴潫鏃ユ湡",
+ startMonth:"寮�濮嬫湀浠�",
+ endMonth:"缁撴潫鏈堜唤",
+ to:"鑷�",
+ documentNumber: "璇疯緭鍏ュ崟鎹彿",
+ customer: "璇疯緭鍏ュ鎴峰悕绉�",
+ planWorkOderNO: "璇疯緭鍏ラ挘閲戣鍒掑伐鍗曞彿",
+ selectMonth:"閫夋嫨鏈堜唤"
+ },
+ btns: {
+ batchPlanStartDay: "鎵归噺淇敼璁″垝寮�宸ユ棩",
+ batchPlanEndDay: "鎵归噺淇敼璁″垝瀹屽伐鏃�",
+ confirm: "纭畾",
+ cancel: "鍙栨秷",
+ },
+ query: {
+ daterangePlanStartDay: "璁″垝寮�宸ユ棩",
+ daterangePlanEndDay: "璁″垝瀹屽伐鏃�",
+ documentNumber: "鍗曟嵁鍙�",
+ customer: "瀹㈡埛鍚嶇О",
+ workOrderNo: "宸ュ崟鍙�",
+ selectMonth: "閫夋嫨鏈堜唤",
+ statistical:"缁熻鏂瑰紡",
+ selectDateRange: "閫夋嫨鍖洪棿"
+ },
+ upload: {
+ prevText: "灏嗘枃浠舵嫋鍒版澶勶紝鎴�",
+ uploadPartWorkOrderData: "闆朵欢宸ュ崟鏁版嵁涓婁紶",
+ uploadSheetMetalPlanData: "閽i噾璁″垝鏁版嵁涓婁紶",
+ uploadGasPipelineData: "姘斾綋绠¤矾璁″垝鏁版嵁涓婁紶",
+ info: "涓婁紶Excel鏂囦欢锛屽寘鍚浂浠跺伐鍗曚俊鎭�傜郴缁熷皢瑙f瀽鏁版嵁骞朵繚瀛樺埌鏈湴锛岀敤浜庡叧鑱斿埌闆朵欢璁″垝涓��",
+ weldSeamInfo:"涓婁紶Excel鏂囦欢锛屽寘鍚剨缂濆伐鍗曚俊鎭�傜郴缁熷皢瑙f瀽鏁版嵁骞朵繚瀛樺埌鏈湴锛岀敤浜庡叧鑱斿埌鐒婄紳璁″垝涓��",
+ uploadText: "鐐瑰嚮涓婁紶",
+ fileTypeImport: "浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�",
+ dataPreview: "鏁版嵁棰勮",
+ totalUpload: "鍏变笂浼�",
+ itemUpload: "鏉¢浂浠跺伐鍗曟暟鎹�",
+ confirmUpload: "纭涓婁紶",
+ cancel: "鍙� 娑�",
+ errorResult: "瀵煎叆缁撴灉",
+ uploadParsePartWorkOrderData: "闆朵欢宸ュ崟鏁版嵁宸叉垚鍔熶笂浼犲拰瑙f瀽",
+ uploadParseGasPipelineData: "姘斾綋绠¤矾璁″垝鏁版嵁宸叉垚鍔熶笂浼犲拰瑙f瀽",
+ },
+ table: {
+ mainPartNumber: "涓讳欢鏂欏彿",
+ businessType: "涓氬姟绫诲瀷",
+ documentNumber: "鍗曟嵁鍙�",
+ requirementType: "闇�姹傚垎绫�",
+ documentStatus: "鍗曟嵁鐘舵��",
+ updateBy: "瀹℃牳鏃堕棿",
+ workCenter: "褰撳墠宸ュ簭",
+ department: "褰撳墠宸ュ簭璐熻矗浜�",
+ opStatus: "褰撳墠宸ュ簭鐘舵��",
+ nextOpName: "涓嬩竴宸ュ簭",
+ nextProcessDeparment: "涓嬩竴宸ュ簭璐熻矗浜�",
+ itemNumber: "鏂欏彿",
+ drawingNo: "鍥惧彿",
+ versionNumber: "鐗堟湰鍙�",
+ cheaperCode: "浣庨樁鐮�",
+ productionQuantity: "鐢熶骇鏁伴噺",
+ planworkOrderTime: "宸ュ崟璁″垝涓嬪彂鏃堕棿",
+ planEndDay: "绯荤粺瀹屽伐鏃堕棿",
+ seq: "搴忓彿",
+ masterPlanner: "涓昏鍒掑憳",
+ weekDay: "鍛ㄦ棩",
+ weekCycle: "鍛ㄥ害",
+ mainPartDrawingNumber: "涓讳欢鍥惧彿",
+ customer: "瀹㈡埛鍚嶇О",
+ goodProductsQuantity: "鑹搧鏁伴噺",
+ processNumber: "宸ュ簭鍙�",
+ factoryCenter: "宸ヤ綔涓績",
+ dependencyDepartment: "鎵�灞為儴闂�",
+ planStartDay: "璁″垝寮�宸ユ棩",
+ planEndDayDate: "璁″垝瀹屽伐鏃�",
+ standbyNumber: "澶囨枡鏂欏彿",
+ standbyName: "澶囨枡鍚嶇О",
+ standbyStock: "澶囨枡搴撳瓨",
+ departmentToNextProcessBelongs: "涓嬮亾宸ュ簭鎵�灞為儴闂�",
+ isSuspended: "鏄惁鎸傝捣",
+ isOutsourcing: "澶栧崗鏍囪瘑",
+ account: "璐﹀",
+ workOrderNo: "宸ュ崟鍙�",
+ processName: "宸ュ簭鍚嶇О",
+ startDateOfProcessPlan: "宸ュ簭璁″垝寮�濮嬫棩鏈�",
+ endDateOfProcessPlan: "宸ュ簭璁″垝缁撴潫鏃ユ湡",
+ standardTime: "鏍囧噯宸ユ椂",
+ processOrder: "宸ュ簭鎺掑簭",
+ integrationDay: "闆嗘垚鏃ユ湡",
+ currentProcessNumber: "褰撳墠宸ュ簭鍙�",
+ totalWorkingHoursOfProcess: "宸ュ簭鎬诲伐鏃�",
+ OrderCompletionDate: "璁㈠崟瀹屽伐鏃�",
+ dateYearMonth: "鏃ユ湡",
+ resourceName: "璧勬簮缁�",
+ designWorkingHours: "璁捐宸ユ椂",
+ requiredWorkingHours: "闇�姹傚伐鏃�",
+ capacityLoad: "浜ц兘璐熻嵎",
+ advancedMaterials: "涓婇樁鐗╂枡",
+ advancedDocumentNumber: "涓婇樁鍗曟嵁鍙�",
+ advancedRequirementDay: "涓婇樁闇�姹傛棩鏈�",
+ isPlanComplete: "璁″垝榻愬",
+ isStockComplete: "搴撳瓨榻愬",
+ hasTurnback: "鏄惁鏈夋姌杩斿伐搴�",
+ hasRisk: "椋庨櫓鏍囪瘑",
+ // 浜ц兘瑙勫垝
+ satndardProcessName: "鏍囧噯宸ュ簭鍚嶇О",
+ dayProduceType: "鏃ヤ骇鍑虹被鍨�",
+ dayProduceNum: "鏃ヤ骇鍑烘暟閲�",
+ dayProduceUnit: "鏃ヤ骇鍑哄崟浣�",
+ personnelNumber: "浜哄憳鏁伴噺",
+ dayProduceAllNum: "鏃ヤ骇鍑烘�绘暟閲�",
+ days: "澶╂暟",
+ monthProduceAllNum: "鏈堜骇鍑烘暟閲�",
+ remark: "澶囨敞",
+ },
+};
+export const en = {
+ title: {
+ pipePlanCapacity: "Pipeline planning capacity",
+ gasPlanCapacity: "Gas holder planning production capacity"
+ },
+ options:{
+ monthlyStatic:"Monthly statistics",
+ dailyStatic:"Daily statistics"
+ },
+ message: {
+ update: "Data update successful",
+ dataWorkorderSuccess:
+ "The part work order data has been successfully parsed",
+ dataWorkorderError: "Failed to parse part work order data",
+ 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"
+ },
+ placeholder: {
+ startDate: "Start date",
+ endDate: "End date",
+ 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"
+ },
+ btns: {
+ batchPlanStartDay: "Batch modification of planned start date",
+ batchPlanEndDay: "Batch modification plan completion date",
+ confirm: "Confirm",
+ cancel: "Cancel",
+ },
+ query: {
+ daterangePlanStartDay: "Planned start date",
+ daterangePlanEndDay: "Planned completion date",
+ documentNumber: "Document number",
+ customer: "Customer Name",
+ workOrderNo: "Work order number",
+ selectMonth: "Select Month",
+ statistical:"Statistical method",
+ selectDateRange: "Select interval"
+ },
+ upload: {
+ prevText: "Drag the file here, or",
+ uploadPartWorkOrderData: "Upload part work order data",
+ uploadSheetMetalPlanData: "Upload sheet metal plan data",
+ info: "Upload an Excel file containing part work order information. The system will parse the data and save it locally for association with the part plan.",
+ uploadText: " Click to upload",
+ fileTypeImport:
+ "Only xls and xlsx format files are allowed to be imported.",
+ dataPreview: "Data Preview",
+ totalUpload: "Upload",
+ itemUpload: "part work order data in total",
+ confirmUpload: "Confirm upload",
+ cancel: "Cancel",
+ errorResult: "Import results",
+ uploadParsePartWorkOrderData:
+ "The part work order data has been successfully uploaded and parsed",
+ uploadParseGasPipelineData:
+ "The gas pipeline plan data has been successfully uploaded and parsed",
+ },
+ table: {
+ mainPartNumber: "Main part number",
+ businessType: "Business type",
+ documentNumber: "Document number",
+ requirementType: "Requirements classification",
+ documentStatus: "Document Status",
+ updateBy: "Audit time",
+ workCenter: "Current process",
+ department: "Current process leader",
+ opStatus: "Current process status",
+ nextOpName: "Next process",
+ nextProcessDeparment: "Next Process Manager",
+ itemNumber: "Item number",
+ drawingNo: "Drawing No",
+ versionNumber: "Version number",
+ cheaperCode: "Low order code",
+ productionQuantity: "Production quantity",
+ planworkOrderTime: "Work order plan issuance time",
+ planEndDay: "System completion time",
+ seq: "Serial Number",
+ masterPlanner: "Master scheduler",
+ weekDay: "Sunday",
+ weekCycle: "Week cycle",
+ mainPartDrawingNumber: "Main component drawing number",
+ customer: "Customer Name",
+ goodProductsQuantity: "Quantity of good products",
+ processNumber: "Process number",
+ factoryCenter: "Work center",
+ dependencyDepartment: "Department",
+ planStartDay: "Planned commencement date",
+ planEndDayDate: "Planned completion date",
+ standbyNumber: "Material preparation part number",
+ standbyName: "Material name",
+ standbyStock: "Material preparation inventory",
+ departmentToNextProcessBelongs: "Material preparation inventory",
+ isSuspended: "Is it suspended",
+ isOutsourcing: "Outsourcing identification",
+ account: "Account set",
+ workOrderNo: "Work order number",
+ processName: "Process name",
+ startDateOfProcessPlan: "Start date of process plan",
+ endDateOfProcessPlan: "End date of process plan",
+ standardTime: "Standard working hours",
+ processOrder: "Process sorting",
+ integrationDay: "Integration date",
+ currentProcessNumber: "Current process number",
+ totalWorkingHoursOfProcess: "Total working hours of the process",
+ OrderCompletionDate: "Order completion date",
+ dateYearMonth: "Date",
+ resourceName: "Resource Group",
+ designWorkingHours: "Design working hours",
+ requiredWorkingHours: "Required working hours",
+ capacityLoad: "capacity load",
+ advancedMaterials: "advanced materials",
+ advancedDocumentNumber: "advanced document number",
+ advancedRequirementDay: "advanced requirement day",
+ isPlanComplete: "Complete plan",
+ isStockComplete: "Complete inventory set",
+ hasTurnback: "Is there a turnaround process",
+ hasRisk: "Risk identification",
+ // 浜ц兘瑙勫垝
+ satndardProcessName: "Standard process name",
+ dayProduceType: "Type of daily production",
+ dayProduceNum: "Daily output quantity",
+ dayProduceUnit: "Daily production unit",
+ personnelNumber: "Number of personnel",
+ dayProduceAllNum: "Total daily output quantity",
+ days: "Days",
+ monthProduceAllNum: "Monthly output quantity",
+ remark: "notes",
+ },
+};
diff --git a/src/views/mainPlan/apsPartRoutStat/index.vue b/src/views/mainPlan/apsPartRoutStat/index.vue
index d79ef8f..d33329f 100644
--- a/src/views/mainPlan/apsPartRoutStat/index.vue
+++ b/src/views/mainPlan/apsPartRoutStat/index.vue
@@ -8,16 +8,19 @@
icon="Download"
@click="handleExport"
v-hasPermi="['apsPartRouteStat:export']"
- >瀵煎嚭</el-button>
+ >{{ $t(`common.common.export`) }}</el-button
+ >
</el-col>
<el-col :span="1.5">
<el-button
- type="info"
+ type="success"
plain
icon="Refresh"
@click="handleRefresh"
+ :disabled="loading"
v-hasPermi="['apsPartRouteStat:edit']"
- >鏇存柊</el-button>
+ >{{ $t(`common.common.update`) }}</el-button
+ >
</el-col>
<right-toolbar @queryTable="getList" :search="false"></right-toolbar>
</el-row>
@@ -26,15 +29,16 @@
</template>
<script setup name="apsPartRouteStat">
-import { query,updateStat } from "@/api/mainPlan/partRouteStat.js";
+import { query, updateStat } from "@/api/mainPlan/partRouteStat.js";
import { ref } from "vue";
-import * as XLSX from 'xlsx';
+import * as XLSX from "xlsx";
const { proxy } = getCurrentInstance();
-
-const loading = ref(true);
+import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+const { t, locale } = useI18n();
+const loading = ref(false);
const gridRef = ref();
-const height = ref(document.documentElement.clientHeight - 130 + "px;")
+const height = ref(document.documentElement.clientHeight - 130 + "px;");
const headers = ref([]);
const exportData = ref([]);
@@ -47,122 +51,133 @@
showFooterOverflow: true,
height: height,
columnConfig: {
- resizable: true
+ resizable: true,
},
scrollX: {
enabled: true,
gt: 0,
- threshold: 50
+ threshold: 50,
},
scrollY: {
enabled: true,
gt: 0,
- threshold: 50
- }
+ threshold: 50,
+ },
});
-let tableColumn = []
-let tableData = []
+let tableColumn = [];
+let tableData = [];
let merges = [];
-
+watch(locale, (newLocale) => {
+ getList()
+},{immediate:true, deep:true})
/** 鏌ヨ闆朵欢缁熻琛ㄥ垪琛� */
function getList() {
- let rowKey = 0
- let colKey = 0
- headers.value = []
- exportData.value = []
- tableColumn = []
- tableData = []
+ let rowKey = 0;
+ let colKey = 0;
+ headers.value = [];
+ exportData.value = [];
+ tableColumn = [];
+ tableData = [];
loading.value = true;
- query().then(response => {
- const colList = []
- let headersOne = []
- let headersTwo = []
- if(response.code == '200'){
+ query().then((response) => {
+ const colList = [];
+ let headersOne = [];
+ let headersTwo = [];
+ if (response.code == "200") {
if (!response.planTitle) {
loading.value = false;
return;
}
- headersOne.push('鏃ユ湡');
- headersTwo.push('璧勬簮缁�');
+ headersOne.push(t('plan.table.dateYearMonth'));
+ headersTwo.push(t('plan.table.resourceName'));
colList.push({
- field: 'dateCol',
- title: '鏃ユ湡',
- fixed: 'left',
- children: [
- { field: `resourceName`, title: '璧勬簮缁�', width: 250, type: 'html'},
- ],
- width: 160
- })
- response.planTitle.forEach(item => {
+ field: "dateCol",
+ title: t('plan.table.dateYearMonth'),
+ fixed: "left",
+ children: [
+ { field: `resourceName`, title: t('plan.table.resourceName'), width: 250, type: "html" },
+ ],
+ width: 160,
+ });
+ response.planTitle.forEach((item) => {
headersOne.push(item);
- headersOne.push('');
- headersOne.push('');
- headersTwo.push('璁捐宸ユ椂');
- headersTwo.push('闇�姹傚伐鏃�');
- headersTwo.push('浜ц兘璐熻嵎');
- colKey++
+ headersOne.push("");
+ headersOne.push("");
+ headersTwo.push(t("plan.table.designWorkingHours"));
+ headersTwo.push(t("plan.table.requiredWorkingHours"));
+ headersTwo.push(t("plan.table.capacityLoad"));
+ colKey++;
colList.push({
field: `dateColTime${colKey}`,
title: item,
children: [
- { field: `designTimes${colKey}`, title: '璁捐宸ユ椂', width: 80},
- { field: `requireTimes${colKey}`, title: '闇�姹傚伐鏃�', width: 80},
- { field: `capacityLoad${colKey}`, title: '浜ц兘璐熻嵎', width: 80, type: 'html'},
+ { field: `designTimes${colKey}`, title: t("plan.table.designWorkingHours"), width: 80 },
+ { field: `requireTimes${colKey}`, title: t("plan.table.requiredWorkingHours"), width: 80 },
+ {
+ field: `capacityLoad${colKey}`,
+ title: t("plan.table.capacityLoad"),
+ width: 80,
+ type: "html",
+ },
],
- width: 160
- })
+ width: 160,
+ });
});
headers.value.push(headersOne);
headers.value.push(headersTwo);
- const columnList = [...tableColumn, ...colList]
- const dataList = []
+ const columnList = [...tableColumn, ...colList];
+ const dataList = [];
let startCol = 1;
//鑾峰彇map
- response.planTable.forEach(mapItem => {
- rowKey++
+ response.planTable.forEach((mapItem) => {
+ rowKey++;
let lastCol = startCol + 2;
- merges.push({ s: { r: 0, c: startCol }, e: { r: 0, c: lastCol} });
+ merges.push({ s: { r: 0, c: startCol }, e: { r: 0, c: lastCol } });
startCol = lastCol + 1;
let data = [];
const item = {
- id: `${rowKey}`
- }
+ id: `${rowKey}`,
+ };
for (const [key, listValue] of Object.entries(mapItem)) {
data.push(key);
-
+
let tableKey = 0;
let flag = false;
- listValue.forEach(listItem => {
-
- tableKey++
+ listValue.forEach((listItem) => {
+ tableKey++;
item[`designTimes${tableKey}`] = listItem.designTimes;
item[`requireTimes${tableKey}`] = listItem.requireTimes;
- item[`capacityLoad${tableKey}`] = listItem.capacityLoad > 100 ? `<font color="red">${listItem.capacityLoad}%</font>` :listItem.capacityLoad+'%';
+ item[`capacityLoad${tableKey}`] =
+ listItem.capacityLoad > 100
+ ? `<font color="red">${listItem.capacityLoad}%</font>`
+ : listItem.capacityLoad + "%";
data.push(listItem.designTimes);
data.push(listItem.requireTimes);
- data.push(listItem.capacityLoad+'%');
+ data.push(listItem.capacityLoad + "%");
if (listItem.capacityLoad > 100) {
flag = true;
}
});
- item[`resourceName`] = flag ? `<div class='el-badge'><sup class="el-badge__content is-fixed is-dot"></sup>${key}</div>` : key;
+ item[`resourceName`] = flag
+ ? `<div class='el-badge'><sup class="el-badge__content is-fixed is-dot"></sup>${key}</div>`
+ : key;
}
exportData.value.push(data);
dataList.push(item);
});
-
- const $grid = gridRef.value
+
+ const $grid = gridRef.value;
if ($grid) {
- tableColumn = columnList
- tableData = [...tableData, ...dataList]
- $grid.loadColumn(tableColumn)
- $grid.loadData(tableData)
- gridOptions.loading = false
+ tableColumn = columnList;
+ tableData = [...tableData, ...dataList];
+ $grid.loadColumn(tableColumn);
+ $grid.loadData(tableData);
+ gridOptions.loading = false;
}
loading.value = false;
@@ -172,7 +187,6 @@
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
function handleExport() {
-
// 鍚堝苟琛ㄥご鍜屾暟鎹�
const finalData = [...headers.value, ...exportData.value];
@@ -185,25 +199,30 @@
{ s: { r: 0, c: 0 }, e: { r: 0, c: 0 } }
]; */
- ws['!merges'] = merges;
-
+ ws["!merges"] = merges;
+
// 鍒涘缓 workbook
const wb = XLSX.utils.book_new();
// 灏� worksheet 娣诲姞鍒� workbook 涓�
- XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
+ XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
// 瀵煎嚭鏂囦欢
XLSX.writeFile(wb, `apsPartRouteStat_${new Date().getTime()}.xlsx`);
-
}
/** 鍒锋柊鎸夐挳鎿嶄綔 */
-function handleRefresh(){
- updateStat().then(response => {
- if(response.code == '200'){
+function handleRefresh() {
+ loading.value = true;
+ updateStat().then((response) => {
+ if (response.code == "200") {
+ ElMessage({
+ message: t("plan.message.update"),
+ type: "success",
+ });
getList();
+ loading.value = false;
}
});
}
-getList();
+// getList();
</script>
diff --git a/src/views/mainPlan/gasPiping/index.vue b/src/views/mainPlan/gasPiping/index.vue
index fe9d87e..6aa652e 100644
--- a/src/views/mainPlan/gasPiping/index.vue
+++ b/src/views/mainPlan/gasPiping/index.vue
@@ -1,90 +1,111 @@
<template>
<div class="app-container">
- <el-row :gutter="20"> <el-col>
- <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="90px">
- <el-row :gutter="20">
- <el-col :span="6">
- <el-form-item label="璁″垝寮�宸ユ棩" style="width: 100%;">
+ <el-row :gutter="10" class="mb8">
+ <el-form
+ :model="queryParams"
+ ref="queryRef"
+ :inline="true"
+ v-show="showSearch"
+ :label-width="locale === 'zh' ? '90px' : '180px'"
+ label-position="left"
+ >
+ <!-- <el-row :gutter="20">
+ <el-col :span="6"> -->
+ <el-form-item :label="$t('plan.query.daterangePlanStartDay')">
<el-date-picker
- v-model="daterangePlanStartDay"
- value-format="YYYY-MM-DD"
- type="daterange"
- range-separator="-"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
+ style="width: 240px"
+ v-model="daterangePlanStartDay"
+ value-format="YYYY-MM-DD"
+ type="daterange"
+ range-separator="-"
+ :start-placeholder="$t('plan.placeholder.startDate')"
+ :end-placeholder="$t('plan.placeholder.endDate')"
></el-date-picker>
</el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="璁″垝瀹屽伐鏃�" style="width: 100%;">
+ <!-- </el-col>
+ <el-col :span="6"> -->
+ <el-form-item :label="$t('plan.query.daterangePlanEndDay')">
<el-date-picker
- v-model="daterangePlanEndDay"
- value-format="YYYY-MM-DD"
- type="daterange"
- range-separator="-"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
+ style="width: 240px"
+ v-model="daterangePlanEndDay"
+ value-format="YYYY-MM-DD"
+ type="daterange"
+ range-separator="-"
+ :start-placeholder="$t('plan.placeholder.startDate')"
+ :end-placeholder="$t('plan.placeholder.endDate')"
></el-date-picker>
</el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="鍗曟嵁鍙�" prop="documentNumber" style="width: 100%;">
+ <!-- </el-col>
+ <el-col :span="6"> -->
+ <el-form-item
+ :label="$t('plan.query.documentNumber')"
+ prop="documentNumber"
+ >
<el-input
- v-model="queryParams.documentNumber"
- placeholder="璇疯緭鍏ュ崟鎹彿"
- clearable
- @keyup.enter="handleQuery"
+ style="width: 240px"
+ v-model="queryParams.documentNumber"
+ :placeholder="$t('plan.placeholder.documentNumber')"
+ clearable
+ @keyup.enter="handleQuery"
/>
</el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="瀹㈡埛鍚嶇О" prop="customer" style="width: 100%;">
+ <!-- </el-col>
+ <el-col :span="6"> -->
+ <el-form-item :label="$t('plan.query.customer')" prop="customer">
<el-input
- v-model="queryParams.customer"
- placeholder="璇疯緭鍏ュ鎴峰悕绉�"
- clearable
- @keyup.enter="handleQuery"
+ style="width: 240px"
+ v-model="queryParams.customer"
+ :placeholder="$t('plan.placeholder.customer')"
+ clearable
+ @keyup.enter="handleQuery"
/>
</el-form-item>
- </el-col>
- <el-col :span="24" style="text-align: right;">
+ <!-- </el-col>
+ <el-col :span="24" style="text-align: right;"> -->
<el-form-item>
- <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-col> -->
+ <!-- </el-row> -->
</el-form>
- </el-col> </el-row>
+ </el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
- type="primary"
- plain
- icon="Plus"
- :disabled="single"
- @click="handleUpdate"
- v-hasPermi="['apsPlatePlan:edit']"
- >鎵归噺淇敼璁″垝寮�宸ユ棩</el-button>
+ type="primary"
+ plain
+ icon="Plus"
+ :disabled="single"
+ @click="handleUpdate"
+ v-hasPermi="['apsPlatePlan:edit']"
+ >{{ $t("plan.btns.batchPlanStartDay") }}</el-button
+ >
</el-col>
<el-col :span="1.5">
<el-button
- type="success"
- plain
- icon="Edit"
- :disabled="single"
- @click="handleUpdate"
- v-hasPermi="['apsPlatePlan:edit']"
- >鎵归噺淇敼璁″垝瀹屽伐鏃�</el-button>
+ type="success"
+ plain
+ icon="Edit"
+ :disabled="single"
+ @click="handleUpdate"
+ v-hasPermi="['apsPlatePlan:edit']"
+ >{{ $t("plan.btns.batchPlanEndDay") }}</el-button
+ >
</el-col>
<el-col :span="1.5">
<el-button
- type="info"
- plain
- icon="Upload"
- @click="handleImport"
- v-hasPermi="['apsPlatePlan:import']"
- >瀵煎叆</el-button>
+ type="info"
+ plain
+ icon="Upload"
+ @click="handleImport"
+ v-hasPermi="['apsPlatePlan:import']"
+ >{{ $t("common.common.import") }}</el-button
+ >
</el-col>
<el-col :span="1.5">
<el-button
@@ -93,45 +114,69 @@
icon="Download"
@click="handleExport"
v-hasPermi="['apsPlatePlan:export']"
- >瀵煎嚭</el-button>
+ >{{ $t("common.common.export") }}</el-button
+ >
</el-col>
- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+ <right-toolbar
+ v-model:showSearch="showSearch"
+ @queryTable="getList"
+ ></right-toolbar>
</el-row>
<HxlhTable
- style="width: 100%"
- :columns="columns"
- :data="planList"
- :loading="loading"
- :height="height"
- @on-checkbox="handleCheckboxChange"
+ style="width: 100%"
+ :columns="columns"
+ :data="planList"
+ :loading="loading"
+ :height="height"
+ @on-checkbox="handleCheckboxChange"
>
</HxlhTable>
<!-- 娣诲姞鎴栦慨鏀归挘閲戣鍒掔鐞嗗璇濇 -->
- <el-dialog :title="upload.title" v-model="upload.open" width="90%" append-to-body @close="dialogCancel">
+ <el-dialog
+ :title="upload.title"
+ v-model="upload.open"
+ width="90%"
+ append-to-body
+ @close="dialogCancel"
+ >
<el-row :gutter="10">
<el-col>
- <div style="border-bottom: 1px solid #ccc;" >
- <p>涓婁紶Excel鏂囦欢锛屽寘鍚浂浠跺伐鍗曚俊鎭�傜郴缁熷皢瑙f瀽鏁版嵁骞朵繚瀛樺埌鏈湴锛岀敤浜庡叧鑱斿埌闆朵欢璁″垝涓��</p>
+ <div style="border-bottom: 1px solid #ccc">
+ <p>{{ $t("plan.upload.info") }}</p>
</div>
</el-col>
- <el-col >
+ <el-col>
<div></div>
</el-col>
</el-row>
- <el-row :gutter="10" style="margin-top: 20px;"> </el-row>
+ <el-row :gutter="10" style="margin-top: 20px"> </el-row>
<el-row>
<el-col>
- <el-upload ref="uploadRef" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="true" drag>
+ <el-upload
+ ref="uploadRef"
+ :limit="1"
+ accept=".xlsx, .xls"
+ :headers="upload.headers"
+ :action="upload.url + '?updateSupport=' + upload.updateSupport"
+ :disabled="upload.isUploading"
+ :on-progress="handleFileUploadProgress"
+ :on-success="handleFileSuccess"
+ :auto-upload="true"
+ drag
+ >
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
- <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+ <div class="el-upload__text">
+ {{ $t("plan.upload.prevText")
+ }}<em>{{ $t("plan.upload.uploadText") }}</em>
+ </div>
<template #tip>
<div class="el-upload__tip">
<!-- <div class="el-upload__tip">
<el-checkbox v-model="upload.updateSupport" />鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
</div> -->
- <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span>
+ <span>{{ $t("plan.upload.fileTypeImport") }}</span>
<!-- <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline" @click="importTemplate">涓嬭浇妯℃澘</el-link> -->
</div>
</template>
@@ -139,65 +184,95 @@
</el-col>
</el-row>
<el-row>
- <el-col style="margin-top: 20px;">
+ <el-col style="margin-top: 20px">
<div v-show="isVisible">
- <el-alert icon="Check" :show-icon="true" title="閽i噾璁″垝鏁版嵁宸叉垚鍔熻В鏋�" type="success" :closable="false"/>
+ <el-alert
+ icon="Check"
+ :show-icon="true"
+ :title="$t('plan.message.metalplanDataSuccess')"
+ type="success"
+ :closable="false"
+ />
</div>
<div v-show="isError">
- <el-alert icon="Close" :show-icon="true" title="閽i噾璁″垝鏁版嵁宸茶В鏋愬け璐�" type="error" :closable="false"/>
+ <el-alert
+ icon="Close"
+ :show-icon="true"
+ :title="$t('plan.message.metalplanDataError')"
+ type="error"
+ :closable="false"
+ />
</div>
</el-col>
</el-row>
<el-row v-show="isVisible">
<el-col>
<div>
- <h2>鏁版嵁棰勮</h2>
+ <h2>{{$t("plan.upload.dataPreview")}}</h2>
</div>
<HxlhTable
- style="width: 100%"
- :columns="exampleColumns"
- :data="exampleList"
- :loading="loading"
- :maxHeight="exampleHeight"
- @on-checkbox="handleCheckboxChange"
+ style="width: 100%"
+ :columns="exampleColumns"
+ :data="exampleList"
+ :loading="loading"
+ :maxHeight="exampleHeight"
+ @on-checkbox="handleCheckboxChange"
>
</HxlhTable>
</el-col>
<el-col>
- <div style="text-align: right;">
- <h4>鍏变笂浼�<span style="color: blue;">{{ total }}</span>鏉¢浂浠跺伐鍗曟暟鎹�</h4>
+ <div style="text-align: right">
+ <h4>
+ {{$t("plan.upload.totalUpload")}}<span style="color: blue">{{ total }}</span
+ >{{$t("plan.upload.itemUpload")}}
+ </h4>
</div>
</el-col>
</el-row>
<template #footer>
<div class="dialog-footer">
<el-button
- type="success"
- plain
- icon="Check"
- :disabled="planned"
- @click="uploadParse"
- v-hasPermi="['gasPiping:confirm']"
- >纭涓婁紶</el-button>
+ type="success"
+ plain
+ icon="Check"
+ :disabled="planned"
+ @click="uploadParse"
+ v-hasPermi="['gasPiping:confirm']"
+ >{{$t('plan.upload.confirmUpload')}}</el-button
+ >
<!-- <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button> -->
- <el-button @click="dialogCancel">鍙� 娑�</el-button>
+ <el-button @click="dialogCancel">{{$t('plan.upload.cancel')}}</el-button>
</div>
</template>
</el-dialog>
-
</div>
</template>
<script setup name="ApsPlatePlan">
-import { listPlan, examplePlan, confirmPart} from "@/api/mainPlan/gasPiping.js";
-import HxlhTable from '@/components/HxlhTable/index.vue'
+import {
+ listPlan,
+ examplePlan,
+ confirmPart,
+} from "@/api/mainPlan/gasPiping.js";
+import HxlhTable from "@/components/HxlhTable/index.vue";
import { ref } from "vue";
import { getToken } from "@/utils/auth.js";
-import {ElMessage} from "element-plus";
-
+import { ElMessage } from "element-plus";
+import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+const { t, locale } = useI18n();
const { proxy } = getCurrentInstance();
-const { aps_is_suspended, aps_document_status, aps_account, aps_business_type } = proxy.useDict('aps_is_suspended', 'aps_document_status', 'aps_account', 'aps_business_type');
+const {
+ aps_is_suspended,
+ aps_document_status,
+ aps_account,
+ aps_business_type,
+} = proxy.useDict(
+ "aps_is_suspended",
+ "aps_document_status",
+ "aps_account",
+ "aps_business_type"
+);
const exampleList = ref([]);
const planList = ref([]);
@@ -207,14 +282,13 @@
const total = ref(0);
const daterangePlanStartDay = ref([]);
const daterangePlanEndDay = ref([]);
-const height = ref(document.documentElement.clientHeight - 270 + "px;")
+const height = ref(document.documentElement.clientHeight - 270 + "px;");
const isVisible = ref(false);
const isError = ref(false);
const planned = ref(true);
const batchNumber = ref(null);
const exampleHeight = ref("500px");
const uploadRef = ref();
-
/*** 鐢ㄦ埛瀵煎叆鍙傛暟 */
const upload = reactive({
@@ -227,382 +301,16 @@
// 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
updateSupport: 0,
// 璁剧疆涓婁紶鐨勮姹傚ご閮�
- headers: { Authorization: "Bearer " + getToken() ,local: 'zhl'},
+ headers: { Authorization: "Bearer " + getToken(), local: "zhl" },
// 涓婁紶鐨勫湴鍧�
- url: import.meta.env.VITE_APP_BASE_API + "/aps/gasPiping/importData"
+ url: import.meta.env.VITE_APP_BASE_API + "/aps/gasPiping/importData",
});
// 琛ㄦ牸閰嶇疆
-const exampleColumns = ref([
- { type: 'seq', title: '搴忓彿', width: 60 },
- {
- title: '涓昏鍒掑憳',
- field: 'masterPlanner',
- width: 100,
- },
- {
- title: '鍛ㄦ棩',
- field: 'weekDay',
- width: 100,
- formatter: (({ cellValue, row, column }) => {
- if (cellValue) {
- const weekDay = new Date(cellValue);
- const year = weekDay.getFullYear();
- const month = String(weekDay.getMonth() + 1).padStart(2, '0');
- const day = String(weekDay.getDate()).padStart(2, '0');
- return `${month}-${day}`;
- }
- return '';
- })
- },
- {
- title: '鍛ㄥ害',
- field: 'weekCycle',
- width: 80,
- },
- {
- title: '涓讳欢鏂欏彿',
- field: 'mainPartNumber',
- width: 150,
- },
- {
- title: '涓讳欢鍥惧彿',
- field: 'mainPartDrawingNumber',
- width: 150,
- },
- {
- title: '瀹㈡埛鍚嶇О',
- field: 'customer',
- width: 200,
- },
- {
- title: '涓氬姟绫诲瀷',
- field: 'businessType',
- width: 150,
- },
- {
- title: '鍗曟嵁鍙�',
- field: 'documentNumber',
- width: 150,
- },
- {
- title: '闇�姹傚垎绫�',
- field: 'requirementType',
- width: 150,
- },
- {
- title: '鍗曟嵁鐘舵��',
- field: 'documentStatus',
- width: 100,
- },
- {
- title: '鏂欏彿',
- field: 'itemNumber',
- width: 150,
- },
- {
- title: '鍥惧彿',
- field: 'drawingNo',
- width: 150,
- },
- {
- title: '鐗堟湰鍙�',
- field: 'versionNumber',
- width: 100,
- },
- {
- title: '鐢熶骇鏁伴噺',
- field: 'productionQuantity',
- width: 100,
- },
- {
- title: '鑹搧鏁伴噺',
- field: 'goodProductsQuantity',
- width: 100,
- },
- {
- title: '宸ュ簭鍙�',
- field: 'processNumber',
- width: 150,
- },
- {
- title: '宸ヤ綔涓績',
- field: 'workCenter',
- width: 150,
- },
- {
- title: '鎵�灞為儴闂�',
- field: 'department',
- width: 100,
- },
- {
- title: '璁″垝寮�宸ユ棩',
- field: 'planStartDay',
- width: 100,
- },
- {
- title: '璁″垝瀹屽伐鏃�',
- field: 'planEndDay',
- width: 100,
- },
- {
- title: '澶囨枡鏂欏彿',
- field: 'standbyNumber',
- width: 100,
- },
- {
- title: '澶囨枡鍚嶇О',
- field: 'standbyName',
- width: 200,
- },
- {
- title: '澶囨枡搴撳瓨',
- field: 'standbyStock',
- width: 100,
- },
- {
- title: '涓嬮亾宸ュ簭鎵�灞為儴闂�',
- field: 'nextProcessDeparment',
- width: 150,
- },
- {
- title: '鏄惁鎸傝捣',
- field: 'isSuspended',
- width: 100,
- },
- {
- title: '澶栧崗鏍囪瘑',
- field: 'isOutsourcing',
- width: 100,
- },
- {
- title: '璐﹀',
- field: 'account',
- width: 100,
- },
- // {
- // title: '涓婇樁鐗╂枡',
- // field: 'advancedMaterials',
- // width: 100,
- // },
- // {
- // title: '涓婇樁鍗曟嵁鍙�',
- // field: 'advancedDocumentNumber',
- // width: 100,
- // },
- // {
- // title: '涓婇樁闇�姹傛棩鏈�',
- // field: 'advancedRequirementDay',
- // width: 150,
- // },
- // {
- // title: '璁″垝榻愬',
- // field: 'isPlanComplete',
- // width: 100,
- // },
- // {
- // title: '搴撳瓨榻愬',
- // field: 'isStockComplete',
- // width: 100,
- // },
- // {
- // title: '鏄惁鏈夋姌杩斿伐搴�',
- // field: 'hasTurnback',
- // width: 150,
- // },
- // {
- // title: '椋庨櫓鏍囪瘑',
- // field: 'hasRisk',
- // width: 100,
- // },
-]);
+const exampleColumns = ref([]);
// 琛ㄦ牸閰嶇疆
-const columns = ref([
- { type: 'checkbox', width: 60, align:"center"},
- { type: 'seq', title: '搴忓彿', width: 60 },
- {
- title: '涓昏鍒掑憳',
- field: 'masterPlanner',
- width: 100,
- },
- {
- title: '鍛ㄦ棩',
- field: 'weekDay',
- width: 100,
- formatter: (({ cellValue, row, column }) => {
- if (cellValue) {
- const weekDay = new Date(cellValue);
- const year = weekDay.getFullYear();
- const month = String(weekDay.getMonth() + 1).padStart(2, '0');
- const day = String(weekDay.getDate()).padStart(2, '0');
- return `${month}-${day}`;
- }
- return '';
- })
- },
- {
- title: '鍛ㄥ害',
- field: 'weekCycle',
- width: 80,
- },
- {
- title: '涓讳欢鏂欏彿',
- field: 'mainPartNumber',
- width: 150,
- },
- {
- title: '涓讳欢鍥惧彿',
- field: 'mainPartDrawingNumber',
- width: 150,
- },
- {
- title: '瀹㈡埛鍚嶇О',
- field: 'customer',
- width: 200,
- },
- {
- title: '涓氬姟绫诲瀷',
- field: 'businessType',
- width: 100,
- },
- {
- title: '鍗曟嵁鍙�',
- field: 'documentNumber',
- width: 100,
- },
- {
- title: '闇�姹傚垎绫�',
- field: 'requirementType',
- width: 100,
- },
- {
- title: '鍗曟嵁鐘舵��',
- field: 'documentStatus',
- width: 100,
- },
- {
- title: '鏂欏彿',
- field: 'itemNumber',
- width: 100,
- },
- {
- title: '鍥惧彿',
- field: 'drawingNo',
- width: 100,
- },
- {
- title: '鐗堟湰鍙�',
- field: 'versionNumber',
- width: 100,
- },
- {
- title: '鐢熶骇鏁伴噺',
- field: 'productionQuantity',
- width: 100,
- },
- {
- title: '鑹搧鏁伴噺',
- field: 'goodProductsQuantity',
- width: 100,
- },
- {
- title: '宸ュ簭鍙�',
- field: 'processNumber',
- width: 100,
- },
- {
- title: '宸ヤ綔涓績',
- field: 'workCenter',
- width: 100,
- },
- {
- title: '鎵�灞為儴闂�',
- field: 'department',
- width: 100,
- },
- {
- title: '璁″垝寮�宸ユ棩',
- field: 'planStartDay',
- width: 100,
- },
- {
- title: '璁″垝瀹屽伐鏃�',
- field: 'planEndDay',
- width: 100,
- },
- {
- title: '澶囨枡鏂欏彿',
- field: 'standbyNumber',
- width: 100,
- },
- {
- title: '澶囨枡鍚嶇О',
- field: 'standbyName',
- width: 100,
- },
- {
- title: '澶囨枡搴撳瓨',
- field: 'standbyStock',
- width: 100,
- },
- {
- title: '涓嬮亾宸ュ簭鎵�灞為儴闂�',
- field: 'nextProcessDeparment',
- width: 100,
- },
- {
- title: '鏄惁鎸傝捣',
- field: 'isSuspended',
- width: 100,
- },
- {
- title: '澶栧崗鏍囪瘑',
- field: 'isOutsourcing',
- width: 100,
- },
- {
- title: '璐﹀',
- field: 'account',
- width: 100,
- },
- {
- title: '涓婇樁鐗╂枡',
- field: 'advancedMaterials',
- width: 100,
- },
- {
- title: '涓婇樁鍗曟嵁鍙�',
- field: 'advancedDocumentNumber',
- width: 100,
- },
- {
- title: '涓婇樁闇�姹傛棩鏈�',
- field: 'advancedRequirementDay',
- width: 100,
- },
- {
- title: '璁″垝榻愬',
- field: 'isPlanComplete',
- width: 100,
- },
- {
- title: '搴撳瓨榻愬',
- field: 'isStockComplete',
- width: 100,
- },
- {
- title: '鏄惁鏈夋姌杩斿伐搴�',
- field: 'hasTurnback',
- width: 100,
- },
- {
- title: '椋庨櫓鏍囪瘑',
- field: 'hasRisk',
- width: 100,
- },
-]);
-
+const columns = ref([]);
const data = reactive({
form: {},
@@ -610,22 +318,390 @@
pageNum: 1,
pageSize: 10,
customer: null,
- documentNumber: null
+ documentNumber: null,
},
rules: {
- id: [
- { required: true, message: "涓婚敭id涓嶈兘涓虹┖", trigger: "blur" }
- ],
- }
+ id: [{ required: true, message:t("plan.message.idNotBeEmpty"), trigger: "blur" }],
+ },
});
const { queryParams } = toRefs(data);
+watch(locale, (newLocale) => {
+ exampleColumns.value = [
+ { type: "seq", title: t("plan.table.seq"), width: 60 },
+ {
+ title: t("plan.table.masterPlanner"),
+ field: "masterPlanner",
+ width: 100,
+ },
+ {
+ title: t("plan.table.weekDay"),
+ field: "weekDay",
+ width: 100,
+ formatter: ({ cellValue, row, column }) => {
+ if (cellValue) {
+ const weekDay = new Date(cellValue);
+ const year = weekDay.getFullYear();
+ const month = String(weekDay.getMonth() + 1).padStart(2, "0");
+ const day = String(weekDay.getDate()).padStart(2, "0");
+ return `${month}-${day}`;
+ }
+ return "";
+ },
+ },
+ {
+ title: t("plan.table.weekCycle"),
+ field: "weekCycle",
+ width: 80,
+ },
+ {
+ title: t("plan.table.mainPartNumber"),
+ field: "mainPartNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.mainPartDrawingNumber"),
+ field: "mainPartDrawingNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.customer"),
+ field: "customer",
+ width: 200,
+ },
+ {
+ title: t("plan.table.businessType"),
+ field: "businessType",
+ width: 150,
+ },
+ {
+ title: t("plan.table.documentNumber"),
+ field: "documentNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.requirementType"),
+ field: "requirementType",
+ width: 150,
+ },
+ {
+ title: t("plan.table.documentStatus"),
+ field: "documentStatus",
+ width: 100,
+ },
+ {
+ title: t("plan.table.itemNumber"),
+ field: "itemNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.drawingNo"),
+ field: "drawingNo",
+ width: 150,
+ },
+ {
+ title: t("plan.table.versionNumber"),
+ field: "versionNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.productionQuantity"),
+ field: "productionQuantity",
+ width: 100,
+ },
+ {
+ title: t("plan.table.goodProductsQuantity"),
+ field: "goodProductsQuantity",
+ width: 100,
+ },
+ {
+ title: t("plan.table.processNumber"),
+ field: "processNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.factoryCenter"),
+ field: "workCenter",
+ width: 150,
+ },
+ {
+ title: t("plan.table.dependencyDepartment"),
+ field: "department",
+ width: 100,
+ },
+ {
+ title: t("plan.table.planStartDay"),
+ field: "planStartDay",
+ width: 100,
+ },
+ {
+ title: t("plan.table.planEndDayDate"),
+ field: "planEndDay",
+ width: 100,
+ },
+ {
+ title: t("plan.table.standbyNumber"),
+ field: "standbyNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.standbyName"),
+ field: "standbyName",
+ width: 200,
+ },
+ {
+ title: t("plan.table.standbyStock"),
+ field: "standbyStock",
+ width: 100,
+ },
+ {
+ title: t("plan.table.departmentToNextProcessBelongs"),
+ field: "nextProcessDeparment",
+ width: 150,
+ },
+ {
+ title: t("plan.table.isSuspended"),
+ field: "isSuspended",
+ width: 100,
+ },
+ {
+ title: t("plan.table.isOutsourcing"),
+ field: "isOutsourcing",
+ width: 100,
+ },
+ {
+ title: t("plan.table.account"),
+ field: "account",
+ width: 100,
+ },
+ // {
+ // title: '涓婇樁鐗╂枡',
+ // field: 'advancedMaterials',
+ // width: 100,
+ // },
+ // {
+ // title: '涓婇樁鍗曟嵁鍙�',
+ // field: 'advancedDocumentNumber',
+ // width: 100,
+ // },
+ // {
+ // title: '涓婇樁闇�姹傛棩鏈�',
+ // field: 'advancedRequirementDay',
+ // width: 150,
+ // },
+ // {
+ // title: '璁″垝榻愬',
+ // field: 'isPlanComplete',
+ // width: 100,
+ // },
+ // {
+ // title: '搴撳瓨榻愬',
+ // field: 'isStockComplete',
+ // width: 100,
+ // },
+ // {
+ // title: '鏄惁鏈夋姌杩斿伐搴�',
+ // field: 'hasTurnback',
+ // width: 150,
+ // },
+ // {
+ // title: '椋庨櫓鏍囪瘑',
+ // field: 'hasRisk',
+ // width: 100,
+ // },
+ ];
+ columns.value = [
+ { type: "checkbox", width: 60, align: "center" },
+ { type: "seq", title: t("plan.table.seq"), width: 60 },
+ {
+ title: t("plan.table.masterPlanner"),
+ field: "masterPlanner",
+ width: 100,
+ },
+ {
+ title: t("plan.table.weekDay"),
+ field: "weekDay",
+ width: 100,
+ formatter: ({ cellValue, row, column }) => {
+ if (cellValue) {
+ const weekDay = new Date(cellValue);
+ const year = weekDay.getFullYear();
+ const month = String(weekDay.getMonth() + 1).padStart(2, "0");
+ const day = String(weekDay.getDate()).padStart(2, "0");
+ return `${month}-${day}`;
+ }
+ return "";
+ },
+ },
+ {
+ title: t("plan.table.weekCycle"),
+ field: "weekCycle",
+ width: 80,
+ },
+ {
+ title: t("plan.table.mainPartNumber"),
+ field: "mainPartNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.mainPartDrawingNumber"),
+ field: "mainPartDrawingNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.customer"),
+ field: "customer",
+ width: 200,
+ },
+ {
+ title: t("plan.table.businessType"),
+ field: "businessType",
+ width: 100,
+ },
+ {
+ title: t("plan.table.documentNumber"),
+ field: "documentNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.requirementType"),
+ field: "requirementType",
+ width: 100,
+ },
+ {
+ title: t("plan.table.documentStatus"),
+ field: "documentStatus",
+ width: 100,
+ },
+ {
+ title: t("plan.table.itemNumber"),
+ field: "itemNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.drawingNo"),
+ field: "drawingNo",
+ width: 100,
+ },
+ {
+ title: t("plan.table.versionNumber"),
+ field: "versionNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.productionQuantity"),
+ field: "productionQuantity",
+ width: 100,
+ },
+ {
+ title: t("plan.table.goodProductsQuantity"),
+ field: "goodProductsQuantity",
+ width: 100,
+ },
+ {
+ title: t("plan.table.processNumber"),
+ field: "processNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.factoryCenter"),
+ field: "workCenter",
+ width: 100,
+ },
+ {
+ title: t("plan.table.dependencyDepartment"),
+ field: "department",
+ width: 100,
+ },
+ {
+ title: t("plan.table.planStartDay"),
+ field: "planStartDay",
+ width: 100,
+ },
+ {
+ title: t("plan.table.planEndDayDate"),
+ field: "planEndDay",
+ width: 100,
+ },
+ {
+ title: t("plan.table.standbyNumber"),
+ field: "standbyNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.standbyName"),
+ field: "standbyName",
+ width: 100,
+ },
+ {
+ title: t("plan.table.standbyStock"),
+ field: "standbyStock",
+ width: 100,
+ },
+ {
+ title: t("plan.table.departmentToNextProcessBelongs"),
+ field: "nextProcessDeparment",
+ width: 100,
+ },
+ {
+ title: t("plan.table.isSuspended"),
+ field: "isSuspended",
+ width: 100,
+ },
+ {
+ title: t("plan.table.isOutsourcing"),
+ field: "isOutsourcing",
+ width: 100,
+ },
+ {
+ title: t("plan.table.account"),
+ field: "account",
+ width: 100,
+ },
+ {
+ title: t("plan.table.advancedMaterials"),
+ field: "advancedMaterials",
+ width: 100,
+ },
+ {
+ title: t("plan.table.advancedDocumentNumber"),
+ field: "advancedDocumentNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.advancedRequirementDay"),
+ field: "advancedRequirementDay",
+ width: 100,
+ },
+ {
+ title: t("plan.table.isPlanComplete"),
+ field: "isPlanComplete",
+ width: 100,
+ },
+ {
+ title: t("plan.table.isStockComplete"),
+ field: "isStockComplete",
+ width: 100,
+ },
+ {
+ title: t("plan.table.hasTurnback"),
+ field: "hasTurnback",
+ width: 100,
+ },
+ {
+ title: t("plan.table.hasRisk"),
+ field: "hasRisk",
+ width: 100,
+ },
+ ];
+ getList()
+},{ immediate: true, deep: true });
/** 鏌ヨ閽i噾璁″垝涓存椂绠$悊鍒楄〃 */
function getExampleList() {
loading.value = true;
queryParams.value = {};
queryParams.value.batchNumber = batchNumber.value;
- examplePlan(queryParams.value).then(response => {
+ examplePlan(queryParams.value).then((response) => {
exampleList.value = response.rows;
total.value = response.total;
loading.value = false;
@@ -636,15 +712,17 @@
function getList() {
loading.value = true;
queryParams.value.params = {};
- if (null != daterangePlanStartDay && '' !== daterangePlanStartDay) {
- queryParams.value.params["beginPlanStartDay"] = daterangePlanStartDay.value[0];
- queryParams.value.params["endPlanStartDay"] = daterangePlanStartDay.value[1];
+ if (null != daterangePlanStartDay && "" !== daterangePlanStartDay) {
+ queryParams.value.params["beginPlanStartDay"] =
+ daterangePlanStartDay.value[0];
+ queryParams.value.params["endPlanStartDay"] =
+ daterangePlanStartDay.value[1];
}
- if (null != daterangePlanEndDay && '' !== daterangePlanEndDay) {
+ if (null != daterangePlanEndDay && "" !== daterangePlanEndDay) {
queryParams.value.params["beginPlanEndDay"] = daterangePlanEndDay.value[0];
queryParams.value.params["endPlanEndDay"] = daterangePlanEndDay.value[1];
}
- listPlan(queryParams.value).then(response => {
+ listPlan(queryParams.value).then((response) => {
planList.value = response.rows;
loading.value = false;
});
@@ -670,38 +748,41 @@
};
/** 鎵归噺淇敼璁″垝寮�宸ユ棩鎸夐挳鎿嶄綔 */
-function plannedStart() {
-
-}
+function plannedStart() {}
/** 鎵归噺淇敼璁″垝瀹屽伐鏃ユ寜閽搷浣� */
-function plannedEnd() {
-
-}
+function plannedEnd() {}
/** 瀵煎叆鎸夐挳鎿嶄綔 */
function handleImport() {
- upload.title = "姘斾綋绠¤矾璁″垝鏁版嵁涓婁紶";
+ upload.title = t("plan.upload.uploadGasPipelineData");
upload.open = true;
-};
+}
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
function handleExport() {
- proxy.download('aps/gasPiping/export', {
- ...queryParams.value
- }, `plan_${new Date().getTime()}.xlsx`)
+ proxy.download(
+ "aps/gasPiping/export",
+ {
+ ...queryParams.value,
+ },
+ `plan_${new Date().getTime()}.xlsx`
+ );
}
/** 涓嬭浇妯℃澘鎿嶄綔 */
function importTemplate() {
- proxy.download("system/user/importTemplate", {
- }, `user_template_${new Date().getTime()}.xlsx`);
-};
+ proxy.download(
+ "system/user/importTemplate",
+ {},
+ `user_template_${new Date().getTime()}.xlsx`
+ );
+}
/** buildEexample */
function buildEexample() {
proxy.$refs["uploadRef"].submit();
-};
+}
/**鏂囦欢涓婁紶涓鐞� */
const handleFileUploadProgress = (event, file, fileList) => {
@@ -710,15 +791,24 @@
/** 鏂囦欢涓婁紶鎴愬姛澶勭悊 */
const handleFileSuccess = (response, file, fileList) => {
- if(response.code == '200'){
+ if (response.code == "200") {
batchNumber.value = response.data;
isVisible.value = true;
planned.value = false;
isError.value = false;
getExampleList();
- }else{
+ } else {
isError.value = true;
- proxy.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "瀵煎叆缁撴灉", { dangerouslyUseHTMLString: true });
+ proxy.$alert(
+ "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
+ response.msg +
+ "</div>",
+ t("plan.upload.errorResult"),
+ { dangerouslyUseHTMLString: true,
+ confirmButtonText: t("plan.btns.confirm"),
+ cancelButtonText: t("plan.btns.cancel"),
+ }
+ );
}
proxy.$refs["uploadRef"].handleRemove(file);
upload.isUploading = false;
@@ -728,7 +818,7 @@
function uploadParse() {
queryParams.value.params = {};
queryParams.value.params["batchNumber"] = batchNumber.value;
- confirmPart(queryParams.value).then(response => {
+ confirmPart(queryParams.value).then((response) => {
exampleList.value = response.rows;
loading.value = false;
isVisible.value = false;
@@ -736,15 +826,15 @@
planned.value = true;
upload.open = false;
ElMessage({
- message: '姘斾綋绠¤矾璁″垝鏁版嵁宸叉垚鍔熶笂浼犲拰瑙f瀽',
- type: 'success',
- })
+ message: t("plan.upload.uploadParseGasPipelineData"),
+ type: "success",
+ });
getList();
});
}
/** dialog鍙栨秷 */
-function dialogCancel(){
+function dialogCancel() {
if (uploadRef.value) {
uploadRef.value.clearFiles();
}
@@ -755,10 +845,10 @@
upload.isUploading = false;
}
-getList();
+// getList();
</script>
<style lang="css" scoped>
h4 {
font-weight: bold;
}
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/mainPlan/gasPlanning/index.vue b/src/views/mainPlan/gasPlanning/index.vue
index dba85ad..07687c0 100644
--- a/src/views/mainPlan/gasPlanning/index.vue
+++ b/src/views/mainPlan/gasPlanning/index.vue
@@ -5,17 +5,18 @@
:model="queryParams"
ref="queryRef"
:inline="true"
- label-width="68px"
+ label-width="100px"
+ label-position="left"
>
<el-row type="flex" justify="left">
<el-col :span="6">
- <el-form-item label="閫夋嫨鏈堜唤" prop="description">
+ <el-form-item :label="$t('plan.query.selectMonth')" prop="description">
<el-date-picker
clearable
v-model="queryParams.date"
type="month"
value-format="YYYY-MM"
- placeholder="閫夋嫨鏈堜唤"
+ :placeholder="$t('plan.query.selectMonth')"
>
</el-date-picker>
</el-form-item>
@@ -23,9 +24,9 @@
<el-col :span="18" style="text-align: right">
<el-form-item class="column-with-margin">
<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>
@@ -33,13 +34,13 @@
<div class="box_container">
<el-row>
<el-col :span="!clickedTableRef?22:20">
- <div class="title_text">绠¤矾瑙勫垝浜ц兘</div>
+ <div class="title_text">{{$t('plan.title.pipePlanCapacity')}}</div>
</el-col>
<el-col :span="1" v-if="!clickedTableRef">
<el-button
class="title_btn"
type="default"
- @click="editRowEvent" >缂栬緫</el-button>
+ @click="editRowEvent" >{{$t("common.common.edit")}}</el-button>
</el-col>
<el-col :span="1.8" v-if="clickedTableRef">
<el-button
@@ -48,14 +49,14 @@
@click="saveRowEvent"
v-hasPermi="['aps:gasPipelineCapacityPlan:add']"
>
- 淇濆瓨
+ {{$t("common.common.save")}}
</el-button>
</el-col>
<el-col :span="1" v-if="clickedTableRef">
<el-button
class="title_btn ml20"
type="default"
- @click="handleCancleStaus">鍙栨秷</el-button>
+ @click="handleCancleStaus">{{$t("common.common.cancel")}}</el-button>
</el-col>
</el-row>
@@ -82,16 +83,16 @@
show-overflow
:loading="loading"
:height="height"
- :edit-config="{ trigger: 'click', mode: 'row', showStatus: true }"
+ :column-config="{ resizable: true, useKey: true }"
:data="routePlanList"
size="small"
>
- <vxe-column field="processName" title="鏍囧噯宸ュ簭鍚嶇О" min-width="150" fixed="left">
+ <vxe-column field="processName" :width="locale === 'zh' ? '150px' : '200px'" :title="$t('plan.table.satndardProcessName')" fixed="left">
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '150px' : '200px'"
field="dayProduceType"
- title="鏃ヤ骇鍑虹被鍨�"
- min-width="160"
+ :title="$t('plan.table.dayProduceType')"
>
<!-- <template #edit="{ row }">
<el-select
@@ -131,9 +132,9 @@
</template>
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '180px' : '200px'"
field="dayProduceNum"
- title="鏃ヤ骇鍑烘暟閲�"
- min-width="200"
+ :title="$t('plan.table.dayProduceNum')"
>
<!-- <template #edit="{ row }">
<el-input-number v-model="row.dayProduceNum" size="mini" />
@@ -148,9 +149,9 @@
</template>
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '150px' : '200px'"
field="dayProduceUnit"
- title="鏃ヤ骇鍑哄崟浣�"
- min-width="200"
+ :title="$t('plan.table.dayProduceUnit')"
>
<!-- <template #edit="{ row }">
<el-input v-model="row.dayProduceUnit" />
@@ -165,9 +166,9 @@
</template>
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '180px' : '200px'"
field="personnelNumber"
- title="浜哄憳鏁伴噺"
- min-width="200"
+ :title="$t('plan.table.personnelNumber')"
>
<!-- <template #edit="{ row }">
<el-input-number v-model="row.personnelNumber" />
@@ -182,9 +183,9 @@
</template>
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '180px' : '200px'"
field="dayProduceAllNum"
- title="鏃ヤ骇鍑烘�绘暟閲�"
- min-width="200"
+ :title="$t('plan.table.dayProduceAllNum')"
>
<!-- <template #edit="{ row }">
<el-input-number v-model="row.dayProduceAllNum" disabled />
@@ -199,9 +200,9 @@
</template>
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '180px' : '200px'"
field="days"
- title="澶╂暟"
- min-width="200"
+ :title="$t('plan.table.days')"
>
<!-- <template #edit="{ row }">
<el-input-number v-model="row.days" />
@@ -216,9 +217,9 @@
</template>
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '180px' : '200px'"
field="monthProduceAllNum"
- title="鏈堜骇鍑烘暟閲�"
- min-width="200"
+ :title="$t('plan.table.monthProduceAllNum')"
>
<!-- <template #edit="{ row }">
<el-input-number v-model="row.monthProduceAllNum" disabled />
@@ -233,9 +234,9 @@
</template>
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '150px' : '200px'"
field="remark"
- title="澶囨敞"
- min-width="200"
+ :title="$t('plan.table.remark')"
>
<!-- :edit-render="{ autoFocus: 'input' }" -->
<!-- <template #edit="{ row }">
@@ -277,13 +278,13 @@
<div class="box_container">
<el-row>
<el-col :span="!clickedTableRefGas?22:20">
- <div class="title_text">姘旀煖瑙勫垝浜ц兘</div>
+ <div class="title_text">{{$t("plan.title.gasPlanCapacity")}}</div>
</el-col>
<el-col :span="1" v-if="!clickedTableRefGas">
<el-button
class="title_btn"
type="default"
- @click="editRowEventGas" >缂栬緫</el-button>
+ @click="editRowEventGas" >{{$t("common.common.edit")}}</el-button>
</el-col>
<el-col :span="1.8" v-if="clickedTableRefGas">
<el-button
@@ -292,14 +293,14 @@
@click="saveRowEvent1"
v-hasPermi="['aps:gasPipelineCapacityPlan:add']"
>
- 淇濆瓨
+ {{$t("common.common.save")}}
</el-button>
</el-col>
<el-col :span="1" v-if="clickedTableRefGas">
<el-button
class="title_btn ml20"
type="default"
- @click="handleCancleStausGas">鍙栨秷</el-button>
+ @click="handleCancleStausGas">{{$t("common.common.cancel")}}</el-button>
</el-col>
</el-row>
<div class="tabel_container">
@@ -318,15 +319,15 @@
size="small"
:loading="loading2"
:height="height"
- :edit-config="{ mode: 'row', trigger: 'click', showStatus: true }"
+ :column-config="{ resizable: true, useKey: true }"
:data="gasPlanList"
>
- <vxe-column field="processName" title="鏍囧噯宸ュ簭鍚嶇О" min-width="150" fixed="left">
+ <vxe-column :width="locale === 'zh' ? '150px' : '200px'" field="processName" :title="$t('plan.table.satndardProcessName')" fixed="left">
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '150px' : '200px'"
field="dayProduceType"
- title="鏃ヤ骇鍑虹被鍨�"
- min-width="160"
+ :title="$t('plan.table.dayProduceType')"
>
<!-- <template #edit="{ row }">
<el-select
@@ -366,9 +367,9 @@
</template>
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '180px' : '200px'"
field="dayProduceNum"
- title="鏃ヤ骇鍑烘暟閲�"
- min-width="200"
+ :title="$t('plan.table.dayProduceNum')"
>
<!-- <template #edit="{ row }">
<el-input-number v-model="row.dayProduceNum" size="mini" />
@@ -383,9 +384,9 @@
</template>
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '150px' : '200px'"
field="dayProduceUnit"
- title="鏃ヤ骇鍑哄崟浣�"
- min-width="200"
+ :title="$t('plan.table.dayProduceUnit')"
>
<!-- <template #edit="{ row }">
<el-input v-model="row.dayProduceUnit" />
@@ -400,9 +401,9 @@
</template>
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '180px' : '200px'"
field="personnelNumber"
- title="浜哄憳鏁伴噺"
- min-width="200"
+ :title="$t('plan.table.personnelNumber')"
>
<!-- <template #edit="{ row }">
<el-input-number v-model="row.personnelNumber" />
@@ -417,9 +418,9 @@
</template>
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '180px' : '200px'"
field="dayProduceAllNum"
- title="鏃ヤ骇鍑烘�绘暟閲�"
- min-width="200"
+ :title="$t('plan.table.dayProduceAllNum')"
>
<!-- <template #edit="{ row }">
<el-input-number v-model="row.dayProduceAllNum" disabled />
@@ -434,9 +435,9 @@
</template>
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '180px' : '200px'"
field="days"
- title="澶╂暟"
- min-width="200"
+ :title="$t('plan.table.days')"
>
<!-- <template #edit="{ row }">
<el-input-number v-model="row.days" />
@@ -451,9 +452,9 @@
</template>
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '180px' : '200px'"
field="monthProduceAllNum"
- title="鏈堜骇鍑烘暟閲�"
- min-width="200"
+ :title="$t('plan.table.monthProduceAllNum')"
>
<!-- <template #edit="{ row }">
<el-input-number v-model="row.monthProduceAllNum" disabled />
@@ -468,9 +469,9 @@
</template>
</vxe-column>
<vxe-column
+ :width="locale === 'zh' ? '150px' : '200px'"
field="remark"
- title="澶囨敞"
- min-width="200"
+ :title="$t('plan.table.remark')"
>
<!-- <template #edit="{ row }">
<el-input
@@ -517,6 +518,8 @@
import { ElMessage } from "element-plus";
import { listGasPlan, getGasPlanSave } from "@/api/mainPlan/gasPlanning";
const height = ref(document.documentElement.clientHeight - 400 + "px;");
+import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+const { t, locale } = useI18n();
const loading = ref(false);
const loading2 = ref(false);
const clickedQuery = ref(false);
@@ -644,7 +647,7 @@
const $table = tableRef.value;
if ($table) {
$table.clearEdit().then(() => {
- // loading.value = true
+ loading.value = true
// setTimeout(() => {
// loading.value = false
// VxeUI.modal.message({ content: `淇濆瓨鎴愬姛锛乶ame=${row.name}`, status: 'success' })
@@ -722,12 +725,12 @@
// }
// };
async function getRouteList(year, month) {
+ loading.value = true;
const res = await listGasPlan({
major: "绠¤矾",
year,
month,
});
- console.log(res.rows, "getList");
routePlanList.value = res.rows;
routePlanList.value = routePlanList.value.map((item, index) => {
return {
@@ -753,6 +756,7 @@
loading.value = false;
}
async function getGasList(year, month) {
+ loading2.value = true;
const res = await listGasPlan({
major: "姘旀煖",
year,
@@ -793,7 +797,6 @@
// row.monthProduceAllNum = row.dayProduceAllNum * row.days;
// }
function cellClickEvent(e, row) {
- console.log(row,"cellClickEvent")
if(row.dayProduceType==="1"){
row.dayProduceAllNum = row.dayProduceNum * row.personnelNumber;
}else{
@@ -863,47 +866,45 @@
message: "鏁版嵁淇濆瓨鎴愬姛",
type: "success",
});
+ loading.value = false;
+ loading2.value = false;
handleQuery();
}
-async function handleSave2(row) {
- const year = queryParams.value.date.split("-")[0];
- const month = parseInt(queryParams.value.date.split("-")[1]);
- console.log(row, "baocun");
- // gasPlanList.value = gasPlanList.value.map((item) => {
- // return {
- // ...item,
- // major: "姘斾綋",
- // year,
- // month,
- // };
- // });
- // routePlanList.value = routePlanList.value.map((item) => {
- // return {
- // ...item,
- // major: "绠¤矾",
- // year,
- // month,
- // };
- // });
- const res = await getGasPlanSave([
- {
- ...row,
- major: "姘旀煖",
- year,
- month,
- },
- ]);
- ElMessage({
- message: "鏁版嵁淇濆瓨鎴愬姛",
- type: "success",
- });
- handleQuery();
- console.log(res, "akiwjciwj");
-}
-onMounted(() => {
- // getRouteList();
- // getGasList();
-});
+// async function handleSave2(row) {
+// const year = queryParams.value.date.split("-")[0];
+// const month = parseInt(queryParams.value.date.split("-")[1]);
+// console.log(row, "baocun");
+// // gasPlanList.value = gasPlanList.value.map((item) => {
+// // return {
+// // ...item,
+// // major: "姘斾綋",
+// // year,
+// // month,
+// // };
+// // });
+// // routePlanList.value = routePlanList.value.map((item) => {
+// // return {
+// // ...item,
+// // major: "绠¤矾",
+// // year,
+// // month,
+// // };
+// // });
+// const res = await getGasPlanSave([
+// {
+// ...row,
+// major: "姘旀煖",
+// year,
+// month,
+// },
+// ]);
+// ElMessage({
+// message: "鏁版嵁淇濆瓨鎴愬姛",
+// type: "success",
+// });
+// handleQuery();
+// console.log(res, "akiwjciwj");
+// }
</script>
<style lang="scss" scoped>
.box_container {
diff --git a/src/views/mainPlan/gasProduceStatics/index.vue b/src/views/mainPlan/gasProduceStatics/index.vue
index e7a3224..8c45dba 100644
--- a/src/views/mainPlan/gasProduceStatics/index.vue
+++ b/src/views/mainPlan/gasProduceStatics/index.vue
@@ -6,10 +6,10 @@
ref="queryRef"
:inline="true"
v-show="showSearch"
- label-width="68px"
+ :label-width="locale === 'zh' ? '68px' : '134px'"
>
<el-row type="flex" justify="left">
- <el-form-item label="缁熻鏂瑰紡">
+ <el-form-item :label="$t('plan.query.statistical')">
<el-select
v-model="queryParams.searchType"
style="width: 200px"
@@ -24,30 +24,32 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="閫夋嫨鍖洪棿">
+ <el-form-item :label="$t('plan.query.selectDateRange')">
<div v-if="!dayCom">
<el-date-picker
v-model="queryParams.monthRange"
type="monthrange"
- range-separator="鑷�"
- start-placeholder="閫夋嫨寮�濮嬫湀浠�"
- end-placeholder="閫夋嫨缁撴潫鏈堜唤"
+ :range-separator="$t('plan.placeholder.to')"
+ :start-placeholder="$t('plan.placeholder.startMonth')"
+ :end-placeholder="$t('plan.placeholder.endMonth')"
/>
</div>
<div v-else>
<el-date-picker
v-model="queryParams.monthDays"
type="month"
- placeholder="閫夋嫨鏈堜唤"
+ :placeholder="$t('plan.placeholder.selectMonth')"
/>
</div>
</el-form-item>
<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-row>
</el-form>
@@ -59,18 +61,19 @@
icon="Download"
@click="handleExport"
v-hasPermi="['aps:apsGasPipingRouteStat:exportExcel']"
- >瀵煎嚭</el-button
+ :disabled="loading"
+ >{{ $t("common.common.export") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
- type="info"
+ type="success"
plain
icon="Refresh"
@click="handleRefresh"
v-hasPermi="['aps:apsGasPipingRouteStat:computeCapacity']"
:disabled="loading"
- >鏇存柊</el-button
+ >{{ $t("common.common.update") }}</el-button
>
</el-col>
<right-toolbar @queryTable="handleQuery" :search="false"></right-toolbar>
@@ -87,6 +90,8 @@
import { ref } from "vue";
import * as XLSX from "xlsx";
import { ElMessage } from "element-plus";
+import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+const { t, locale } = useI18n();
const { proxy } = getCurrentInstance();
const loading = ref(false);
@@ -99,20 +104,11 @@
queryParams: {
monthRange: "",
monthDays: "",
- searchType: "鎸夋湀缁熻",
+ searchType: t("plan.options.monthlyStatic"),
},
});
let searchTypeValue = ref("month");
-const options = [
- {
- value: "month",
- label: "鎸夋湀缁熻",
- },
- {
- value: "day",
- label: "鎸夋棩缁熻",
- },
-];
+let options = ref([]);
const { queryParams } = toRefs(data);
const gridOptions = reactive({
border: true,
@@ -140,6 +136,26 @@
let tableColumn = [];
let tableData = [];
let merges = [];
+watch(locale, (newLocale) => {
+ options.value = [
+ {
+ value: "month",
+ label: t("plan.options.monthlyStatic"),
+ },
+ {
+ value: "day",
+ label: t("plan.options.dailyStatic"),
+ },
+ ];
+ queryParams.value.searchType = t("plan.options.monthlyStatic");
+ if (
+ (!queryParams.value.monthRange && dayCom.value == false) ||
+ (!queryParams.value.monthDays && dayCom.value == true)
+ ) {
+ return;
+ }
+ getGasList();
+},{ immediate: true, deep: true });
function handleChangeSelectType(e) {
searchTypeValue.value = e;
if (e === "day") {
@@ -197,16 +213,16 @@
loading.value = false;
return;
}
- headersOne.push("鏃ユ湡");
- headersTwo.push("宸ュ簭鍚嶇О");
+ headersOne.push(t("plan.table.dateYearMonth"));
+ headersTwo.push(t("plan.table.processName"));
colList.push({
field: "dateCol",
- title: "鏃ユ湡",
+ title: t("plan.table.dateYearMonth"),
fixed: "left",
children: [
{
field: `resourceName`,
- title: "宸ュ簭鍚嶇О",
+ title: t("plan.table.processName"),
width: 250,
type: "html",
},
@@ -217,19 +233,27 @@
headersOne.push(item);
headersOne.push("");
headersOne.push("");
- headersTwo.push("璁捐浜ц兘");
- headersTwo.push("闇�姹備骇鑳�");
- headersTwo.push("浜ц兘璐熻浇");
+ headersTwo.push(t("plan.table.designWorkingHours"));
+ headersTwo.push(t("plan.table.requiredWorkingHours"));
+ headersTwo.push(t("plan.table.capacityLoad"));
colKey++;
colList.push({
field: `dateColTime${colKey}`,
title: item,
children: [
- { field: `designTimes${colKey}`, title: "璁捐浜ц兘", width: 80 },
- { field: `requireTimes${colKey}`, title: "闇�姹備骇鑳�", width: 80 },
+ {
+ field: `designTimes${colKey}`,
+ title: t("plan.table.designWorkingHours"),
+ width: 80,
+ },
+ {
+ field: `requireTimes${colKey}`,
+ title: t("plan.table.requiredWorkingHours"),
+ width: 80,
+ },
{
field: `capacityLoad${colKey}`,
- title: "浜ц兘璐熻浇",
+ title: t("plan.table.capacityLoad"),
width: 80,
type: "html",
},
@@ -264,7 +288,11 @@
tableKey++;
item[`designTimes${tableKey}`] = listItem.designTimes;
item[`requireTimes${tableKey}`] = listItem.requireTimes;
- item[`capacityLoad${tableKey}`] = formatCapacityLoad(listItem.designTimes,listItem.requireTimes,listItem.capacityLoad)
+ item[`capacityLoad${tableKey}`] = formatCapacityLoad(
+ listItem.designTimes,
+ listItem.requireTimes,
+ listItem.capacityLoad
+ );
data.push(listItem.designTimes);
data.push(listItem.requireTimes);
data.push(listItem.capacityLoad + "%");
@@ -295,23 +323,23 @@
}
});
}
-function formatCapacityLoad(designTimes,requireTimes,capacityLoad){
+function formatCapacityLoad(designTimes, requireTimes, capacityLoad) {
/**
* // 0-100 缁胯壊锛�101-120榛勮壊锛屽ぇ浜�120绾㈣壊
listItem.capacityLoad <= 100
? `<font color="red">${listItem.capacityLoad}%</font>`
: listItem.capacityLoad + "%";
*/
- if(designTimes>0&&capacityLoad>0&&capacityLoad<=100){
- return `<font color="#85cf60">${capacityLoad}%</font>`
- }else if(designTimes>0&&capacityLoad>101&&capacityLoad<=120){
- return `<font color="#ecb869">${capacityLoad}%</font>`
- }else if(designTimes>0&&capacityLoad>120){
- return `<font color="#f89c9c">${capacityLoad}%</font>`
- }else if(designTimes==0&&requireTimes>0){
- return `<font color="#f56c6c">error</font>`
- }else{
- return `${capacityLoad}%`
+ if (designTimes > 0 && capacityLoad > 0 && capacityLoad <= 100) {
+ return `<font color="#85cf60">${capacityLoad}%</font>`;
+ } else if (designTimes > 0 && capacityLoad > 101 && capacityLoad <= 120) {
+ return `<font color="#ecb869">${capacityLoad}%</font>`;
+ } else if (designTimes > 0 && capacityLoad > 120) {
+ return `<font color="#f89c9c">${capacityLoad}%</font>`;
+ } else if (designTimes == 0 && requireTimes > 0) {
+ return `<font color="#f56c6c">error</font>`;
+ } else {
+ return `${capacityLoad}%`;
}
}
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
@@ -321,7 +349,7 @@
(!queryParams.value.monthDays && dayCom.value == true)
) {
ElMessage({
- message: "璇烽�夋嫨骞存湀",
+ message: t("plan.message.errorMonthEmpty"),
type: "error",
});
return;
@@ -348,7 +376,7 @@
(!queryParams.value.monthDays && dayCom.value == true)
) {
ElMessage({
- message: "璇烽�夋嫨骞存湀",
+ message: t("plan.message.errorMonthEmpty"),
type: "error",
});
return;
@@ -362,7 +390,7 @@
queryParams.value.monthRange = "";
queryParams.value.monthDays = "";
dayCom.value = false;
- (queryParams.value.searchType = "鎸夋湀缁熻"),
+ (queryParams.value.searchType = t("plan.options.monthlyStatic")),
(searchTypeValue.value = "month");
tableData = [];
const $grid = gridRef.value;
@@ -379,7 +407,7 @@
(!queryParams.value.monthDays && dayCom.value == true)
) {
ElMessage({
- message: "璇烽�夋嫨骞存湀",
+ message: t("plan.message.errorMonthEmpty"),
type: "error",
});
return;
@@ -389,7 +417,7 @@
major: "gas",
}).then((response) => {
ElMessage({
- message: "鏁版嵁鏇存柊鎴愬姛",
+ message: t("plan.message.update"),
type: "success",
});
loading.value = false;
diff --git a/src/views/mainPlan/pipeProduceStatics/index.vue b/src/views/mainPlan/pipeProduceStatics/index.vue
index 2b6f346..5422290 100644
--- a/src/views/mainPlan/pipeProduceStatics/index.vue
+++ b/src/views/mainPlan/pipeProduceStatics/index.vue
@@ -6,10 +6,10 @@
ref="queryRef"
:inline="true"
v-show="showSearch"
- label-width="68px"
+ :label-width="locale === 'zh' ? '68px' : '134px'"
>
<el-row type="flex" justify="left">
- <el-form-item label="缁熻鏂瑰紡">
+ <el-form-item :label="$t('plan.query.statistical')">
<el-select
v-model="queryParams.searchType"
style="width: 200px"
@@ -24,30 +24,32 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="閫夋嫨鍖洪棿">
+ <el-form-item :label="$t('plan.query.selectDateRange')">
<div v-if="!dayCom">
<el-date-picker
v-model="queryParams.monthRange"
type="monthrange"
- range-separator="鑷�"
- start-placeholder="閫夋嫨寮�濮嬫湀浠�"
- end-placeholder="閫夋嫨缁撴潫鏈堜唤"
+ :range-separator="$t('plan.placeholder.to')"
+ :start-placeholder="$t('plan.placeholder.startMonth')"
+ :end-placeholder="$t('plan.placeholder.endMonth')"
/>
</div>
<div v-else>
<el-date-picker
v-model="queryParams.monthDays"
type="month"
- placeholder="閫夋嫨鏈堜唤"
+ :placeholder="$t('plan.placeholder.selectMonth')"
/>
</div>
</el-form-item>
<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-row>
</el-form>
@@ -59,31 +61,27 @@
icon="Download"
@click="handleExport"
v-hasPermi="['aps:apsGasPipingRouteStat:exportExcel']"
- >瀵煎嚭</el-button
+ >{{ $t("common.common.export") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
- type="info"
+ type="success"
plain
icon="Refresh"
@click="handleRefresh"
v-hasPermi="['aps:apsGasPipingRouteStat:computeCapacity']"
:disabled="loading"
- >鏇存柊</el-button
+ >{{ $t("common.common.update") }}</el-button
>
</el-col>
<right-toolbar @queryTable="handleQuery" :search="false"></right-toolbar>
</el-row>
<!-- <div class="box_container"> -->
- <!-- <div class="title_text">绠¤矾瑙勫垝浜ц兘璐熻浇缁熻</div> -->
- <!-- <div class="tabel_container"> -->
- <vxe-grid
- ref="gridRef"
- v-bind="gridOptions"
- :loading="loading"
- ></vxe-grid>
- <!-- </div> -->
+ <!-- <div class="title_text">绠¤矾瑙勫垝浜ц兘璐熻浇缁熻</div> -->
+ <!-- <div class="tabel_container"> -->
+ <vxe-grid ref="gridRef" v-bind="gridOptions" :loading="loading"></vxe-grid>
+ <!-- </div> -->
<!-- </div> -->
</div>
</template>
@@ -96,6 +94,8 @@
import { ref } from "vue";
import * as XLSX from "xlsx";
import { ElMessage } from "element-plus";
+import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+const { t, locale } = useI18n();
const { proxy } = getCurrentInstance();
const loading = ref(false);
@@ -108,20 +108,11 @@
queryParams: {
monthRange: "",
monthDays: "",
- searchType: "鎸夋湀缁熻",
+ searchType: t("plan.options.monthlyStatic"),
},
});
let searchTypeValue = ref("month");
-const options = [
- {
- value: "month",
- label: "鎸夋湀缁熻",
- },
- {
- value: "day",
- label: "鎸夋棩缁熻",
- },
-];
+let options = ref([]);
const { queryParams } = toRefs(data);
const gridOptions = reactive({
border: true,
@@ -149,6 +140,31 @@
let tableColumn = [];
let tableData = [];
let merges = [];
+watch(
+ locale,
+ (newLocale) => {
+ options.value = [
+ {
+ value: "month",
+ label: t("plan.options.monthlyStatic"),
+ },
+ {
+ value: "day",
+ label: t("plan.options.dailyStatic"),
+ },
+ ];
+ 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();
+ },
+ { immediate: true, deep: true }
+);
function handleChangeSelectType(e) {
searchTypeValue.value = e;
if (e === "day") {
@@ -199,7 +215,6 @@
searchType: searchTypeValue.value,
major: "piping",
}).then((response) => {
- console.log(response.data.planTable, "responseresponseresponse");
const colList = [];
let headersOne = [];
let headersTwo = [];
@@ -208,16 +223,16 @@
loading.value = false;
return;
}
- headersOne.push("鏃ユ湡");
- headersTwo.push("宸ュ簭鍚嶇О");
+ headersOne.push(t("plan.table.dateYearMonth"));
+ headersTwo.push(t("plan.table.processName"));
colList.push({
field: "dateCol",
- title: "鏃ユ湡",
+ title: t("plan.table.dateYearMonth"),
fixed: "left",
children: [
{
field: `resourceName`,
- title: "宸ュ簭鍚嶇О",
+ title: t("plan.table.processName"),
width: 250,
type: "html",
},
@@ -228,19 +243,27 @@
headersOne.push(item);
headersOne.push("");
headersOne.push("");
- headersTwo.push("璁捐浜ц兘");
- headersTwo.push("闇�姹備骇鑳�");
- headersTwo.push("浜ц兘璐熻浇");
+ headersTwo.push(t("plan.table.designWorkingHours"));
+ headersTwo.push(t("plan.table.requiredWorkingHours"));
+ headersTwo.push(t("plan.table.capacityLoad"));
colKey++;
colList.push({
field: `dateColTime${colKey}`,
title: item,
children: [
- { field: `designTimes${colKey}`, title: "璁捐浜ц兘", width: 80 },
- { field: `requireTimes${colKey}`, title: "闇�姹備骇鑳�", width: 80 },
+ {
+ field: `designTimes${colKey}`,
+ title: t("plan.table.designWorkingHours"),
+ width: 80,
+ },
+ {
+ field: `requireTimes${colKey}`,
+ title: t("plan.table.requiredWorkingHours"),
+ width: 80,
+ },
{
field: `capacityLoad${colKey}`,
- title: "浜ц兘璐熻浇",
+ title: t("plan.table.capacityLoad"),
width: 80,
type: "html",
},
@@ -275,11 +298,15 @@
tableKey++;
item[`designTimes${tableKey}`] = listItem.designTimes;
item[`requireTimes${tableKey}`] = listItem.requireTimes;
- item[`capacityLoad${tableKey}`] = formatCapacityLoad(listItem.designTimes,listItem.requireTimes,listItem.capacityLoad)
+ item[`capacityLoad${tableKey}`] = formatCapacityLoad(
+ listItem.designTimes,
+ listItem.requireTimes,
+ listItem.capacityLoad
+ );
// 0-100 缁胯壊锛�101-120榛勮壊锛屽ぇ浜�120绾㈣壊
- // listItem.capacityLoad <= 100
- // ? `<font color="red">${listItem.capacityLoad}%</font>`
- // : listItem.capacityLoad + "%";
+ // listItem.capacityLoad <= 100
+ // ? `<font color="red">${listItem.capacityLoad}%</font>`
+ // : listItem.capacityLoad + "%";
data.push(listItem.designTimes);
data.push(listItem.requireTimes);
data.push(listItem.capacityLoad + "%");
@@ -291,7 +318,7 @@
// item[`resourceName`] = flag
// ? `<div class='el-badge'><sup class="el-badge__content is-fixed is-dot"></sup>${key}</div>`
// : key;
- item[`resourceName`] = key;
+ item[`resourceName`] = key;
}
exportData.value.push(data);
dataList.push(item);
@@ -310,23 +337,23 @@
}
});
}
-function formatCapacityLoad(designTimes,requireTimes,capacityLoad){
+function formatCapacityLoad(designTimes, requireTimes, capacityLoad) {
/**
* // 0-100 缁胯壊锛�101-120榛勮壊锛屽ぇ浜�120绾㈣壊
listItem.capacityLoad <= 100
? `<font color="red">${listItem.capacityLoad}%</font>`
: listItem.capacityLoad + "%";
*/
- if(designTimes>0&&capacityLoad>0&&capacityLoad<=100){
- return `<font color="#85cf60">${capacityLoad}%</font>`
- }else if(designTimes>0&&capacityLoad>101&&capacityLoad<=120){
- return `<font color="#ecb869">${capacityLoad}%</font>`
- }else if(designTimes>0&&capacityLoad>120){
- return `<font color="#f89c9c">${capacityLoad}%</font>`
- }else if(designTimes==0&&requireTimes>0){
- return `<font color="#f56c6c">error</font>`
- }else{
- return `${capacityLoad}%`
+ if (designTimes > 0 && capacityLoad > 0 && capacityLoad <= 100) {
+ return `<font color="#85cf60">${capacityLoad}%</font>`;
+ } else if (designTimes > 0 && capacityLoad > 101 && capacityLoad <= 120) {
+ return `<font color="#ecb869">${capacityLoad}%</font>`;
+ } else if (designTimes > 0 && capacityLoad > 120) {
+ return `<font color="#f89c9c">${capacityLoad}%</font>`;
+ } else if (designTimes == 0 && requireTimes > 0) {
+ return `<font color="#f56c6c">error</font>`;
+ } else {
+ return `${capacityLoad}%`;
}
}
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
@@ -336,7 +363,7 @@
(!queryParams.value.monthDays && dayCom.value == true)
) {
ElMessage({
- message: "璇烽�夋嫨骞存湀",
+ message: t("plan.message.errorMonthEmpty"),
type: "error",
});
return;
@@ -363,7 +390,7 @@
(!queryParams.value.monthDays && dayCom.value == true)
) {
ElMessage({
- message: "璇烽�夋嫨骞存湀",
+ message: t("plan.message.errorMonthEmpty"),
type: "error",
});
return;
@@ -377,7 +404,7 @@
queryParams.value.monthRange = "";
queryParams.value.monthDays = "";
dayCom.value = false;
- (queryParams.value.searchType = "鎸夋湀缁熻"),
+ (queryParams.value.searchType = t("plan.options.monthlyStatic")),
(searchTypeValue.value = "month");
tableData = [];
const $grid = gridRef.value;
@@ -394,7 +421,7 @@
(!queryParams.value.monthDays && dayCom.value == true)
) {
ElMessage({
- message: "璇烽�夋嫨骞存湀",
+ message: t("plan.message.errorMonthEmpty"),
type: "error",
});
return;
@@ -404,7 +431,7 @@
major: "piping",
}).then((response) => {
ElMessage({
- message: "鏁版嵁鏇存柊鎴愬姛",
+ message: t("plan.message.update"),
type: "success",
});
loading.value = false;
diff --git a/src/views/mainPlan/platePlan/index.vue b/src/views/mainPlan/platePlan/index.vue
index 38fc61f..835b280 100644
--- a/src/views/mainPlan/platePlan/index.vue
+++ b/src/views/mainPlan/platePlan/index.vue
@@ -1,90 +1,111 @@
<template>
<div class="app-container">
- <el-row :gutter="20"> <el-col>
- <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="90px">
- <el-row :gutter="20">
- <el-col :span="6">
- <el-form-item label="璁″垝寮�宸ユ棩" style="width: 100%;">
+ <el-row :gutter="10" class="mb8">
+ <el-form
+ :model="queryParams"
+ ref="queryRef"
+ :inline="true"
+ v-show="showSearch"
+ :label-width="locale === 'zh' ? '90px' : '180px'"
+ label-position="left"
+ >
+ <!-- <el-row :gutter="20">
+ <el-col :span="6"> -->
+ <el-form-item :label="$t('plan.query.daterangePlanStartDay')">
<el-date-picker
- v-model="daterangePlanStartDay"
- value-format="YYYY-MM-DD"
- type="daterange"
- range-separator="-"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
+ style="width: 240px"
+ v-model="daterangePlanStartDay"
+ value-format="YYYY-MM-DD"
+ type="daterange"
+ range-separator="-"
+ :start-placeholder="$t('plan.placeholder.startDate')"
+ :end-placeholder="$t('plan.placeholder.endDate')"
></el-date-picker>
</el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="璁″垝瀹屽伐鏃�" style="width: 100%;">
+ <!-- </el-col>
+ <el-col :span="6"> -->
+ <el-form-item :label="$t('plan.query.daterangePlanEndDay')">
<el-date-picker
- v-model="daterangePlanEndDay"
- value-format="YYYY-MM-DD"
- type="daterange"
- range-separator="-"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
+ style="width: 240px"
+ v-model="daterangePlanEndDay"
+ value-format="YYYY-MM-DD"
+ type="daterange"
+ range-separator="-"
+ :start-placeholder="$t('plan.placeholder.startDate')"
+ :end-placeholder="$t('plan.placeholder.endDate')"
></el-date-picker>
</el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="鍗曟嵁鍙�" prop="documentNumber" style="width: 100%;">
+ <!-- </el-col>
+ <el-col :span="6"> -->
+ <el-form-item
+ :label="$t('plan.query.documentNumber')"
+ prop="documentNumber"
+ >
<el-input
- v-model="queryParams.documentNumber"
- placeholder="璇疯緭鍏ュ崟鎹彿"
- clearable
- @keyup.enter="handleQuery"
+ style="width: 240px"
+ v-model="queryParams.documentNumber"
+ :placeholder="$t('plan.placeholder.documentNumber')"
+ clearable
+ @keyup.enter="handleQuery"
/>
</el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="瀹㈡埛鍚嶇О" prop="customer" style="width: 100%;">
+ <!-- </el-col>
+ <el-col :span="6"> -->
+ <el-form-item :label="$t('plan.query.customer')" prop="customer">
<el-input
- v-model="queryParams.customer"
- placeholder="璇疯緭鍏ュ鎴峰悕绉�"
- clearable
- @keyup.enter="handleQuery"
+ style="width: 240px"
+ v-model="queryParams.customer"
+ :placeholder="$t('plan.placeholder.customer')"
+ clearable
+ @keyup.enter="handleQuery"
/>
</el-form-item>
- </el-col>
- <el-col :span="24" style="text-align: right;">
+ <!-- </el-col>
+ <el-col :span="24" style="text-align: right;"> -->
<el-form-item>
- <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-col> -->
+ <!-- </el-row> -->
</el-form>
- </el-col> </el-row>
+ </el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
- type="primary"
- plain
- icon="Plus"
- :disabled="single"
- @click="handleUpdate"
- v-hasPermi="['apsPlatePlan:edit']"
- >鎵归噺淇敼璁″垝寮�宸ユ棩</el-button>
+ type="primary"
+ plain
+ icon="Plus"
+ :disabled="single"
+ @click="handleUpdate"
+ v-hasPermi="['apsPlatePlan:edit']"
+ >{{ $t("plan.btns.batchPlanStartDay") }}</el-button
+ >
</el-col>
<el-col :span="1.5">
<el-button
- type="success"
- plain
- icon="Edit"
- :disabled="single"
- @click="handleUpdate"
- v-hasPermi="['apsPlatePlan:edit']"
- >鎵归噺淇敼璁″垝瀹屽伐鏃�</el-button>
+ type="success"
+ plain
+ icon="Edit"
+ :disabled="single"
+ @click="handleUpdate"
+ v-hasPermi="['apsPlatePlan:edit']"
+ >{{ $t("plan.btns.batchPlanEndDay") }}</el-button
+ >
</el-col>
<el-col :span="1.5">
<el-button
- type="info"
- plain
- icon="Upload"
- @click="handleImport"
- v-hasPermi="['apsPlatePlan:import']"
- >瀵煎叆</el-button>
+ type="info"
+ plain
+ icon="Upload"
+ @click="handleImport"
+ v-hasPermi="['apsPlatePlan:import']"
+ >{{ $t("common.common.import") }}</el-button
+ >
</el-col>
<el-col :span="1.5">
<el-button
@@ -93,122 +114,167 @@
icon="Download"
@click="handleExport"
v-hasPermi="['apsPlatePlan:export']"
- >瀵煎嚭</el-button>
+ >{{ $t("common.common.export") }}</el-button
+ >
</el-col>
- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+ <right-toolbar
+ v-model:showSearch="showSearch"
+ @queryTable="getList"
+ ></right-toolbar>
</el-row>
<HxlhTable
- style="width: 100%"
- :columns="columns"
- :data="planList"
- :loading="loading"
- :height="height"
- @on-checkbox="handleCheckboxChange"
- :expand-config="expandConfig"
- :subGridOptions="subGridOptions"
+ style="width: 100%"
+ :columns="columns"
+ :data="planList"
+ :loading="loading"
+ :height="height"
+ @on-checkbox="handleCheckboxChange"
+ :expand-config="expandConfig"
+ :subGridOptions="subGridOptions"
>
-
</HxlhTable>
<!-- 娣诲姞鎴栦慨鏀归挘閲戣鍒掔鐞嗗璇濇 -->
- <el-dialog :title="upload.title" v-model="upload.open" width="90%" append-to-body @close="dialogCancel" >
+ <el-dialog
+ :title="upload.title"
+ v-model="upload.open"
+ width="90%"
+ append-to-body
+ @close="dialogCancel"
+ >
<el-row :gutter="10">
<el-col>
- <div style="border-bottom: 1px solid #ccc;" >
- <p>涓婁紶Excel鏂囦欢锛屽寘鍚挘閲戣鍒掍俊鎭�傜郴缁熷皢瑙f瀽鏁版嵁骞朵繚瀛樺埌鏈湴锛岀敤浜庡叧鑱斿埌閽i噾璁″垝涓��</p>
+ <div style="border-bottom: 1px solid #ccc">
+ <p>{{ $t("plan.upload.info") }}</p>
</div>
</el-col>
- <el-col >
+ <el-col>
<div></div>
</el-col>
</el-row>
<el-row>
<el-col>
- <el-upload ref="uploadRef"
- :limit="1"
- accept=".xlsx, .xls"
- :headers="upload.headers"
- :action="upload.url + '?updateSupport=' + upload.updateSupport"
- :disabled="upload.isUploading"
- :on-progress="handleFileUploadProgress"
- :on-success="handleFileSuccess"
- :auto-upload="true" drag>
- <el-icon class="el-icon--upload"><upload-filled /></el-icon>
- <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
- <template #tip>
- <div class="el-upload__tip">
- <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span>
- </div>
- </template>
+ <el-upload
+ ref="uploadRef"
+ :limit="1"
+ accept=".xlsx, .xls"
+ :headers="upload.headers"
+ :action="upload.url + '?updateSupport=' + upload.updateSupport"
+ :disabled="upload.isUploading"
+ :on-progress="handleFileUploadProgress"
+ :on-success="handleFileSuccess"
+ :auto-upload="true"
+ drag
+ >
+ <el-icon class="el-icon--upload"><upload-filled /></el-icon>
+ <div class="el-upload__text">
+ {{ $t("plan.upload.prevText")
+ }}<em>{{ $t("plan.upload.uploadText") }}</em>
+ </div>
+ <template #tip>
+ <div class="el-upload__tip">
+ <span>{{ $t("plan.upload.fileTypeImport") }}</span>
+ </div>
+ </template>
</el-upload>
</el-col>
</el-row>
<el-row>
- <el-col style="margin-top: 20px;">
+ <el-col style="margin-top: 20px">
<div v-show="isVisible">
- <el-alert icon="Check" :show-icon="true" title="閽i噾璁″垝鏁版嵁宸叉垚鍔熻В鏋�" type="success" :closable="false"/>
+ <el-alert
+ icon="Check"
+ :show-icon="true"
+ :title="$t('plan.message.metalplanDataSuccess')"
+ type="success"
+ :closable="false"
+ />
</div>
<div v-show="isError">
- <el-alert icon="Close" :show-icon="true" title="閽i噾璁″垝鏁版嵁宸茶В鏋愬け璐�" type="error" :closable="false"/>
+ <el-alert
+ icon="Close"
+ :show-icon="true"
+ :title="$t('plan.message.metalplanDataError')"
+ type="error"
+ :closable="false"
+ />
</div>
</el-col>
</el-row>
<el-row v-show="isVisible">
<el-col>
<div>
- <h2>鏁版嵁棰勮</h2>
+ <h2>{{ $t("plan.upload.dataPreview") }}</h2>
</div>
<HxlhTable
- style="width: 100%"
- :columns="exampleColumns"
- :data="exampleList"
- :loading="loading"
- :maxHeight="exampleHeight"
- @on-checkbox="handleCheckboxChange"
+ style="width: 100%"
+ :columns="exampleColumns"
+ :data="exampleList"
+ :loading="loading"
+ :maxHeight="exampleHeight"
+ @on-checkbox="handleCheckboxChange"
>
</HxlhTable>
</el-col>
<el-col>
- <div style="text-align: right;">
- <h4>鍏变笂浼�<span style="color: blue;">{{ total }}</span>鏉¢浂浠跺伐鍗曟暟鎹�</h4>
+ <div style="text-align: right">
+ <h4>
+ {{ $t("plan.upload.totalUpload")
+ }}<span style="color: blue">{{ total }}</span
+ >{{ $t("plan.upload.itemUpload") }}
+ </h4>
</div>
</el-col>
</el-row>
<template #footer>
<div class="dialog-footer">
+ <el-button
+ type="success"
+ plain
+ icon="Check"
+ :disabled="planned"
+ @click="uploadParse"
+ v-hasPermi="['apsPlatePlan:confirm']"
+ >{{ $t("plan.upload.confirmUpload") }}</el-button
+ >
- <el-button
- type="success"
- plain
- icon="Check"
- :disabled="planned"
- @click="uploadParse"
- v-hasPermi="['apsPlatePlan:confirm']"
- >纭涓婁紶</el-button>
-
- <el-button @click="dialogCancel">鍙� 娑�</el-button>
+ <el-button @click="dialogCancel">{{
+ $t("plan.upload.cancel")
+ }}</el-button>
</div>
</template>
</el-dialog>
-
</div>
</template>
<script setup name="ApsPlatePlan">
-import { listPlan, examplePlan, confirmPart} from "@/api/mainPlan/apsPlatePlan.js";
+import {
+ listPlan,
+ examplePlan,
+ confirmPart,
+} from "@/api/mainPlan/apsPlatePlan.js";
import { listProcessRoute } from "@/api/basicData/processRoute.js";
-import HxlhTable from '@/components/HxlhTable/index.vue'
+import HxlhTable from "@/components/HxlhTable/index.vue";
import { ref } from "vue";
import { getToken } from "@/utils/auth.js";
-import {ElMessage} from "element-plus";
-
+import { ElMessage } from "element-plus";
+import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
const { proxy } = getCurrentInstance();
-
-const { aps_is_suspended, aps_document_status, aps_account, aps_business_type } = proxy.useDict('aps_is_suspended', 'aps_document_status', 'aps_account', 'aps_business_type');
-
+const { t, locale } = useI18n();
+const {
+ aps_is_suspended,
+ aps_document_status,
+ aps_account,
+ aps_business_type,
+} = proxy.useDict(
+ "aps_is_suspended",
+ "aps_document_status",
+ "aps_account",
+ "aps_business_type"
+);
const exampleList = ref([]);
const planList = ref([]);
const loading = ref(true);
@@ -218,14 +284,13 @@
const daterangePlanStartDay = ref([]);
const daterangePlanEndDay = ref([]);
-const height = ref(document.documentElement.clientHeight - 270 + "px;")
+const height = ref(document.documentElement.clientHeight - 270 + "px;");
const isVisible = ref(false);
const isError = ref(false);
const planned = ref(true);
const batchNumber = ref(null);
const exampleHeight = ref("500px");
const uploadRef = ref();
-
/*** 鐢ㄦ埛瀵煎叆鍙傛暟 */
const upload = reactive({
@@ -238,406 +303,502 @@
// 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
updateSupport: 0,
// 璁剧疆涓婁紶鐨勮姹傚ご閮�
- headers: { Authorization: "Bearer " + getToken() ,local: 'zhl'},
+ headers: { Authorization: "Bearer " + getToken(), local: "zhl" },
// 涓婁紶鐨勫湴鍧�
- url: import.meta.env.VITE_APP_BASE_API + "/aps/apsPlatePlan/importData"
+ url: import.meta.env.VITE_APP_BASE_API + "/aps/apsPlatePlan/importData",
});
-
-// 琛ㄦ牸閰嶇疆
-const exampleColumns = ref([
- { type: 'seq', title: '搴忓彿', width: 60 },
- {
- title: '涓昏鍒掑憳',
- field: 'masterPlanner',
- width: 100,
- },
- {
- title: '鍛ㄦ棩',
- field: 'weekDay',
- width: 100,
- formatter: (({ cellValue, row, column }) => {
- if (cellValue) {
- const weekDay = new Date(cellValue);
- const year = weekDay.getFullYear();
- const month = String(weekDay.getMonth() + 1).padStart(2, '0');
- const day = String(weekDay.getDate()).padStart(2, '0');
- return `${month}-${day}`;
- }
- return '';
- })
- },
- {
- title: '鍛ㄥ害',
- field: 'weekCycle',
- width: 80,
- },
- {
- title: '涓讳欢鏂欏彿',
- field: 'mainPartNumber',
- width: 150,
- },
- {
- title: '涓讳欢鍥惧彿',
- field: 'mainPartDrawingNumber',
- width: 150,
- },
- {
- title: '瀹㈡埛鍚嶇О',
- field: 'customer',
- width: 200,
- },
- {
- title: '涓氬姟绫诲瀷',
- field: 'businessType',
- width: 150,
- },
- {
- title: '鍗曟嵁鍙�',
- field: 'documentNumber',
- width: 150,
- },
- {
- title: '闇�姹傚垎绫�',
- field: 'requirementType',
- width: 150,
- },
- {
- title: '鍗曟嵁鐘舵��',
- field: 'documentStatus',
- width: 100,
- },
- {
- title: '鏂欏彿',
- field: 'itemNumber',
- width: 150,
- },
- {
- title: '鍥惧彿',
- field: 'drawingNo',
- width: 150,
- },
- {
- title: '鐗堟湰鍙�',
- field: 'versionNumber',
- width: 100,
- },
- {
- title: '鐢熶骇鏁伴噺',
- field: 'productionQuantity',
- width: 100,
- },
- {
- title: '鑹搧鏁伴噺',
- field: 'goodProductsQuantity',
- width: 100,
- },
- {
- title: '宸ュ簭鍙�',
- field: 'processNumber',
- width: 150,
- },
- {
- title: '宸ヤ綔涓績',
- field: 'workCenter',
- width: 150,
- },
- {
- title: '鎵�灞為儴闂�',
- field: 'department',
- width: 100,
- },
- {
- title: '璁″垝寮�宸ユ棩',
- field: 'planStartDay',
- width: 100,
- },
- {
- title: '璁″垝瀹屽伐鏃�',
- field: 'planEndDay',
- width: 100,
- },
- {
- title: '澶囨枡鏂欏彿',
- field: 'standbyNumber',
- width: 100,
- },
- {
- title: '澶囨枡鍚嶇О',
- field: 'standbyName',
- width: 200,
- },
- {
- title: '澶囨枡搴撳瓨',
- field: 'standbyStock',
- width: 100,
- },
- {
- title: '涓嬮亾宸ュ簭鎵�灞為儴闂�',
- field: 'nextProcessDeparment',
- width: 180,
- },
- {
- title: '鏄惁鎸傝捣',
- field: 'isSuspended',
- width: 100,
- },
- {
- title: '澶栧崗鏍囪瘑',
- field: 'isOutsourcing',
- width: 100,
- },
- {
- title: '璐﹀',
- field: 'account',
- width: 100,
- },
- // {
- // title: '涓婇樁鐗╂枡',
- // field: 'advancedMaterials',
- // width: 100,
- // },
- // {
- // title: '涓婇樁鍗曟嵁鍙�',
- // field: 'advancedDocumentNumber',
- // width: 100,
- // },
- // {
- // title: '涓婇樁闇�姹傛棩鏈�',
- // field: 'advancedRequirementDay',
- // width: 150,
- // },
- // {
- // title: '璁″垝榻愬',
- // field: 'isPlanComplete',
- // width: 100,
- // },
- // {
- // title: '搴撳瓨榻愬',
- // field: 'isStockComplete',
- // width: 100,
- // },
- // {
- // title: '鏄惁鏈夋姌杩斿伐搴�',
- // field: 'hasTurnback',
- // width: 150,
- // },
- // {
- // title: '椋庨櫓鏍囪瘑',
- // field: 'hasRisk',
- // width: 100,
- // },
-]);
-
-// 琛ㄦ牸閰嶇疆
-const columns = ref([
- { field: 'expand', type: 'expand', width: 60, align: 'center', slots: { content: 'expandContent' } },
- { type: 'checkbox', width: 60, align:"center"},
- { type: 'seq', title: '搴忓彿', width: 60 },
- // {
- // title: '涓昏鍒掑憳',
- // field: 'masterPlanner',
- // width: 100,
- // },
- // {
- // title: '鍛ㄦ棩',
- // field: 'weekDay',
- // width: 100,
- // formatter: (({ cellValue, row, column }) => {
- // if (cellValue) {
- // const weekDay = new Date(cellValue);
- // const year = weekDay.getFullYear();
- // const month = String(weekDay.getMonth() + 1).padStart(2, '0');
- // const day = String(weekDay.getDate()).padStart(2, '0');
- // return `${month}-${day}`;
- // }
- // return '';
- // })
- // },
- // {
- // title: '鍛ㄥ害',
- // field: 'weekCycle',
- // width: 80,
- // },
- {
- title: '涓讳欢鏂欏彿',
- field: 'mainPartNumber',
- width: 150,
- },
- // {
- // title: '涓讳欢鍥惧彿',
- // field: 'mainPartDrawingNumber',
- // width: 150,
- // },
- // {
- // title: '瀹㈡埛鍚嶇О',
- // field: 'customer',
- // width: 200,
- // },
- {
- title: '涓氬姟绫诲瀷',
- field: 'businessType',
- width: 100,
- },
- {
- title: '鍗曟嵁鍙�',
- field: 'documentNumber',
- width: 140,
- },
- {
- title: '闇�姹傚垎绫�',
- field: 'requirementType',
- width: 100,
- },
- {
- title: '鍗曟嵁鐘舵��',
- field: 'documentStatus',
- width: 100,
- },
- {
- title: '鏂欏彿',
- field: 'itemNumber',
- width: 100,
- },
- {
- title: '鍥惧彿',
- field: 'drawingNo',
- width: 100,
- },
- // {
- // title: '鐗堟湰鍙�',
- // field: 'versionNumber',
- // width: 100,
- // },
- {
- title: '鐢熶骇鏁伴噺',
- field: 'productionQuantity',
- width: 100,
- },
- // {
- // title: '鑹搧鏁伴噺',
- // field: 'goodProductsQuantity',
- // width: 100,
- // },
- {
- title: '宸ュ簭鍙�',
- field: 'processNumber',
- width: 100,
- },
- {
- title: '宸ヤ綔涓績',
- field: 'workCenter',
- width: 180,
- },
- // {
- // title: '鎵�灞為儴闂�',
- // field: 'department',
- // width: 100,
- // },
- // {
- // title: '璁″垝寮�宸ユ棩',
- // field: 'planStartDay',
- // width: 100,
- // },
- {
- title: '璁″垝瀹屽伐鏃�',
- field: 'planEndDay',
- width: 100,
- },
- // {
- // title: '澶囨枡鏂欏彿',
- // field: 'standbyNumber',
- // width: 100,
- // },
- // {
- // title: '澶囨枡鍚嶇О',
- // field: 'standbyName',
- // width: 100,
- // },
- // {
- // title: '澶囨枡搴撳瓨',
- // field: 'standbyStock',
- // width: 100,
- // },
- // {
- // title: '涓嬮亾宸ュ簭鎵�灞為儴闂�',
- // field: 'nextProcessDeparment',
- // width: 160,
- // },
- // {
- // title: '鏄惁鎸傝捣',
- // field: 'isSuspended',
- // width: 100,
- // },
- // {
- // title: '澶栧崗鏍囪瘑',
- // field: 'isOutsourcing',
- // width: 100,
- // },
- // {
- // title: '璐﹀',
- // field: 'account',
- // width: 100,
- // },
- // {
- // title: '涓婇樁鐗╂枡',
- // field: 'advancedMaterials',
- // width: 100,
- // },
- // {
- // title: '涓婇樁鍗曟嵁鍙�',
- // field: 'advancedDocumentNumber',
- // width: 100,
- // },
- // {
- // title: '涓婇樁闇�姹傛棩鏈�',
- // field: 'advancedRequirementDay',
- // width: 100,
- // },
- // {
- // title: '璁″垝榻愬',
- // field: 'isPlanComplete',
- // width: 100,
- // },
- // {
- // title: '搴撳瓨榻愬',
- // field: 'isStockComplete',
- // width: 100,
- // },
- // {
- // title: '鏄惁鏈夋姌杩斿伐搴�',
- // field: 'hasTurnback',
- // width: 120,
- // },
- // {
- // title: '椋庨櫓鏍囪瘑',
- // field: 'hasRisk',
- // width: 100,
- // },
-]);
-
-
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
customer: null,
- documentNumber: null
+ documentNumber: null,
},
rules: {
id: [
- { required: true, message: "涓婚敭id涓嶈兘涓虹┖", trigger: "blur" }
+ {
+ required: true,
+ message: t("plan.message.idNotBeEmpty"),
+ trigger: "blur",
+ },
],
- }
+ },
});
const { queryParams } = toRefs(data);
+const exampleColumns = ref([]);
+const columns = ref([]);
+const subGridOptions = ref({
+ border: true,
+ showOverflow: true,
+ columns: [],
+});
+
+watch(
+ locale,
+ (newLocale) => {
+ // 閲嶆柊鑾峰彇缈昏瘧鏂囨湰
+ // 琛ㄦ牸閰嶇疆
+ exampleColumns.value = [
+ { type: "seq", title: t("plan.table.seq"), width: 60 },
+ {
+ title: t("plan.table.masterPlanner"),
+ field: "masterPlanner",
+ width: 100,
+ },
+ {
+ title: t("plan.table.weekDay"),
+ field: "weekDay",
+ width: 100,
+ formatter: ({ cellValue, row, column }) => {
+ if (cellValue) {
+ const weekDay = new Date(cellValue);
+ const year = weekDay.getFullYear();
+ const month = String(weekDay.getMonth() + 1).padStart(2, "0");
+ const day = String(weekDay.getDate()).padStart(2, "0");
+ return `${month}-${day}`;
+ }
+ return "";
+ },
+ },
+ {
+ title: t("plan.table.weekCycle"),
+ field: "weekCycle",
+ width: 80,
+ },
+ {
+ title: t("plan.table.mainPartNumber"),
+ field: "mainPartNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.mainPartDrawingNumber"),
+ field: "mainPartDrawingNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.customer"),
+ field: "customer",
+ width: 200,
+ },
+ {
+ title: t("plan.table.businessType"),
+ field: "businessType",
+ width: 150,
+ },
+ {
+ title: t("plan.table.documentNumber"),
+ field: "documentNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.requirementType"),
+ field: "requirementType",
+ width: 150,
+ },
+ {
+ title: t("plan.table.documentStatus"),
+ field: "documentStatus",
+ width: 100,
+ },
+ {
+ title: t("plan.table.itemNumber"),
+ field: "itemNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.drawingNo"),
+ field: "drawingNo",
+ width: 150,
+ },
+ {
+ title: t("plan.table.versionNumber"),
+ field: "versionNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.productionQuantity"),
+ field: "productionQuantity",
+ width: 100,
+ },
+ {
+ title: t("plan.table.goodProductsQuantity"),
+ field: "goodProductsQuantity",
+ width: 100,
+ },
+ {
+ title: t("plan.table.processNumber"),
+ field: "processNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.factoryCenter"),
+ field: "workCenter",
+ width: 150,
+ },
+ {
+ title: t("plan.table.dependencyDepartment"),
+ field: "department",
+ width: 100,
+ },
+ {
+ title: t("plan.table.planStartDay"),
+ field: "planStartDay",
+ width: 100,
+ },
+ {
+ title: t("plan.table.planEndDayDate"),
+ field: "planEndDay",
+ width: 100,
+ },
+ {
+ title: t("plan.table.standbyNumber"),
+ field: "standbyNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.standbyName"),
+ field: "standbyName",
+ width: 200,
+ },
+ {
+ title: t("plan.table.standbyStock"),
+ field: "standbyStock",
+ width: 100,
+ },
+ {
+ title: t("plan.table.departmentToNextProcessBelongs"),
+ field: "nextProcessDeparment",
+ width: 180,
+ },
+ {
+ title: t("plan.table.isSuspended"),
+ field: "isSuspended",
+ width: 100,
+ },
+ {
+ title: t("plan.table.isOutsourcing"),
+ field: "isOutsourcing",
+ width: 100,
+ },
+ {
+ title: t("plan.table.account"),
+ field: "account",
+ width: 100,
+ },
+ // {
+ // title: '涓婇樁鐗╂枡',
+ // field: 'advancedMaterials',
+ // width: 100,
+ // },
+ // {
+ // title: '涓婇樁鍗曟嵁鍙�',
+ // field: 'advancedDocumentNumber',
+ // width: 100,
+ // },
+ // {
+ // title: '涓婇樁闇�姹傛棩鏈�',
+ // field: 'advancedRequirementDay',
+ // width: 150,
+ // },
+ // {
+ // title: '璁″垝榻愬',
+ // field: 'isPlanComplete',
+ // width: 100,
+ // },
+ // {
+ // title: '搴撳瓨榻愬',
+ // field: 'isStockComplete',
+ // width: 100,
+ // },
+ // {
+ // title: '鏄惁鏈夋姌杩斿伐搴�',
+ // field: 'hasTurnback',
+ // width: 150,
+ // },
+ // {
+ // title: '椋庨櫓鏍囪瘑',
+ // field: 'hasRisk',
+ // width: 100,
+ // },
+ ];
+ // 琛ㄦ牸閰嶇疆
+ columns.value = [
+ {
+ field: "expand",
+ type: "expand",
+ width: 60,
+ align: "center",
+ slots: { content: "expandContent" },
+ },
+ { type: "checkbox", width: 60, align: "center" },
+ { type: "seq", title: t("plan.table.seq"), width: 60 },
+ // {
+ // title: '涓昏鍒掑憳',
+ // field: 'masterPlanner',
+ // width: 100,
+ // },
+ // {
+ // title: '鍛ㄦ棩',
+ // field: 'weekDay',
+ // width: 100,
+ // formatter: (({ cellValue, row, column }) => {
+ // if (cellValue) {
+ // const weekDay = new Date(cellValue);
+ // const year = weekDay.getFullYear();
+ // const month = String(weekDay.getMonth() + 1).padStart(2, '0');
+ // const day = String(weekDay.getDate()).padStart(2, '0');
+ // return `${month}-${day}`;
+ // }
+ // return '';
+ // })
+ // },
+ // {
+ // title: '鍛ㄥ害',
+ // field: 'weekCycle',
+ // width: 80,
+ // },
+ {
+ title: t("plan.table.mainPartNumber"),
+ field: "mainPartNumber",
+ width: 150,
+ },
+ // {
+ // title: '涓讳欢鍥惧彿',
+ // field: 'mainPartDrawingNumber',
+ // width: 150,
+ // },
+ // {
+ // title: '瀹㈡埛鍚嶇О',
+ // field: 'customer',
+ // width: 200,
+ // },
+ {
+ title: t("plan.table.businessType"),
+ field: "businessType",
+ width: 100,
+ },
+ {
+ title: t("plan.table.documentNumber"),
+ field: "documentNumber",
+ width: 140,
+ },
+ {
+ title: t("plan.table.requirementType"),
+ field: "requirementType",
+ width: 100,
+ },
+ {
+ title: t("plan.table.documentStatus"),
+ field: "documentStatus",
+ width: 100,
+ },
+ {
+ title: t("plan.table.itemNumber"),
+ field: "itemNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.drawingNo"),
+ field: "drawingNo",
+ width: 100,
+ },
+ // {
+ // title: '鐗堟湰鍙�',
+ // field: 'versionNumber',
+ // width: 100,
+ // },
+ {
+ title: t("plan.table.productionQuantity"),
+ field: "productionQuantity",
+ width: 100,
+ },
+ // {
+ // title: '鑹搧鏁伴噺',
+ // field: 'goodProductsQuantity',
+ // width: 100,
+ // },
+ {
+ title: t("plan.table.processNumber"),
+ field: "processNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.factoryCenter"),
+ field: "workCenter",
+ width: 180,
+ },
+ // {
+ // title: '鎵�灞為儴闂�',
+ // field: 'department',
+ // width: 100,
+ // },
+ // {
+ // title: '璁″垝寮�宸ユ棩',
+ // field: 'planStartDay',
+ // width: 100,
+ // },
+ {
+ title: t("plan.table.planEndDayDate"),
+ field: "planEndDay",
+ width: 100,
+ },
+ // {
+ // title: '澶囨枡鏂欏彿',
+ // field: 'standbyNumber',
+ // width: 100,
+ // },
+ // {
+ // title: '澶囨枡鍚嶇О',
+ // field: 'standbyName',
+ // width: 100,
+ // },
+ // {
+ // title: '澶囨枡搴撳瓨',
+ // field: 'standbyStock',
+ // width: 100,
+ // },
+ // {
+ // title: '涓嬮亾宸ュ簭鎵�灞為儴闂�',
+ // field: 'nextProcessDeparment',
+ // width: 160,
+ // },
+ // {
+ // title: '鏄惁鎸傝捣',
+ // field: 'isSuspended',
+ // width: 100,
+ // },
+ // {
+ // title: '澶栧崗鏍囪瘑',
+ // field: 'isOutsourcing',
+ // width: 100,
+ // },
+ // {
+ // title: '璐﹀',
+ // field: 'account',
+ // width: 100,
+ // },
+ // {
+ // title: '涓婇樁鐗╂枡',
+ // field: 'advancedMaterials',
+ // width: 100,
+ // },
+ // {
+ // title: '涓婇樁鍗曟嵁鍙�',
+ // field: 'advancedDocumentNumber',
+ // width: 100,
+ // },
+ // {
+ // title: '涓婇樁闇�姹傛棩鏈�',
+ // field: 'advancedRequirementDay',
+ // width: 100,
+ // },
+ // {
+ // title: '璁″垝榻愬',
+ // field: 'isPlanComplete',
+ // width: 100,
+ // },
+ // {
+ // title: '搴撳瓨榻愬',
+ // field: 'isStockComplete',
+ // width: 100,
+ // },
+ // {
+ // title: '鏄惁鏈夋姌杩斿伐搴�',
+ // field: 'hasTurnback',
+ // width: 120,
+ // },
+ // {
+ // title: '椋庨櫓鏍囪瘑',
+ // field: 'hasRisk',
+ // width: 100,
+ // },
+ ];
+ subGridOptions.value.columns = [
+ {
+ title: t("plan.table.itemNumber"),
+ field: "itemNo",
+ width: 150,
+ align: "center",
+ },
+ {
+ title: t("plan.table.workOrderNo"),
+ field: "workOrderNo",
+ width: 150,
+ align: "center",
+ },
+ {
+ title: t("plan.table.processNumber"),
+ field: "processNumber",
+ width: 150,
+ align: "center",
+ },
+ {
+ title: t("plan.table.processName"),
+ field: "processName",
+ width: 150,
+ align: "center",
+ },
+ {
+ title: t("plan.table.startDateOfProcessPlan"),
+ field: "processPlanStartDay",
+ width: 200,
+ align: "center",
+ },
+ {
+ title: t("plan.table.endDateOfProcessPlan"),
+ field: "processPlanEndDay",
+ width: 200,
+ align: "center",
+ },
+ // {
+ // title: '鏈紑宸ユ暟閲�',
+ // field: 'notStartWorkCount',
+ // width: 90,
+ // align:"center",
+ // },
+ // {
+ // title: '宸插畬鎴愭暟閲�',
+ // field: 'completedCount',
+ // width: 90,
+ // align:"center",
+ // },
+ // {
+ // title: '搴熷純鏁伴噺',
+ // field: 'discardCount',
+ // width: 90,
+ // align:"center",
+ // },
+ {
+ title: t("plan.table.standardTime"),
+ field: "standardTime",
+ width: 90,
+ align: "center",
+ },
+ {
+ title: t("plan.table.processOrder"),
+ field: "processOrder",
+ width: 90,
+ align: "center",
+ },
+ {
+ title: t("plan.table.integrationDay"),
+ field: "integrationDay",
+ width: 160,
+ align: "center",
+ },
+ ];
+ getList();
+ },
+ { immediate: true, deep: true }
+);
/** 鏌ヨ閽i噾璁″垝涓存椂绠$悊鍒楄〃 */
function getExampleList() {
loading.value = true;
queryParams.value = {};
queryParams.value.batchNumber = batchNumber.value;
- examplePlan(queryParams.value).then(response => {
+ examplePlan(queryParams.value).then((response) => {
exampleList.value = response.rows;
total.value = response.total;
loading.value = false;
@@ -648,15 +809,17 @@
function getList() {
loading.value = true;
queryParams.value.params = {};
- if (null != daterangePlanStartDay && '' !== daterangePlanStartDay) {
- queryParams.value.params["beginPlanStartDay"] = daterangePlanStartDay.value[0];
- queryParams.value.params["endPlanStartDay"] = daterangePlanStartDay.value[1];
+ if (null != daterangePlanStartDay && "" !== daterangePlanStartDay) {
+ queryParams.value.params["beginPlanStartDay"] =
+ daterangePlanStartDay.value[0];
+ queryParams.value.params["endPlanStartDay"] =
+ daterangePlanStartDay.value[1];
}
- if (null != daterangePlanEndDay && '' !== daterangePlanEndDay) {
+ if (null != daterangePlanEndDay && "" !== daterangePlanEndDay) {
queryParams.value.params["beginPlanEndDay"] = daterangePlanEndDay.value[0];
queryParams.value.params["endPlanEndDay"] = daterangePlanEndDay.value[1];
}
- listPlan(queryParams.value).then(response => {
+ listPlan(queryParams.value).then((response) => {
planList.value = response.rows;
loading.value = false;
});
@@ -682,38 +845,41 @@
};
/** 鎵归噺淇敼璁″垝寮�宸ユ棩鎸夐挳鎿嶄綔 */
-function plannedStart() {
-
-}
+function plannedStart() {}
/** 鎵归噺淇敼璁″垝瀹屽伐鏃ユ寜閽搷浣� */
-function plannedEnd() {
-
-}
+function plannedEnd() {}
/** 瀵煎叆鎸夐挳鎿嶄綔 */
function handleImport() {
- upload.title = "閽i噾璁″垝鏁版嵁涓婁紶";
+ upload.title = t("plan.upload.uploadSheetMetalPlanData");
upload.open = true;
-};
+}
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
function handleExport() {
- proxy.download('aps/apsPlatePlan/export', {
- ...queryParams.value
- }, `plan_${new Date().getTime()}.xlsx`)
+ proxy.download(
+ "aps/apsPlatePlan/export",
+ {
+ ...queryParams.value,
+ },
+ `plan_${new Date().getTime()}.xlsx`
+ );
}
/** 涓嬭浇妯℃澘鎿嶄綔 */
function importTemplate() {
- proxy.download("system/user/importTemplate", {
- }, `user_template_${new Date().getTime()}.xlsx`);
-};
+ proxy.download(
+ "system/user/importTemplate",
+ {},
+ `user_template_${new Date().getTime()}.xlsx`
+ );
+}
/** buildEexample */
function buildEexample() {
proxy.$refs["uploadRef"].submit();
-};
+}
/**鏂囦欢涓婁紶涓鐞� */
const handleFileUploadProgress = (event, file, fileList) => {
@@ -722,15 +888,24 @@
/** 鏂囦欢涓婁紶鎴愬姛澶勭悊 */
const handleFileSuccess = (response, file, fileList) => {
- if(response.code == '200'){
+ if (response.code == "200") {
batchNumber.value = response.data;
isVisible.value = true;
planned.value = false;
isError.value = false;
getExampleList();
- }else{
+ } else {
isError.value = true;
- proxy.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "瀵煎叆缁撴灉", { dangerouslyUseHTMLString: true });
+ proxy.$alert(
+ "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
+ response.msg +
+ "</div>",
+ t("plan.upload.errorResult"),
+ { dangerouslyUseHTMLString: true,
+ confirmButtonText: t("plan.btns.confirm"),
+ cancelButtonText: t("plan.btns.cancel"),
+ }
+ );
}
proxy.$refs["uploadRef"].handleRemove(file);
upload.isUploading = false;
@@ -740,7 +915,7 @@
function uploadParse() {
queryParams.value.params = {};
queryParams.value.params["batchNumber"] = batchNumber.value;
- confirmPart(queryParams.value).then(response => {
+ confirmPart(queryParams.value).then((response) => {
exampleList.value = response.rows;
loading.value = false;
isVisible.value = false;
@@ -748,15 +923,15 @@
planned.value = true;
upload.open = false;
ElMessage({
- message: '姘斾綋绠¤矾璁″垝鏁版嵁宸叉垚鍔熶笂浼犲拰瑙f瀽',
- type: 'success',
- })
+ message: t("plan.message.metalplanDataSuccess"),
+ type: "success",
+ });
getList();
});
}
/** dialog鍙栨秷 */
-function dialogCancel(){
+function dialogCancel() {
if (uploadRef.value) {
uploadRef.value.clearFiles();
}
@@ -768,98 +943,101 @@
}
/*瀹氫箟涓嬫媺浜岀骇琛�*/
-const subGridOptions = reactive({
- border: true,
- showOverflow: true,
- columns: [
- {
- title: '鏂欏彿',
- field: 'itemNo',
- width: 150,
- align:"center",
- },
- {
- title: '宸ュ崟鍙�',
- field: 'workOrderNo',
- width: 150,
- align:"center",
- },
- {
- title: '宸ュ簭搴忓彿',
- field: 'processNumber',
- width: 100,
- align:"center",
- },
- {
- title: '宸ュ簭鍚嶇О',
- field: 'processName',
- width: 150,
- align:"center",
- },
- {
- title: '宸ュ簭璁″垝寮�濮嬫棩鏈�',
- field: 'processPlanStartDay',
- width: 200,
- align:"center",
- },
- {
- title: '宸ュ簭璁″垝缁撴潫鏃ユ湡',
- field: 'processPlanEndDay',
- width: 200,
- align:"center",
- },
- // {
- // title: '鏈紑宸ユ暟閲�',
- // field: 'notStartWorkCount',
- // width: 90,
- // align:"center",
- // },
- // {
- // title: '宸插畬鎴愭暟閲�',
- // field: 'completedCount',
- // width: 90,
- // align:"center",
- // },
- // {
- // title: '搴熷純鏁伴噺',
- // field: 'discardCount',
- // width: 90,
- // align:"center",
- // },
- {
- title: '鏍囧噯宸ユ椂',
- field: 'standardTime',
- width: 90,
- align:"center",
- },
- {
- title: '宸ュ簭鎺掑簭',
- field: 'processOrder',
- width: 90,
- align:"center",
- },
- {
- title: '闆嗘垚鏃ユ湡',
- field: 'integrationDay',
- width: 160,
- align:"center",
- }
- ]
-})
+// const subGridOptions = ref({
+// border: true,
+// showOverflow: true,
+// columns: [
+// {
+// title: t('plan.table.itemNumber'),
+// field: 'itemNo',
+// width: 150,
+// align:"center",
+// },
+// {
+// title: t('plan.table.workOrderNo'),
+// field: 'workOrderNo',
+// width: 150,
+// align:"center",
+// },
+// {
+// title: t('plan.table.processNumber'),
+// field: 'processNumber',
+// width: 100,
+// align:"center",
+// },
+// {
+// title: t('plan.table.processName'),
+// field: 'processName',
+// width: 150,
+// align:"center",
+// },
+// {
+// title: t('plan.table.startDateOfProcessPlan'),
+// field: 'processPlanStartDay',
+// width: 200,
+// align:"center",
+// },
+// {
+// title: '宸ュ簭璁″垝缁撴潫鏃ユ湡',
+// field: 'processPlanEndDay',
+// width: 200,
+// align:"center",
+// },
+// // {
+// // title: '鏈紑宸ユ暟閲�',
+// // field: 'notStartWorkCount',
+// // width: 90,
+// // align:"center",
+// // },
+// // {
+// // title: '宸插畬鎴愭暟閲�',
+// // field: 'completedCount',
+// // width: 90,
+// // align:"center",
+// // },
+// // {
+// // title: '搴熷純鏁伴噺',
+// // field: 'discardCount',
+// // width: 90,
+// // align:"center",
+// // },
+// {
+// title: '鏍囧噯宸ユ椂',
+// field: 'standardTime',
+// width: 90,
+// align:"center",
+// },
+// {
+// title: '宸ュ簭鎺掑簭',
+// field: 'processOrder',
+// width: 90,
+// align:"center",
+// },
+// {
+// title: '闆嗘垚鏃ユ湡',
+// field: 'integrationDay',
+// width: 160,
+// align:"center",
+// }
+// ]
+// })
+
const expandConfig = ref({
lazy: true,
- loadMethod ({ row }) {
+ loadMethod({ row }) {
// 璋冪敤鎺ュ彛
- return listProcessRoute({'workOrderNo':row.documentNumber}).then(data => {
- row.subList = data.rows;
- })
- }
-})
+ return listProcessRoute({ workOrderNo: row.documentNumber }).then(
+ (data) => {
+ row.subList = data.rows;
+ }
+ );
+ },
+});
-getList();
+// getList();
</script>
<style lang="css" scoped>
h4 {
font-weight: bold;
}
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/mainPlan/platePlanList/index.vue b/src/views/mainPlan/platePlanList/index.vue
index 4297ece..0d95149 100644
--- a/src/views/mainPlan/platePlanList/index.vue
+++ b/src/views/mainPlan/platePlanList/index.vue
@@ -40,17 +40,18 @@
icon="Download"
@click="handleExport"
v-hasPermi="['plateProcessShopStat:export']"
- >瀵煎嚭</el-button
+ >{{ $t(`common.common.export`) }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
- icon="Edit"
+ icon="Refresh"
@click="handleUpdate"
+ :disabled="loading"
v-hasPermi="['plateProcessShopStat:update']"
- >鏇存柊</el-button
+ >{{ $t(`common.common.update`) }}</el-button
>
</el-col>
@@ -68,7 +69,7 @@
>
</HxlhTable>
<!-- 娣诲姞鎴栦慨鏀归挘閲戠粺璁″璇濇 -->
- <el-dialog :title="title" v-model="open" width="500px" append-to-body>
+ <!-- <el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form
ref="aps_plate_process_statRef"
:model="form"
@@ -103,7 +104,7 @@
<el-button @click="cancel">鍙� 娑�</el-button>
</div>
</template>
- </el-dialog>
+ </el-dialog> -->
</div>
</template>
@@ -116,8 +117,12 @@
import { getToken } from "@/utils/auth";
import { nextTick, onMounted, ref } from "vue";
import { ElMessage } from "element-plus";
+import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+// import i18n from "@/utils/i18n";
+// const t = i18n.global.t
+const { t, locale } = useI18n();
const { proxy } = getCurrentInstance();
-
+// console.log(proxy.$i18n.locale, "indexPlanList");
const aps_plate_process_statList = ref([]);
const dynamicList = ref([]);
const generateColumnList = ref([]);
@@ -150,114 +155,117 @@
// },
// rules: {},
});
+const columns = ref([]);
const xGrid = ref();
const { queryParams, form, rules } = toRefs(data);
-
-// 琛ㄦ牸閰嶇疆
-const columns = ref([
- /* { type: 'seq', title: '搴忓彿', width: 60 },*/
- {
- title: "涓讳欢鏂欏彿",
- field: "mainPartNumber",
- width: 150,
- fixed: "left",
- },
- {
- title: "涓氬姟绫诲瀷",
- field: "businessType",
- width: 120,
- fixed: "left",
- },
- {
- title: "鍗曟嵁鍙�",
- field: "documentNumber",
- width: 160,
- fixed: "left",
- },
- {
- title: "闇�姹傚垎绫�",
- field: "requirementType",
- width: 100,
- fixed: "left",
- },
- {
- title: "鍗曟嵁鐘舵��",
- field: "documentStatus",
- width: 100,
- fixed: "left",
- },
- {
- title: "瀹℃牳鏃堕棿",
- field: "updateBy",
- width: 100,
- },
- {
- title: "褰撳墠宸ュ簭",
- field: "workCenter",
- width: 200,
- },
- {
- title: "褰撳墠宸ュ簭璐熻矗浜�",
- field: "department",
- width: 200,
- },
- {
- title: "褰撳墠宸ュ簭鐘舵��",
- field: "opStatus",
- width: 200,
- },
- {
- title: "涓嬩竴宸ュ簭",
- field: "nextOpName",
- width: 100,
- },
- {
- title: "涓嬩竴宸ュ簭璐熻矗浜�",
- field: "nextProcessDeparment",
- width: 200,
- },
- {
- title: "鏂欏彿",
- field: "itemNumber",
- width: 150,
- type: "html",
- },
- {
- title: "鍥惧彿",
- field: "drawingNo",
- width: 150,
- // format: 'YYYY-MM-DD'
- },
- {
- title: "鐗堟湰鍙�",
- field: "versionNumber",
- width: 100,
- type: "html",
- },
- {
- title: "浣庨樁鐮�",
- field: "updateBy",
- width: 100,
- },
- {
- title: "鐢熶骇鏁伴噺",
- field: "productionQuantity",
- width: 100,
- type: "html",
- },
- {
- title: "宸ュ崟璁″垝涓嬪彂鏃堕棿",
- field: "updateBy",
- width: 200,
- },
- {
- title: "绯荤粺瀹屽伐鏃堕棿",
- field: "planEndDay",
- width: 150,
- format: "YYYY-MM-DD hh:mm:ss",
- },
-]);
-
+watch(locale, (newLocale) => {
+ // 閲嶆柊鑾峰彇缈昏瘧鏂囨湰
+ // 琛ㄦ牸閰嶇疆
+ columns.value = [
+ /* { type: 'seq', title: '搴忓彿', width: 60 },*/
+ {
+ title: t("plan.table.mainPartNumber"),
+ field: "mainPartNumber",
+ width: 150,
+ fixed: "left",
+ },
+ {
+ title: t("plan.table.businessType"),
+ field: "businessType",
+ width: 120,
+ fixed: "left",
+ },
+ {
+ title: t("plan.table.documentNumber"),
+ field: "documentNumber",
+ width: 160,
+ fixed: "left",
+ },
+ {
+ title: t("plan.table.requirementType"),
+ field: "requirementType",
+ width: 100,
+ fixed: "left",
+ },
+ {
+ title: t("plan.table.documentStatus"),
+ field: "documentStatus",
+ width: 100,
+ fixed: "left",
+ },
+ {
+ title: t("plan.table.updateBy"),
+ field: "updateBy",
+ width: 100,
+ },
+ {
+ title: t("plan.table.workCenter"),
+ field: "workCenter",
+ width: 200,
+ },
+ {
+ title: t("plan.table.department"),
+ field: "department",
+ width: 200,
+ },
+ {
+ title: t("plan.table.opStatus"),
+ field: "opStatus",
+ width: 200,
+ },
+ {
+ title: t("plan.table.nextOpName"),
+ field: "nextOpName",
+ width: 100,
+ },
+ {
+ title: t("plan.table.nextProcessDeparment"),
+ field: "nextProcessDeparment",
+ width: 200,
+ },
+ {
+ title: t("plan.table.itemNumber"),
+ field: "itemNumber",
+ width: 150,
+ type: "html",
+ },
+ {
+ title: t("plan.table.drawingNo"),
+ field: "drawingNo",
+ width: 150,
+ // format: 'YYYY-MM-DD'
+ },
+ {
+ title: t("plan.table.versionNumber"),
+ field: "versionNumber",
+ width: 100,
+ type: "html",
+ },
+ {
+ title: t("plan.table.cheaperCode"),
+ field: "cheaperCode",
+ width: 100,
+ },
+ {
+ title: t("plan.table.productionQuantity"),
+ field: "productionQuantity",
+ width: 100,
+ type: "html",
+ },
+ {
+ title: t("plan.table.planworkOrderTime"),
+ field: "planworkOrderTime",
+ width: 200,
+ },
+ {
+ title: t("plan.table.planEndDay"),
+ field: "planEndDay",
+ width: 150,
+ format: "YYYY-MM-DD hh:mm:ss",
+ },
+ ]
+ getList();
+},{immediate:true, deep:true});
/** 鏌ヨ閽i噾缁熻鍒楄〃 */
async function getList() {
loading.value = true;
@@ -279,7 +287,6 @@
};
}
);
- console.log(aps_plate_process_statList.value, "resDataresDataresData");
let newArray = [];
newArray = dynamicList.value.flatMap((item, index) => [
{
@@ -404,7 +411,7 @@
listApsPlateProcessShopStatUpdate().then((response) => {
// form.value = response.data;
ElMessage({
- message: "鏁版嵁鏇存柊鎴愬姛",
+ message: t("plan.message.update"),
type: "success",
});
loading.value = false;
@@ -419,9 +426,10 @@
`aps_plate_plan_list_${new Date().getTime()}.xlsx`
);
}
-getList();
+// getList();
// onMounted(async () => {
-//
+// await nextTick();
+
// });
</script>
<style lang="scss" scoped>
diff --git a/src/views/mainPlan/plateProcessStat/index.vue b/src/views/mainPlan/plateProcessStat/index.vue
index 9ccb0db..6c4e13d 100644
--- a/src/views/mainPlan/plateProcessStat/index.vue
+++ b/src/views/mainPlan/plateProcessStat/index.vue
@@ -1,75 +1,103 @@
<template>
<div class="app-container">
- <el-row :gutter="20">
- <el-col>
- <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="90px">
- <el-row :gutter="20">
- <el-col :span="12">
- <el-form-item label="宸ュ崟鍙�" prop="num">
- <el-input
- v-model="queryParams.workOrderNo"
- placeholder="璇疯緭鍏ラ挘閲戣鍒掑伐鍗曞彿"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- </el-col>
- <el-col :span="12" style="text-align: right;">
- <el-form-item>
- <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
- <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- </el-col>
+ <el-row :gutter="10" class="mb8">
+ <!-- <el-col> -->
+ <el-form
+ :model="queryParams"
+ ref="queryRef"
+ :inline="true"
+ v-show="showSearch"
+ :label-width="locale === 'zh' ? '60px' : '150px'"
+ label-position="left"
+ >
+ <!-- <el-row :gutter="20">
+ <el-col :span="12"> -->
+ <el-form-item :label="$t('plan.query.workOrderNo')" prop="num">
+ <el-input
+ style="width: 370px"
+ v-model="queryParams.workOrderNo"
+ :placeholder="$t('plan.placeholder.planWorkOderNO')"
+ clearable
+ @keyup.enter="handleQuery"
+ />
+ </el-form-item>
+ <!-- </el-col>
+ <el-col :span="12" style="text-align: right;"> -->
+ <el-form-item>
+ <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-col> -->
</el-row>
<el-row :gutter="10" class="mb8">
-
<el-col :span="1.5">
<el-button
- type="warning"
- plain
- icon="Download"
- @click="handleExport"
- v-hasPermi="['apsPlateProcessStat:export']"
- >瀵煎嚭</el-button>
+ type="warning"
+ plain
+ icon="Download"
+ @click="handleExport"
+ v-hasPermi="['apsPlateProcessStat:export']"
+ >{{ $t("common.common.export") }}</el-button
+ >
</el-col>
<el-col :span="1.5">
<el-button
- type="success"
- plain
- icon="Edit"
- @click="handleUpdate"
- v-hasPermi="['apsPlateProcessStat:edit']"
- >鏇存柊</el-button>
+ type="success"
+ plain
+ icon="Refresh"
+ @click="handleUpdate"
+ :disabled="loading"
+ v-hasPermi="['apsPlateProcessStat:edit']"
+ >{{ $t("common.common.update") }}</el-button
+ >
</el-col>
- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+ <right-toolbar
+ v-model:showSearch="showSearch"
+ @queryTable="getList"
+ ></right-toolbar>
</el-row>
<HxlhTable
- style="width: 100%"
- :columns="columns"
- :data="aps_plate_process_statList"
- :loading="loading"
- :height="height"
+ style="width: 100%"
+ :columns="columns"
+ :data="aps_plate_process_statList"
+ :loading="loading"
+ :height="height"
>
</HxlhTable>
<!-- 娣诲姞鎴栦慨鏀归挘閲戠粺璁″璇濇 -->
- <el-dialog :title="title" v-model="open" width="500px" append-to-body>
- <el-form ref="aps_plate_process_statRef" :model="form" :rules="rules" label-width="80px">
+ <!-- <el-dialog :title="title" v-model="open" width="500px" append-to-body>
+ <el-form
+ ref="aps_plate_process_statRef"
+ :model="form"
+ :rules="rules"
+ label-width="80px"
+ >
<el-form-item label="鎺掑簭" prop="num">
<el-input v-model="form.num" placeholder="璇疯緭鍏ユ帓搴�" />
</el-form-item>
<el-form-item label="鐢熶骇鏁伴噺" prop="productionQuantity">
- <el-input v-model="form.productionQuantity" placeholder="璇疯緭鍏ョ敓浜ф暟閲�" />
+ <el-input
+ v-model="form.productionQuantity"
+ placeholder="璇疯緭鍏ョ敓浜ф暟閲�"
+ />
</el-form-item>
<el-form-item label="鏍囧噯宸ユ椂" prop="standardTime">
<el-input v-model="form.standardTime" placeholder="璇疯緭鍏ユ爣鍑嗗伐鏃�" />
</el-form-item>
<el-form-item label="宸ュ簭鎬诲伐鏃�" prop="processTotalTime">
- <el-input v-model="form.processTotalTime" placeholder="璇疯緭鍏ュ伐搴忔�诲伐鏃�" />
+ <el-input
+ v-model="form.processTotalTime"
+ placeholder="璇疯緭鍏ュ伐搴忔�诲伐鏃�"
+ />
</el-form-item>
<el-form-item label="璁捐宸ユ椂" prop="designTimes">
<el-input v-model="form.designTimes" placeholder="璇疯緭鍏ヨ璁″伐鏃�" />
@@ -81,31 +109,31 @@
<el-button @click="cancel">鍙� 娑�</el-button>
</div>
</template>
- </el-dialog>
+ </el-dialog> -->
</div>
</template>
<script setup name="Aps_plate_process_stat">
-import { listPlateStat,updateStat } from "@/api/mainPlan/plateProcessStat";
+import { listPlateStat, updateStat } from "@/api/mainPlan/plateProcessStat";
import HxlhTable from "@/components/HxlhTable/index.vue";
import { getToken } from "@/utils/auth";
import { ref } from "vue";
-import {ElMessage} from "element-plus";
+import { ElMessage } from "element-plus";
const { proxy } = getCurrentInstance();
-
+import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+const { t, locale } = useI18n();
const aps_plate_process_statList = ref([]);
-const open = ref(false);
+// const open = ref(false);
const loading = ref(false);
const showSearch = ref(true);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
-const height = ref(document.documentElement.clientHeight - 220 + "px;")
-
+const height = ref(document.documentElement.clientHeight - 220 + "px;");
const data = reactive({
- form: {},
+ // form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
@@ -122,119 +150,129 @@
designTimes: null,
batchNumber: null,
},
- rules: {
- }
+ rules: {},
});
-const { queryParams, form, rules } = toRefs(data);
-
+const { queryParams, rules } = toRefs(data); // form
// 琛ㄦ牸閰嶇疆
-const columns = ref([
-/* { type: 'seq', title: '搴忓彿', width: 60 },*/
- {
- title: '宸ュ崟鍙�',
- field: 'workOrderNo',
- width: 150,
- } ,
- {
- title: '宸ュ簭鍚嶇О',
- field: 'processName',
- },
- {
- title: '宸ュ簭鍙�',
- field: 'routeProcessNumberTxt',
- width: 100,
- },
- {
- title: '褰撳墠宸ュ簭鍙�',
- field: 'currentProcessNumberTxt',
- width: 100,
- },
- {
- title: '鐢熶骇鏁伴噺',
- field: 'productionQuantity',
- width: 80,
- },
- {
- title: '鏍囧噯宸ユ椂',
- field: 'standardTime',
- width: 80,
- },
- {
- title: '宸ュ簭鎬诲伐鏃�',
- field: 'processTotalTime',
- width: 80,
+const columns = ref([]);
+watch(
+ locale,
+ (newLocale) => {
+ columns.value = [
+ /* { type: 'seq', title: '搴忓彿', width: 60 },*/
+ {
+ title: t("plan.table.workOrderNo"),
+ field: "workOrderNo",
+ width: 150,
+ },
+ {
+ title: t("plan.table.processName"),
+ field: "processName",
+ },
+ {
+ title: t("plan.table.processNumber"),
+ field: "routeProcessNumberTxt",
+ width: 100,
+ },
+ {
+ title: t("plan.table.currentProcessNumber"),
+ field: "currentProcessNumberTxt",
+ width: 100,
+ },
+ {
+ title: t("plan.table.productionQuantity"),
+ field: "productionQuantity",
+ width: 80,
+ },
+ {
+ title: t("plan.table.standardTime"),
+ field: "standardTime",
+ width: 80,
+ },
+ {
+ title: t("plan.table.totalWorkingHoursOfProcess"),
+ field: "processTotalTime",
+ width: 80,
+ },
+ {
+ title: t("plan.table.planStartDay"),
+ field: "processPlanStartDaytxt",
+ width: 200,
+ type: "html",
+ },
+ {
+ title: t("plan.table.planEndDayDate"),
+ field: "processPlanEndDaytxt",
+ width: 200,
+ type: "html",
+ },
+ {
+ title: t("plan.table.OrderCompletionDate"),
+ field: "orderPlanEndDay",
+ width: 200,
+ format: "YYYY-MM-DD HH:mm:ss",
+ },
+ ];
+ getList();
},
- {
- title: '璁″垝寮�宸ユ棩',
- field: 'processPlanStartDaytxt',
- width: 200,
- type:'html'
- },
- {
- title: '璁″垝瀹屽伐鏃�',
- field: 'processPlanEndDaytxt',
- width: 200,
- type: 'html'
- },
- {
- title: '璁㈠崟瀹屽伐鏃�',
- field: 'orderPlanEndDay',
- width: 200,
- format: 'YYYY-MM-DD HH:mm:ss'
- }
-]);
-
-
+ { immediate: true, deep: true }
+);
/** 鏌ヨ閽i噾缁熻鍒楄〃 */
function getList() {
loading.value = true;
- listPlateStat(queryParams.value).then(response => {
+ listPlateStat(queryParams.value).then((response) => {
const listValue = response.rows;
- listValue.forEach(listItem => {
- listItem[`processPlanStartDaytxt`]= listItem.warning? `<font color="red">${listItem.processPlanStartDay}</font>` :listItem.processPlanStartDay;
- listItem[`processPlanEndDaytxt`]= listItem.warning? `<font color="red">${listItem.processPlanEndDay}</font>` :listItem.processPlanEndDay;
- listItem[`routeProcessNumberTxt`]= listItem.routeProcessNumber.toString().padStart(3, '0');
- listItem[`currentProcessNumberTxt`]= listItem.currentProcessNumber.toString().padStart(3, '0');
-
-
+ listValue.forEach((listItem) => {
+ listItem[`processPlanStartDaytxt`] = listItem.warning
+ ? `<font color="red">${listItem.processPlanStartDay}</font>`
+ : listItem.processPlanStartDay;
+ listItem[`processPlanEndDaytxt`] = listItem.warning
+ ? `<font color="red">${listItem.processPlanEndDay}</font>`
+ : listItem.processPlanEndDay;
+ listItem[`routeProcessNumberTxt`] = listItem.routeProcessNumber
+ .toString()
+ .padStart(3, "0");
+ listItem[`currentProcessNumberTxt`] = listItem.currentProcessNumber
+ .toString()
+ .padStart(3, "0");
});
- aps_plate_process_statList.value =listValue
+ aps_plate_process_statList.value = listValue;
total.value = response.total;
loading.value = false;
});
}
-// 鍙栨秷鎸夐挳
-function cancel() {
- open.value = false;
- reset();
-}
+// // 鍙栨秷鎸夐挳
+// function cancel() {
+// open.value = false;
+// reset();
+// }
// 琛ㄥ崟閲嶇疆
-function reset() {
- form.value = {
- id: null,
- workOrderNo: null,
- processName: null,
- num: null,
- routeProcessNumber: null,
- currentProcessNumber: null,
- productionQuantity: null,
- standardTime: null,
- processTotalTime: null,
- processPlanEndDay: null,
- computePlanEndDay: null,
- designTimes: null,
- batchNumber: null,
- createBy: null,
- delFlag: null
- };
- proxy.resetForm("aps_plate_process_statRef");
-}
+// function reset() {
+// form.value = {
+// id: null,
+// workOrderNo: null,
+// processName: null,
+// num: null,
+// routeProcessNumber: null,
+// currentProcessNumber: null,
+// productionQuantity: null,
+// standardTime: null,
+// processTotalTime: null,
+// processPlanEndDay: null,
+// computePlanEndDay: null,
+// designTimes: null,
+// batchNumber: null,
+// createBy: null,
+// delFlag: null,
+// };
+// proxy.resetForm("aps_plate_process_statRef");
+// }
/** 鎼滅储鎸夐挳鎿嶄綔 */
function handleQuery() {
@@ -244,99 +282,110 @@
/** 閲嶇疆鎸夐挳鎿嶄綔 */
function resetQuery() {
- queryParams.value.workOrderNo ='';
+ queryParams.value.workOrderNo = "";
proxy.resetForm("queryRef");
handleQuery();
}
// 澶氶�夋閫変腑鏁版嵁
function handleSelectionChange(selection) {
- ids.value = selection.map(item => item.id);
+ ids.value = selection.map((item) => item.id);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 鏂板鎸夐挳鎿嶄綔 */
-function handleAdd() {
- reset();
- open.value = true;
- title.value = "娣诲姞閽i噾缁熻";
-}
+// function handleAdd() {
+// reset();
+// open.value = true;
+// title.value = "娣诲姞閽i噾缁熻";
+// }
/** 淇敼鎸夐挳鎿嶄綔 */
function handleUpdate(row) {
- reset();
+ // reset();
loading.value = true;
- updateStat().then(response => {
- form.value = response.data;
+ updateStat().then((response) => {
+ // form.value = response.data;
loading.value = false;
ElMessage({
- message: '鏁版嵁鏇存柊鎴愬姛',
- type: 'success',
- })
+ message: t("plan.message.update"),
+ type: "success",
+ });
getList();
});
}
/** 鎻愪氦鎸夐挳 */
-function submitForm() {
- proxy.$refs["aps_plate_process_statRef"].validate(valid => {
- if (valid) {
- if (form.value.id != null) {
- updateAps_plate_process_stat(form.value).then(response => {
- proxy.$modal.msgSuccess("淇敼鎴愬姛");
- open.value = false;
- getList();
- });
- } else {
- addAps_plate_process_stat(form.value).then(response => {
- proxy.$modal.msgSuccess("鏂板鎴愬姛");
- open.value = false;
- getList();
- });
- }
- }
- });
-}
+// function submitForm() {
+// proxy.$refs["aps_plate_process_statRef"].validate((valid) => {
+// if (valid) {
+// if (form.value.id != null) {
+// updateAps_plate_process_stat(form.value).then((response) => {
+// proxy.$modal.msgSuccess("淇敼鎴愬姛");
+// open.value = false;
+// getList();
+// });
+// } else {
+// addAps_plate_process_stat(form.value).then((response) => {
+// proxy.$modal.msgSuccess("鏂板鎴愬姛");
+// open.value = false;
+// getList();
+// });
+// }
+// }
+// });
+// }
/** 鍒犻櫎鎸夐挳鎿嶄綔 */
-function handleDelete(row) {
- const _ids = row.id || ids.value;
- proxy.$modal.confirm('鏄惁纭鍒犻櫎閽i噾缁熻缂栧彿涓�"' + _ids + '"鐨勬暟鎹」锛�').then(function() {
- return delAps_plate_process_stat(_ids);
- }).then(() => {
- getList();
- proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- }).catch(() => {});
-}
+// function handleDelete(row) {
+// const _ids = row.id || ids.value;
+// proxy.$modal
+// .confirm('鏄惁纭鍒犻櫎閽i噾缁熻缂栧彿涓�"' + _ids + '"鐨勬暟鎹」锛�')
+// .then(function () {
+// return delAps_plate_process_stat(_ids);
+// })
+// .then(() => {
+// getList();
+// proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+// })
+// .catch(() => {});
+// }
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
function handleExport() {
- proxy.download('/aps/plateProcessStat/export', {
- ...queryParams.value
- }, `aps_plate_process_stat_${new Date().getTime()}.xlsx`)
+ proxy.download(
+ "/aps/plateProcessStat/export",
+ {
+ ...queryParams.value,
+ },
+ `aps_plate_process_stat_${new Date().getTime()}.xlsx`
+ );
}
-const headerCellClassName = ({ column }) => {
- if (column.field === 'name') {
- return 'col-blue'
- }
- return null
-}
-const rowClassName = ({ rowIndex }) => {
- if ([2, 3, 5].includes(rowIndex)) {
- return 'row-green'
- }
- return null
-}
-const cellClassName = ({ row, column }) => {
- if (column.field === 'processPlanStartDay'||column.field === 'processPlanEndDay') {
- if (row.warning) {
- return 'col-orange'
- }
- }
- return null
-}
-getList();
+// const headerCellClassName = ({ column }) => {
+// if (column.field === "name") {
+// return "col-blue";
+// }
+// return null;
+// };
+// const rowClassName = ({ rowIndex }) => {
+// if ([2, 3, 5].includes(rowIndex)) {
+// return "row-green";
+// }
+// return null;
+// };
+// const cellClassName = ({ row, column }) => {
+// if (
+// column.field === "processPlanStartDay" ||
+// column.field === "processPlanEndDay"
+// ) {
+// if (row.warning) {
+// return "col-orange";
+// }
+// }
+// return null;
+// };
+// getList();
</script>
<style lang="scss" scoped>
::v-deep(.mytable-style.vxe-table .vxe-body--row.row-green) {
@@ -351,4 +400,4 @@
background-color: red;
color: #fff;
}
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/mainPlan/weldSeam/index.vue b/src/views/mainPlan/weldSeam/index.vue
index 8b67ca3..62279a6 100644
--- a/src/views/mainPlan/weldSeam/index.vue
+++ b/src/views/mainPlan/weldSeam/index.vue
@@ -9,7 +9,7 @@
icon="Upload"
@click="handleImport"
v-hasPermi="['weldSeam:weldSeam:importData']"
- >瀵煎叆</el-button>
+ >{{ $t("common.common.import") }}</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@@ -18,7 +18,7 @@
icon="Download"
@click="handleExport"
v-hasPermi="['weldSeam:weldSeam:export']"
- >瀵煎嚭</el-button>
+ >{{ $t("common.common.export") }}</el-button>
</el-col>
<right-toolbar :search="false" @queryTable="getList"></right-toolbar>
</el-row>
@@ -32,7 +32,7 @@
@on-checkbox="handleCheckboxChange"
>
<template #buttons="{row}">
- <vxe-button mode="text" @click="viewEvent(row)">缂栬緫</vxe-button>
+ <vxe-button mode="text" @click="viewEvent(row)">{{ $t("common.common.edit") }}</vxe-button>
<!-- <vxe-button mode="text" @row-click="viewEvent(row.year)">缂栬緫</vxe-button> -->
</template>
</HxlhTable>
diff --git a/src/views/partPlan/index.vue b/src/views/partPlan/index.vue
index 45fc0a9..91e48ac 100644
--- a/src/views/partPlan/index.vue
+++ b/src/views/partPlan/index.vue
@@ -1,67 +1,84 @@
<template>
<div class="app-container">
- <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="90px">
- <el-row :gutter="20">
+ <el-form
+ :model="queryParams"
+ ref="queryRef"
+ :inline="true"
+ v-show="showSearch"
+ :label-width="locale === 'zh' ? '90px' : '180px'"
+ label-position="left"
+ >
+ <el-row :gutter="10" class="mb8">
+ <!-- <el-col
+ :span="6"> -->
+ <el-form-item :label="$t('plan.query.daterangePlanStartDay')">
+ <el-date-picker
+ style="width: 240px"
+ v-model="daterangePlanStartDay"
+ value-format="YYYY-MM-DD"
+ type="daterange"
+ range-separator="-"
+ :start-placeholder="$t('plan.placeholder.startDate')"
+ :end-placeholder="$t('plan.placeholder.endDate')"
+ ></el-date-picker>
+ </el-form-item>
+ <!-- </el-col>
+ <el-col :span="6"> -->
+ <el-form-item :label="$t('plan.query.daterangePlanEndDay')">
+ <el-date-picker
+ style="width: 240px"
+ v-model="daterangePlanEndDay"
+ value-format="YYYY-MM-DD"
+ type="daterange"
+ range-separator="-"
+ :start-placeholder="$t('plan.placeholder.startDate')"
+ :end-placeholder="$t('plan.placeholder.endDate')"
+ ></el-date-picker>
+ </el-form-item>
+ <!-- </el-col>
<el-col
- :span="6">
- <el-form-item label="璁″垝寮�宸ユ棩" style="width: 100%;">
- <el-date-picker
- v-model="daterangePlanStartDay"
- value-format="YYYY-MM-DD"
- type="daterange"
- range-separator="-"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- ></el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="璁″垝瀹屽伐鏃�" style="width: 100%;">
- <el-date-picker
- v-model="daterangePlanEndDay"
- value-format="YYYY-MM-DD"
- type="daterange"
- range-separator="-"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- ></el-date-picker>
- </el-form-item>
- </el-col>
- <el-col
- :span="6">
- <el-form-item label="鍗曟嵁鍙�" prop="documentNumber" style="width: 100%;">
- <el-input
- v-model="queryParams.documentNumber"
- placeholder="璇疯緭鍏ュ崟鎹彿"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- </el-col>
- <el-col
- :span="6">
- <el-form-item label="瀹㈡埛鍚嶇О" prop="customer" style="width: 100%;">
- <el-input
- v-model="queryParams.customer"
- placeholder="璇疯緭鍏ュ鎴峰悕绉�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- </el-col>
+ :span="6"> -->
+ <el-form-item
+ :label="$t('plan.query.documentNumber')"
+ prop="documentNumber"
+ >
+ <el-input
+ v-model="queryParams.documentNumber"
+ :placeholder="$t('plan.placeholder.documentNumber')"
+ clearable
+ style="width: 240px"
+ @keyup.enter="handleQuery"
+ />
+ </el-form-item>
+ <!-- </el-col>
+ <el-col
+ :span="6"> -->
+ <el-form-item :label="$t('plan.query.customer')" prop="customer">
+ <el-input
+ style="width: 240px"
+ v-model="queryParams.customer"
+ :placeholder="$t('plan.placeholder.customer')"
+ clearable
+ @keyup.enter="handleQuery"
+ />
+ </el-form-item>
+ <!-- </el-col>
<el-col
:span="24"
- style="text-align: right;">
- <el-form-item>
- <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
- <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
- </el-form-item>
- </el-col>
-
-
+ style="text-align: right;"> -->
+ <el-form-item>
+ <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
@@ -71,7 +88,8 @@
:disabled="single"
@click="plannedStart"
v-hasPermi="['partPlan:add']"
- >鎵归噺淇敼璁″垝寮�宸ユ棩</el-button>
+ >{{ $t("plan.btns.batchPlanStartDay") }}</el-button
+ >
</el-col>
<el-col :span="1.5">
<el-button
@@ -81,16 +99,18 @@
:disabled="single"
@click="plannedEnd"
v-hasPermi="['partPlan:edit']"
- >鎵归噺淇敼璁″垝瀹屽伐鏃�</el-button>
+ >{{ $t("plan.btns.batchPlanEndDay") }}</el-button
+ >
</el-col>
<el-col :span="1.5">
- <el-button
- type="info"
- plain
- icon="Upload"
- @click="handleImport"
+ <el-button
+ type="info"
+ plain
+ icon="Upload"
+ @click="handleImport"
v-hasPermi="['partPlan:import']"
- >瀵煎叆</el-button>
+ >{{ $t("common.common.import") }}</el-button
+ >
</el-col>
<el-col :span="1.5">
<el-button
@@ -99,30 +119,42 @@
icon="Download"
@click="handleExport"
v-hasPermi="['partPlan:export']"
- >瀵煎嚭</el-button>
+ >{{ $t("common.common.export") }}</el-button
+ >
</el-col>
- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+ <right-toolbar
+ v-model:showSearch="showSearch"
+ @queryTable="getList"
+ ></right-toolbar>
</el-row>
<HxlhTable
- style="width: 100%"
- :columns="columns"
- :data="planList"
- :loading="loading"
- :height="height"
- @on-checkbox="handleCheckboxChange"
+ style="width: 100%"
+ :columns="columns"
+ :data="planList"
+ :loading="loading"
+ :height="height"
+ @on-checkbox="handleCheckboxChange"
>
</HxlhTable>
<!-- 瀵煎叆瀵硅瘽妗� -->
- <el-dialog :title="upload.title" v-model="upload.open" width="90%" append-to-body @close="dialogCancel">
+ <el-dialog
+ :title="upload.title"
+ v-model="upload.open"
+ width="90%"
+ append-to-body
+ @close="dialogCancel"
+ >
<el-row :gutter="10">
<el-col>
- <div style="border-bottom: 1px solid #ccc;" >
- <p>涓婁紶Excel鏂囦欢锛屽寘鍚浂浠跺伐鍗曚俊鎭�傜郴缁熷皢瑙f瀽鏁版嵁骞朵繚瀛樺埌鏈湴锛岀敤浜庡叧鑱斿埌闆朵欢璁″垝涓��</p>
+ <div style="border-bottom: 1px solid #ccc">
+ <p>
+ {{ $t("plan.upload.info") }}
+ </p>
</div>
</el-col>
- <el-col >
+ <el-col>
<div></div>
</el-col>
<!-- <el-col>
@@ -133,7 +165,7 @@
</el-col> -->
</el-row>
- <el-row :gutter="10" style="margin-top: 20px;">
+ <el-row :gutter="10" style="margin-top: 20px">
<!-- <el-col :span="1.5">
<el-button
type="primary"
@@ -162,15 +194,29 @@
</el-row> -->
<el-row>
<el-col>
- <el-upload ref="uploadRef" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="true" drag>
+ <el-upload
+ ref="uploadRef"
+ :limit="1"
+ accept=".xlsx, .xls"
+ :headers="upload.headers"
+ :action="upload.url + '?updateSupport=' + upload.updateSupport"
+ :disabled="upload.isUploading"
+ :on-progress="handleFileUploadProgress"
+ :on-success="handleFileSuccess"
+ :auto-upload="true"
+ drag
+ >
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
- <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+ <div class="el-upload__text">
+ {{ $t("plan.upload.prevText")
+ }}<em>{{ $t("plan.upload.uploadText") }}</em>
+ </div>
<template #tip>
<div class="el-upload__tip">
<!-- <div class="el-upload__tip">
<el-checkbox v-model="upload.updateSupport" />鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
</div> -->
- <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span>
+ <span>{{ $t("plan.upload.fileTypeImport") }}</span>
<!-- <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline" @click="importTemplate">涓嬭浇妯℃澘</el-link> -->
</div>
</template>
@@ -178,19 +224,31 @@
</el-col>
</el-row>
<el-row>
- <el-col style="margin-top: 20px;">
+ <el-col style="margin-top: 20px">
<div v-show="isVisible">
- <el-alert icon="Check" :show-icon="true" title="闆朵欢宸ュ崟鏁版嵁宸叉垚鍔熻В鏋�" type="success" :closable="false"/>
+ <el-alert
+ icon="Check"
+ :show-icon="true"
+ :title="$t('plan.message.dataWorkorderSuccess')"
+ type="success"
+ :closable="false"
+ />
</div>
<div v-show="isError">
- <el-alert icon="Close" :show-icon="true" title="闆朵欢宸ュ崟鏁版嵁宸茶В鏋愬け璐�" type="error" :closable="false"/>
+ <el-alert
+ icon="Close"
+ :show-icon="true"
+ :title="$t('plan.message.dataWorkorderSuccess')"
+ type="error"
+ :closable="false"
+ />
</div>
</el-col>
</el-row>
<el-row v-show="isVisible">
<el-col>
<div>
- <h2>鏁版嵁棰勮</h2>
+ <h2>{{$t("plan.upload.dataPreview")}}</h2>
</div>
<HxlhTable
style="width: 100%"
@@ -203,8 +261,11 @@
</HxlhTable>
</el-col>
<el-col>
- <div style="text-align: right;">
- <h4>鍏变笂浼�<span style="color: blue;">{{ total }}</span>鏉¢浂浠跺伐鍗曟暟鎹�</h4>
+ <div style="text-align: right">
+ <h4>
+ {{$t("plan.upload.totalUpload")}}<span style="color: blue">{{ total }}</span
+ >{{$t("plan.upload.itemUpload")}}
+ </h4>
</div>
</el-col>
</el-row>
@@ -212,14 +273,15 @@
<div class="dialog-footer">
<!-- <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button> -->
<el-button
- type="success"
- plain
- icon="Check"
- :disabled="planned"
- @click="uploadParse"
- v-hasPermi="['partPlan:confirmPart']"
- >纭涓婁紶</el-button>
- <el-button @click="dialogCancel">鍙� 娑�</el-button>
+ type="success"
+ plain
+ icon="Check"
+ :disabled="planned"
+ @click="uploadParse"
+ v-hasPermi="['partPlan:confirmPart']"
+ >{{$t("plan.upload.confirmUpload")}}</el-button
+ >
+ <el-button @click="dialogCancel">{{$t("plan.upload.cancel")}}</el-button>
</div>
</template>
</el-dialog>
@@ -227,14 +289,21 @@
</template>
<script setup name="Plan">
-import { listPlan, examplePlan, confirmPart, addPlan, updatePlan } from "@/api/partPlan/plan";
-import HxlhTable from '@/components/HxlhTable'
+import {
+ listPlan,
+ examplePlan,
+ confirmPart,
+ addPlan,
+ updatePlan,
+} from "@/api/partPlan/plan";
+import HxlhTable from "@/components/HxlhTable";
import { getToken } from "@/utils/auth";
import { ref } from "vue";
-import { ElMessage } from 'element-plus'
+import { ElMessage } from "element-plus";
const { proxy } = getCurrentInstance();
-
+import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+const { t, locale } = useI18n();
const exampleList = ref([]);
const planList = ref([]);
const loading = ref(true);
@@ -243,7 +312,7 @@
const total = ref(0);
const daterangePlanStartDay = ref([]);
const daterangePlanEndDay = ref([]);
-const height = ref(document.documentElement.clientHeight - 270 + "px;")
+const height = ref(document.documentElement.clientHeight - 270 + "px;");
const isVisible = ref(false);
const isError = ref(false);
const planned = ref(true);
@@ -264,396 +333,404 @@
// 璁剧疆涓婁紶鐨勮姹傚ご閮�
headers: { Authorization: "Bearer " + getToken() },
// 涓婁紶鐨勫湴鍧�
- url: import.meta.env.VITE_APP_BASE_API + "/aps/partPlan/importData"
+ url: import.meta.env.VITE_APP_BASE_API + "/aps/partPlan/importData",
});
-// 琛ㄦ牸閰嶇疆
-const exampleColumns = ref([
- { type: 'seq', title: '搴忓彿', width: 60 },
- {
- title: '涓昏鍒掑憳',
- field: 'masterPlanner',
- width: 100,
- },
- {
- title: '鍛ㄦ棩',
- field: 'weekDay',
- width: 100,
- formatter: (({ cellValue, row, column }) => {
- if (cellValue) {
- const weekDay = new Date(cellValue);
- const year = weekDay.getFullYear();
- const month = String(weekDay.getMonth() + 1).padStart(2, '0');
- const day = String(weekDay.getDate()).padStart(2, '0');
- return `${month}-${day}`;
- }
- return '';
- })
- },
- {
- title: '鍛ㄥ害',
- field: 'weekCycle',
- width: 80,
- },
- {
- title: '涓讳欢鏂欏彿',
- field: 'mainPartNumber',
- width: 150,
- },
- {
- title: '涓讳欢鍥惧彿',
- field: 'mainPartDrawingNumber',
- width: 150,
- },
- {
- title: '瀹㈡埛鍚嶇О',
- field: 'customer',
- width: 200,
- },
- {
- title: '涓氬姟绫诲瀷',
- field: 'businessType',
- width: 150,
- },
- {
- title: '鍗曟嵁鍙�',
- field: 'documentNumber',
- width: 150,
- },
- {
- title: '闇�姹傚垎绫�',
- field: 'requirementType',
- width: 150,
- },
- {
- title: '鍗曟嵁鐘舵��',
- field: 'documentStatus',
- width: 100,
- },
- {
- title: '鏂欏彿',
- field: 'itemNumber',
- width: 150,
- },
- {
- title: '鍥惧彿',
- field: 'drawingNo',
- width: 150,
- },
- {
- title: '鐗堟湰鍙�',
- field: 'versionNumber',
- width: 100,
- },
- {
- title: '鐢熶骇鏁伴噺',
- field: 'productionQuantity',
- width: 100,
- },
- {
- title: '鑹搧鏁伴噺',
- field: 'goodProductsQuantity',
- width: 100,
- },
- {
- title: '宸ュ簭鍙�',
- field: 'processNumber',
- width: 150,
- },
- {
- title: '宸ヤ綔涓績',
- field: 'workCenter',
- width: 150,
- },
- {
- title: '鎵�灞為儴闂�',
- field: 'department',
- width: 100,
- },
- {
- title: '璁″垝寮�宸ユ棩',
- field: 'planStartDay',
- width: 100,
- },
- {
- title: '璁″垝瀹屽伐鏃�',
- field: 'planEndDay',
- width: 100,
- },
- {
- title: '澶囨枡鏂欏彿',
- field: 'standbyNumber',
- width: 100,
- },
- {
- title: '澶囨枡鍚嶇О',
- field: 'standbyName',
- width: 200,
- },
- {
- title: '澶囨枡搴撳瓨',
- field: 'standbyStock',
- width: 100,
- },
- {
- title: '涓嬮亾宸ュ簭鎵�灞為儴闂�',
- field: 'nextProcessDeparment',
- width: 150,
- },
- {
- title: '鏄惁鎸傝捣',
- field: 'isSuspended',
- width: 100,
- },
- {
- title: '澶栧崗鏍囪瘑',
- field: 'isOutsourcing',
- width: 100,
- },
- {
- title: '璐﹀',
- field: 'account',
- width: 100,
- },
- // {
- // title: '涓婇樁鐗╂枡',
- // field: 'advancedMaterials',
- // width: 100,
- // },
- // {
- // title: '涓婇樁鍗曟嵁鍙�',
- // field: 'advancedDocumentNumber',
- // width: 100,
- // },
- // {
- // title: '涓婇樁闇�姹傛棩鏈�',
- // field: 'advancedRequirementDay',
- // width: 150,
- // },
- // {
- // title: '璁″垝榻愬',
- // field: 'isPlanComplete',
- // width: 100,
- // },
- // {
- // title: '搴撳瓨榻愬',
- // field: 'isStockComplete',
- // width: 100,
- // },
- // {
- // title: '鏄惁鏈夋姌杩斿伐搴�',
- // field: 'hasTurnback',
- // width: 150,
- // },
- // {
- // title: '椋庨櫓鏍囪瘑',
- // field: 'hasRisk',
- // width: 100,
- // },
-]);
+// 琛ㄦ牸閰嶇疆
+const exampleColumns = ref([]);
-// 琛ㄦ牸閰嶇疆
-const columns = ref([
- { type: 'checkbox', width: 60, align:"center"},
- { type: 'seq', title: '搴忓彿', width: 60 },
- {
- title: '涓昏鍒掑憳',
- field: 'masterPlanner',
- width: 100,
- },
- {
- title: '鍛ㄦ棩',
- field: 'weekDay',
- width: 100,
- formatter: (({ cellValue, row, column }) => {
- if (cellValue) {
- const weekDay = new Date(cellValue);
- const year = weekDay.getFullYear();
- const month = String(weekDay.getMonth() + 1).padStart(2, '0');
- const day = String(weekDay.getDate()).padStart(2, '0');
- return `${month}-${day}`;
- }
- return '';
- })
- },
- {
- title: '鍛ㄥ害',
- field: 'weekCycle',
- width: 80,
- },
- {
- title: '涓讳欢鏂欏彿',
- field: 'mainPartNumber',
- width: 150,
- },
- {
- title: '涓讳欢鍥惧彿',
- field: 'mainPartDrawingNumber',
- width: 150,
- },
- {
- title: '瀹㈡埛鍚嶇О',
- field: 'customer',
- width: 200,
- },
- {
- title: '涓氬姟绫诲瀷',
- field: 'businessType',
- width: 150,
- },
- {
- title: '鍗曟嵁鍙�',
- field: 'documentNumber',
- width: 150,
- },
- {
- title: '闇�姹傚垎绫�',
- field: 'requirementType',
- width: 150,
- },
- {
- title: '鍗曟嵁鐘舵��',
- field: 'documentStatus',
- width: 100,
- },
- {
- title: '鏂欏彿',
- field: 'itemNumber',
- width: 150,
- },
- {
- title: '鍥惧彿',
- field: 'drawingNo',
- width: 150,
- },
- {
- title: '鐗堟湰鍙�',
- field: 'versionNumber',
- width: 100,
- },
- {
- title: '鐢熶骇鏁伴噺',
- field: 'productionQuantity',
- width: 100,
- },
- {
- title: '鑹搧鏁伴噺',
- field: 'goodProductsQuantity',
- width: 100,
- },
- {
- title: '宸ュ簭鍙�',
- field: 'processNumber',
- width: 150,
- },
- {
- title: '宸ヤ綔涓績',
- field: 'workCenter',
- width: 150,
- },
- {
- title: '鎵�灞為儴闂�',
- field: 'department',
- width: 100,
- },
- {
- title: '璁″垝寮�宸ユ棩',
- field: 'planStartDay',
- width: 100,
- },
- {
- title: '璁″垝瀹屽伐鏃�',
- field: 'planEndDay',
- width: 100,
- },
- {
- title: '澶囨枡鏂欏彿',
- field: 'standbyNumber',
- width: 100,
- },
- {
- title: '澶囨枡鍚嶇О',
- field: 'standbyName',
- width: 200,
- },
- {
- title: '澶囨枡搴撳瓨',
- field: 'standbyStock',
- width: 100,
- },
- {
- title: '涓嬮亾宸ュ簭鎵�灞為儴闂�',
- field: 'nextProcessDeparment',
- width: 150,
- },
- {
- title: '鏄惁鎸傝捣',
- field: 'isSuspended',
- width: 100,
- },
- {
- title: '澶栧崗鏍囪瘑',
- field: 'isOutsourcing',
- width: 100,
- },
- {
- title: '璐﹀',
- field: 'account',
- width: 100,
- },
- // {
- // title: '涓婇樁鐗╂枡',
- // field: 'advancedMaterials',
- // width: 100,
- // },
- // {
- // title: '涓婇樁鍗曟嵁鍙�',
- // field: 'advancedDocumentNumber',
- // width: 100,
- // },
- // {
- // title: '涓婇樁闇�姹傛棩鏈�',
- // field: 'advancedRequirementDay',
- // width: 150,
- // },
- // {
- // title: '璁″垝榻愬',
- // field: 'isPlanComplete',
- // width: 100,
- // },
- // {
- // title: '搴撳瓨榻愬',
- // field: 'isStockComplete',
- // width: 100,
- // },
- // {
- // title: '鏄惁鏈夋姌杩斿伐搴�',
- // field: 'hasTurnback',
- // width: 150,
- // },
- // {
- // title: '椋庨櫓鏍囪瘑',
- // field: 'hasRisk',
- // width: 100,
- // },
-]);
+// 琛ㄦ牸閰嶇疆
+const columns = ref([]);
const data = reactive({
queryParams: {
documentNumber: null,
customer: null,
batchNumber: null,
- }
+ },
});
const { queryParams } = toRefs(data);
-
+watch(
+ locale,
+ (newLocale) => {
+ columns.value = [
+ { type: "checkbox", width: 60, align: "center" },
+ { type: "seq", title: t("plan.table.seq"), width: 60 },
+ {
+ title: t("plan.table.masterPlanner"),
+ field: "masterPlanner",
+ width: 100,
+ },
+ {
+ title: t("plan.table.weekDay"),
+ field: "weekDay",
+ width: 100,
+ formatter: ({ cellValue, row, column }) => {
+ if (cellValue) {
+ const weekDay = new Date(cellValue);
+ const year = weekDay.getFullYear();
+ const month = String(weekDay.getMonth() + 1).padStart(2, "0");
+ const day = String(weekDay.getDate()).padStart(2, "0");
+ return `${month}-${day}`;
+ }
+ return "";
+ },
+ },
+ {
+ title: t("plan.table.weekCycle"),
+ field: "weekCycle",
+ width: 80,
+ },
+ {
+ title: t("plan.table.mainPartNumber"),
+ field: "mainPartNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.mainPartDrawingNumber"),
+ field: "mainPartDrawingNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.customer"),
+ field: "customer",
+ width: 200,
+ },
+ {
+ title: t("plan.table.businessType"),
+ field: "businessType",
+ width: 150,
+ },
+ {
+ title: t("plan.table.documentNumber"),
+ field: "documentNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.requirementType"),
+ field: "requirementType",
+ width: 150,
+ },
+ {
+ title: t("plan.table.documentStatus"),
+ field: "documentStatus",
+ width: 100,
+ },
+ {
+ title: t("plan.table.itemNumber"),
+ field: "itemNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.drawingNo"),
+ field: "drawingNo",
+ width: 150,
+ },
+ {
+ title: t("plan.table.versionNumber"),
+ field: "versionNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.productionQuantity"),
+ field: "productionQuantity",
+ width: 100,
+ },
+ {
+ title: t("plan.table.goodProductsQuantity"),
+ field: "goodProductsQuantity",
+ width: 100,
+ },
+ {
+ title: t("plan.table.processNumber"),
+ field: "processNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.factoryCenter"),
+ field: "workCenter",
+ width: 150,
+ },
+ {
+ title: t("plan.table.dependencyDepartment"),
+ field: "department",
+ width: 100,
+ },
+ {
+ title: t("plan.table.planStartDay"),
+ field: "planStartDay",
+ width: 100,
+ },
+ {
+ title: t("plan.table.planEndDayDate"),
+ field: "planEndDay",
+ width: 100,
+ },
+ {
+ title: t("plan.table.standbyNumber"),
+ field: "standbyNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.standbyName"),
+ field: "standbyName",
+ width: 200,
+ },
+ {
+ title: t("plan.table.standbyStock"),
+ field: "standbyStock",
+ width: 100,
+ },
+ {
+ title: t("plan.table.departmentToNextProcessBelongs"),
+ field: "nextProcessDeparment",
+ width: 150,
+ },
+ {
+ title: t("plan.table.isSuspended"),
+ field: "isSuspended",
+ width: 100,
+ },
+ {
+ title: t("plan.table.isOutsourcing"),
+ field: "isOutsourcing",
+ width: 100,
+ },
+ {
+ title: t("plan.table.account"),
+ field: "account",
+ width: 100,
+ },
+ // {
+ // title: '涓婇樁鐗╂枡',
+ // field: 'advancedMaterials',
+ // width: 100,
+ // },
+ // {
+ // title: '涓婇樁鍗曟嵁鍙�',
+ // field: 'advancedDocumentNumber',
+ // width: 100,
+ // },
+ // {
+ // title: '涓婇樁闇�姹傛棩鏈�',
+ // field: 'advancedRequirementDay',
+ // width: 150,
+ // },
+ // {
+ // title: '璁″垝榻愬',
+ // field: 'isPlanComplete',
+ // width: 100,
+ // },
+ // {
+ // title: '搴撳瓨榻愬',
+ // field: 'isStockComplete',
+ // width: 100,
+ // },
+ // {
+ // title: '鏄惁鏈夋姌杩斿伐搴�',
+ // field: 'hasTurnback',
+ // width: 150,
+ // },
+ // {
+ // title: '椋庨櫓鏍囪瘑',
+ // field: 'hasRisk',
+ // width: 100,
+ // },
+ ];
+ exampleColumns.value = [
+ { type: "seq", title: t("plan.table.seq"), width: 60 },
+ {
+ title: t("plan.table.masterPlanner"),
+ field: "masterPlanner",
+ width: 100,
+ },
+ {
+ title: t("plan.table.weekDay"),
+ field: "weekDay",
+ width: 100,
+ formatter: ({ cellValue, row, column }) => {
+ if (cellValue) {
+ const weekDay = new Date(cellValue);
+ const year = weekDay.getFullYear();
+ const month = String(weekDay.getMonth() + 1).padStart(2, "0");
+ const day = String(weekDay.getDate()).padStart(2, "0");
+ return `${month}-${day}`;
+ }
+ return "";
+ },
+ },
+ {
+ title: t("plan.table.weekCycle"),
+ field: "weekCycle",
+ width: 80,
+ },
+ {
+ title: t("plan.table.mainPartNumber"),
+ field: "mainPartNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.mainPartDrawingNumber"),
+ field: "mainPartDrawingNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.customer"),
+ field: "customer",
+ width: 200,
+ },
+ {
+ title: t("plan.table.businessType"),
+ field: "businessType",
+ width: 150,
+ },
+ {
+ title: t("plan.table.documentNumber"),
+ field: "documentNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.requirementType"),
+ field: "requirementType",
+ width: 150,
+ },
+ {
+ title: t("plan.table.documentStatus"),
+ field: "documentStatus",
+ width: 100,
+ },
+ {
+ title: t("plan.table.itemNumber"),
+ field: "itemNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.drawingNo"),
+ field: "drawingNo",
+ width: 150,
+ },
+ {
+ title: t("plan.table.versionNumber"),
+ field: "versionNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.productionQuantity"),
+ field: "productionQuantity",
+ width: 100,
+ },
+ {
+ title: t("plan.table.goodProductsQuantity"),
+ field: "goodProductsQuantity",
+ width: 100,
+ },
+ {
+ title: t("plan.table.processNumber"),
+ field: "processNumber",
+ width: 150,
+ },
+ {
+ title: t("plan.table.factoryCenter"),
+ field: "workCenter",
+ width: 150,
+ },
+ {
+ title: t("plan.table.dependencyDepartment"),
+ field: "department",
+ width: 100,
+ },
+ {
+ title: t("plan.table.planStartDay"),
+ field: "planStartDay",
+ width: 100,
+ },
+ {
+ title: t("plan.table.planEndDayDate"),
+ field: "planEndDay",
+ width: 100,
+ },
+ {
+ title: t("plan.table.standbyNumber"),
+ field: "standbyNumber",
+ width: 100,
+ },
+ {
+ title: t("plan.table.standbyName"),
+ field: "standbyName",
+ width: 200,
+ },
+ {
+ title: t("plan.table.standbyStock"),
+ field: "standbyStock",
+ width: 100,
+ },
+ {
+ title: t("plan.table.departmentToNextProcessBelongs"),
+ field: "nextProcessDeparment",
+ width: 150,
+ },
+ {
+ title: t("plan.table.isSuspended"),
+ field: "isSuspended",
+ width: 100,
+ },
+ {
+ title: t("plan.table.isOutsourcing"),
+ field: "isOutsourcing",
+ width: 100,
+ },
+ {
+ title: t("plan.table.account"),
+ field: "account",
+ width: 100,
+ },
+ // {
+ // title: '涓婇樁鐗╂枡',
+ // field: 'advancedMaterials',
+ // width: 100,
+ // },
+ // {
+ // title: '涓婇樁鍗曟嵁鍙�',
+ // field: 'advancedDocumentNumber',
+ // width: 100,
+ // },
+ // {
+ // title: '涓婇樁闇�姹傛棩鏈�',
+ // field: 'advancedRequirementDay',
+ // width: 150,
+ // },
+ // {
+ // title: '璁″垝榻愬',
+ // field: 'isPlanComplete',
+ // width: 100,
+ // },
+ // {
+ // title: '搴撳瓨榻愬',
+ // field: 'isStockComplete',
+ // width: 100,
+ // },
+ // {
+ // title: '鏄惁鏈夋姌杩斿伐搴�',
+ // field: 'hasTurnback',
+ // width: 150,
+ // },
+ // {
+ // title: '椋庨櫓鏍囪瘑',
+ // field: 'hasRisk',
+ // width: 100,
+ // },
+ ];
+ getList();
+ },
+ { immediate: true, deep: true }
+);
/** 鏌ヨ闆朵欢璁″垝涓存椂绠$悊鍒楄〃 */
function getExampleList() {
loading.value = true;
queryParams.value = {};
queryParams.value.batchNumber = batchNumber.value;
- examplePlan(queryParams.value).then(response => {
+ examplePlan(queryParams.value).then((response) => {
exampleList.value = response.rows;
total.value = response.total;
loading.value = false;
@@ -664,15 +741,17 @@
function getList() {
loading.value = true;
queryParams.value.params = {};
- if (null != daterangePlanStartDay && '' != daterangePlanStartDay) {
- queryParams.value.params["beginPlanStartDay"] = daterangePlanStartDay.value[0];
- queryParams.value.params["endPlanStartDay"] = daterangePlanStartDay.value[1];
+ if (null != daterangePlanStartDay && "" != daterangePlanStartDay) {
+ queryParams.value.params["beginPlanStartDay"] =
+ daterangePlanStartDay.value[0];
+ queryParams.value.params["endPlanStartDay"] =
+ daterangePlanStartDay.value[1];
}
- if (null != daterangePlanEndDay && '' != daterangePlanEndDay) {
+ if (null != daterangePlanEndDay && "" != daterangePlanEndDay) {
queryParams.value.params["beginPlanEndDay"] = daterangePlanEndDay.value[0];
queryParams.value.params["endPlanEndDay"] = daterangePlanEndDay.value[1];
}
- listPlan(queryParams.value).then(response => {
+ listPlan(queryParams.value).then((response) => {
planList.value = response.rows;
loading.value = false;
});
@@ -680,7 +759,7 @@
/** 鎼滅储鎸夐挳鎿嶄綔 */
function handleQuery() {
- queryParams.value.pageNum = 1;
+ queryParams.value.planNum = 1;
getList();
}
@@ -698,38 +777,41 @@
};
/** 鎵归噺淇敼璁″垝寮�宸ユ棩鎸夐挳鎿嶄綔 */
-function plannedStart() {
-
-}
+function plannedStart() {}
/** 鎵归噺淇敼璁″垝瀹屽伐鏃ユ寜閽搷浣� */
-function plannedEnd() {
-
-}
+function plannedEnd() {}
/** 瀵煎叆鎸夐挳鎿嶄綔 */
function handleImport() {
- upload.title = "闆朵欢宸ュ崟鏁版嵁涓婁紶";
+ upload.title = t("plan.upload.uploadPartWorkOrderData");
upload.open = true;
-};
+}
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
function handleExport() {
- proxy.download('aps/partPlan/export', {
- ...queryParams.value
- }, `plan_${new Date().getTime()}.xlsx`)
+ proxy.download(
+ "aps/partPlan/export",
+ {
+ ...queryParams.value,
+ },
+ `plan_${new Date().getTime()}.xlsx`
+ );
}
/** 涓嬭浇妯℃澘鎿嶄綔 */
function importTemplate() {
- proxy.download("system/user/importTemplate", {
- }, `user_template_${new Date().getTime()}.xlsx`);
-};
+ proxy.download(
+ "system/user/importTemplate",
+ {},
+ `user_template_${new Date().getTime()}.xlsx`
+ );
+}
/** buildEexample */
function buildEexample() {
proxy.$refs["uploadRef"].submit();
-};
+}
/**鏂囦欢涓婁紶涓鐞� */
const handleFileUploadProgress = (event, file, fileList) => {
@@ -738,15 +820,24 @@
/** 鏂囦欢涓婁紶鎴愬姛澶勭悊 */
const handleFileSuccess = (response, file, fileList) => {
- if(response.code == '200'){
+ if (response.code == "200") {
batchNumber.value = response.data;
isVisible.value = true;
planned.value = false;
isError.value = false;
getExampleList();
- }else{
+ } else {
isError.value = true;
- proxy.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "瀵煎叆缁撴灉", { dangerouslyUseHTMLString: true });
+ proxy.$alert(
+ "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
+ response.msg +
+ "</div>",
+ t("plan.upload.errorResult"),
+ { dangerouslyUseHTMLString: true,
+ confirmButtonText: t("plan.btns.confirm"),
+ cancelButtonText: t("plan.btns.cancel"),
+ }
+ );
}
proxy.$refs["uploadRef"].handleRemove(file);
upload.isUploading = false;
@@ -756,7 +847,7 @@
function uploadParse() {
queryParams.value.params = {};
queryParams.value.params["batchNumber"] = batchNumber.value;
- confirmPart(queryParams.value).then(response => {
+ confirmPart(queryParams.value).then((response) => {
exampleList.value = response.rows;
loading.value = false;
isVisible.value = false;
@@ -764,15 +855,15 @@
planned.value = true;
upload.open = false;
ElMessage({
- message: '闆朵欢宸ュ崟鏁版嵁宸叉垚鍔熶笂浼犲拰瑙f瀽',
- type: 'success',
- })
+ message: t("plan.upload.uploadParsePartWorkOrderData"),
+ type: "success",
+ });
getList();
});
}
/** dialog鍙栨秷 */
-function dialogCancel(){
+function dialogCancel() {
if (uploadRef.value) {
uploadRef.value.clearFiles();
}
@@ -783,10 +874,10 @@
upload.isUploading = false;
}
-getList();
+// getList();
</script>
<style lang="css" scoped>
h4 {
font-weight: bold;
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.9.3