From 84ee03eb7701d8aeb8aa9514989f2c8b4ce53e79 Mon Sep 17 00:00:00 2001
From: CD配唱片 <CD配唱片>
Date: 星期五, 09 五月 2025 16:16:12 +0800
Subject: [PATCH] 批量更新日期联调等

---
 src/views/mainPlan/sheetMetalOrderManage/index.vue |  262 ++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 191 insertions(+), 71 deletions(-)

diff --git a/src/views/mainPlan/sheetMetalOrderManage/index.vue b/src/views/mainPlan/sheetMetalOrderManage/index.vue
index 2b9872d..d08d125 100644
--- a/src/views/mainPlan/sheetMetalOrderManage/index.vue
+++ b/src/views/mainPlan/sheetMetalOrderManage/index.vue
@@ -23,11 +23,11 @@
         <el-col :span="5"> -->
       <el-form-item
         :label="$t('plan.query.requireTraceID')"
-        prop="requireTraceId"
+        prop="requireTrackId"
       >
         <el-input
           :style="{ width: locale == 'zh' ? '200px' : '280px' }"
-          v-model="queryParams.requireTraceId"
+          v-model="queryParams.requireTrackId"
           :placeholder="`${$t('common.common.placeholder')}${$t(
             'plan.query.requireTraceID'
           )}`"
@@ -52,7 +52,7 @@
         :label="$t('plan.table.delayRiskIdentification')"
         prop="hasDelayRisk"
       >
-        <el-input
+        <!-- <el-input
           :style="{ width: locale == 'zh' ? '200px' : '280px' }"
           v-model="queryParams.hasDelayRisk"
           :placeholder="`${$t('common.common.placeholder')}${$t(
@@ -60,7 +60,19 @@
           )}`"
           clearable
           @keyup.enter="handleQuery"
-        />
+        /> -->
+        <el-select
+          clearable
+          v-model="queryParams.hasDelayRisk"
+          style="width: 140px"
+        >
+          <el-option
+            v-for="item in delayRiskOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
       </el-form-item>
       <!-- </el-col>
         <el-col :span="14" style="text-align: right"> -->
@@ -84,7 +96,7 @@
           icon="Plus"
           :disabled="multiple"
           @click="handleBatchUpdatePlanDate"
-          v-hasPermi="['apsPlatePlan:edit']"
+          v-hasPermi="['ApsPlatOrderPlanManager:requirement:list']"
           >{{ $t("plan.btns.batchUpdateOrderDate") }}</el-button
         >
       </el-col>
@@ -93,6 +105,7 @@
           type="success"
           plain
           icon="Edit"
+          :disabled="loadingGenerateList"
           @click="handleGenerateList"
           v-hasPermi="['apsPlatePlan:edit']"
           >{{ $t("plan.btns.generatePlanOrder") }}</el-button
@@ -120,7 +133,7 @@
           type="primary"
           link
           @click="handleCheckView(row)"
-          v-hasPermi="['aps:calendar:update']"
+          v-hasPermi="['ApsPlatOrderPlanManager:requirement:list']"
           >{{ $t("plan.btns.viewRequirement") }}</el-button
         >
       </template>
@@ -129,6 +142,7 @@
       :title="$t('plan.title.viewAssociatedRequirements')"
       v-model="openDialog"
       width="900px"
+      style="height: 400px; overflow: hidden"
       append-to-body
     >
       <HxlhTable
@@ -136,13 +150,13 @@
         :columns="subGridOptions"
         :data="subList"
         :loading="loadingSub"
-        :height="heightSub"
+        :height="'280px'"
       >
       </HxlhTable>
       <template #footer>
         <span class="dialog-footer">
           <el-button @click="openDialog = false">{{
-            $t("common.common.cancel")
+            $t("common.common.close")
           }}</el-button>
         </span>
       </template>
@@ -151,11 +165,12 @@
       :title="$t('plan.btns.batchUpdateOrderDate')"
       v-model="openBatchDialog"
       width="900px"
+      style="height: 400px; overflow: hidden"
       append-to-body
     >
       <div class="mode_box">
         <span>{{ $t("plan.title.setMode") }}</span>
-        <el-radio-group v-model="radio">
+        <el-radio-group v-model="radio" @change="changeRadioCustom">
           <el-radio :label="1">{{
             $t("plan.btns.batchUpdateOrderDate")
           }}</el-radio>
@@ -167,10 +182,17 @@
       <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"
+        <!-- <el-date-picker
+          v-model="customicDate"
           type="dates"
           :placeholder="$t('plan.title.CustomizePlannedCompletionDate')"
+          @change="handleChangeCustomDate($event)"
+        /> -->
+        <el-date-picker
+          v-model="customicDate"
+          type="datetime"
+          :placeholder="$t('plan.title.CustomizePlannedCompletionDate')"
+          @change="handleChangeCustomDate($event)"
         />
       </div>
       <HxlhTable
@@ -179,7 +201,7 @@
         :columns="subUpdateGridOptions"
         :data="subUpdateList"
         :loading="loading"
-        :height="heightSub"
+        :height="'200px'"
       >
       </HxlhTable>
       <HxlhTable
@@ -188,7 +210,7 @@
         :columns="subUpdateCustomGridOptions"
         :data="subUpdateList"
         :loading="loading"
-        :height="heightSub"
+        :height="'200px'"
       >
       </HxlhTable>
       <template #footer>
@@ -196,6 +218,13 @@
           <el-button @click="openBatchDialog = false">{{
             $t("common.common.cancel")
           }}</el-button>
+          <el-button
+            type="primary"
+            @click="hanleBatchUpdateDate"
+            :disabled="loadingUpdateDate"
+            v-hasPermi="['ApsPlatOrderPlanManager:requirement:list']"
+            >{{ $t("common.common.batchUpdate") }}</el-button
+          >
         </span>
       </template>
     </el-dialog>
@@ -204,14 +233,32 @@
 
 <script setup name="Calendar">
 import HxlhTable from "@/components/HxlhTable";
+import { parseTime } from "@/utils/ruoyi.js";
 import useBasicStore from "@/store/modules/request/basic/page";
 import { listAll_plant } from "@/api/basicData/plant";
-import { metalOrderManageList,metalOrderManageSubList,generatorPlanList } from "@/api/mainPlan/metalOrderManage.js";
+import {
+  metalOrderManageList,
+  metalOrderManageSubList,
+  generatorPlanList,
+  planDateList,
+} from "@/api/mainPlan/metalOrderManage.js";
 import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+import { ElMessage } from "element-plus";
 const { t, locale } = useI18n();
 const basicStore = useBasicStore();
 const { proxy } = getCurrentInstance();
+const delayRiskOptions = ref([
+  {
+    label: "鏈夐闄�",
+    value: "1",
+  },
+  {
+    label: "鏃犻闄�",
+    value: "0",
+  },
+]);
 const radio = ref(1);
+const customicDate = ref("");
 const openDialog = ref(false);
 const openBatchDialog = ref(false);
 const subGridOptions = ref([]);
@@ -222,7 +269,9 @@
 // const tableRef = ref();
 const orderList = ref([]);
 const loading = ref(false);
-const loadingSub = ref(false)
+const loadingUpdateDate = ref(false);
+const loadingGenerateList = ref(false);
+const loadingSub = ref(false);
 const showSearch = ref(true);
 const ids = ref([]);
 const single = ref(true);
@@ -237,7 +286,7 @@
     pageNum: 1,
     pageSize: 10,
     workOrderNo: null,
-    requireTraceId: null,
+    requireTrackId: null,
     mainPartNumber: null,
     hasDelayRisk: null,
   },
@@ -260,7 +309,7 @@
   locale,
   (newLocale) => {
     columns.value = [
-      { type: "checkbox", width: 60, align: "center" },
+      { type: "checkbox", width: 60, align: "center", fixed: "left" },
       {
         title: t("basic.table.requirementID"),
         field: "requireId",
@@ -269,7 +318,7 @@
       },
       {
         title: t("basic.table.requirementTraceabilityID"),
-        field: "requireTraceId",
+        field: "requireTrackId",
         width: 200,
         align: "center",
       },
@@ -339,19 +388,19 @@
       {
         title: t("plan.table.planStartDay"),
         field: "planStartDay",
-        width: 100,
+        width: 200,
         align: "center",
       },
       {
         title: t("plan.table.planEndDayDate"),
         field: "planEndDay",
-        width: 100,
+        width: 200,
         align: "center",
       },
       {
         title: t("plan.table.workorderCreationTime"),
         field: "orderCreateTime",
-        width: 100,
+        width: 200,
         align: "center",
       },
       {
@@ -365,6 +414,15 @@
         field: "hasDelayRisk",
         width: 100,
         align: "center",
+        formatter: ({ cellValue, row, column }) => {
+          if (cellValue) {
+            for (let i = 0; i < delayRiskOptions.value.length; i++) {
+              if (cellValue === delayRiskOptions.value[i].value) {
+                return delayRiskOptions.value[i].label;
+              }
+            }
+          }
+        },
       },
       {
         title: t("common.common.operate"),
@@ -488,6 +546,15 @@
         field: "hasDelayRisk",
         width: 100,
         align: "center",
+        formatter: ({ cellValue, row, column }) => {
+          if (cellValue) {
+            for (let i = 0; i < delayRiskOptions.value.length; i++) {
+              if (cellValue === delayRiskOptions.value[i].value) {
+                return delayRiskOptions.value[i].label;
+              }
+            }
+          }
+        },
       },
     ];
     subUpdateGridOptions.value = [
@@ -499,7 +566,7 @@
       },
       {
         title: t("basic.table.requirementTraceabilityID"),
-        field: "requireTraceId",
+        field: "requireTrackId",
         width: 200,
         align: "center",
       },
@@ -530,25 +597,25 @@
       {
         title: t("plan.table.planStartDay"),
         field: "planStartDay",
-        width: 100,
+        width: 200,
         align: "center",
       },
       {
         title: t("plan.table.planEndDayDate"),
         field: "planEndDay",
-        width: 100,
+        width: 200,
         align: "center",
       },
       {
         title: t("plan.table.startDateOfDemandPlan"),
-        field: "startDay",
-        width: 100,
+        field: "startDate",
+        width: 200,
         align: "center",
       },
       {
         title: t("plan.table.requirementPlanCompletionDate"),
-        field: "completeDay",
-        width: 100,
+        field: "completeDate",
+        width: 200,
         align: "center",
       },
     ];
@@ -561,7 +628,7 @@
       },
       {
         title: t("basic.table.requirementTraceabilityID"),
-        field: "requireTraceId",
+        field: "requireTrackId",
         width: 200,
         align: "center",
       },
@@ -592,19 +659,19 @@
       {
         title: t("plan.table.planStartDay"),
         field: "planStartDay",
-        width: 100,
+        width: 200,
         align: "center",
       },
       {
         title: t("plan.table.planEndDayDate"),
         field: "planEndDay",
-        width: 100,
+        width: 200,
         align: "center",
       },
       {
         title: t("plan.table.customizePlannedCompletionDate"),
-        field: "updateTime",
-        width: 100,
+        field: "customTime",
+        width: 200,
         align: "center",
       },
     ];
@@ -614,63 +681,116 @@
     deep: true,
   }
 );
+function changeRadioCustom() {}
 function handleBatchUpdatePlanDate() {
   openBatchDialog.value = true;
+}
+function handleChangeCustomDate(e) {
+  customicDate.value = parseTime(e); //new Date(e).getFullYear()+ '-' + parseInt(new Date(e).getMonth()*1+1) + '-' +  new Date(e).getDate()
+  console.log(customicDate.value, "chang date");
+  if (radio.value == 2) {
+    subUpdateList.value = subUpdateList.value.map((item) => {
+      return {
+        ...item,
+        customTime: customicDate.value,
+      };
+    });
+    console.log(subUpdateList.value, "changeRadioCustom");
+  }
 }
 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;
-  })
+  metalOrderManageSubList(row.workOrderNo)
+    .then((res) => {
+      subList.value = res;
+      loadingSub.value = false;
+    })
+    .catch(() => {
+      loadingSub.value = false;
+    });
 }
-async function handleGenerateList(){
-  await generatorPlanList()
+async function hanleBatchUpdateDate() {
+  loadingUpdateDate.value = true;
+  let planIds = subUpdateList.value.map((item) => {
+    return item.id;
+  });
+  let res = null;
+  console.log(planIds, "planIds");
+  if (radio.value == 1) {
+    res = await planDateList({
+      isCustom: false,
+      planIds,
+    });
+  } else {
+    res = await planDateList({
+      isCustom: true,
+      planIds,
+      customDate: customicDate.value,
+    });
+    console.log(res, "res planDateList");
+  }
+  if (res.code === 200) {
+    ElMessage({
+      message: t("plan.message.update"),
+      type: "success",
+    });
+    openBatchDialog.value = false;
+    loadingUpdateDate.value = false;
+    getList();
+  } else {
+    openBatchDialog.value = true;
+    loadingUpdateDate.value = false;
+  }
+}
+async function handleGenerateList() {
+  loadingGenerateList.value = true;
+  const res = await generatorPlanList();
+  if (res.code == 200) {
+    ElMessage({
+      message: t("plan.message.update"),
+      type: "success",
+    });
+    loadingGenerateList.value = false;
+    getList();
+  }else {
+    loadingGenerateList.value = false;
+  }
 }
 /** 鏌ヨ閽i噾宸ュ崟璁″垝绠$悊鍒楄〃 */
 function getList() {
   loading.value = true;
-  if (basicStore.sheetMetalOrderManageList&&basicStore.sheetMetalOrderManageList.rows) {
-    orderList.value = basicStore.sheetMetalOrderManageList.rows;
-    loading.value = false;
-  } else {
-    basicStore.getMetalOrderManagerList(queryParams.value).then((response) => {
+  metalOrderManageList(queryParams.value)
+    .then((response) => {
       orderList.value = response.rows;
       page.value.total = response.total;
       loading.value = false;
-    }).catch(()=>{
+    })
+    .catch((res) => {
       loading.value = false;
     });
-  }
-  // metalOrderManageList(queryParams.value).then((response) => {
-  //   orderList.value = response.rows;
-  //   page.value.total = response.total;
-  //   loading.value = false;
-  // });
-  // axios
-  //   .all([
-  //     /** 鏌ヨ宸ュ巶鍒楄〃 */
-  //     listAll_plant({}),
-  //     /** 鏌ヨ杞﹂棿鍒楄〃 */
-  //     listAll_shop({}),
-  //   ])
-  //   .then(
-  //     axios.spread((response1, response2) => {
-  //       plantList.value = response1.data;
-  //       shopList.value = response2.data;
-  //       loading.value = false;
-  //     })
-  //   )
-  //   .catch((error) => {
-  //     console.error("璇锋眰鍑洪敊:", error);
-  //   });
 }
+
+// axios
+//   .all([
+//     /** 鏌ヨ宸ュ巶鍒楄〃 */
+//     listAll_plant({}),
+//     /** 鏌ヨ杞﹂棿鍒楄〃 */
+//     listAll_shop({}),
+//   ])
+//   .then(
+//     axios.spread((response1, response2) => {
+//       plantList.value = response1.data;
+//       shopList.value = response2.data;
+//       loading.value = false;
+//     })
+//   )
+//   .catch((error) => {
+//     console.error("璇锋眰鍑洪敊:", error);
+//   });
 /** 鎼滅储鎸夐挳鎿嶄綔 */
 function handleQuery() {
+  console.log("111111");
   queryParams.value.pageNum = 1;
   getList();
 }

--
Gitblit v1.9.3