From 65f86f41dedbbbb7030e2f37ce3e001bbca4923a Mon Sep 17 00:00:00 2001
From: chengxiangling <291105840@qq.com>
Date: 星期四, 15 五月 2025 13:03:25 +0800
Subject: [PATCH] 查询日历带适用工厂
---
src/views/mainPlan/sheetMetalOrderManage/index.vue | 954 +++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 670 insertions(+), 284 deletions(-)
diff --git a/src/views/mainPlan/sheetMetalOrderManage/index.vue b/src/views/mainPlan/sheetMetalOrderManage/index.vue
index 1d441ba..e7118e0 100644
--- a/src/views/mainPlan/sheetMetalOrderManage/index.vue
+++ b/src/views/mainPlan/sheetMetalOrderManage/index.vue
@@ -6,58 +6,106 @@
ref="queryRef"
:inline="true"
v-show="showSearch"
- label-width="110px"
+ label-position="left"
>
- <el-form-item label="宸ュ崟鍙�" prop="description">
- <el-input
- style="width: 140px"
- v-model="queryParams.description"
- placeholder="璇疯緭鍏ラ渶姹傝拷婧疘D"
+ <el-row :gutter="20">
+ <el-col :span="8">
+ <el-form-item
+ :style="{ width: '100%' }"
+ :label="$t('plan.query.workOrderNo')"
+ prop="workOrderNo"
+ >
+ <el-input
+ v-model="queryParams.workOrderNo"
+ :placeholder="`${$t('common.common.placeholder')}${$t(
+ 'plan.query.workOrderNo'
+ )}`"
+ clearable
+ @keyup.enter="handleQuery"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item
+ :style="{ width: '100%' }"
+ :label="$t('plan.query.requireTraceID')"
+ prop="requireTrackId"
+ >
+ <el-input
+ v-model="queryParams.requireTrackId"
+ :placeholder="`${$t('common.common.placeholder')}${$t(
+ 'plan.query.requireTraceID'
+ )}`"
+ clearable
+ @keyup.enter="handleQuery"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item
+ :style="{ width: '100%' }"
+ :label="$t('plan.query.itemNumber')"
+ prop="mainPartNumber"
+ >
+ <el-input
+ v-model="queryParams.mainPartNumber"
+ :placeholder="`${$t('common.common.placeholder')}${$t(
+ 'plan.query.itemNumber'
+ )}`"
+ clearable
+ @keyup.enter="handleQuery"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="20">
+ <el-col :span="8">
+ <el-form-item
+ :style="{ width: '100%' }"
+ :label="$t('plan.table.delayRiskIdentification')"
+ prop="hasDelayRisk"
+ >
+ <!-- <el-input
+ :style="{ width: locale == 'zh' ? '200px' : '280px' }"
+ v-model="queryParams.hasDelayRisk"
+ :placeholder="`${$t('common.common.placeholder')}${$t(
+ 'plan.table.delayRiskIdentification'
+ )}`"
clearable
@keyup.enter="handleQuery"
- />
- </el-form-item>
- <!-- <el-row type="flex" justify="left">
- <el-col :span="5"> -->
- <el-form-item label="闇�姹傝拷婧疘D" prop="description">
- <el-input
- style="width: 140px"
- v-model="queryParams.description"
- placeholder="璇疯緭鍏ラ渶姹傝拷婧疘D"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <!-- </el-col>
- <el-col :span="5"> -->
- <el-form-item label="鏂欏彿" prop="description">
- <el-input
- style="width: 140px"
- v-model="queryParams.description"
- placeholder="璇疯緭鍏ユ枡鍙�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="寤惰繜椋庨櫓鏍囪瘑" prop="description">
- <el-input
- style="width: 140px"
- v-model="queryParams.description"
- placeholder="璇疯緭鍏ユ枡鍙�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <!-- </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"
- >鏌ヨ</el-button
+ /> -->
+ <el-select
+ clearable
+ v-model="queryParams.hasDelayRisk"
+ >
+ <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="16"
+ style="
+ display: flex;
+ justify-content: flex-end;
+ align-item: center;
+ text-align: right;
+ "
>
- <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
- </el-form-item>
- <!-- </el-col>
- </el-row> -->
+ <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-form-item>
+ </el-col>
+ </el-row>
</el-form>
<el-row :gutter="10" class="mb8">
@@ -65,11 +113,11 @@
<el-button
type="primary"
plain
- icon="Plus"
+ icon="Refresh"
:disabled="multiple"
@click="handleBatchUpdatePlanDate"
- v-hasPermi="['apsPlatePlan:edit']"
- >鎵归噺鏇存柊宸ュ崟璁″垝鏃ユ湡</el-button
+ v-hasPermi="['ApsPlatOrderPlanManager:requirement:list']"
+ >{{ $t("plan.btns.batchUpdateOrderDate") }}</el-button
>
</el-col>
<el-col :span="1.5">
@@ -77,9 +125,10 @@
type="success"
plain
icon="Edit"
- @click="handleUpdate"
+ :disabled="loadingGenerateList"
+ @click="handleGenerateList"
v-hasPermi="['apsPlatePlan:edit']"
- >鐢熸垚閽i噾璁″垝宸ュ崟</el-button
+ >{{ $t("plan.btns.generatePlanOrder") }}</el-button
>
</el-col>
<right-toolbar
@@ -90,7 +139,7 @@
<HxlhTable
style="width: 100%"
:columns="columns"
- :data="calendarList"
+ :data="orderList"
:loading="loading"
:height="height"
ref="tableRef"
@@ -98,73 +147,182 @@
@changePageNo="changePageNo"
@changePageSize="changePageSize"
@on-checkbox="handleCheckboxChange"
- class="auto-height-grid"
>
<template #buttons="{ row }">
<el-button
type="primary"
link
+ @click="handleCheckLevels(row)"
+ v-hasPermi="['ApsPlatOrderPlanManager:requirement:list']"
+ >{{ $t("plan.btns.viewUpperLowerLevels") }}</el-button
+ >
+ <el-button
+ type="primary"
+ link
@click="handleCheckView(row)"
- v-hasPermi="['aps:calendar:update']"
- >鏌ョ湅闇�姹�</el-button
+ v-hasPermi="['ApsPlatOrderPlanManager:requirement:list']"
+ >{{ $t("plan.btns.viewRequirement") }}({{row.requireNum}})</el-button
>
</template>
</HxlhTable>
<el-dialog
- :title="'鏌ョ湅鍏宠仈闇�姹�'"
+ :title="$t('plan.title.viewAssociatedRequirements')"
v-model="openDialog"
- width="900px"
+ width="85%"
+ style="height:90vh; overflow: hidden"
append-to-body
>
<HxlhTable
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.close")
+ }}</el-button>
+ </span>
+ </template>
</el-dialog>
<el-dialog
- :title="'鎵归噺鏇存柊宸ュ崟璁″垝鏃ユ湡'"
+ :title="$t('plan.btns.batchUpdateOrderDate')"
v-model="openBatchDialog"
- width="900px"
+ width="85%"
+ style="min-height:90vh; overflow: hidden"
+ append-to-body
+ >
+ <div class="mode_box">
+ <span>{{ $t("plan.title.setMode") }}</span>
+ <el-radio-group v-model="radio" @change="changeRadioCustom">
+ <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" v-if="radio === 1">{{ $t("plan.title.tipsBugSheetMetal") }}</div>
+ <div class="red_color" v-if="radio === 2">{{ $t("plan.title.tipsBugSheetMetal2") }}</div>
+ <div class="mode_box" v-if="radio === 2">
+ <span>{{ $t("plan.title.CustomizePlannedCompletionDate") }}</span>
+ <!-- <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
+ v-if="radio === 1"
+ style="width: 100%"
+ :columns="subUpdateGridOptions"
+ :data="subUpdateList"
+ :loading="loading"
+ :height="heightSubUpdate"
+ >
+ </HxlhTable>
+ <HxlhTable
+ v-if="radio === 2"
+ style="width: 100%"
+ :columns="subUpdateCustomGridOptions"
+ :data="subUpdateList"
+ :loading="loading"
+ :height="heightSubUpdate"
+ >
+ </HxlhTable>
+ <template #footer>
+ <span class="dialog-footer">
+ <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>
+ <!-- 鏌ョ湅涓婁笅闃� -->
+ <el-dialog
+ :title="$t('plan.title.viewUpperLowerLevels')"
+ v-model="openUpperLowerDialog"
+ width="85%"
+ style="height:90vh; overflow: hidden"
append-to-body
>
<HxlhTable
style="width: 100%"
- :columns="subGridOptions"
- :data="subList"
- :loading="loading"
+ :columns="subUpAndDownGridOptions"
+ :data="subUpAndDownList"
+ :loading="loadingSubUpAndDown"
:height="heightSub"
>
</HxlhTable>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="openUpperLowerDialog = false">{{
+ $t("common.common.close")
+ }}</el-button>
+ </span>
+ </template>
</el-dialog>
</div>
</template>
-<script setup name="Calendar">
+<script setup name="SheetMetalOrderManage">
import HxlhTable from "@/components/HxlhTable";
-import {
- listCalendar,
- getCalendar,
- delCalendar,
- addCalendar,
- updateCalendar,
-} from "@/api/basicData/calendar";
-import axios from "axios";
+import { parseTime } from "@/utils/ruoyi.js";
+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 { selectProcessNameList } from "@/api/basicData/processRoute.js";
+import {
+ metalOrderManageList,
+ metalOrderManageSubList,
+ metalOrderManageUpAndDownList,
+ 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 { aps_work_order_type } = proxy.useDict("aps_work_order_type");
+const { aps_factory } = proxy.useDict("aps_factory");
+const { aps_has_risk } = proxy.useDict("aps_has_risk");
+const delayRiskOptions = ref([]);
+const radio = ref(1);
+const customicDate = ref("");
const openDialog = ref(false);
+const openUpperLowerDialog = ref(false);
const openBatchDialog = ref(false);
const subGridOptions = ref([]);
+const subUpAndDownGridOptions = ref([]);
+const subUpdateGridOptions = ref([]);
+const subUpdateCustomGridOptions = ref([]);
+const subUpAndDownList = ref([]);
+const subList = ref([]);
+const subUpdateList = ref([]);
// const tableRef = ref();
-const calendarList = ref([]);
-const loading = ref(true);
+const orderList = ref([]);
+const loading = ref(false);
+const loadingUpdateDate = ref(false);
+const loadingGenerateList = ref(false);
+const loadingSubUpAndDown = ref(false);
+const loadingSub = ref(false);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
@@ -178,23 +336,20 @@
queryParams: {
pageNum: 1,
pageSize: 10,
- description: null,
- type: null,
- effectiveDate: null,
- expiringDate: null,
- content: null,
- applicableFactory: null,
- applicableWorkshop: null,
- applicableProcess: null,
+ workOrderNo: null,
+ requireTrackId: null,
+ mainPartNumber: null,
+ hasDelayRisk: null,
},
});
const { queryParams, form, rules } = toRefs(data);
-const typeRadioNumber = ref(1);
const plantList = ref([]);
const shopList = ref([]);
const allShopList = ref([]);
const processList = ref([]);
-const height = ref(document.documentElement.clientHeight - 220 + "px;");
+const height = ref(document.documentElement.clientHeight - 320 + "px;");
+const heightSub = ref(document.documentElement.clientHeight - 200 + "px;");
+const heightSubUpdate = ref(document.documentElement.clientHeight - 270 + "px;");
// 琛ㄦ牸閰嶇疆-鍒楄〃
const columns = ref([]);
// 鍒嗛〉灞炴��
@@ -206,72 +361,91 @@
watch(
locale,
(newLocale) => {
- columns.value = [
- { type: "checkbox", width: 60, align: "center" },
+ delayRiskOptions.value = [
{
- title: t("basic.table.requirementID"),
- field: "description",
- width: 150,
- align: "center",
+ label: t("plan.options.hasRisk"),
+ value: "1",
},
{
+ label: t("plan.options.noRisk"),
+ value: "0",
+ },
+ ];
+ columns.value = [
+ { type: "checkbox", width: 60, align: "center", fixed: "left" },
+ // {
+ // title: t("basic.table.requirementID"),
+ // field: "requireId",
+ // width: 150,
+ // align: "center",
+ // },
+ {
title: t("basic.table.requirementTraceabilityID"),
- field: "type",
- width: 200,
+ field: "requireTrackId",
+ width: "auto",
align: "center",
},
{
title: t("plan.table.workOrderNo"),
- field: "effectiveDate",
- width: 200,
+ field: "workOrderNo",
+ width: "auto",
align: "center",
},
{
title: t("basic.table.matchQuantity"),
- field: "expiringDate",
- width: 200,
+ field: "deductionAmount",
+ width: "auto",
align: "center",
},
{
title: t("basic.table.workOrderType"),
- field: "expiringDate",
- width: 200,
+ field: "workOrderType",
+ width: "auto",
align: "center",
+ formatter: ({ cellValue, row, column }) => {
+ if (cellValue) {
+ for (let i = 0; i < aps_work_order_type.value.length; i++) {
+ if (cellValue === aps_work_order_type.value[i].value) {
+ return aps_work_order_type.value[i].label;
+ }
+ }
+ }
+ },
},
{
title: t("plan.table.itemNumber"),
- field: "createTime",
- width: 200,
+ field: "mainPartNumber",
+ width: "auto",
align: "center",
},
{
title: t("plan.table.mainPartDrawingNumber"),
- field: "createTime",
- width: 200,
+ field: "mainPartDrawingNumber",
+ width: "auto",
align: "center",
},
{
title: t("basic.table.mainCustomer"),
- field: "createTime",
- width: 200,
+ field: "customer",
+ width: "auto",
align: "center",
},
{
title: t("plan.table.productionQuantity"),
- field: "updateTime",
- width: 100,
+ field: "productionQuantity",
+ width: "auto",
align: "center",
},
{
title: t("basic.table.applicableFactories"),
- field: "applicableFactory",
- width: 200,
+ field: "applicableFactories",
+ width: 100,
align: "center",
formatter: ({ cellValue, row, column }) => {
if (cellValue) {
- for (let i = 0; i < plantList.value.length; i++) {
- if (cellValue === plantList.value[i].plantCode) {
- return plantList.value[i].plantName;
+ for (let i = 0; i < aps_factory.value.length; i++) {
+ if (cellValue === aps_factory.value[i].value) {
+ return aps_factory.value[i].label;
}
}
}
@@ -279,43 +453,52 @@
},
{
title: t("plan.table.productionBase"),
- field: "updateTime",
- width: 100,
+ field: "productionBase",
+ width: "auto",
align: "center",
},
{
title: t("plan.table.planStartDay"),
- field: "updateTime",
- width: 100,
+ field: "planStartDay",
+ width: "auto",
align: "center",
},
{
title: t("plan.table.planEndDayDate"),
- field: "updateTime",
- width: 100,
+ field: "planEndDay",
+ width: "auto",
align: "center",
},
{
title: t("plan.table.workorderCreationTime"),
- field: "updateTime",
- width: 100,
+ field: "orderCreateTime",
+ width: "auto",
align: "center",
},
{
title: t("plan.table.mismatchedProductionQuantity"),
- field: "updateTime",
- width: 100,
+ field: "unmatchedQuantity",
+ width: "auto",
align: "center",
},
{
title: t("plan.table.delayRiskIdentification"),
- field: "updateTime",
+ field: "hasDelayRisk",
width: 100,
align: "center",
+ formatter: ({ cellValue, row, column }) => {
+ if (cellValue) {
+ for (let i = 0; i < aps_has_risk.value.length; i++) {
+ if (cellValue === aps_has_risk.value[i].value) {
+ return aps_has_risk.value[i].label;
+ }
+ }
+ }
+ },
},
{
- title: "鎿嶄綔",
- width: 100,
+ title: t("common.common.require"),
+ width: "auto",
fixed: "right",
slots: { default: "buttons" },
align: "center",
@@ -324,98 +507,302 @@
subGridOptions.value = [
{
title: t("basic.table.requirementID"),
- field: "description",
+ field: "id",
width: 150,
align: "center",
},
- {
- title: t("basic.table.requirementTraceabilityID"),
- field: "type",
- width: 200,
- align: "center",
- },
+ // {
+ // title: t("basic.table.requirementTraceabilityID"),
+ // 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",
- width: 200,
- align: "center",
- },
- {
- title: t("plan.table.processRouteWorkingHours"),
- field: "updateTime",
- width: 100,
- align: "center",
- },
+ // {
+ // title: t("basic.table.processRouteID"),
+ // field: "processRouteId",
+ // width: 200,
+ // align: "center",
+ // },
+ // {
+ // title: t("plan.table.processRouteWorkingHours"),
+ // 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",
- width: 100,
- align: "center",
- },
- {
- title: t("plan.table.requirementPlanCompletionDate"),
- 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",
+ formatter: ({ cellValue, row, column }) => {
+ if (cellValue) {
+ for (let i = 0; i < aps_factory.value.length; i++) {
+ if (cellValue === aps_factory.value[i].value) {
+ return aps_factory.value[i].label;
+ }
+ }
+ }
+ },
},
{
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",
+ formatter: ({ cellValue, row, column }) => {
+ if (cellValue) {
+ for (let i = 0; i < aps_has_risk.value.length; i++) {
+ if (cellValue === aps_has_risk.value[i].value) {
+ return aps_has_risk.value[i].label;
+ }
+ }
+ }
+ },
+ },
+ ];
+ subUpAndDownGridOptions.value = [
+ {
+ title: t("plan.table.documentNumber"),
+ field: "documentNumber",
+ align: "center",
+ },
+ {
+ title: t("plan.table.level"),
+ field: "requirementType",
+ align: "center",
+ },
+ {
+ title: t("plan.table.itemNumber"),
+ field: "itemNumber",
+ align: "center",
+ },
+ {
+ title: t("plan.table.planStartDay"),
+ field: "planStartDay",
+ align: "center",
+ },
+ {
+ title: t("plan.table.planEndDay"),
+ field: "planEndDay",
+ align: "center",
+ },
+ {
+ title: t("plan.table.productionQuantity"),
+ field: "productionQuantity",
+ align: "center",
+ },
+ ]
+ subUpdateGridOptions.value = [
+ // {
+ // title: t("basic.table.requirementID"),
+ // field: "requireId",
+ // width: 150,
+ // align: "center",
+ // },
+ {
+ title: t("basic.table.requirementTraceabilityID"),
+ field: "requireTrackId",
+ width: 200,
+ align: "center",
+ },
+ {
+ title: t("plan.table.workOrderNo"),
+ field: "workOrderNo",
+ width: 200,
+ align: "center",
+ },
+ {
+ title: t("basic.table.matchQuantity"),
+ field: "deductionAmount",
+ width: 200,
+ align: "center",
+ },
+ {
+ title: t("basic.table.workOrderType"),
+ field: "workOrderType",
+ width: 200,
+ align: "center",
+ formatter: ({ cellValue, row, column }) => {
+ if (cellValue) {
+ for (let i = 0; i < aps_work_order_type.value.length; i++) {
+ if (cellValue === aps_work_order_type.value[i].value) {
+ return aps_work_order_type.value[i].label;
+ }
+ }
+ }
+ },
+ },
+ {
+ title: t("plan.table.itemNumber"),
+ field: "mainPartNumber",
+ width: 200,
+ align: "center",
+ },
+ {
+ title: t("plan.table.planStartDay"),
+ field: "planStartDay",
+ width: 200,
+ align: "center",
+ },
+ {
+ title: t("plan.table.planEndDayDate"),
+ field: "planEndDay",
+ width: 200,
+ align: "center",
+ },
+ {
+ title: t("plan.table.startDateOfDemandPlan"),
+ field: "startDate",
+ width: 200,
+ align: "center",
+ },
+ {
+ title: t("plan.table.requirementPlanCompletionDate"),
+ field: "completeDate",
+ width: 200,
+ align: "center",
+ },
+ ];
+ subUpdateCustomGridOptions.value = [
+ // {
+ // title: t("basic.table.requirementID"),
+ // field: "requireId",
+ // width: 150,
+ // align: "center",
+ // },
+ {
+ title: t("basic.table.requirementTraceabilityID"),
+ field: "requireTrackId",
+ width: 200,
+ align: "center",
+ },
+ {
+ title: t("plan.table.workOrderNo"),
+ field: "workOrderNo",
+ width: 200,
+ align: "center",
+ },
+ {
+ title: t("basic.table.matchQuantity"),
+ field: "deductionAmount",
+ width: 200,
+ align: "center",
+ },
+ {
+ title: t("basic.table.workOrderType"),
+ field: "workOrderType",
+ width: 200,
+ align: "center",
+ formatter: ({ cellValue, row, column }) => {
+ if (cellValue) {
+ for (let i = 0; i < aps_work_order_type.value.length; i++) {
+ if (cellValue === aps_work_order_type.value[i].value) {
+ return aps_work_order_type.value[i].label;
+ }
+ }
+ }
+ },
+ },
+ {
+ title: t("plan.table.itemNumber"),
+ field: "mainPartNumber",
+ width: 200,
+ align: "center",
+ },
+ {
+ title: t("plan.table.planStartDay"),
+ field: "planStartDay",
+ width: 200,
+ align: "center",
+ },
+ {
+ title: t("plan.table.planEndDayDate"),
+ field: "planEndDay",
+ width: 200,
+ align: "center",
+ },
+ {
+ title: t("plan.table.customizePlannedCompletionDate"),
+ field: "customTime",
+ width: 200,
align: "center",
},
];
@@ -425,70 +812,127 @@
deep: true,
}
);
-function handleBatchUpdatePlanDate(){
- openBatchDialog.value = 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;
- // listProcessRoute({ workOrderNo: row.documentNumber }).then((data) => {
- // subList.value = data.rows;
- // });
+ loadingSub.value = true;
+ metalOrderManageSubList(row.workOrderNo)
+ .then((res) => {
+ subList.value = res;
+ loadingSub.value = false;
+ })
+ .catch(() => {
+ loadingSub.value = false;
+ });
}
-/** 鏌ヨ鏃ュ巻绠$悊鍒楄〃 */
+function handleCheckLevels(row) {
+ openUpperLowerDialog.value = true;
+ loadingSubUpAndDown.value = true;
+ metalOrderManageUpAndDownList({requireId: row.requireId}).then((res) => {
+ console.log(res,"metalOrderManageUpAndDownList");
+ subUpAndDownList.value = res.rows;
+ loadingSubUpAndDown.value = false;
+ }).catch(() => {
+ loadingSubUpAndDown.value = false;
+ });
+}
+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;
- listCalendar(queryParams.value).then((response) => {
- calendarList.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);
+ metalOrderManageList(queryParams.value)
+ .then((response) => {
+ orderList.value = response.rows;
+ page.value.total = response.total;
+ loading.value = false;
+ })
+ .catch((res) => {
+ loading.value = false;
});
}
-// 鍙栨秷鎸夐挳
-function cancel() {
- open.value = false;
- reset();
-}
-
-// 琛ㄥ崟閲嶇疆
-function reset() {
- form.value = {
- id: null,
- description: null,
- type: "1",
- effectiveDate: null,
- expiringDate: null,
- content: null,
- applicableFactory: null,
- applicableWorkshop: null,
- applicableProcess: null,
- createBy: null,
- createTime: null,
- updateBy: null,
- updateTime: null,
- };
- proxy.resetForm("calendarRef");
-}
-
+// 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();
}
@@ -497,29 +941,6 @@
function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
-}
-
-// 澶氶�夋閫変腑鏁版嵁
-function handleSelectionChange(selection) {
- ids.value = selection.map((item) => item.id);
- single.value = selection.length != 1;
- multiple.value = !selection.length;
-}
-
-/** 鏂板鎸夐挳鎿嶄綔 */
-async function handleAdd() {
- reset();
- open.value = true;
- title.value = "娣诲姞鏃ュ巻绠$悊";
-}
-/** 閫夋嫨宸ュ巶鍚庝簨浠� 鍔犺浇杞﹂棿 鍜� 宸ュ簭 **/
-function changePlant(plant) {
- listAps_shop({ plantCode: plant }).then((response) => {
- shopList.value = response.rows;
- });
- selectProcessNameList({ orgCode: plant }).then((response) => {
- processList.value = response.rows;
- });
}
function changePageNo(currentPage) {
queryParams.value.pageNum = currentPage;
@@ -534,9 +955,11 @@
}
// 澶氶�夋閫変腑鏁版嵁
const handleCheckboxChange = (data) => {
+ console.log(data, "handleCheckboxChange");
ids.value = data.records.map((item) => item.id);
single.value = data.records.length !== 1;
multiple.value = !data.records.length;
+ subUpdateList.value = data.records;
};
onMounted(() => {
getList();
@@ -546,55 +969,18 @@
.column-with-margin {
margin-right: 0px;
}
-.title_bar_line {
- display: flex;
- justify-content: flex-start;
- align-items: center;
- color: #333;
+.mode_box {
+ margin-left: 30px;
margin-bottom: 10px;
- .line_short {
- width: 5%;
- height: 1px;
- margin-right: 20px;
- border-top: 1px solid #ddd;
- }
- .line_long {
- width: 60%;
- height: 1px;
- margin-left: 20px;
- border-top: 1px solid #ddd;
+ & span {
+ padding-right: 20px;
}
}
-.week_flex {
- display: flex;
- justify-content: flex-start;
- align-content: center;
- color: #606266;
- font-weight: 700;
- margin-left: 20px;
- &.mt20 {
- margin-top: 20px;
- margin-left: 0 !important;
- }
- .week_flex_item {
- &:nth-child(1) {
- margin-top: 5px;
- }
- &:nth-child(2) {
- margin-left: 20px;
- }
- }
-}
-.factory_use_item {
- margin-top: 10px;
+.red_color {
+ color: #f56c6c;
+ margin-bottom: 10px;
}
.mart5 {
margin-top: 5px;
-}
-.custom-height {
- height: 200px; /* 鎴栬�呬娇鐢� min-height */
-}
-.auto-height-grid .xe-body .xe-body--row {
- height: auto; /* 鎴栬�呬娇鐢� min-height */
}
</style>
--
Gitblit v1.9.3