From ea7fb9cc590a198d438d44a2aec7b0393194a07d Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 21 九月 2026 20:52:43 +0800
Subject: [PATCH] 新疆-融邦环保 1.新增到货记录模块:销售台账页入口,车辆随出库单联动,到货上限=该台账分摊量,附件走永久链接
---
src/views/salesManagement/salesLedger/components/ArrivalDialog.vue | 66 ++++++++++++++++++++++++---------
1 files changed, 48 insertions(+), 18 deletions(-)
diff --git a/src/views/salesManagement/salesLedger/components/ArrivalDialog.vue b/src/views/salesManagement/salesLedger/components/ArrivalDialog.vue
index 1ab76ed..70b0662 100644
--- a/src/views/salesManagement/salesLedger/components/ArrivalDialog.vue
+++ b/src/views/salesManagement/salesLedger/components/ArrivalDialog.vue
@@ -24,9 +24,13 @@
min-width="150"
show-overflow-tooltip />
<el-table-column label="杞︾墝鍙�"
- prop="truckPlateNo"
min-width="110"
- show-overflow-tooltip />
+ show-overflow-tooltip>
+ <!-- 鍑哄簱鍗曟病鐧昏杞﹁締鏃跺埌璐ц褰曡溅杈嗕负绌猴紝涓嶈兘娓叉煋鎴愮┖鐧芥牸 -->
+ <template #default="scope">
+ {{ scope.row.truckPlateNo || "--" }}
+ </template>
+ </el-table-column>
<el-table-column label="鍒拌揣鏁伴噺(鍚�)"
prop="arrivalQuantity"
min-width="110"
@@ -112,20 +116,14 @@
</el-form-item>
</el-col>
<el-col :span="12">
+ <!-- 杞﹁締涓嶅己鍒讹細鍑哄簱鍗曟病鐧昏杞﹁締锛堜唬鍌�/瀹㈠瓨鍑哄簱锛夋椂鐣欑┖鍗冲彲 -->
<el-form-item label="杞﹁締"
- prop="vehicleId"
- :rules="[
- {
- required: true,
- message: '璇烽�夋嫨杞﹁締',
- trigger: 'change',
- }
- ]">
+ prop="vehicleId">
<el-select v-model="form.vehicleId"
- placeholder="璇峰厛閫夋嫨鍑哄簱鍗�"
+ :placeholder="vehiclePlaceholder"
clearable
filterable
- :disabled="!form.stockOutRecordId"
+ :disabled="!form.stockOutRecordId || !vehicleOptions.length"
style="width: 100%"
@change="handleVehicleChange">
<el-option v-for="item in vehicleOptions"
@@ -142,8 +140,7 @@
prop="arrivalQuantity"
:rules="[
{
- required: true,
- message: '璇疯緭鍏ュ埌璐ф暟閲�',
+ validator: validateArrivalQuantity,
trigger: 'blur',
}
]">
@@ -286,11 +283,22 @@
return [...map.values()];
});
+ // 娌$櫥璁拌溅杈嗙殑鍑哄簱鍗曪紙浠e偍/瀹㈠瓨涓嶅己鍒堕�夎溅锛夋嬁涓嶅嚭杞﹁締鍊欓�夛紝涓嶈褰撴垚涓�涓┖閫夐」
const vehicleOptions = computed(() =>
bindableRows.value.filter(
- item => item.stockOutRecordId === form.value.stockOutRecordId
+ item =>
+ item.stockOutRecordId === form.value.stockOutRecordId &&
+ item.vehicleId !== null &&
+ item.vehicleId !== undefined
)
);
+
+ const vehiclePlaceholder = computed(() => {
+ if (!form.value.stockOutRecordId) return "璇峰厛閫夋嫨鍑哄簱鍗�";
+ return vehicleOptions.value.length
+ ? "璇烽�夋嫨杞﹁締"
+ : "璇ュ嚭搴撳崟鏈櫥璁拌溅杈嗭紝鍙暀绌�";
+ });
const selectedOutbound = computed(() =>
outboundOptions.value.find(
@@ -305,6 +313,19 @@
// 缂栬緫鏃舵湰鏉″凡鍗犵殑閲忚浠庛�屽凡鍒拌揣銆嶉噷鍔犲洖鏉ワ紝鍚﹀垯鏁伴噺鏀逛笉澶т簬鍘熷��
const originalArrivalQuantity = ref(0);
+
+ // 0 鍦� required 鐪奸噷绠椼�屽凡濉�嶏紝鎷︿笉浣忥紝杩欓噷鎸夊悗绔彛寰勮姹� > 0
+ const validateArrivalQuantity = (rule, value, callback) => {
+ if (value === null || value === undefined || value === "") {
+ callback(new Error("璇疯緭鍏ュ埌璐ф暟閲�"));
+ return;
+ }
+ if (!(Number(value) > 0)) {
+ callback(new Error("鍒拌揣鏁伴噺蹇呴』澶т簬0"));
+ return;
+ }
+ callback();
+ };
// 鍒拌揣涓婇檺 = 璇ュ彴璐﹀湪杩欏紶鍑哄簱鍗曚笂鍒嗘憡鍒扮殑鏁伴噺
const arrivalMax = computed(() => {
@@ -395,7 +416,7 @@
form.value.id = row.id ?? null;
form.value.stockOutRecordId = row.stockOutRecordId;
// 杞﹁締/杞︾墝浠ュ嚭搴撳崟鐧昏涓哄噯锛屼絾鍒楄〃琛岄噷甯﹀洖鐨勬槸褰撴椂鐨勫�硷紝鐩存帴鍥炴樉
- form.value.vehicleId = row.vehicleId;
+ form.value.vehicleId = row.vehicleId ?? undefined;
form.value.truckPlateNo = row.truckPlateNo || "";
form.value.arrivalQuantity = row.arrivalQuantity ?? null;
form.value.arrivalDate = row.arrivalDate || "";
@@ -413,6 +434,12 @@
// 杞﹁締闅忓嚭搴撳崟鑱斿姩锛氭崲浜嗗嚭搴撳崟锛屽師鏉ラ�夌殑杞﹁締鍙兘涓嶅湪鍊欓�夐噷
form.value.vehicleId = undefined;
form.value.truckPlateNo = "";
+ // 涓�寮犲嚭搴撳崟鍙櫥璁颁竴涓溅杈嗭紝鑳藉畾灏辩洿鎺ュ甫鍑烘潵锛堜唬鍌�/瀹㈠瓨娌$櫥璁拌溅杈嗗垯鐣欑┖锛�
+ const only = vehicleOptions.value[0];
+ if (vehicleOptions.value.length === 1) {
+ form.value.vehicleId = only.vehicleId;
+ form.value.truckPlateNo = only.truckPlateNo || "";
+ }
};
const handleVehicleChange = id => {
@@ -433,14 +460,17 @@
const payload = {
stockOutRecordId: form.value.stockOutRecordId,
salesLedgerId: props.ledgerId,
- vehicleId: form.value.vehicleId,
- truckPlateNo: form.value.truckPlateNo,
arrivalQuantity: form.value.arrivalQuantity,
arrivalDate: form.value.arrivalDate,
// 鍙瓨姘镐箙閾炬帴锛�2 灏忔椂澶辨晥鐨勭鍚� URL 杩囨湡鍚庨檮浠朵細鎵撲笉寮�
attachments: form.value.attachmentList.map(getPhotoUrl).filter(Boolean),
remark: form.value.remark,
};
+ // 杞﹁締/杞︾墝浠ュ嚭搴撳崟涓哄噯锛屽彧鏈夐�変簡杞︽墠浼狅紝绌哄�间笉鍙備笌鍚庣鐨勬瘮瀵�
+ if (form.value.vehicleId !== undefined && form.value.vehicleId !== null) {
+ payload.vehicleId = form.value.vehicleId;
+ payload.truckPlateNo = form.value.truckPlateNo;
+ }
const submit = form.value.id
? updateSalesLedgerArrival({ ...payload, id: form.value.id })
: addSalesLedgerArrival(payload);
--
Gitblit v1.9.3