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