From da004bc93d20874eee8ccd33fd3b246674a4531f Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期五, 27 三月 2026 10:54:52 +0800
Subject: [PATCH] 工艺路线绑定
---
src/views/salesManagement/salesLedger/index.vue | 98 +++++++++++++++++++++++++++++++++----------------
1 files changed, 66 insertions(+), 32 deletions(-)
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index b9a0e84..dd209c7 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -31,6 +31,8 @@
</div>
<ProcessFlowConfigSelectDialog
v-model:visible="processFlowSelectDialogVisible"
+ :default-route-id="processFlowSelectDefaultRouteId"
+ :bound-route-name="processFlowSelectBoundRouteName"
@confirm="handleProcessFlowSelectConfirm"
/>
<div>
@@ -992,12 +994,14 @@
delLedgerFile,
getProductInventory,
salesLedgerProductProcessList,
+ saleProcessBind,
+ getSaleProcessBindInfo,
} from "@/api/salesManagement/salesLedger.js";
import { modelList, productTreeList } from "@/api/basicData/product.js";
import useFormData from "@/hooks/useFormData.js";
import dayjs from "dayjs";
import { getCurrentDate } from "@/utils/index.js";
-import { salesLedgerProductSetProcessFlowConfig } from "@/api/salesManagement/salesProcessFlowConfig.js";
+// import { salesLedgerProductSetProcessFlowConfig } from "@/api/salesManagement/salesProcessFlowConfig.js";
const userStore = useUserStore();
const { proxy } = getCurrentInstance();
@@ -1020,6 +1024,9 @@
// 宸ヨ壓璺嚎閰嶇疆閫夋嫨寮圭獥锛堢粦瀹氬埌鍙拌处浜у搧锛�
const processFlowSelectDialogVisible = ref(false);
const processFlowSelectLedgerRow = ref(null);
+const processFlowSelectDefaultRouteId = ref(null);
+const processFlowSelectBoundRouteId = ref(null);
+const processFlowSelectBoundRouteName = ref("");
// 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁
const operationType = ref("");
@@ -1420,52 +1427,79 @@
};
// 鎵撳紑鈥滃伐鑹鸿矾绾块厤缃�濋�夋嫨寮圭獥锛堝繀椤绘樉寮忛�夋嫨锛�
-const openProcessFlowSelect = (ledgerRow) => {
+const openProcessFlowSelect = async (ledgerRow) => {
if (!ledgerRow) return;
if (!ledgerRow.isEdit) return;
+
processFlowSelectLedgerRow.value = ledgerRow;
+ processFlowSelectDefaultRouteId.value = null;
+ processFlowSelectBoundRouteId.value = null;
+ processFlowSelectBoundRouteName.value = "";
+
+ try {
+ const res = await getSaleProcessBindInfo(ledgerRow.id);
+ const info = res?.data ?? res ?? {};
+ const boundId =
+ info?.processRouteId ??
+ info?.routeId ??
+ info?.id ??
+ null;
+ const boundName =
+ info?.processRouteName ??
+ info?.routeName ??
+ info?.name ??
+ "";
+ processFlowSelectBoundRouteId.value = boundId;
+ processFlowSelectBoundRouteName.value = boundName;
+ processFlowSelectDefaultRouteId.value = boundId;
+ } catch (e) {
+ // 鏌ヨ澶辫触鏃舵寜鏈粦瀹氬鐞嗭紝涓嶉樆濉炲脊绐�
+ processFlowSelectBoundRouteId.value = null;
+ processFlowSelectBoundRouteName.value = "";
+ processFlowSelectDefaultRouteId.value = null;
+ }
+
processFlowSelectDialogVisible.value = true;
};
-// 灏嗛厤缃簲鐢ㄥ埌鍙拌处涓嬬殑鎵�鏈夋湭鍙戣揣浜у搧
-const handleProcessFlowSelectConfirm = async (configId) => {
+// 缁戝畾宸ヨ壓璺嚎鍒板綋鍓嶅彴璐︽暟鎹�
+const handleProcessFlowSelectConfirm = async (routeId) => {
const ledgerRow = processFlowSelectLedgerRow.value;
if (!ledgerRow?.id) return;
- const finalConfigId = configId ?? null;
- if (!finalConfigId) return;
+ const finalRouteId = routeId ?? null;
+ if (!finalRouteId) return;
- proxy?.$modal?.loading?.("姝e湪搴旂敤宸ヨ壓璺嚎閰嶇疆锛岃绋嶅��...");
- try {
- const res = await productList({ salesLedgerId: ledgerRow.id, type: 1 });
- const products = res?.data ?? res?.records ?? res ?? [];
- if (!Array.isArray(products) || products.length === 0) {
- proxy?.$modal?.msgWarning?.("璇ュ彴璐︿笅娌℃湁浜у搧鏁版嵁");
+ const oldRouteId = processFlowSelectBoundRouteId.value;
+ if (oldRouteId !== null && oldRouteId !== undefined && oldRouteId !== "" && String(oldRouteId) !== String(finalRouteId)) {
+ try {
+ await ElMessageBox.confirm(
+ "璇ヨ鍗曞凡缁戝畾宸ヨ壓璺嚎锛屾槸鍚︾‘瀹氭洿鎹紵",
+ "鎻愮ず",
+ {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ }
+ );
+ } catch {
return;
}
+ }
- for (const product of products) {
- // 宸插彂璐�/瀹℃牳閫氳繃涓嶅彲缂栬緫锛岃烦杩�
- if (isProductShipped(product)) continue;
- await salesLedgerProductSetProcessFlowConfig({
- salesLedgerProductId: product.id,
- processFlowConfigId: finalConfigId,
- });
- }
+ proxy?.$modal?.loading?.("姝e湪缁戝畾宸ヨ壓璺嚎锛岃绋嶅��...");
+ try {
+ await saleProcessBind({
+ salesLedgerId: ledgerRow.id,
+ processRouteId: finalRouteId,
+ });
- proxy?.$modal?.msgSuccess?.("宸ヨ壓璺嚎閰嶇疆搴旂敤鎴愬姛");
-
- // 鑻ュ綋鍓嶈宸插睍寮�锛屽埛鏂板叾瀛愪骇鍝佸垪琛�
- if (expandedRowKeys.value.includes(ledgerRow.id)) {
- const childRes = await productList({ salesLedgerId: ledgerRow.id, type: 1 });
- const children = childRes?.data ?? childRes?.records ?? childRes ?? [];
- const index = tableData.value.findIndex((item) => item.id === ledgerRow.id);
- if (index > -1) {
- tableData.value[index].children = children;
- }
- }
+ proxy?.$modal?.msgSuccess?.("宸ヨ壓璺嚎缁戝畾鎴愬姛");
+ processFlowSelectDialogVisible.value = false;
+ // 缁戝畾鍚庡埛鏂板垪琛紝纭繚鎿嶄綔鍒楀啀娆$偣鍑昏兘鍥炴樉缁戝畾
+ await getList();
} catch (e) {
- proxy?.$modal?.msgError?.("搴旂敤澶辫触锛岃绋嶅悗閲嶈瘯");
+ proxy?.$modal?.msgError?.("缁戝畾澶辫触锛岃绋嶅悗閲嶈瘯");
} finally {
proxy?.$modal?.closeLoading?.();
}
--
Gitblit v1.9.3