From e3e17a37d85f50bace525ed019ee0cd8d39143eb Mon Sep 17 00:00:00 2001
From: CD配唱片 <CD配唱片>
Date: 星期四, 08 五月 2025 18:19:23 +0800
Subject: [PATCH] 钣金工单计划管理

---
 src/views/mainPlan/apsPartRoutStat/index.vue            |   39 +++-
 .env.development                                        |    2 
 src/views/mainPlan/workOrderJobLog/index.vue            |    6 
 src/views/mainPlan/sheetMetalOrderManage/index.vue      |  307 +++++++++++++++++++++++---------------
 src/components/HxlhTable/index.vue                      |   34 ++--
 src/utils/i18n/locales/plan/index.js                    |    6 
 src/views/basicData/processRouteDataPreparate/index.vue |    8 +
 src/api/mainPlan/metalOrderManage.js                    |   23 ++
 src/views/basicData/processRoute/index.vue              |    3 
 src/store/modules/request/basic/page.js                 |   25 +++
 src/views/mainPlan/sheetMetalRedundantReport/index.vue  |    2 
 src/App.vue                                             |   14 +
 12 files changed, 315 insertions(+), 154 deletions(-)

diff --git a/.env.development b/.env.development
index a4a0a7d..f0b6c1e 100644
--- a/.env.development
+++ b/.env.development
@@ -10,4 +10,4 @@
 # 閰嶅悎鍚庣鏈嶅姟
 # VITE_APP_LOCAL = 'int'
 # VITE_APP_LOCAL = 'zhl'
-VITE_APP_LOCAL = 'cxl'
\ No newline at end of file
+VITE_APP_LOCAL = 'sfd'
\ No newline at end of file
diff --git a/src/App.vue b/src/App.vue
index 9b83df5..15d9d23 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,5 +1,8 @@
 <template>
-  <el-config-provider :locale="locale==='zh'?zhCnEl:enUsEl">
+  <el-config-provider :locale="locale === 'zh' ? zhCnEl : enUsEl">
+    <!-- <keep-alive :include="cachedViews">
+      <router-view />
+    </keep-alive> -->
     <router-view />
   </el-config-provider>
 </template>
@@ -12,6 +15,15 @@
 const { locale } = useI18n();
 import useSettingsStore from "@/store/modules/settings";
 import { handleThemeStyle } from "@/utils/theme";
+const route = useRoute();
+const router = useRouter();
+const cachedViews = computed(() => {
+  console.log(router.getRoutes(),"router.getRoutes()")
+  return router
+    .getRoutes() // 鑾峰彇鎵�鏈夎矾鐢�
+    .filter((r) => r.meta && r.meta.keepAlive) // 杩囨护鍑洪渶瑕佺紦瀛樼殑璺敱
+    .map((r) => r.name); // 鑾峰彇璺敱鍚嶇О浣滀负缂撳瓨閿��
+});
 onMounted(() => {
   nextTick(() => {
     // 鍒濆鍖栦富棰樻牱寮�
diff --git a/src/api/mainPlan/metalOrderManage.js b/src/api/mainPlan/metalOrderManage.js
new file mode 100644
index 0000000..9875539
--- /dev/null
+++ b/src/api/mainPlan/metalOrderManage.js
@@ -0,0 +1,23 @@
+import request from "@/utils/request";
+export function metalOrderManageList(query) {
+  return request({
+    url: `/aps/ApsPlatOrderPlanManager/list`,
+    method: "get",
+    params: query
+  });
+}
+// /ApsPlatOrderPlanManager/requirement/list?workOrderNo=abc
+export function metalOrderManageSubList(workOrderNo) {
+  return request({
+    url: `/aps/ApsPlatOrderPlanManager/requirement/list?workOrderNo=${workOrderNo}`,
+    method: "get"
+  });
+}
+
+//aps/ApsPlateStandardRequire/generatorPlan
+export function generatorPlanList() {
+  return request({
+    url: `/aps/ApsPlateStandardRequire/generatorPlan`,
+    method: "post"
+  });
+}
\ No newline at end of file
diff --git a/src/components/HxlhTable/index.vue b/src/components/HxlhTable/index.vue
index 6ecc5ea..8d2a643 100644
--- a/src/components/HxlhTable/index.vue
+++ b/src/components/HxlhTable/index.vue
@@ -178,18 +178,18 @@
       return {};
     },
   },
-  virtualYConfig:{
+  virtualYConfig: {
     type: Object,
     default: () => {
       return {};
     },
   },
-  editConfig:{
+  editConfig: {
     type: Object,
     default: () => {
       return {};
     },
-  }
+  },
 });
 
 const tableForm = ref([]);
@@ -227,22 +227,22 @@
   // 杩斿洖 Vuex 涓殑 hxlhTableFootData 鐘舵��
   //   return useStore.state.hxlhTableFootData;
 }
-function scrollBoundaryEvent ({ direction }) {
+function scrollBoundaryEvent({ direction }) {
   switch (direction) {
-    case 'top':
-      console.log('瑙﹀彂椤堕儴闃堝�艰寖鍥�')
-      break
-    case 'bottom':
-      console.log('瑙﹀彂搴曢儴闃堝�艰寖鍥�')
+    case "top":
+      console.log("瑙﹀彂椤堕儴闃堝�艰寖鍥�");
+      break;
+    case "bottom":
+      console.log("瑙﹀彂搴曢儴闃堝�艰寖鍥�");
       // this.loadList(20)
-      emit('bottomAutoLoadMore')
-      break
-    case 'left':
-      console.log('瑙﹀彂宸︿晶闃堝�艰寖鍥�')
-      break
-    case 'right':
-      console.log('瑙﹀彂鍙充晶闃堝�艰寖鍥�')
-      break
+      emit("bottomAutoLoadMore");
+      break;
+    case "left":
+      console.log("瑙﹀彂宸︿晶闃堝�艰寖鍥�");
+      break;
+    case "right":
+      console.log("瑙﹀彂鍙充晶闃堝�艰寖鍥�");
+      break;
   }
 }
 function handleSum(list, field) {
diff --git a/src/store/modules/request/basic/page.js b/src/store/modules/request/basic/page.js
new file mode 100644
index 0000000..6b45a95
--- /dev/null
+++ b/src/store/modules/request/basic/page.js
@@ -0,0 +1,25 @@
+
+import { metalOrderManageList } from "@/api/mainPlan/metalOrderManage.js";
+const useBasicStore = defineStore(
+  'basicView',
+  {
+    state: () => ({
+      sheetMetalOrderManageList: [],
+    }),
+    actions: {
+      //鑾峰彇閽i噾宸ュ崟璁″垝绠$悊鍒楄〃璇锋眰鏁版嵁
+      getMetalOrderManagerList(query) {
+        return new Promise((reslove,reject)=>{
+          metalOrderManageList(query).then(res=>{
+            console.log(res,"metalOrderManageListmetalOrderManageList")
+            this.sheetMetalOrderManageList = res
+            reslove(res)
+          }).catch(error => {
+            reject(error)
+          }) 
+        })
+      }
+    }
+  })
+
+export default useBasicStore
diff --git a/src/utils/i18n/locales/plan/index.js b/src/utils/i18n/locales/plan/index.js
index 75901c0..90ec9e8 100644
--- a/src/utils/i18n/locales/plan/index.js
+++ b/src/utils/i18n/locales/plan/index.js
@@ -168,7 +168,8 @@
     customizePlannedCompletionDate:"鑷畾涔夎鍒掑畬宸ユ棩",
     //閽i噾鏂欏彿宸ュ崟寮傚父
     abnormalCause:"寮傚父鍘熷洜",
-    creationTime:"宸ュ崟鍒涘缓鏃堕棿"
+    creationTime:"宸ュ崟鍒涘缓鏃堕棿",
+    suggestedCompletionDate:"寤鸿瀹屾垚鏃ユ湡"
   },
 };
 export const en = {
@@ -341,6 +342,7 @@
     customizePlannedCompletionDate:"Customize the planned completion date",
     //閽i噾鏂欏彿宸ュ崟寮傚父
     abnormalCause:"Abnormal cause",
-    creationTime:"Creation time"
+    creationTime:"Creation time",
+    suggestedCompletionDate:"Suggested Completion Date寤鸿瀹屾垚鏃ユ湡"
   },
 };
diff --git a/src/views/basicData/processRoute/index.vue b/src/views/basicData/processRoute/index.vue
index ecc1327..a65b93f 100644
--- a/src/views/basicData/processRoute/index.vue
+++ b/src/views/basicData/processRoute/index.vue
@@ -70,6 +70,7 @@
     <HxlhTable
       style="width: 100%"
       :columns="columns"
+      :showOverflow="true"
       :virtualYConfig="virtualYConfig"
       :data="processRouteList"
       :loading="loading"
@@ -407,7 +408,7 @@
 const data = reactive({
   form: {},
   queryParams: {
-    pageNum: 0,
+    pageNum: 1,
     pageSize: 100,
     itemNo: null,
     integrationDay: null,
diff --git a/src/views/basicData/processRouteDataPreparate/index.vue b/src/views/basicData/processRouteDataPreparate/index.vue
index dd00a50..c25fe34 100644
--- a/src/views/basicData/processRouteDataPreparate/index.vue
+++ b/src/views/basicData/processRouteDataPreparate/index.vue
@@ -82,6 +82,8 @@
       :data="processRouteList"
       :loading="loading"
       :height="height"
+      :virtualYConfig="virtualYConfig"
+      :showOverflow="true"
       @on-checkbox="handleCheckboxChange"
       :page="page"
       @changePageNo="changePageNo"
@@ -138,6 +140,11 @@
 import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
 const { t, locale } = useI18n();
 const { proxy } = getCurrentInstance();
+const virtualYConfig = {
+  enabled: true,
+  gt: 0,
+  threshold: 50,
+}
 // 鍒嗛〉灞炴��
 const page = ref({
   total: 0,
@@ -343,6 +350,7 @@
   apsStandardProcessRouteHeaderList(queryParams.value)
     .then((response) => {
       processRouteList.value = response.rows;
+      page.value.total = response.total;
       loading.value = false;
     })
     .catch(() => {
diff --git a/src/views/mainPlan/apsPartRoutStat/index.vue b/src/views/mainPlan/apsPartRoutStat/index.vue
index d33329f..2395889 100644
--- a/src/views/mainPlan/apsPartRoutStat/index.vue
+++ b/src/views/mainPlan/apsPartRoutStat/index.vue
@@ -49,6 +49,10 @@
   showOverflow: true,
   showHeaderOverflow: true,
   showFooterOverflow: true,
+  virtualXConfig: {
+    enabled: true,
+    gt: 0,
+  },
   height: height,
   columnConfig: {
     resizable: true,
@@ -68,9 +72,13 @@
 let tableColumn = [];
 let tableData = [];
 let merges = [];
-watch(locale, (newLocale) => {
-  getList()
-},{immediate:true, deep:true})
+watch(
+  locale,
+  (newLocale) => {
+    getList();
+  },
+  { immediate: true, deep: true }
+);
 /** 鏌ヨ闆朵欢缁熻琛ㄥ垪琛� */
 function getList() {
   let rowKey = 0;
@@ -89,14 +97,19 @@
         loading.value = false;
         return;
       }
-      headersOne.push(t('plan.table.dateYearMonth'));
-      headersTwo.push(t('plan.table.resourceName'));
+      headersOne.push(t("plan.table.dateYearMonth"));
+      headersTwo.push(t("plan.table.resourceName"));
       colList.push({
         field: "dateCol",
-        title: t('plan.table.dateYearMonth'),
+        title: t("plan.table.dateYearMonth"),
         fixed: "left",
         children: [
-          { field: `resourceName`, title: t('plan.table.resourceName'), width: 250, type: "html" },
+          {
+            field: `resourceName`,
+            title: t("plan.table.resourceName"),
+            width: 250,
+            type: "html",
+          },
         ],
         width: 160,
       });
@@ -112,8 +125,16 @@
           field: `dateColTime${colKey}`,
           title: item,
           children: [
-            { field: `designTimes${colKey}`, title: t("plan.table.designWorkingHours"), width: 80 },
-            { field: `requireTimes${colKey}`, title: t("plan.table.requiredWorkingHours"), 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: t("plan.table.capacityLoad"),
diff --git a/src/views/mainPlan/sheetMetalOrderManage/index.vue b/src/views/mainPlan/sheetMetalOrderManage/index.vue
index 4af67d6..2b9872d 100644
--- a/src/views/mainPlan/sheetMetalOrderManage/index.vue
+++ b/src/views/mainPlan/sheetMetalOrderManage/index.vue
@@ -6,44 +6,58 @@
       ref="queryRef"
       :inline="true"
       v-show="showSearch"
-      :label-width="locale=='zh'?'110px':'200px'"
+      :label-width="locale == 'zh' ? '110px' : '200px'"
     >
-      <el-form-item :label="$t('plan.query.workOrderNo')" prop="description">
+      <el-form-item :label="$t('plan.query.workOrderNo')" prop="workOrderNo">
         <el-input
-          :style="{width:locale=='zh'? '200px':'280px'}"
-          v-model="queryParams.description"
-          :placeholder="`${$t('common.common.placeholder')}${$t('plan.query.workOrderNo')}`"
+          :style="{ width: locale == 'zh' ? '200px' : '280px' }"
+          v-model="queryParams.workOrderNo"
+          :placeholder="`${$t('common.common.placeholder')}${$t(
+            'plan.query.workOrderNo'
+          )}`"
           clearable
           @keyup.enter="handleQuery"
         />
       </el-form-item>
       <!-- <el-row type="flex" justify="left">
         <el-col :span="5"> -->
-      <el-form-item :label="$t('plan.query.requireTraceID')" prop="description">
+      <el-form-item
+        :label="$t('plan.query.requireTraceID')"
+        prop="requireTraceId"
+      >
         <el-input
-          :style="{width:locale=='zh'? '200px':'280px'}"
-          v-model="queryParams.description"
-          :placeholder="`${$t('common.common.placeholder')}${$t('plan.query.requireTraceID')}`"
+          :style="{ width: locale == 'zh' ? '200px' : '280px' }"
+          v-model="queryParams.requireTraceId"
+          :placeholder="`${$t('common.common.placeholder')}${$t(
+            'plan.query.requireTraceID'
+          )}`"
           clearable
           @keyup.enter="handleQuery"
         />
       </el-form-item>
       <!-- </el-col>
         <el-col :span="5"> -->
-      <el-form-item :label="$t('plan.query.itemNumber')" prop="description">
+      <el-form-item :label="$t('plan.query.itemNumber')" prop="mainPartNumber">
         <el-input
-          :style="{width:locale=='zh'? '200px':'280px'}"
-          v-model="queryParams.description"
-          :placeholder="`${$t('common.common.placeholder')}${$t('plan.query.itemNumber')}`"
+          :style="{ width: locale == 'zh' ? '200px' : '280px' }"
+          v-model="queryParams.mainPartNumber"
+          :placeholder="`${$t('common.common.placeholder')}${$t(
+            'plan.query.itemNumber'
+          )}`"
           clearable
           @keyup.enter="handleQuery"
         />
       </el-form-item>
-      <el-form-item :label="$t('plan.table.delayRiskIdentification')" prop="description">
+      <el-form-item
+        :label="$t('plan.table.delayRiskIdentification')"
+        prop="hasDelayRisk"
+      >
         <el-input
-          :style="{width:locale=='zh'? '200px':'280px'}"
-          v-model="queryParams.description"
-          :placeholder="`${$t('common.common.placeholder')}${$t('plan.table.delayRiskIdentification')}`"
+          :style="{ width: locale == 'zh' ? '200px' : '280px' }"
+          v-model="queryParams.hasDelayRisk"
+          :placeholder="`${$t('common.common.placeholder')}${$t(
+            'plan.table.delayRiskIdentification'
+          )}`"
           clearable
           @keyup.enter="handleQuery"
         />
@@ -51,10 +65,12 @@
       <!-- </el-col>
         <el-col :span="14" style="text-align: right"> -->
       <el-form-item class="column-with-margin">
-        <el-button type="primary" icon="Search" @click="handleQuery"
-          >{{$t('common.common.query')}}</el-button
-        >
-        <el-button icon="Refresh" @click="resetQuery">{{$t('common.common.reset')}}</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> -->
@@ -69,7 +85,7 @@
           :disabled="multiple"
           @click="handleBatchUpdatePlanDate"
           v-hasPermi="['apsPlatePlan:edit']"
-          >{{$t('plan.btns.batchUpdateOrderDate')}}</el-button
+          >{{ $t("plan.btns.batchUpdateOrderDate") }}</el-button
         >
       </el-col>
       <el-col :span="1.5">
@@ -77,9 +93,9 @@
           type="success"
           plain
           icon="Edit"
-          @click="handleUpdate"
+          @click="handleGenerateList"
           v-hasPermi="['apsPlatePlan:edit']"
-          >{{$t('plan.btns.generatePlanOrder')}}</el-button
+          >{{ $t("plan.btns.generatePlanOrder") }}</el-button
         >
       </el-col>
       <right-toolbar
@@ -90,7 +106,7 @@
     <HxlhTable
       style="width: 100%"
       :columns="columns"
-      :data="calendarList"
+      :data="orderList"
       :loading="loading"
       :height="height"
       ref="tableRef"
@@ -105,7 +121,7 @@
           link
           @click="handleCheckView(row)"
           v-hasPermi="['aps:calendar:update']"
-          >{{$t('plan.btns.viewRequirement')}}</el-button
+          >{{ $t("plan.btns.viewRequirement") }}</el-button
         >
       </template>
     </HxlhTable>
@@ -119,10 +135,17 @@
         style="width: 100%"
         :columns="subGridOptions"
         :data="subList"
-        :loading="loading"
+        :loading="loadingSub"
         :height="heightSub"
       >
       </HxlhTable>
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button @click="openDialog = false">{{
+            $t("common.common.cancel")
+          }}</el-button>
+        </span>
+      </template>
     </el-dialog>
     <el-dialog
       :title="$t('plan.btns.batchUpdateOrderDate')"
@@ -131,15 +154,19 @@
       append-to-body
     >
       <div class="mode_box">
-        <span>{{$t('plan.title.setMode')}}</span>
+        <span>{{ $t("plan.title.setMode") }}</span>
         <el-radio-group v-model="radio">
-          <el-radio :label="1">{{$t('plan.btns.batchUpdateOrderDate')}}</el-radio>
-          <el-radio :label="2">{{$t('plan.title.CustomizePlannedCompletionDate')}}</el-radio>
+          <el-radio :label="1">{{
+            $t("plan.btns.batchUpdateOrderDate")
+          }}</el-radio>
+          <el-radio :label="2">{{
+            $t("plan.title.CustomizePlannedCompletionDate")
+          }}</el-radio>
         </el-radio-group>
       </div>
-      <div class="red_color">{{$t('plan.title.tipsBugSheetMetal')}}</div>
-      <div class="mode_box" v-if="radio===2">
-        <span>{{$t('plan.title.CustomizePlannedCompletionDate')}}</span>
+      <div class="red_color">{{ $t("plan.title.tipsBugSheetMetal") }}</div>
+      <div class="mode_box" v-if="radio === 2">
+        <span>{{ $t("plan.title.CustomizePlannedCompletionDate") }}</span>
         <el-date-picker
           v-model="value4"
           type="dates"
@@ -147,7 +174,7 @@
         />
       </div>
       <HxlhTable
-        v-if="radio===1"
+        v-if="radio === 1"
         style="width: 100%"
         :columns="subUpdateGridOptions"
         :data="subUpdateList"
@@ -156,7 +183,7 @@
       >
       </HxlhTable>
       <HxlhTable
-        v-if="radio===2"
+        v-if="radio === 2"
         style="width: 100%"
         :columns="subUpdateCustomGridOptions"
         :data="subUpdateList"
@@ -164,25 +191,25 @@
         :height="heightSub"
       >
       </HxlhTable>
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button @click="openBatchDialog = false">{{
+            $t("common.common.cancel")
+          }}</el-button>
+        </span>
+      </template>
     </el-dialog>
   </div>
 </template>
 
 <script setup name="Calendar">
 import HxlhTable from "@/components/HxlhTable";
-import {
-  listCalendar,
-  getCalendar,
-  delCalendar,
-  addCalendar,
-  updateCalendar,
-} from "@/api/basicData/calendar";
-import axios from "axios";
+import useBasicStore from "@/store/modules/request/basic/page";
 import { listAll_plant } from "@/api/basicData/plant";
-import { listAll_shop, listAps_shop } from "@/api/basicData/shop";
-import { plateStandardRequireErrorList } from "@/api/basicData/sheetMetalConfig/sheetMetalConfig.js";
+import { metalOrderManageList,metalOrderManageSubList,generatorPlanList } from "@/api/mainPlan/metalOrderManage.js";
 import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
 const { t, locale } = useI18n();
+const basicStore = useBasicStore();
 const { proxy } = getCurrentInstance();
 const radio = ref(1);
 const openDialog = ref(false);
@@ -193,8 +220,9 @@
 const subList = ref([]);
 const subUpdateList = ref([]);
 // const tableRef = ref();
-const calendarList = ref([]);
-const loading = ref(true);
+const orderList = ref([]);
+const loading = ref(false);
+const loadingSub = ref(false)
 const showSearch = ref(true);
 const ids = ref([]);
 const single = ref(true);
@@ -208,18 +236,13 @@
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    description: null,
-    type: null,
-    effectiveDate: null,
-    expiringDate: null,
-    content: null,
-    applicableFactory: null,
-    applicableWorkshop: null,
-    applicableProcess: null,
+    workOrderNo: null,
+    requireTraceId: null,
+    mainPartNumber: null,
+    hasDelayRisk: null,
   },
 });
 const { queryParams, form, rules } = toRefs(data);
-const typeRadioNumber = ref(1);
 const plantList = ref([]);
 const shopList = ref([]);
 const allShopList = ref([]);
@@ -240,61 +263,61 @@
       { type: "checkbox", width: 60, align: "center" },
       {
         title: t("basic.table.requirementID"),
-        field: "description",
+        field: "requireId",
         width: 150,
         align: "center",
       },
       {
         title: t("basic.table.requirementTraceabilityID"),
-        field: "type",
+        field: "requireTraceId",
         width: 200,
         align: "center",
       },
       {
         title: t("plan.table.workOrderNo"),
-        field: "effectiveDate",
+        field: "workOrderNo",
         width: 200,
         align: "center",
       },
       {
         title: t("basic.table.matchQuantity"),
-        field: "expiringDate",
+        field: "deductionAmount",
         width: 200,
         align: "center",
       },
       {
         title: t("basic.table.workOrderType"),
-        field: "expiringDate",
+        field: "workOrderType",
         width: 200,
         align: "center",
       },
       {
         title: t("plan.table.itemNumber"),
-        field: "createTime",
+        field: "mainPartNumber",
         width: 200,
         align: "center",
       },
       {
         title: t("plan.table.mainPartDrawingNumber"),
-        field: "createTime",
+        field: "mainPartDrawingNumber",
         width: 200,
         align: "center",
       },
       {
         title: t("basic.table.mainCustomer"),
-        field: "createTime",
+        field: "customer",
         width: 200,
         align: "center",
       },
       {
         title: t("plan.table.productionQuantity"),
-        field: "updateTime",
+        field: "productionQuantity",
         width: 100,
         align: "center",
       },
       {
         title: t("basic.table.applicableFactories"),
-        field: "applicableFactory",
+        field: "applicableFactories",
         width: 200,
         align: "center",
         formatter: ({ cellValue, row, column }) => {
@@ -309,37 +332,37 @@
       },
       {
         title: t("plan.table.productionBase"),
-        field: "updateTime",
+        field: "productionBase",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.planStartDay"),
-        field: "updateTime",
+        field: "planStartDay",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.planEndDayDate"),
-        field: "updateTime",
+        field: "planEndDay",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.workorderCreationTime"),
-        field: "updateTime",
+        field: "orderCreateTime",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.mismatchedProductionQuantity"),
-        field: "updateTime",
+        field: "unmatchedQuantity",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.delayRiskIdentification"),
-        field: "updateTime",
+        field: "hasDelayRisk",
         width: 100,
         align: "center",
       },
@@ -354,91 +377,115 @@
     subGridOptions.value = [
       {
         title: t("basic.table.requirementID"),
-        field: "description",
+        field: "id",
         width: 150,
         align: "center",
       },
       {
         title: t("basic.table.requirementTraceabilityID"),
-        field: "type",
+        field: "requireId",
         width: 200,
         align: "center",
       },
       {
         title: t("plan.table.itemNumber"),
-        field: "effectiveDate",
+        field: "bomLineCode",
         width: 200,
         align: "center",
       },
       {
         title: t("plan.table.bomLowCode"),
-        field: "expiringDate",
+        field: "bomLineLevel",
         width: 200,
         align: "center",
       },
       {
         title: t("plan.table.bomUsage"),
-        field: "expiringDate",
+        field: "bomUseAmount",
         width: 200,
         align: "center",
       },
       {
         title: t("basic.table.processRouteID"),
-        field: "createTime",
+        field: "processRouteId",
         width: 200,
         align: "center",
       },
       {
         title: t("plan.table.processRouteWorkingHours"),
-        field: "updateTime",
+        field: "processRouteHours",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.demandQuantity"),
-        field: "updateTime",
+        field: "requireAmount",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.netRequirement"),
-        field: "updateTime",
+        field: "netRequirement",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.planStartDay"),
-        field: "updateTime",
+        field: "startDate",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.planEndDayDate"),
-        field: "updateTime",
+        field: "completeDate",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.requirementDate"),
-        field: "updateTime",
+        field: "demandDate",
         width: 100,
         align: "center",
       },
       {
         title: t("basic.table.applicableFactories"),
-        field: "updateTime",
+        field: "orgCode",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.productionBase"),
-        field: "updateTime",
+        field: "productionBase",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.matchState"),
-        field: "updateTime",
+        field: "matchState",
+        width: 100,
+        align: "center",
+      },
+      {
+        title: t("plan.table.matchPattern"),
+        field: "matchMode",
+        width: 100,
+        align: "center",
+      },
+      {
+        title: t("plan.table.unmatchedDemandQuantity"),
+        field: "unmatchedDemandAmount",
+        width: 100,
+        align: "center",
+      },
+      {
+        title: t("plan.table.suggestedCompletionDate"),
+        field: "suggestedCompletionDate",
+        width: 100,
+        align: "center",
+      },
+      {
+        title: t("plan.table.delayRiskIdentification"),
+        field: "hasDelayRisk",
         width: 100,
         align: "center",
       },
@@ -446,61 +493,61 @@
     subUpdateGridOptions.value = [
       {
         title: t("basic.table.requirementID"),
-        field: "description",
+        field: "requireId",
         width: 150,
         align: "center",
       },
       {
         title: t("basic.table.requirementTraceabilityID"),
-        field: "type",
+        field: "requireTraceId",
         width: 200,
         align: "center",
       },
       {
         title: t("plan.table.workOrderNo"),
-        field: "effectiveDate",
+        field: "workOrderNo",
         width: 200,
         align: "center",
       },
       {
         title: t("basic.table.matchQuantity"),
-        field: "expiringDate",
+        field: "deductionAmount",
         width: 200,
         align: "center",
       },
       {
         title: t("basic.table.workOrderType"),
-        field: "expiringDate",
+        field: "workOrderType",
         width: 200,
         align: "center",
       },
       {
         title: t("plan.table.itemNumber"),
-        field: "createTime",
+        field: "mainPartNumber",
         width: 200,
         align: "center",
       },
       {
         title: t("plan.table.planStartDay"),
-        field: "updateTime",
+        field: "planStartDay",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.planEndDayDate"),
-        field: "updateTime",
+        field: "planEndDay",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.startDateOfDemandPlan"),
-        field: "updateTime",
+        field: "startDay",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.requirementPlanCompletionDate"),
-        field: "updateTime",
+        field: "completeDay",
         width: 100,
         align: "center",
       },
@@ -508,49 +555,49 @@
     subUpdateCustomGridOptions.value = [
       {
         title: t("basic.table.requirementID"),
-        field: "description",
+        field: "requireId",
         width: 150,
         align: "center",
       },
       {
         title: t("basic.table.requirementTraceabilityID"),
-        field: "type",
+        field: "requireTraceId",
         width: 200,
         align: "center",
       },
       {
         title: t("plan.table.workOrderNo"),
-        field: "effectiveDate",
+        field: "workOrderNo",
         width: 200,
         align: "center",
       },
       {
         title: t("basic.table.matchQuantity"),
-        field: "expiringDate",
+        field: "deductionAmount",
         width: 200,
         align: "center",
       },
       {
         title: t("basic.table.workOrderType"),
-        field: "expiringDate",
+        field: "workOrderType",
         width: 200,
         align: "center",
       },
       {
         title: t("plan.table.itemNumber"),
-        field: "createTime",
+        field: "mainPartNumber",
         width: 200,
         align: "center",
       },
       {
         title: t("plan.table.planStartDay"),
-        field: "updateTime",
+        field: "planStartDay",
         width: 100,
         align: "center",
       },
       {
         title: t("plan.table.planEndDayDate"),
-        field: "updateTime",
+        field: "planEndDay",
         width: 100,
         align: "center",
       },
@@ -560,7 +607,7 @@
         width: 100,
         align: "center",
       },
-    ]
+    ];
   },
   {
     immediate: true,
@@ -572,15 +619,38 @@
 }
 function handleCheckView(row) {
   openDialog.value = true;
+  loadingSub.value = true;
+  metalOrderManageSubList(row.workOrderNo).then((res)=>{
+    subList.value = res;
+    loadingSub.value = false;
+    console.log(res,"metalOrderManageSubListmetalOrderManageSubList")
+  }).catch(()=>{
+    loadingSub.value = false;
+  })
 }
-/** 鏌ヨ鏃ュ巻绠$悊鍒楄〃 */
+async function handleGenerateList(){
+  await generatorPlanList()
+}
+/** 鏌ヨ閽i噾宸ュ崟璁″垝绠$悊鍒楄〃 */
 function getList() {
   loading.value = true;
-  listCalendar(queryParams.value).then((response) => {
-    calendarList.value = response.rows;
-    page.value.total = response.total;
+  if (basicStore.sheetMetalOrderManageList&&basicStore.sheetMetalOrderManageList.rows) {
+    orderList.value = basicStore.sheetMetalOrderManageList.rows;
     loading.value = false;
-  });
+  } else {
+    basicStore.getMetalOrderManagerList(queryParams.value).then((response) => {
+      orderList.value = response.rows;
+      page.value.total = response.total;
+      loading.value = false;
+    }).catch(()=>{
+      loading.value = false;
+    });
+  }
+  // metalOrderManageList(queryParams.value).then((response) => {
+  //   orderList.value = response.rows;
+  //   page.value.total = response.total;
+  //   loading.value = false;
+  // });
   // axios
   //   .all([
   //     /** 鏌ヨ宸ュ巶鍒楄〃 */
@@ -599,11 +669,6 @@
   //     console.error("璇锋眰鍑洪敊:", error);
   //   });
 }
-// 琛ㄥ崟閲嶇疆
-function reset() {
-  proxy.resetForm("calendarRef");
-}
-
 /** 鎼滅储鎸夐挳鎿嶄綔 */
 function handleQuery() {
   queryParams.value.pageNum = 1;
@@ -642,16 +707,16 @@
 .column-with-margin {
   margin-right: 0px;
 }
-.mode_box{
+.mode_box {
   margin-left: 30px;
   margin-bottom: 10px;
-  & span{
+  & span {
     padding-right: 20px;
   }
 }
-.red_color{
-  color:#f56c6c;
-  margin-bottom:10px;
+.red_color {
+  color: #f56c6c;
+  margin-bottom: 10px;
 }
 .mart5 {
   margin-top: 5px;
diff --git a/src/views/mainPlan/sheetMetalRedundantReport/index.vue b/src/views/mainPlan/sheetMetalRedundantReport/index.vue
index b9f7dbf..a6062c5 100644
--- a/src/views/mainPlan/sheetMetalRedundantReport/index.vue
+++ b/src/views/mainPlan/sheetMetalRedundantReport/index.vue
@@ -183,7 +183,7 @@
   },
   { immediate: true, deep: true }
 );
-/** 鏌ヨ鏃ュ巻绠$悊鍒楄〃 */
+/** 鏌ヨ绠$悊鍒楄〃 */
 function getList() {
   loading.value = true;
   redundantOrderList(queryParams.value).then((response) => {
diff --git a/src/views/mainPlan/workOrderJobLog/index.vue b/src/views/mainPlan/workOrderJobLog/index.vue
index 272056c..2111f0e 100644
--- a/src/views/mainPlan/workOrderJobLog/index.vue
+++ b/src/views/mainPlan/workOrderJobLog/index.vue
@@ -99,6 +99,7 @@
 
     <HxlhTable
         style="width: 100%"
+        :virtualYConfig="virtualYConfig"
         :columns="columns"
         :data="LogList"
         :loading="loading"
@@ -154,7 +155,10 @@
 
 const { proxy } = getCurrentInstance();
 const height = ref(document.documentElement.clientHeight - 270 + "px;")
-
+const virtualYConfig = {
+  enabled: true,
+  gt: 0
+};
 const LogList = ref([]);
 const open = ref(false);
 const loading = ref(true);

--
Gitblit v1.9.3