From b19b9a0af8f796120f7478a2b94ecc6690eb5b3c Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 07 九月 2026 12:13:53 +0800
Subject: [PATCH] feat: 销售发货新增自送选择
---
src/views/salesManagement/deliveryLedger/index.vue | 42 +++++++++++++++++++--
src/views/salesManagement/salesLedger/index.vue | 58 ++++++++++++++++++++++++++---
2 files changed, 90 insertions(+), 10 deletions(-)
diff --git a/src/views/salesManagement/deliveryLedger/index.vue b/src/views/salesManagement/deliveryLedger/index.vue
index 07cf066..d840b4b 100644
--- a/src/views/salesManagement/deliveryLedger/index.vue
+++ b/src/views/salesManagement/deliveryLedger/index.vue
@@ -92,6 +92,23 @@
show-overflow-tooltip
/>
<el-table-column
+ label="鍙戣揣绫诲瀷"
+ align="center"
+ width="100"
+ >
+ <template #default="scope">
+ <el-tag v-if="scope.row.type"
+ :type="getShippingTypeTag(scope.row.type)"
+ size="small">
+ {{ scope.row.type }}
+ </el-tag>
+ <el-tag v-else
+ type="info"
+ size="small">-
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
label="鍙戣揣杞︾墝鍙�"
prop="shippingCarNumber"
show-overflow-tooltip
@@ -182,6 +199,7 @@
>
<el-option label="璐ц溅" value="璐ц溅" />
<el-option label="蹇��" value="蹇��" />
+ <el-option label="鑷��" value="鑷��" />
</el-select>
</el-form-item>
</el-col>
@@ -201,8 +219,8 @@
</el-form-item>
</el-col>
</el-row>
- <el-row :gutter="30">
- <el-col :span="24" v-if="form.type === '璐ц溅'">
+ <el-row :gutter="30" v-if="form.type === '璐ц溅'">
+ <el-col :span="24">
<el-form-item label="鍙戣揣杞︾墝鍙凤細" prop="shippingCarNumber">
<el-input
v-model="form.shippingCarNumber"
@@ -211,7 +229,9 @@
/>
</el-form-item>
</el-col>
- <el-col :span="24" v-else>
+ </el-row>
+ <el-row :gutter="30" v-else-if="form.type === '蹇��'">
+ <el-col :span="24">
<el-form-item label="蹇�掑叕鍙革細" prop="expressCompany">
<el-input
v-model="form.expressCompany"
@@ -385,7 +405,7 @@
customerName: "",
specificationModel: "",
productName: "",
- type: "璐ц溅", // 璐ц溅, 蹇��
+ type: "璐ц溅", // 璐ц溅, 蹇��, 鑷��
shippingDate: "",
shippingCarNumber: "",
expressCompany: "",
@@ -772,11 +792,25 @@
if (val === "璐ц溅") {
form.value.expressCompany = "";
form.value.expressNumber = "";
+ } else if (val === "蹇��") {
+ form.value.shippingCarNumber = "";
} else {
form.value.shippingCarNumber = "";
+ form.value.expressCompany = "";
+ form.value.expressNumber = "";
}
};
+// 鍙戣揣绫诲瀷鏍囩棰滆壊
+const getShippingTypeTag = (type) => {
+ const typeTagMap = {
+ 璐ц溅: "warning",
+ 蹇��: "primary",
+ 鑷��: "success",
+ };
+ return typeTagMap[type] || "info";
+};
+
// 鑾峰彇瀹℃牳鐘舵�佹枃鏈�
const getApprovalStatusText = (status) => {
if (status === null || status === undefined || status === "") {
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 8dab3ca..5328607 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -133,6 +133,21 @@
</el-tag>
</template>
</el-table-column>
+ <el-table-column label="鍙戣揣绫诲瀷"
+ width="100"
+ align="center">
+ <template #default="scope">
+ <el-tag v-if="getShippingTypeText(scope.row)"
+ :type="getShippingTypeTag(scope.row)"
+ size="small">
+ {{ getShippingTypeText(scope.row) }}
+ </el-tag>
+ <el-tag v-else
+ type="info"
+ size="small">-
+ </el-tag>
+ </template>
+ </el-table-column>
<el-table-column label="蹇�掑叕鍙�"
prop="expressCompany"
show-overflow-tooltip />
@@ -941,6 +956,8 @@
value="璐ц溅" />
<el-option label="蹇��"
value="蹇��" />
+ <el-option label="鑷��"
+ value="鑷��" />
</el-select>
</el-form-item>
</el-col>
@@ -957,9 +974,9 @@
</el-form-item>
</el-col>
</el-row>
- <el-row :gutter="30">
- <el-col :span="24"
- v-if="deliveryForm.type === '璐ц溅'">
+ <el-row :gutter="30"
+ v-if="deliveryForm.type === '璐ц溅'">
+ <el-col :span="24">
<el-form-item label="鍙戣揣杞︾墝鍙凤細"
prop="shippingCarNumber">
<el-input v-model="deliveryForm.shippingCarNumber"
@@ -967,8 +984,10 @@
clearable />
</el-form-item>
</el-col>
- <el-col :span="24"
- v-else>
+ </el-row>
+ <el-row :gutter="30"
+ v-else-if="deliveryForm.type === '蹇��'">
+ <el-col :span="24">
<el-form-item label="蹇�掑叕鍙革細"
prop="expressCompany">
<el-input v-model="deliveryForm.expressCompany"
@@ -1358,7 +1377,7 @@
shippingCarNumber: "",
expressCompany: "",
expressNumber: "",
- type: "璐ц溅", // 璐ц溅, 蹇��
+ type: "璐ц溅", // 璐ц溅, 蹇��, 鑷��
},
deliveryRules: {
shippingCarNumber: [
@@ -2443,6 +2462,29 @@
};
/**
+ * 鑾峰彇鍙戣揣绫诲瀷鏂囨湰锛堣揣杞�/蹇��/鑷�侊級
+ * 瀛愯〃琛屾湭杩斿洖鍙戣揣绫诲瀷瀛楁锛屼緷鎹簰鏂ョ殑鍙戣揣淇℃伅鎺ㄦ柇锛�
+ * 鏈夎溅鐗屼负璐ц溅锛屾湁蹇�掑叕鍙�/鍗曞彿涓哄揩閫掞紝宸插彂璐т絾涓よ�呯殕鏃犱负鑷��
+ */
+ const getShippingTypeText = row => {
+ if (!row) return "";
+ if (row.shippingCarNumber) return "璐ц溅";
+ if (row.expressCompany || row.expressNumber) return "蹇��";
+ if (row.shippingDate) return "鑷��";
+ return "";
+ };
+
+ const getShippingTypeTag = row => {
+ const type = getShippingTypeText(row);
+ const typeTagMap = {
+ 璐ц溅: "warning",
+ 蹇��: "primary",
+ 鑷��: "success",
+ };
+ return typeTagMap[type] || "info";
+ };
+
+ /**
* 鍒ゆ柇鏄惁鍙互鍙戣揣
* 鍙湁鍦ㄤ骇鍝佺姸鎬佹槸鍏呰冻锛屽彂璐х姸鎬佹槸寰呭彂璐у拰瀹℃牳鎷掔粷鐨勬椂鍊欐墠鍙互鍙戣揣
* @param row 琛屾暟鎹�
@@ -2624,8 +2666,12 @@
if (val === "璐ц溅") {
deliveryForm.value.expressCompany = "";
deliveryForm.value.expressNumber = "";
+ } else if (val === "蹇��") {
+ deliveryForm.value.shippingCarNumber = "";
} else {
deliveryForm.value.shippingCarNumber = "";
+ deliveryForm.value.expressCompany = "";
+ deliveryForm.value.expressNumber = "";
}
};
--
Gitblit v1.9.3