From a97e6a39327a857ff2a5f48856941e651cbdd050 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期一, 01 六月 2026 15:00:24 +0800
Subject: [PATCH] 采购审批增加仓库
---
src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js | 7 ++++---
src/views/officeProcessAutomation/ApproveManage/approve-list/index.vue | 37 ++++++++++++++++++++++++++++++++++++-
src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js | 6 ++++--
3 files changed, 44 insertions(+), 6 deletions(-)
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js b/src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js
index e2f1e45..677e0bc 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js
@@ -460,6 +460,7 @@
purchaseContractNumber: row.purchaseContractNumber || "",
quotationNo: row.quotationNo || "",
shippingNo: row.shippingNo || "",
+ warehouse: row.warehouse || "",
};
}
@@ -473,12 +474,13 @@
}
/** 缁勮瀹℃壒鎻愪氦 DTO */
-export function buildApproveInstanceDto(row, uiResult, comment) {
+export function buildApproveInstanceDto(row, uiResult, comment, warehouse) {
const opinion = (comment || "").trim();
return {
id: row?.id,
approveAction: mapApproveActionToApi(uiResult),
approveComment: opinion || (uiResult === "approved" ? "鍚屾剰" : ""),
+ warehouse: warehouse || row?.warehouse || "",
};
}
@@ -609,4 +611,4 @@
export function initTemplateAttachmentsFromSnapshot(templateSnapshot) {
const list = templateSnapshot?.storageBlobDTOs;
return list?.length ? JSON.parse(JSON.stringify(list)) : [];
-}
+}
\ No newline at end of file
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-list/index.vue b/src/views/officeProcessAutomation/ApproveManage/approve-list/index.vue
index 92b0372..282bdc5 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-list/index.vue
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-list/index.vue
@@ -298,6 +298,20 @@
<InstanceFlowDisplay :tasks="approveDialog.row?.tasks" :nodes="approveDialog.row?.flowNodes" />
</div>
<el-form label-width="100px" class="mt16">
+ <el-form-item label="浠撳簱" v-if="isPurchaseApproval">
+ <el-select
+ v-model="approveDialog.warehouse"
+ placeholder="璇烽�夋嫨浠撳簱"
+ clearable
+ >
+ <el-option
+ v-for="item in warehouseOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item>
<el-form-item label="瀹℃壒鎰忚" required>
<el-input
v-model="approveOpinion"
@@ -335,7 +349,8 @@
<script setup>
import { Plus, RefreshRight } from "@element-plus/icons-vue";
import { ElMessage } from "element-plus";
-import { computed, onMounted, ref } from "vue";
+import { computed, onMounted, ref, reactive } from "vue";
+import { getDicts } from "@/api/system/dict/data";
import { APPROVAL_MODULE_KEYS } from "../approve-shared/approvalModuleRegistry.js";
import FinReimburseApprovePanel from "../../ReimburseManage/shared/components/FinReimburseApprovePanel.vue";
import ApprovalTemplateFormSection from "../approve-shared/components/ApprovalTemplateFormSection.vue";
@@ -400,6 +415,25 @@
openDetail,
openApprove,
} = al;
+
+// 浠撳簱閫夐」
+const warehouseOptions = ref([]);
+
+// 鑾峰彇浠撳簱瀛楀吀鏁版嵁
+const loadWarehouseOptions = async () => {
+ const res = await getDicts("warehouse");
+ if (res.code === 200) {
+ warehouseOptions.value = res.data.map((item) => ({
+ label: item.dictLabel,
+ value: item.dictValue,
+ }));
+ }
+};
+
+// 鏄惁涓洪噰璐鎵�
+const isPurchaseApproval = computed(() => {
+ return Number(approveDialog.row?.businessType) === 5;
+});
const { flowUserOptions, loadFlowUsers } = useFlowUserOptions();
@@ -473,6 +507,7 @@
onMounted(() => {
loadFlowUsers();
loadSearchBusinessTypeOptions();
+ loadWarehouseOptions();
handleQuery();
});
</script>
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js b/src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js
index f61e038..2dd2474 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js
@@ -82,7 +82,7 @@
const detailRow = ref({});
const detailData = ref({});
- const approveDialog = reactive({ visible: false, row: null });
+ const approveDialog = reactive({ visible: false, row: null, warehouse: ''});
const approveOpinion = ref("");
const approveSubmitting = ref(false);
@@ -366,6 +366,7 @@
}
approveDialog.row = { ...row };
approveOpinion.value = "";
+ approveDialog.warehouse = row?.warehouse || '';
const bizType = Number(row.businessType);
// 鎶ヤ环瀹℃壒锛氱敤瀹℃壒浜嬬敱瀛楁鎵胯浇鐨�"鎶ヤ环鍗曞彿"鍘绘煡鎶ヤ环鍒楄〃
if (bizType === 6) {
@@ -642,7 +643,7 @@
approveSubmitting.value = true;
try {
await approveApprovalInstance(
- buildApproveInstanceDto(row, result, approveOpinion.value)
+ buildApproveInstanceDto(row, result, approveOpinion.value, approveDialog.warehouse)
);
reimburseDialog.visible = false;
await fetchApprovalList();
@@ -665,7 +666,7 @@
approveSubmitting.value = true;
try {
await approveApprovalInstance(
- buildApproveInstanceDto(row, result, approveOpinion.value)
+ buildApproveInstanceDto(row, result, approveOpinion.value, approveDialog.warehouse)
);
approveDialog.visible = false;
await fetchApprovalList();
--
Gitblit v1.9.3