From bdc5539eca6e1126960efdd70b8b561c484fbf8f Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 11 五月 2026 11:51:21 +0800
Subject: [PATCH] 天津军泰伟业 1.销售台账添加新字段

---
 src/views/salesManagement/salesLedger/index.vue |  177 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 144 insertions(+), 33 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 67d88b9..5fa56d0 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -14,6 +14,18 @@
           <el-input v-model="searchForm.projectName" placeholder="璇疯緭鍏�" clearable prefix-icon="Search"
             @change="handleQuery" />
         </el-form-item>
+        <el-form-item label="璁㈠崟绫诲瀷锛�">
+          <el-input v-model="searchForm.orderType" placeholder="璇疯緭鍏�" clearable prefix-icon="Search"
+            @change="handleQuery" />
+        </el-form-item>
+        <el-form-item label="璁㈠崟琛岋細">
+          <el-input v-model="searchForm.orderLine" placeholder="璇疯緭鍏�" clearable prefix-icon="Search"
+            @change="handleQuery" />
+        </el-form-item>
+        <el-form-item label="闇�姹傛棩鏈燂細">
+          <el-date-picker v-model="searchForm.demandDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
+            placeholder="璇烽�夋嫨" clearable @change="(val) => changeDaterange(val, 'demandDate')" />
+        </el-form-item>
         <el-form-item label="褰曞叆鏃ユ湡锛�">
           <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
             placeholder="璇烽�夋嫨" clearable @change="changeDaterange" />
@@ -46,8 +58,14 @@
               <el-table-column align="center" label="搴忓彿" type="index"/>
               <el-table-column label="浜у搧澶х被" prop="productCategory" />
               <el-table-column label="鍥剧焊缂栧彿" prop="specificationModel" />
-							<el-table-column label="鐗╂枡鍙�" prop="material" />
+              <el-table-column label="鐗╂枡鍙�" prop="materialNo" width="120" show-overflow-tooltip />
               <el-table-column label="鍗曚綅" prop="unit" />
+              <el-table-column label="鏄惁鍠风爞" prop="isSpray" width="100" align="center">
+                <template #default="scope">
+                  <el-tag v-if="scope.row.isSpray" type="warning">鏄�</el-tag>
+                  <el-tag v-else type="info">鍚�</el-tag>
+                </template>
+              </el-table-column>
 							<el-table-column label="浜у搧鐘舵��"
 															 width="100px"
 															 align="center">
@@ -68,10 +86,10 @@
               <el-table-column label="宸插彂璐ф暟閲�" prop="shippingNum" align="center" />
               <el-table-column label="宸查��璐ф暟閲�" prop="returnNum" align="center" />
               <el-table-column label="鏁伴噺" prop="quantity" />
-              <el-table-column label="绋庣巼(%)" prop="taxRate" />
-              <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
-              <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" />
-              <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" />
+              <el-table-column v-if="isSalesDepartment" label="绋庣巼(%)" prop="taxRate" />
+              <el-table-column v-if="isSalesDepartment" label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
+              <el-table-column v-if="isSalesDepartment" label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" />
+              <el-table-column v-if="isSalesDepartment" label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" />
             <!--鎿嶄綔-->
               <el-table-column width="150" label="鎿嶄綔" align="center" fixed="right">
                 <template #default="scope">
@@ -102,7 +120,7 @@
         <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
+        <el-table-column v-if="isSalesDepartment" label="鍚堝悓閲戦(鍏�)" prop="contractAmount" width="220" show-overflow-tooltip
           :formatter="formattedNumber" />
         <el-table-column label="褰曞叆浜�" prop="entryPersonName" width="100" show-overflow-tooltip />
         <el-table-column label="褰曞叆鏃ユ湡" prop="entryDate" width="120" show-overflow-tooltip />
@@ -167,7 +185,7 @@
 					<el-col :span="12">
 						<el-form-item label="绛捐鏃ユ湡锛�" prop="executionDate">
 							<el-date-picker style="width: 100%" v-model="form.executionDate" value-format="YYYY-MM-DD"
-															format="YYYY-MM-DD" type="date" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'view'" />
+																format="YYYY-MM-DD" type="date" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'view'" />
 						</el-form-item>
 					</el-col>
 					<el-col :span="12">
@@ -175,6 +193,32 @@
 							<el-input v-model="form.paymentMethod" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
 						</el-form-item>
 					</el-col>
+				</el-row>
+				<el-row :gutter="30">
+					<el-col :span="12">
+						<el-form-item label="璁㈠崟绫诲瀷锛�" prop="orderType">
+							<el-input v-model="form.orderType" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
+						</el-form-item>
+					</el-col>
+					<el-col :span="12">
+						<el-form-item label="璁㈠崟琛岋細" prop="orderLine">
+							<el-input v-model="form.orderLine" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row :gutter="30">
+					<el-col :span="12">
+						<el-form-item label="闇�姹傛棩鏈燂細" prop="demandDate">
+							<el-date-picker style="width: 100%" v-model="form.demandDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
+																type="date" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'view'" />
+						</el-form-item>
+					</el-col>
+					<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 :gutter="30">
 					<el-col :span="12">
@@ -194,14 +238,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>
@@ -215,13 +251,23 @@
 					<el-table-column align="center" label="搴忓彿" type="index" width="60" />
 					<el-table-column label="浜у搧澶х被" prop="productCategory" />
 					<el-table-column label="鍥剧焊缂栧彿" prop="specificationModel" />
-					<el-table-column label="鐗╂枡鍙�" prop="material" />
+					<el-table-column label="鐗╂枡鍙�" prop="materialNo" width="120" show-overflow-tooltip />
 					<el-table-column label="鍗曚綅" prop="unit" />
 					<el-table-column label="鏁伴噺" prop="quantity" />
-					<el-table-column label="绋庣巼(%)" prop="taxRate" />
-					<el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
-					<el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" />
-					<el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" />
+					<el-table-column label="浜よ揣鏁伴噺" prop="deliveryQuantity" />
+					<el-table-column label="鍓╀綑鏁伴噺" prop="remainingQuantity" />
+					<el-table-column label="瀛愬簱瀛�" prop="subInventory" width="120" show-overflow-tooltip />
+					<el-table-column label="璐т綅" prop="location" width="120" show-overflow-tooltip />
+					<el-table-column label="鏄惁鍠风爞" prop="isSpray" width="100" align="center">
+						<template #default="scope">
+							<el-tag v-if="scope.row.isSpray" type="warning">鏄�</el-tag>
+							<el-tag v-else type="info">鍚�</el-tag>
+						</template>
+					</el-table-column>
+					<el-table-column v-if="isSalesDepartment" label="绋庣巼(%)" prop="taxRate" />
+					<el-table-column v-if="isSalesDepartment" label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
+					<el-table-column v-if="isSalesDepartment" label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" />
+					<el-table-column v-if="isSalesDepartment" label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" />
 					<el-table-column fixed="right" label="鎿嶄綔" min-width="60" align="center" v-if="operationType !== 'view'">
 						<template #default="scope">
 							<el-button link type="primary" size="small" 
@@ -345,8 +391,8 @@
 				</el-row>
 				<el-row :gutter="30">
 					<el-col :span="24">
-						<el-form-item label="鐗╂枡鍙凤細" prop="material">
-							<el-input v-model="productForm.material" placeholder="璇疯緭鍏ョ墿鏂欏彿" clearable />
+						<el-form-item label="鐗╂枡鍙凤細" prop="materialNo">
+							<el-input v-model="productForm.materialNo" placeholder="璇疯緭鍏ョ墿鏂欏彿" clearable />
 						</el-form-item>
 					</el-col>
 				</el-row>
@@ -356,9 +402,10 @@
 							<el-input v-model="productForm.unit" placeholder="璇疯緭鍏�" clearable />
 						</el-form-item>
 					</el-col>
-					<el-col :span="12">
+					<el-col :span="12" v-if="isSalesDepartment">
 						<el-form-item label="绋庣巼(%)锛�" prop="taxRate">
 							<el-select v-model="productForm.taxRate" placeholder="璇烽�夋嫨" clearable @change="calculateFromTaxRate">
+								<el-option label="0" value="0" />
 								<el-option label="1" value="1" />
 								<el-option label="6" value="6" />
 								<el-option label="13" value="13" />
@@ -368,10 +415,43 @@
 				</el-row>
 				<el-row :gutter="30">
 					<el-col :span="12">
+						<el-form-item label="浜よ揣鏁伴噺锛�" prop="deliveryQuantity">
+							<el-input-number :step="0.1" :min="0" v-model="productForm.deliveryQuantity" placeholder="璇疯緭鍏�" clearable
+								:precision="2" style="width: 100%" />
+						</el-form-item>
+					</el-col>
+					<el-col :span="12">
+						<el-form-item label="鍓╀綑鏁伴噺锛�" prop="remainingQuantity">
+							<el-input-number :step="0.1" :min="0" v-model="productForm.remainingQuantity" placeholder="璇疯緭鍏�" clearable
+								:precision="2" style="width: 100%" />
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row :gutter="30">
+					<el-col :span="12">
+						<el-form-item label="瀛愬簱瀛橈細" prop="subInventory">
+							<el-input v-model="productForm.subInventory" placeholder="璇疯緭鍏�" clearable />
+						</el-form-item>
+					</el-col>
+					<el-col :span="12">
+						<el-form-item label="璐т綅锛�" prop="location">
+							<el-input v-model="productForm.location" placeholder="璇疯緭鍏�" clearable />
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row :gutter="30">
+					<el-col :span="12">
+						<el-form-item label="鏄惁鍠风爞锛�" prop="isSpray">
+							<el-switch v-model="productForm.isSpray" active-text="鏄�" inactive-text="鍚�" />
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row :gutter="30">
+					<el-col :span="12" v-if="isSalesDepartment">
 						<el-form-item label="鍚◣鍗曚环(鍏�)锛�" prop="taxInclusiveUnitPrice">
 							<el-input-number :step="0.01" :min="0" v-model="productForm.taxInclusiveUnitPrice" style="width: 100%"
-															 :precision="2"
-															 placeholder="璇疯緭鍏�" clearable @change="calculateFromUnitPrice" />
+																 :precision="2"
+																 placeholder="璇疯緭鍏�" clearable @change="calculateFromUnitPrice" />
 						</el-form-item>
 					</el-col>
 					<el-col :span="12">
@@ -382,7 +462,7 @@
 						</el-form-item>
 					</el-col>
 				</el-row>
-				<el-row :gutter="30">
+				<el-row :gutter="30" v-if="isSalesDepartment">
 					<el-col :span="12">
 						<el-form-item label="鍚◣鎬讳环(鍏�)锛�" prop="taxInclusiveTotalPrice">
 							<el-input v-model="productForm.taxInclusiveTotalPrice" placeholder="璇疯緭鍏�" clearable @change="calculateFromTotalPrice" />
@@ -394,7 +474,7 @@
 						</el-form-item>
 					</el-col>
 				</el-row>
-				<el-row :gutter="30">
+				<el-row :gutter="30" v-if="isSalesDepartment">
 					<el-col :span="12">
 						<el-form-item label="鍙戠エ绫诲瀷锛�" prop="invoiceType">
 							<el-select v-model="productForm.invoiceType" placeholder="璇烽�夋嫨" clearable>
@@ -631,6 +711,12 @@
 
 const userStore = useUserStore();
 const { proxy } = getCurrentInstance();
+
+// 鏄惁鏄攢鍞儴锛堟帶鍒朵环鏍煎瓧娈垫樉绀�/闅愯棌锛�
+const isSalesDepartment = computed(() => {
+	return currentFactoryName.value === '閿�鍞儴';
+});
+
 const tableData = ref([]);
 const productData = ref([]);
 const selectedRows = ref([]);
@@ -654,6 +740,12 @@
 	searchForm: {
 		customerName: "", // 瀹㈡埛鍚嶇О
 		salesContractNo: "", // 閿�鍞悎鍚岀紪鍙�
+		projectName: "", // 椤圭洰鍚嶇О
+		orderType: "", // 璁㈠崟绫诲瀷
+		orderLine: "", // 璁㈠崟琛�
+		demandDate: null, // 闇�姹傛棩鏈�
+		demandDateStart: undefined,
+		demandDateEnd: undefined,
 		entryDate: null, // 褰曞叆鏃ユ湡
 		entryDateStart: undefined,
 		entryDateEnd: undefined,
@@ -662,12 +754,16 @@
 		salesContractNo: "",
 		salesman: "",
 		customerId: "",
+		projectName: "",
 		entryPerson: "",
 		entryDate: "",
     deliveryDate: "",
 		maintenanceTime: "",
 		productData: [],
 		executionDate: "",
+		orderType: "",
+		orderLine: "",
+		demandDate: "",
 	},
 	rules: {
 		salesman: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
@@ -690,10 +786,15 @@
 		productId: "",
 		productModelId: "",
 		productCategory: "",
-		material: "",
+		materialNo: "",
 		specificationModel: "",
 		unit: "",
 		quantity: "",
+		deliveryQuantity: 0,
+		remainingQuantity: 0,
+		subInventory: "",
+		location: "",
+		isSpray: false,
 		taxInclusiveUnitPrice: "",
 		taxRate: "",
 		taxInclusiveTotalPrice: "",
@@ -801,13 +902,23 @@
 	},
 });
 
-const changeDaterange = (value) => {
+const changeDaterange = (value, type = 'entryDate') => {
 	if (value) {
-		searchForm.entryDateStart = dayjs(value[0]).format("YYYY-MM-DD");
-		searchForm.entryDateEnd = dayjs(value[1]).format("YYYY-MM-DD");
+		if (type === 'demandDate') {
+			searchForm.demandDateStart = dayjs(value[0]).format("YYYY-MM-DD");
+			searchForm.demandDateEnd = dayjs(value[1]).format("YYYY-MM-DD");
+		} else {
+			searchForm.entryDateStart = dayjs(value[0]).format("YYYY-MM-DD");
+			searchForm.entryDateEnd = dayjs(value[1]).format("YYYY-MM-DD");
+		}
 	} else {
-		searchForm.entryDateStart = undefined;
-		searchForm.entryDateEnd = undefined;
+		if (type === 'demandDate') {
+			searchForm.demandDateStart = undefined;
+			searchForm.demandDateEnd = undefined;
+		} else {
+			searchForm.entryDateStart = undefined;
+			searchForm.entryDateEnd = undefined;
+		}
 	}
 	handleQuery();
 };

--
Gitblit v1.9.3