From 8d36dd0ec84133585443750e2001147d5bc127c8 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期日, 20 九月 2026 20:40:42 +0800
Subject: [PATCH] 新疆-融邦 1.油品出库要绑定销售订单
---
src/views/inventoryManagement/dispatchLog/Record.vue | 38 +++++++++++++------
src/views/inventoryManagement/stockManagement/OilStockOutDialog.vue | 42 +++++++++++++++++----
src/views/salesManagement/salesLedger/index.vue | 24 ++++++------
3 files changed, 72 insertions(+), 32 deletions(-)
diff --git a/src/views/inventoryManagement/dispatchLog/Record.vue b/src/views/inventoryManagement/dispatchLog/Record.vue
index feb7bf5..5881142 100644
--- a/src/views/inventoryManagement/dispatchLog/Record.vue
+++ b/src/views/inventoryManagement/dispatchLog/Record.vue
@@ -307,11 +307,19 @@
width="110"
align="center">
<template #default="scope">
- <el-button v-if="isSalesOutRecord(scope.row)"
- link
- type="primary"
- @click="openResidualOil(scope.row)">褰曞叆娈嬫补
- </el-button>
+ <!-- 瀹℃壒閫氳繃鎵嶈兘褰曞叆娈嬫补锛涙湭閫氳繃鏃剁疆鐏板苟鎻愮ず鍘熷洜 -->
+ <el-tooltip v-if="isSalesOutRecord(scope.row)"
+ :disabled="isApprovedApproval(scope.row.approvalStatus)"
+ content="瀹℃壒閫氳繃鍚庢墠鑳藉綍鍏ユ畫娌�"
+ placement="top">
+ <span>
+ <el-button link
+ type="primary"
+ :disabled="!isApprovedApproval(scope.row.approvalStatus)"
+ @click="openResidualOil(scope.row)">褰曞叆娈嬫补
+ </el-button>
+ </span>
+ </el-tooltip>
</template>
</el-table-column>
</el-table>
@@ -477,15 +485,16 @@
return approvalStatusLabelMap[status] || "寰呭鎵�";
};
+ // 瀹℃壒閫氳繃鍒ゅ畾锛氭暟瀛�/瀛楃涓�/鑻辨枃鏋氫妇涓夌鍐欐硶鍚庣閮藉嚭鐜拌繃锛岀粺涓�鍦ㄨ繖閲屽厹浣�
+ const isApprovedApproval = status =>
+ status === 1 ||
+ status === "1" ||
+ status === "approved" ||
+ status === "APPROVED";
+
// 閫氳繃/椹冲洖鍥哄畾鑹诧紱鍏朵綑锛堝惈寰呭鎵广�佺┖鍊笺�佹湭鏄犲皠浣嗘枃妗堜负寰呭鎵癸級缁熶竴鐢� warning 棰勮鑹�
const getApprovalStatusTagType = status => {
- if (
- status === 1 ||
- status === "1" ||
- status === "approved" ||
- status === "APPROVED"
- )
- return "success";
+ if (isApprovedApproval(status)) return "success";
if (
status === 2 ||
status === "2" ||
@@ -602,6 +611,11 @@
const isSalesOutRecord = row => row?.outCategory === "閿�鍞�";
const openResidualOil = row => {
+ // 鎸夐挳宸茬疆鐏帮紝杩欓噷鍐嶅厹涓�灞傦紝闃叉鍏跺畠鍏ュ彛缁曡繃
+ if (!isApprovedApproval(row?.approvalStatus)) {
+ proxy.$modal.msgWarning("瀹℃壒閫氳繃鍚庢墠鑳藉綍鍏ユ畫娌�");
+ return;
+ }
residualForm.value = {
id: row.id,
outboundBatches: row.outboundBatches || "",
diff --git a/src/views/inventoryManagement/stockManagement/OilStockOutDialog.vue b/src/views/inventoryManagement/stockManagement/OilStockOutDialog.vue
index a3c01df..587b66e 100644
--- a/src/views/inventoryManagement/stockManagement/OilStockOutDialog.vue
+++ b/src/views/inventoryManagement/stockManagement/OilStockOutDialog.vue
@@ -500,7 +500,7 @@
import { allOilDepot } from "@/api/basicData/oilDepot.js";
import { allTankInfo } from "@/api/basicData/tankInfo.js";
import { allVehicle } from "@/api/basicData/vehicle.js";
- import { listCustomer } from "@/api/basicData/customer.js";
+ import { listCustomer, getCustomer } from "@/api/basicData/customer.js";
const props = defineProps({
visible: {
@@ -728,6 +728,30 @@
}
};
+ // 鍙拌处甯﹀洖鐨勫鎴凤細customerChange 鍙槸 el-select 鐨� @change锛屽�肩敱 v-model 鍐欙紝杩欓噷瑕佹樉寮忚祴鍊�
+ const applyLedgerCustomer = row => {
+ formState.value.customerId = row.customerId;
+ const customer = customerList.value.find(item => item.id === row.customerId);
+ if (customer) {
+ customerChange(customer.id);
+ return;
+ }
+ formState.value.customerName = row.customerName || "";
+ if (!row.customerId) return;
+ // 瀹㈡埛妗f涓嬫媺閲屾病鏈夎繖鏉★紙涓嶅湪绉佹捣鎴栬秴鍑哄姞杞芥潯鏁帮級锛氬洖鏌ヨ鎯呰ˉ涓�涓�欓�夛紝鍚﹀垯涓嬫媺妗嗘樉绀虹┖鐧�
+ getCustomer(row.customerId)
+ .then(res => {
+ const detail = res?.data;
+ if (!detail) return;
+ customerList.value = [detail, ...customerList.value];
+ formState.value.customerName =
+ formState.value.customerName || detail.customerName || "";
+ formState.value.contactPerson = detail.contactPerson || "";
+ formState.value.contactPhone = detail.contactPhone || "";
+ })
+ .catch(() => {});
+ };
+
// 杞﹁締閫夋嫨鏀瑰彉锛氳溅鐗屽彿銆佽溅鎸傜墝鍙蜂笌鍙告満淇℃伅鐢辫溅杈嗕富鏁版嵁甯﹀嚭锛屽嚭搴撴椂鍙告満鍙墜鍔ㄨ鐩�
const vehicleChange = id => {
const vehicle = vehicleList.value.find(item => item.id === id);
@@ -873,9 +897,7 @@
}
// 鍑哄簱绫诲埆涓庡鎴蜂互鍙拌处涓哄噯锛堝悗绔篃浼氬己鍒惰鐩栵級锛屽墠绔悓姝ュ睍绀哄苟缃伆
formState.value.outCategory = row.ledgerType === "浠e偍" ? "浠e偍" : "閿�鍞�";
- customerChange(row.customerId);
- formState.value.customerName =
- row.customerName || formState.value.customerName || "";
+ applyLedgerCustomer(row);
if (row.ledgerType === "浠e偍") {
formState.value.oilDepotId = row.oilDepotId;
formState.value.oilDepotName = row.oilDepotName || "";
@@ -899,11 +921,15 @@
formState.value.netWeight = netWeight.value;
formState.value.lossQuantity = lossQuantity.value;
formState.value.actualVolume = actualVolume.value;
- // 鐓х墖杞� JSON 瀛楃涓叉彁浜わ紙鍚庣瀛楁涓烘枃鏈瓨鍌級
- formState.value.loadingPhotos = JSON.stringify(formState.value.loadingPhotos || []);
- formState.value.poundPhotos = JSON.stringify(formState.value.poundPhotos || []);
+ // 鐓х墖杞� JSON 瀛楃涓叉彁浜わ紙鍚庣瀛楁涓烘枃鏈瓨鍌級锛涗笉鑳界洿鎺ユ敼 formState锛�
+ // 鍚﹀垯鎻愪氦澶辫触鏃剁粦瀹氬湪鍚屼竴瀛楁涓婄殑 ImageUpload 浼氭嬁鍒板瓧绗︿覆銆佸浘鐗囧叏涓�
+ const payload = {
+ ...formState.value,
+ loadingPhotos: JSON.stringify(formState.value.loadingPhotos || []),
+ poundPhotos: JSON.stringify(formState.value.poundPhotos || []),
+ };
- addOilOutRecordOnly(formState.value).then(res => {
+ addOilOutRecordOnly(payload).then(res => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
closeModal();
emit("completed");
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index c7d4c54..01e853b 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -193,18 +193,18 @@
:formatter="sensitiveAmountFormatter"
/>
<!--鎿嶄綔-->
- <el-table-column Width="60px" label="鎿嶄綔" align="center">
- <template #default="scope">
- <el-button
- link
- type="primary"
- :disabled="!canShip(scope.row)"
- @click="openDeliveryForm(scope.row)"
- >
- 鍙戣揣
- </el-button>
- </template>
- </el-table-column>
+<!-- <el-table-column Width="60px" label="鎿嶄綔" align="center">-->
+<!-- <template #default="scope">-->
+<!-- <el-button-->
+<!-- link-->
+<!-- type="primary"-->
+<!-- :disabled="!canShip(scope.row)"-->
+<!-- @click="openDeliveryForm(scope.row)"-->
+<!-- >-->
+<!-- 鍙戣揣-->
+<!-- </el-button>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
</el-table>
</template>
</el-table-column>
--
Gitblit v1.9.3