| | |
| | | # é
åå端æå¡ |
| | | # VITE_APP_LOCAL = 'int' |
| | | # VITE_APP_LOCAL = 'zhl' |
| | | VITE_APP_LOCAL = 'hjy' |
| | | VITE_APP_LOCAL = 'int' |
| | |
| | | <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('page.common.hideSearch') : $t('page.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('page.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"> |
| | |
| | | <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> |
| | |
| | | </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) { |
| | |
| | | } |
| | | |
| | | function logout() { |
| | | ElMessageBox.confirm('ç¡®å®æ³¨éå¹¶éåºç³»ç»åï¼', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | userStore.logOut().then(() => { |
| | | location.href = '/index'; |
| | | ElMessageBox.confirm("ç¡®å®æ³¨éå¹¶éåºç³»ç»åï¼", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | }).catch(() => { }); |
| | | .then(() => { |
| | | userStore.logOut().then(() => { |
| | | location.href = "/index"; |
| | | }); |
| | | }) |
| | | .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; |
| | |
| | | height: 100%; |
| | | line-height: 50px; |
| | | display: flex; |
| | | |
| | | .mt5{ |
| | | margin-top:5px; |
| | | } |
| | | &:focus { |
| | | outline: none; |
| | | } |
| | |
| | | import VxeUITable from 'vxe-table' |
| | | import 'vxe-table/lib/style.css' |
| | | import i18n from '@/utils/i18n' // å¼å
¥ i18n é
ç½®æä»¶ |
| | | |
| | | const app = createApp(App) |
| | | |
| | | // å
¨å±æ¹æ³æè½½ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | const useLanguageStore = defineStore("language", { |
| | | state: () => ({ |
| | | locale: "zh", |
| | | }), |
| | | actions: { |
| | | setLocale(locale) { |
| | | this.locale = locale; // 设置è¯è¨å¹¶æ´æ°ç¶æ |
| | | console.log(this.locale,"this.localethis.locale") |
| | | } |
| | | }, |
| | | }); |
| | | |
| | | export default useLanguageStore; |
| | |
| | | { |
| | | "topNav":{ |
| | | "center":"" |
| | | "center": "Personal Center", |
| | | "logout": "Logout" |
| | | }, |
| | | "page": { |
| | | "common": { |
| | | "import":"Import", |
| | | "export": "Export", |
| | | "update": "Update", |
| | | "query": "Query", |
| | | "reset": "Reset", |
| | | "hideSearch":"Hide Search", |
| | | "showSearch":"Display search", |
| | | "refresh":"Refresh", |
| | | "column": "Explicit implicit column" |
| | | }, |
| | | "placeholder":{ |
| | | "startDate":"Start date", |
| | | "endDate":"End date", |
| | | "documentNumber":"Please enter the document number", |
| | | "customer":"Please enter the customer name" |
| | | }, |
| | | "btns":{ |
| | | "batchPlanStartDay":"Batch modification of planned start date", |
| | | "batchPlanEndDay":"Batch modification plan completion date" |
| | | }, |
| | | "query":{ |
| | | "daterangePlanStartDay":"Planned start date", |
| | | "daterangePlanEndDay":"Planned completion date", |
| | | "documentNumber":"Document number", |
| | | "customer":"Customer Name" |
| | | }, |
| | | "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":"夿åºå", |
| | | "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" |
| | | } |
| | | } |
| | | } |
| | |
| | | "topNav":{ |
| | | "center":"个人ä¸å¿", |
| | | "logout":"éåºç»å½" |
| | | }, |
| | | "page":{ |
| | | "common":{ |
| | | "import":"导å
¥", |
| | | "export":"导åº", |
| | | "update":"æ´æ°", |
| | | "query":"æ¥è¯¢", |
| | | "reset":"éç½®", |
| | | "hideSearch":"éèæç´¢", |
| | | "showSearch":"æ¾ç¤ºæç´¢", |
| | | "refresh":"å·æ°", |
| | | "column": "æ¾éå" |
| | | }, |
| | | "placeholder":{ |
| | | "startDate":"å¼å§æ¥æ", |
| | | "endDate":"ç»ææ¥æ", |
| | | "documentNumber":"请è¾å
¥åæ®å·", |
| | | "customer":"请è¾å
¥å®¢æ·åç§°" |
| | | }, |
| | | "btns":{ |
| | | "batchPlanStartDay":"æ¹éä¿®æ¹è®¡åå¼å·¥æ¥", |
| | | "batchPlanEndDay":"æ¹éä¿®æ¹è®¡åå®å·¥æ¥" |
| | | }, |
| | | "query":{ |
| | | "daterangePlanStartDay":"计åå¼å·¥æ¥", |
| | | "daterangePlanEndDay":"计åå®å·¥æ¥", |
| | | "documentNumber":"åæ®å·", |
| | | "customer":"客æ·åç§°" |
| | | }, |
| | | "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":"éææ¥æ" |
| | | } |
| | | } |
| | | } |
| | |
| | | <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('page.query.daterangePlanStartDay')"> |
| | | <el-date-picker |
| | | style="width: 240px;" |
| | | v-model="daterangePlanStartDay" |
| | | value-format="YYYY-MM-DD" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | :start-placeholder="$t('page.placeholder.startDate')" |
| | | :end-placeholder="$t('page.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('page.query.daterangePlanEndDay')"> |
| | | <el-date-picker |
| | | style="width: 240px;" |
| | | v-model="daterangePlanEndDay" |
| | | value-format="YYYY-MM-DD" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | :start-placeholder="$t('page.placeholder.startDate')" |
| | | :end-placeholder="$t('page.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('page.query.documentNumber')" prop="documentNumber" > |
| | | <el-input |
| | | style="width: 240px;" |
| | | v-model="queryParams.documentNumber" |
| | | placeholder="请è¾å
¥åæ®å·" |
| | | :placeholder="$t('page.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('page.query.customer')" prop="customer"> |
| | | <el-input |
| | | style="width: 240px;" |
| | | v-model="queryParams.customer" |
| | | placeholder="请è¾å
¥å®¢æ·åç§°" |
| | | :placeholder="$t('page.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("page.common.query")}}</el-button> |
| | | <el-button icon="Refresh" @click="resetQuery">{{$t("page.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 |
| | |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['apsPlatePlan:edit']" |
| | | >æ¹éä¿®æ¹è®¡åå¼å·¥æ¥</el-button> |
| | | >{{$t("page.btns.batchPlanStartDay")}}</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['apsPlatePlan:edit']" |
| | | >æ¹éä¿®æ¹è®¡åå®å·¥æ¥</el-button> |
| | | >{{$t("page.btns.batchPlanEndDay")}}</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | icon="Upload" |
| | | @click="handleImport" |
| | | v-hasPermi="['apsPlatePlan:import']" |
| | | >导å
¥</el-button> |
| | | >{{$t("page.common.import")}}</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | icon="Download" |
| | | @click="handleExport" |
| | | v-hasPermi="['apsPlatePlan:export']" |
| | | >导åº</el-button> |
| | | >{{$t("page.common.export")}}</el-button> |
| | | </el-col> |
| | | <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | |
| | | import { ref } from "vue"; |
| | | import { getToken } from "@/utils/auth.js"; |
| | | import {ElMessage} from "element-plus"; |
| | | |
| | | import { useI18n } from "vue-i18n"; //è¦å¨jsä¸ä½¿ç¨å½é
å |
| | | const { proxy } = getCurrentInstance(); |
| | | |
| | | 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); |
| | |
| | | // ä¸ä¼ çå°å |
| | | url: import.meta.env.VITE_APP_BASE_API + "/aps/apsPlatePlan/importData" |
| | | }); |
| | | const data = reactive({ |
| | | form: {}, |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | customer: null, |
| | | documentNumber: null |
| | | }, |
| | | rules: { |
| | | id: [ |
| | | { required: true, message: "主é®idä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | } |
| | | }); |
| | | |
| | | const { queryParams } = toRefs(data); |
| | | const exampleColumns = ref([]); |
| | | const columns = ref([]); |
| | | const subGridOptions = ref({ |
| | | border: true, |
| | | showOverflow: true, |
| | | columns: [] |
| | | }) |
| | | |
| | | watch(locale, (newLocale) => { |
| | | // éæ°è·åç¿»è¯ææ¬ |
| | | // è¡¨æ ¼é
ç½® |
| | | const exampleColumns = ref([ |
| | | { type: 'seq', title: 'åºå·', width: 60 }, |
| | | exampleColumns.value = [ |
| | | { type: 'seq', title: t('page.table.seq'), width: 60 }, |
| | | { |
| | | title: '主计åå', |
| | | title: t('page.table.masterPlanner'), |
| | | field: 'masterPlanner', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: '卿¥', |
| | | title: t('page.table.weekDay'), |
| | | field: 'weekDay', |
| | | width: 100, |
| | | formatter: (({ cellValue, row, column }) => { |
| | |
| | | }) |
| | | }, |
| | | { |
| | | title: 'å¨åº¦', |
| | | title: t('page.table.weekCycle'), |
| | | field: 'weekCycle', |
| | | width: 80, |
| | | }, |
| | | { |
| | | title: '主件æå·', |
| | | title: t('page.table.mainPartNumber'), |
| | | field: 'mainPartNumber', |
| | | width: 150, |
| | | }, |
| | | { |
| | | title: '主件å¾å·', |
| | | title: t('page.table.mainPartDrawingNumber'), |
| | | field: 'mainPartDrawingNumber', |
| | | width: 150, |
| | | }, |
| | | { |
| | | title: '客æ·åç§°', |
| | | title: t('page.table.customer'), |
| | | field: 'customer', |
| | | width: 200, |
| | | }, |
| | | { |
| | | title: 'ä¸å¡ç±»å', |
| | | title: t('page.table.businessType'), |
| | | field: 'businessType', |
| | | width: 150, |
| | | }, |
| | | { |
| | | title: 'åæ®å·', |
| | | title: t('page.table.documentNumber'), |
| | | field: 'documentNumber', |
| | | width: 150, |
| | | }, |
| | | { |
| | | title: 'éæ±åç±»', |
| | | title: t('page.table.requirementType'), |
| | | field: 'requirementType', |
| | | width: 150, |
| | | }, |
| | | { |
| | | title: 'åæ®ç¶æ', |
| | | title: t('page.table.documentStatus'), |
| | | field: 'documentStatus', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: 'æå·', |
| | | title: t('page.table.itemNumber'), |
| | | field: 'itemNumber', |
| | | width: 150, |
| | | }, |
| | | { |
| | | title: 'å¾å·', |
| | | title: t('page.table.drawingNo'), |
| | | field: 'drawingNo', |
| | | width: 150, |
| | | }, |
| | | { |
| | | title: 'çæ¬å·', |
| | | title: t('page.table.versionNumber'), |
| | | field: 'versionNumber', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: 'ç产æ°é', |
| | | title: t('page.table.productionQuantity'), |
| | | field: 'productionQuantity', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: 'è¯åæ°é', |
| | | title: t('page.table.goodProductsQuantity'), |
| | | field: 'goodProductsQuantity', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: 'å·¥åºå·', |
| | | title: t('page.table.processNumber'), |
| | | field: 'processNumber', |
| | | width: 150, |
| | | }, |
| | | { |
| | | title: 'å·¥ä½ä¸å¿', |
| | | title: t('page.table.factoryCenter'), |
| | | field: 'workCenter', |
| | | width: 150, |
| | | }, |
| | | { |
| | | title: 'æå±é¨é¨', |
| | | title: t('page.table.dependencyDepartment'), |
| | | field: 'department', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: '计åå¼å·¥æ¥', |
| | | title: t('page.table.planStartDay'), |
| | | field: 'planStartDay', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: '计åå®å·¥æ¥', |
| | | title: t('page.table.planEndDayDate'), |
| | | field: 'planEndDay', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: '夿æå·', |
| | | title: t('page.table.standbyNumber'), |
| | | field: 'standbyNumber', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: '夿åç§°', |
| | | title: t('page.table.standbyName'), |
| | | field: 'standbyName', |
| | | width: 200, |
| | | }, |
| | | { |
| | | title: '夿åºå', |
| | | title: t('page.table.standbyStock'), |
| | | field: 'standbyStock', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: 'ä¸éå·¥åºæå±é¨é¨', |
| | | title: t('page.table.departmentToNextProcessBelongs'), |
| | | field: 'nextProcessDeparment', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: 'æ¯å¦æèµ·', |
| | | title: t('page.table.isSuspended'), |
| | | field: 'isSuspended', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: 'å¤åæ è¯', |
| | | title: t('page.table.isOutsourcing'), |
| | | field: 'isOutsourcing', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: 'è´¦å¥', |
| | | title: t('page.table.account'), |
| | | field: 'account', |
| | | width: 100, |
| | | }, |
| | |
| | | // field: 'hasRisk', |
| | | // width: 100, |
| | | // }, |
| | | ]); |
| | | |
| | | ]; |
| | | // è¡¨æ ¼é
ç½® |
| | | const columns = ref([ |
| | | columns.value = [ |
| | | { field: 'expand', type: 'expand', width: 60, align: 'center', slots: { content: 'expandContent' } }, |
| | | { type: 'checkbox', width: 60, align:"center"}, |
| | | { type: 'seq', title: 'åºå·', width: 60 }, |
| | | { type: 'seq', title: t('page.table.seq'), width: 60 }, |
| | | // { |
| | | // title: '主计åå', |
| | | // field: 'masterPlanner', |
| | |
| | | // width: 80, |
| | | // }, |
| | | { |
| | | title: '主件æå·', |
| | | title: t('page.table.mainPartNumber'), |
| | | field: 'mainPartNumber', |
| | | width: 150, |
| | | }, |
| | |
| | | // width: 200, |
| | | // }, |
| | | { |
| | | title: 'ä¸å¡ç±»å', |
| | | title: t('page.table.businessType'), |
| | | field: 'businessType', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: 'åæ®å·', |
| | | title: t('page.table.documentNumber'), |
| | | field: 'documentNumber', |
| | | width: 140, |
| | | }, |
| | | { |
| | | title: 'éæ±åç±»', |
| | | title: t('page.table.requirementType'), |
| | | field: 'requirementType', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: 'åæ®ç¶æ', |
| | | title: t('page.table.documentStatus'), |
| | | field: 'documentStatus', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: 'æå·', |
| | | title: t('page.table.itemNumber'), |
| | | field: 'itemNumber', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: 'å¾å·', |
| | | title: t('page.table.drawingNo'), |
| | | field: 'drawingNo', |
| | | width: 100, |
| | | }, |
| | |
| | | // width: 100, |
| | | // }, |
| | | { |
| | | title: 'ç产æ°é', |
| | | title: t('page.table.productionQuantity'), |
| | | field: 'productionQuantity', |
| | | width: 100, |
| | | }, |
| | |
| | | // width: 100, |
| | | // }, |
| | | { |
| | | title: 'å·¥åºå·', |
| | | title: t('page.table.processNumber'), |
| | | field: 'processNumber', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: 'å·¥ä½ä¸å¿', |
| | | title: t('page.table.factoryCenter'), |
| | | field: 'workCenter', |
| | | width: 180, |
| | | }, |
| | |
| | | // width: 100, |
| | | // }, |
| | | { |
| | | title: '计åå®å·¥æ¥', |
| | | title: t('page.table.planEndDayDate'), |
| | | field: 'planEndDay', |
| | | width: 100, |
| | | }, |
| | |
| | | // field: 'hasRisk', |
| | | // width: 100, |
| | | // }, |
| | | ]); |
| | | |
| | | |
| | | const data = reactive({ |
| | | form: {}, |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | customer: null, |
| | | documentNumber: null |
| | | ]; |
| | | subGridOptions.value.columns = [ |
| | | { |
| | | title: t('page.table.itemNumber'), |
| | | field: 'itemNo', |
| | | width: 150, |
| | | align:"center", |
| | | }, |
| | | rules: { |
| | | id: [ |
| | | { required: true, message: "主é®idä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | { |
| | | title: t('page.table.workOrderNo'), |
| | | field: 'workOrderNo', |
| | | width: 150, |
| | | align:"center", |
| | | }, |
| | | { |
| | | title: t('page.table.processNumber'), |
| | | field: 'processNumber', |
| | | width: 150, |
| | | align:"center", |
| | | }, |
| | | { |
| | | title: t('page.table.processName'), |
| | | field: 'processName', |
| | | width: 150, |
| | | align:"center", |
| | | }, |
| | | { |
| | | title: t('page.table.startDateOfProcessPlan'), |
| | | field: 'processPlanStartDay', |
| | | width: 200, |
| | | align:"center", |
| | | }, |
| | | { |
| | | title: t('page.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('page.table.standardTime'), |
| | | field: 'standardTime', |
| | | width: 90, |
| | | align:"center", |
| | | }, |
| | | { |
| | | title: t('page.table.processOrder'), |
| | | field: 'processOrder', |
| | | width: 90, |
| | | align:"center", |
| | | }, |
| | | { |
| | | title: t('page.table.integrationDay'), |
| | | field: 'integrationDay', |
| | | width: 160, |
| | | align:"center", |
| | | } |
| | | }); |
| | | |
| | | const { queryParams } = toRefs(data); |
| | | ] |
| | | getList(); |
| | | },{immediate:true, deep:true}) |
| | | /** æ¥è¯¢é£é计å临æ¶ç®¡çå表 */ |
| | | function getExampleList() { |
| | | loading.value = true; |
| | |
| | | } |
| | | /*å®ä¹ä¸æäºçº§è¡¨*/ |
| | | |
| | | 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", |
| | | }, |
| | | // const subGridOptions = ref({ |
| | | // border: true, |
| | | // showOverflow: true, |
| | | // columns: [ |
| | | // { |
| | | // title: 'æªå¼å·¥æ°é', |
| | | // field: 'notStartWorkCount', |
| | | // title: t('page.table.itemNumber'), |
| | | // field: 'itemNo', |
| | | // width: 150, |
| | | // align:"center", |
| | | // }, |
| | | // { |
| | | // title: t('page.table.workOrderNo'), |
| | | // field: 'workOrderNo', |
| | | // width: 150, |
| | | // align:"center", |
| | | // }, |
| | | // { |
| | | // title: t('page.table.processNumber'), |
| | | // field: 'processNumber', |
| | | // width: 100, |
| | | // align:"center", |
| | | // }, |
| | | // { |
| | | // title: t('page.table.processName'), |
| | | // field: 'processName', |
| | | // width: 150, |
| | | // align:"center", |
| | | // }, |
| | | // { |
| | | // title: t('page.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: 'completedCount', |
| | | // title: 'å·¥åºæåº', |
| | | // field: 'processOrder', |
| | | // width: 90, |
| | | // align:"center", |
| | | // }, |
| | | // { |
| | | // title: 'åºå¼æ°é', |
| | | // field: 'discardCount', |
| | | // width: 90, |
| | | // title: 'éææ¥æ', |
| | | // field: 'integrationDay', |
| | | // width: 160, |
| | | // 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 }) { |
| | |
| | | icon="Download" |
| | | @click="handleExport" |
| | | v-hasPermi="['plateProcessShopStat:export']" |
| | | >导åº</el-button |
| | | >{{ $t(`page.common.export`) }}</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | |
| | | icon="Edit" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['plateProcessShopStat:update']" |
| | | >æ´æ°</el-button |
| | | >{{ $t(`page.common.update`) }}</el-button |
| | | > |
| | | </el-col> |
| | | |
| | |
| | | > |
| | | </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" |
| | |
| | | <el-button @click="cancel">å æ¶</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </el-dialog> --> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | 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([]); |
| | |
| | | // }, |
| | | // rules: {}, |
| | | }); |
| | | const columns = ref([]); |
| | | const xGrid = ref(); |
| | | const { queryParams, form, rules } = toRefs(data); |
| | | |
| | | watch(locale, (newLocale) => { |
| | | // éæ°è·åç¿»è¯ææ¬ |
| | | // è¡¨æ ¼é
ç½® |
| | | const columns = ref([ |
| | | columns.value = [ |
| | | /* { type: 'seq', title: 'åºå·', width: 60 },*/ |
| | | { |
| | | title: "主件æå·", |
| | | title: t("page.table.mainPartNumber"), |
| | | field: "mainPartNumber", |
| | | width: 150, |
| | | fixed: "left", |
| | | }, |
| | | { |
| | | title: "ä¸å¡ç±»å", |
| | | title: t("page.table.businessType"), |
| | | field: "businessType", |
| | | width: 120, |
| | | fixed: "left", |
| | | }, |
| | | { |
| | | title: "åæ®å·", |
| | | title: t("page.table.documentNumber"), |
| | | field: "documentNumber", |
| | | width: 160, |
| | | fixed: "left", |
| | | }, |
| | | { |
| | | title: "éæ±åç±»", |
| | | title: t("page.table.requirementType"), |
| | | field: "requirementType", |
| | | width: 100, |
| | | fixed: "left", |
| | | }, |
| | | { |
| | | title: "åæ®ç¶æ", |
| | | title: t("page.table.documentStatus"), |
| | | field: "documentStatus", |
| | | width: 100, |
| | | fixed: "left", |
| | | }, |
| | | { |
| | | title: "å®¡æ ¸æ¶é´", |
| | | title: t("page.table.updateBy"), |
| | | field: "updateBy", |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: "å½åå·¥åº", |
| | | title: t("page.table.workCenter"), |
| | | field: "workCenter", |
| | | width: 200, |
| | | }, |
| | | { |
| | | title: "å½åå·¥åºè´è´£äºº", |
| | | title: t("page.table.department"), |
| | | field: "department", |
| | | width: 200, |
| | | }, |
| | | { |
| | | title: "å½åå·¥åºç¶æ", |
| | | title: t("page.table.opStatus"), |
| | | field: "opStatus", |
| | | width: 200, |
| | | }, |
| | | { |
| | | title: "ä¸ä¸å·¥åº", |
| | | title: t("page.table.nextOpName"), |
| | | field: "nextOpName", |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: "ä¸ä¸å·¥åºè´è´£äºº", |
| | | title: t("page.table.nextProcessDeparment"), |
| | | field: "nextProcessDeparment", |
| | | width: 200, |
| | | }, |
| | | { |
| | | title: "æå·", |
| | | title: t("page.table.itemNumber"), |
| | | field: "itemNumber", |
| | | width: 150, |
| | | type: "html", |
| | | }, |
| | | { |
| | | title: "å¾å·", |
| | | title: t("page.table.drawingNo"), |
| | | field: "drawingNo", |
| | | width: 150, |
| | | // format: 'YYYY-MM-DD' |
| | | }, |
| | | { |
| | | title: "çæ¬å·", |
| | | title: t("page.table.versionNumber"), |
| | | field: "versionNumber", |
| | | width: 100, |
| | | type: "html", |
| | | }, |
| | | { |
| | | title: "ä½é¶ç ", |
| | | field: "updateBy", |
| | | title: t("page.table.cheaperCode"), |
| | | field: "cheaperCode", |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: "ç产æ°é", |
| | | title: t("page.table.productionQuantity"), |
| | | field: "productionQuantity", |
| | | width: 100, |
| | | type: "html", |
| | | }, |
| | | { |
| | | title: "å·¥å计åä¸åæ¶é´", |
| | | field: "updateBy", |
| | | title: t("page.table.planworkOrderTime"), |
| | | field: "planworkOrderTime", |
| | | width: 200, |
| | | }, |
| | | { |
| | | title: "ç³»ç»å®å·¥æ¶é´", |
| | | title: t("page.table.planEndDay"), |
| | | field: "planEndDay", |
| | | width: 150, |
| | | format: "YYYY-MM-DD hh:mm:ss", |
| | | }, |
| | | ]); |
| | | |
| | | ] |
| | | getList(); |
| | | },{immediate:true, deep:true}); |
| | | /** æ¥è¯¢é£éç»è®¡å表 */ |
| | | async function getList() { |
| | | loading.value = true; |
| | |
| | | }; |
| | | } |
| | | ); |
| | | console.log(aps_plate_process_statList.value, "resDataresDataresData"); |
| | | let newArray = []; |
| | | newArray = dynamicList.value.flatMap((item, index) => [ |
| | | { |
| | |
| | | } |
| | | getList(); |
| | | // onMounted(async () => { |
| | | // |
| | | // await nextTick(); |
| | | |
| | | // }); |
| | | </script> |
| | | <style lang="scss" scoped> |