From e3e17a37d85f50bace525ed019ee0cd8d39143eb Mon Sep 17 00:00:00 2001 From: CD配唱片 <CD配唱片> Date: 星期四, 08 五月 2025 18:19:23 +0800 Subject: [PATCH] 钣金工单计划管理 --- src/views/mainPlan/sheetMetalOrderManage/index.vue | 307 +++++++++++++++++++++++++++++++-------------------- 1 files changed, 186 insertions(+), 121 deletions(-) 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; -- Gitblit v1.9.3