From 5f913781b2f677f8e9567a2193b9273525e7d609 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期三, 15 四月 2026 09:33:46 +0800
Subject: [PATCH] 更新销售台账页面,客户名称选择改为下拉框,新增交货日期自动设置逻辑

---
 src/views/salesManagement/salesLedger/index.vue |   80 ++++++++++++++++++++++++++++++---------
 1 files changed, 61 insertions(+), 19 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 3790894..95137d2 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -3,8 +3,23 @@
     <div class="search_form">
       <el-form :model="searchForm" :inline="true">
         <el-form-item label="瀹㈡埛鍚嶇О锛�">
-          <el-input v-model="searchForm.customerName" placeholder="璇疯緭鍏�" clearable prefix-icon="Search"
-            @change="handleQuery" />
+          <el-select
+            v-model="searchForm.customerId"
+            filterable
+            placeholder="璇烽�夋嫨瀹㈡埛鍚嶇О"
+            clearable
+            style="width: 220px"
+            @change="handleQuery"
+          >
+            <el-option
+              v-for="item in customerOption"
+              :key="item.id"
+              :label="item.customerName"
+              :value="item.id"
+            >
+              {{ item.customerName + "鈥斺��" + item.taxpayerIdentificationNumber }}
+            </el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="閿�鍞悎鍚屽彿锛�">
           <el-input v-model="searchForm.salesContractNo" placeholder="璇疯緭鍏�" clearable prefix-icon="Search"
@@ -177,7 +192,6 @@
         <el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" width="300" show-overflow-tooltip />
         <el-table-column label="涓氬姟鍛�" prop="salesman" width="100" show-overflow-tooltip />
         <el-table-column label="椤圭洰鍚嶇О" prop="projectName" width="180" show-overflow-tooltip />
-        <el-table-column label="浠樻鏂瑰紡" prop="paymentMethod" show-overflow-tooltip />
         <el-table-column label="鍚堝悓閲戦(鍏�)" prop="contractAmount" width="220" show-overflow-tooltip
           :formatter="formattedNumber" />
 		  <el-table-column label="鍙戣揣鐘舵��" width="140" align="center">
@@ -235,7 +249,7 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="瀹㈡埛鍚嶇О锛�" prop="customerId">
-              <el-select v-model="form.customerId" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'view'">
+              <el-select v-model="form.customerId" filterable placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'view'">
                 <el-option v-for="item in customerOption" :key="item.id" :label="item.customerName" :value="item.id">
                   {{
                     item.customerName + "鈥斺��" + item.taxpayerIdentificationNumber
@@ -257,11 +271,12 @@
 															format="YYYY-MM-DD" type="date" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'view'" />
 						</el-form-item>
 					</el-col>
-					<el-col :span="12">
-						<el-form-item label="浠樻鏂瑰紡">
-							<el-input v-model="form.paymentMethod" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
-						</el-form-item>
-					</el-col>
+          <el-col :span="12">
+            <el-form-item label="浜よ揣鏃ユ湡锛�" prop="deliveryDate">
+              <el-date-picker style="width: 100%" v-model="form.deliveryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
+                              type="date" placeholder="璇烽�夋嫨" clearable />
+            </el-form-item>
+          </el-col>
 				</el-row>
 				<el-row :gutter="30">
 					<el-col :span="12">
@@ -281,14 +296,6 @@
 						</el-form-item>
 					</el-col>
 				</el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="浜よ揣鏃ユ湡锛�" prop="entryDate">
-              <el-date-picker style="width: 100%" v-model="form.deliveryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
-                              type="date" placeholder="璇烽�夋嫨" clearable />
-            </el-form-item>
-          </el-col>
-        </el-row>
 				<el-row>
 					<el-form-item label="浜у搧淇℃伅锛�" prop="entryDate">
 						<el-button v-if="operationType !== 'view'" type="primary" @click="openProductForm('add')">娣诲姞</el-button>
@@ -929,7 +936,7 @@
 <script setup>
 import { getToken } from "@/utils/auth";
 import pagination from "@/components/PIMTable/Pagination.vue";
-import {onMounted, ref, getCurrentInstance} from "vue";
+import {onMounted, ref, getCurrentInstance, watch} from "vue";
 import { addShippingInfo } from "@/api/salesManagement/deliveryLedger.js";
 import { ElMessageBox, ElMessage } from "element-plus";
 import { ArrowDown } from "@element-plus/icons-vue";
@@ -1001,6 +1008,7 @@
 const data = reactive({
 	searchForm: {
 		customerName: "", // 瀹㈡埛鍚嶇О
+		customerId: "", // 瀹㈡埛ID锛堟煡璇笅鎷夛級
 		salesContractNo: "", // 閿�鍞悎鍚岀紪鍙�
 		entryDate: null, // 褰曞叆鏃ユ湡
 		entryDateStart: undefined,
@@ -1029,6 +1037,17 @@
 });
 const { form, rules } = toRefs(data);
 const { form: searchForm } = useFormData(data.searchForm);
+
+// 鏂板鍙拌处锛氬綍鍏ユ棩鏈熷彉鏇存椂锛屼氦璐ф棩鏈熼粯璁や繚鎸佷负褰曞叆鏃ユ湡鍚庣 7 澶�
+watch(
+	() => [operationType.value, form.value?.entryDate],
+	() => {
+		if (operationType.value !== "add") return;
+		const ed = form.value?.entryDate;
+		if (!ed) return;
+		form.value.deliveryDate = dayjs(ed).add(7, "day").format("YYYY-MM-DD");
+	}
+);
 // 浜у搧琛ㄥ崟寮规鏁版嵁
 const productFormVisible = ref(false);
 const productOperationType = ref("");
@@ -1380,6 +1399,21 @@
 	const params = { ...rest, ...page };
 	// 绉婚櫎褰曞叆鏃ユ湡鐨勯粯璁ゅ�艰缃紝鍙繚鐣欒寖鍥存棩鏈熷瓧娈�
 	delete params.entryDate;
+	// 鏌ヨ瀹㈡埛鍚嶇О涓庢柊澧炰繚鎸佷竴鑷达細鍏堥�� customerId锛屽啀鏄犲皠涓� customerName 鏌ヨ
+	const selectedCustomer = (customerOption.value || []).find(
+		(item) => String(item?.id ?? "") === String(params.customerId ?? "")
+	);
+	if (selectedCustomer?.customerName) {
+		params.customerName = String(selectedCustomer.customerName).trim();
+	} else {
+		const cn = params.customerName != null ? String(params.customerName).trim() : "";
+		if (cn) {
+			params.customerName = cn;
+		} else {
+			delete params.customerName;
+		}
+	}
+	delete params.customerId;
 	return ledgerListPage(params)
 		.then((res) => {
 			tableLoading.value = false;
@@ -1639,6 +1673,9 @@
 	//   }
 	// });
 	form.value.entryDate = getCurrentDate(); // 璁剧疆榛樿褰曞叆鏃ユ湡涓哄綋鍓嶆棩鏈�
+	if (type === "add") {
+		form.value.deliveryDate = dayjs(form.value.entryDate).add(7, "day").format("YYYY-MM-DD");
+	}
 	dialogFormVisible.value = true;
 };
 
@@ -1805,7 +1842,9 @@
 			}
 			form.value.tempFileIds = tempFileIds;
 			form.value.type = 1;
-			addOrUpdateSalesLedger(form.value).then((res) => {
+			const submitPayload = { ...form.value };
+			delete submitPayload.paymentMethod;
+			addOrUpdateSalesLedger(submitPayload).then((res) => {
 				proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
 				closeDia();
 				getList();
@@ -2785,6 +2824,9 @@
 };
 onMounted(() => {
 	getList();
+	customerList().then((res) => {
+		customerOption.value = res;
+	});
 	userListNoPage().then(res => {
 		userList.value = res.data;
 	})

--
Gitblit v1.9.3