From e75ff849e33dd95b66ba62e7df8b553b83c654f7 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期五, 16 一月 2026 10:20:01 +0800
Subject: [PATCH] fix: 生产订单-添加生产结构查询
---
src/views/productionManagement/productStructure/Detail/index.vue | 33 ++++++++++++----
src/views/productionManagement/productionOrder/index.vue | 22 +++++++++++
src/api/productionManagement/productionOrder.js | 9 ++++
3 files changed, 56 insertions(+), 8 deletions(-)
diff --git a/src/api/productionManagement/productionOrder.js b/src/api/productionManagement/productionOrder.js
index 241baa5..9f110a7 100644
--- a/src/api/productionManagement/productionOrder.js
+++ b/src/api/productionManagement/productionOrder.js
@@ -36,6 +36,15 @@
});
}
+// 鐢熶骇璁㈠崟-鏌ヨ浜у搧缁撴瀯鍒楄〃
+export function listProcessBom(query) {
+ return request({
+ url: "/productOrder/listProcessBom",
+ method: "get",
+ params: query,
+ });
+}
+
// 鑾峰彇鐐掓満姝e湪宸ヤ綔閲忔暟鎹�
export function schedulingList(query) {
return request({
diff --git a/src/views/productionManagement/productStructure/Detail/index.vue b/src/views/productionManagement/productStructure/Detail/index.vue
index b702eb7..75f936e 100644
--- a/src/views/productionManagement/productStructure/Detail/index.vue
+++ b/src/views/productionManagement/productStructure/Detail/index.vue
@@ -2,19 +2,20 @@
<div class="app-container">
<PageHeader content="浜у搧缁撴瀯璇︽儏">
<template #right-button>
- <el-button v-if="dataValue.isEdit"
+ <el-button v-if="dataValue.isEdit && !isOrderPage"
type="primary"
@click="addItem">娣诲姞
</el-button>
- <el-button v-if="!dataValue.isEdit"
+ <el-button v-if="!dataValue.isEdit && !isOrderPage"
type="primary"
@click="dataValue.isEdit = true">缂栬緫
</el-button>
- <el-button v-if="dataValue.isEdit"
+ <el-button v-if="dataValue.isEdit && !isOrderPage"
type="primary"
@click="cancelEdit">鍙栨秷
</el-button>
- <el-button type="primary"
+ <el-button v-if="!isOrderPage"
+ type="primary"
:loading="dataValue.loading"
@click="submit"
:disabled="!dataValue.isEdit">纭
@@ -123,7 +124,8 @@
</el-table-column>
<el-table-column label="鎿嶄綔" fixed="right" width="100">
<template #default="{ row, $index }">
- <el-button type="danger"
+ <el-button v-if="dataValue.isEdit"
+ type="danger"
text
@click="dataValue.dataList.splice($index, 1)">鍒犻櫎
</el-button>
@@ -154,6 +156,7 @@
ref,
} from "vue";
import { queryList, add } from "@/api/productionManagement/productStructure.js";
+import { listProcessBom } from "@/api/productionManagement/productionOrder.js";
import { list } from "@/api/productionManagement/productionProcess";
import { ElMessage } from "element-plus";
import {useRoute, useRouter} from "vue-router";
@@ -183,6 +186,9 @@
const routeBomNo = computed(() => route.query.bomNo || '');
const routeProductName = computed(() => route.query.productName || '');
const routeProductModelName = computed(() => route.query.productModelName || '');
+const routeOrderId = computed(() => route.query.orderId);
+const pageType = computed(() => route.query.type);
+const isOrderPage = computed(() => pageType.value === 'order' && routeOrderId.value);
const dataValue = reactive({
dataList: [],
@@ -208,9 +214,15 @@
};
const fetchData = async () => {
- const { data } = await queryList(routeId.value);
- // 浜у搧淇℃伅浠庤矾鐢卞弬鏁拌幏鍙栵紝浼樺厛浣跨敤璺敱鍙傛暟
- dataValue.dataList = data || [];
+ if (isOrderPage.value) {
+ // 璁㈠崟鎯呭喌锛氫娇鐢ㄨ鍗曠殑浜у搧缁撴瀯鎺ュ彛
+ const { data } = await listProcessBom({ orderId: routeOrderId.value });
+ dataValue.dataList = data || [];
+ } else {
+ // 闈炶鍗曟儏鍐碉細浣跨敤鍘熸潵鐨勬帴鍙�
+ const { data } = await queryList(routeId.value);
+ dataValue.dataList = data || [];
+ }
};
const fetchProcessOptions = async () => {
@@ -276,6 +288,11 @@
tableData[0].model = routeProductModelName.value;
tableData[0].bomNo = routeBomNo.value;
+ // 璁㈠崟鎯呭喌涓嬬鐢ㄧ紪杈�
+ if (isOrderPage.value) {
+ dataValue.isEdit = false;
+ }
+
fetchData();
fetchProcessOptions();
});
diff --git a/src/views/productionManagement/productionOrder/index.vue b/src/views/productionManagement/productionOrder/index.vue
index 9a13a40..9250eb8 100644
--- a/src/views/productionManagement/productionOrder/index.vue
+++ b/src/views/productionManagement/productionOrder/index.vue
@@ -97,6 +97,7 @@
productOrderListPage,
listProcessRoute,
bindingRoute,
+ listProcessBom,
} from "@/api/productionManagement/productionOrder.js";
import { listMain as getOrderProcessRouteMain } from "@/api/productionManagement/productProcessRoute.js";
const { proxy } = getCurrentInstance();
@@ -181,6 +182,13 @@
showHide: row => !row.processRouteCode,
clickFun: row => {
openBindRouteDialog(row);
+ },
+ },
+ {
+ name: "浜у搧缁撴瀯",
+ type: "text",
+ clickFun: row => {
+ showProductStructure(row);
},
},
],
@@ -341,6 +349,20 @@
}
};
+ const showProductStructure = row => {
+ router.push({
+ path: "/productionManagement/productStructureDetail",
+ query: {
+ id: row.id,
+ bomNo: row.bomNo || "",
+ productName: row.productCategory || "",
+ productModelName: row.specificationModel || "",
+ orderId: row.id,
+ type: "order",
+ },
+ });
+ };
+
// 瀵煎嚭
const handleOut = () => {
ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
--
Gitblit v1.9.3