From 9b74afecb14fa2ff7e305cdca071a3de34d660b2 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 27 一月 2026 10:00:09 +0800
Subject: [PATCH] fix: 新增销售台账时,产品选择为空

---
 src/views/salesManagement/salesLedger/index.vue |   64 ++++++++++++++++++++++++++------
 1 files changed, 52 insertions(+), 12 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index a07aa44..f273d54 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -34,6 +34,7 @@
           <el-button type="primary" @click="openForm('add')">
             鏂板鍙拌处
           </el-button>
+          <el-button type="primary" plain @click="handleImport">瀵煎叆</el-button>
           <el-button @click="handleOut">瀵煎嚭</el-button>
           <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
           <el-button type="primary" plain @click="handlePrint">鎵撳嵃</el-button>
@@ -53,13 +54,13 @@
 							<el-table-column label="浜у搧鐘舵��"
 															 width="100px"
 															 align="center">
-								<template #default="scope">
+                <template #default="scope">
 									<el-tag v-if="scope.row.approveStatus === 1"
 													type="success">鍏呰冻</el-tag>
 									<el-tag v-else
 													type="danger">涓嶈冻</el-tag>
-								</template>
-							</el-table-column>
+                </template>
+              </el-table-column>
 							<el-table-column label="鍙戣揣鐘舵��" prop="shippingStatus" width="140" align="center" show-overflow-tooltip />
 							<el-table-column label="蹇�掑叕鍙�" prop="expressCompany" show-overflow-tooltip />
 							<el-table-column label="蹇�掑崟鍙�" prop="expressNumber" show-overflow-tooltip />
@@ -74,14 +75,14 @@
 							<el-table-column label="鍙戣揣鏃ユ湡"
 															 minWidth="100px"
 															 align="center">
-								<template #default="scope">
-									<div>
-										<div v-if="scope.row.shippingDate">{{ scope.row.shippingDate }}</div>
+                <template #default="scope">
+                  <div>
+                    <div v-if="scope.row.shippingDate">{{ scope.row.shippingDate }}</div>
 										<el-tag v-else
 														type="info">-</el-tag>
-									</div>
-								</template>
-							</el-table-column>
+                  </div>
+                </template>
+              </el-table-column>
               <el-table-column label="鏁伴噺" prop="quantity" />
               <el-table-column label="绋庣巼(%)" prop="taxRate" />
               <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
@@ -385,6 +386,41 @@
 					</el-col>
 				</el-row>
 			</el-form>
+		</FormDialog>
+		<!-- 瀵煎叆寮圭獥 -->
+		<FormDialog
+			v-model="importUpload.open"
+			:title="importUpload.title"
+			:width="'600px'"
+			@close="importUpload.open = false"
+			@confirm="submitImportFile"
+			@cancel="importUpload.open = false"
+		>
+			<el-upload
+				ref="importUploadRef"
+				:limit="1"
+				accept=".xlsx,.xls"
+				:action="importUpload.url"
+				:headers="importUpload.headers"
+				:before-upload="importUpload.beforeUpload"
+				:on-success="importUpload.onSuccess"
+				:on-error="importUpload.onError"
+				:on-progress="importUpload.onProgress"
+				:on-change="importUpload.onChange"
+				:auto-upload="false"
+				drag
+			>
+				<i class="el-icon-upload"></i>
+				<div class="el-upload__text">
+					灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em>
+				</div>
+				<template #tip>
+					<div class="el-upload__tip">
+						浠呮敮鎸� xls/xlsx锛屽ぇ灏忎笉瓒呰繃 10MB銆�
+						<el-button link type="primary" @click="downloadTemplate">涓嬭浇瀵煎叆妯℃澘</el-button>
+					</div>
+				</template>
+			</el-upload>
 		</FormDialog>
 		<!-- 闄勪欢鍒楄〃寮圭獥 -->
 		<FileListDialog
@@ -1150,15 +1186,19 @@
 const openProductForm = async (type, row, index) => {
 	productOperationType.value = type;
 	productForm.value = {};
+	modelOptions.value = []; // 娓呯┖瑙勬牸鍨嬪彿閫夐」
 	proxy.resetForm("productFormRef");
+
+	// 纭繚浜у搧澶х被鏁版嵁宸插姞杞�
+	const options = productOptions.value && productOptions.value.length > 0
+		? productOptions.value
+		: await getProductOptions();
+
 	if (type === "edit") {
 		productForm.value = { ...row };
 		productIndex.value = index;
 		// 缂栬緫鏃舵牴鎹骇鍝佸ぇ绫诲悕绉板弽鏌� tree 鑺傜偣 id锛屽苟鍔犺浇瑙勬牸鍨嬪彿鍒楄〃
 		try {
-			const options = productOptions.value && productOptions.value.length > 0
-				? productOptions.value
-				: await getProductOptions();
 			const categoryId = findNodeIdByLabel(options, productForm.value.productCategory);
 			if (categoryId) {
 				const models = await modelList({ id: categoryId });

--
Gitblit v1.9.3