From adeb8b768926ed50a3fb0857f366d6a0308d2cc0 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 29 八月 2025 17:45:57 +0800
Subject: [PATCH] 修改组件

---
 src/pages/sales/salesAccount/detail.vue |  567 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 374 insertions(+), 193 deletions(-)

diff --git a/src/pages/sales/salesAccount/detail.vue b/src/pages/sales/salesAccount/detail.vue
index bca5e36..0260179 100644
--- a/src/pages/sales/salesAccount/detail.vue
+++ b/src/pages/sales/salesAccount/detail.vue
@@ -4,80 +4,104 @@
 		<PageHeader title="鍙拌处璇︽儏" @back="goBack" />
 
          <!-- 琛ㄥ崟鍖哄煙 -->
-		<van-form @submit="onSubmit" label-width="110px" input-align="right" style="margin-top: 10px" error-message-align="right" scroll-to-error scroll-to-error-position="center">
-			<van-field label="閿�鍞悎鍚屽彿" name="salesContractNo" borderBottom="true" v-model="form.salesContractNo" placeholder="鑷姩鐢熸垚" disabled>
-			</van-field>
-			<van-field
-				v-model="form.salesman"
-				is-link
-				readonly
-				name="salesman"
+		<u-form @submit="onSubmit" label-width="110" input-align="right" style="margin-top: 10px" error-message-align="right">
+			<u-form-item label="閿�鍞悎鍚屽彿" prop="salesContractNo" border-bottom>
+				<u-input v-model="form.salesContractNo" placeholder="鑷姩鐢熸垚" disabled />
+			</u-form-item>
+			<u-form-item
 				label="涓氬姟鍛�"
+				prop="salesman"
 				required
-				placeholder="鐐瑰嚮閫夋嫨涓氬姟鍛�"
-				:rules="[{ required: true, message: '璇烽�夋嫨涓氬姟鍛�' }]"
-				@click="showPicker = true"
-			/>
-			<van-field label="瀹㈡埛鍚堝悓鍙�" name="customerContractNo" borderBottom="true"
-								 v-model="form.customerContractNo" required
-								 placeholder="璇疯緭鍏ュ鎴峰悎鍚屽彿" :rules="[{ required: true, message: '瀹㈡埛鍚堝悓鍙蜂笉鑳戒负绌�' }]">
-			</van-field>
-			<van-field
-				v-model="form.customerName"
-				is-link
-				readonly
-				required
-				name="customerName"
+				border-bottom
+			>
+				<u-input
+					v-model="form.salesman"
+					readonly
+					placeholder="鐐瑰嚮閫夋嫨涓氬姟鍛�"
+					@click="showPicker = true"
+				/>
+			</u-form-item>
+			<u-form-item label="瀹㈡埛鍚堝悓鍙�" prop="customerContractNo" required border-bottom>
+				<u-input
+					v-model="form.customerContractNo"
+					placeholder="璇疯緭鍏ュ鎴峰悎鍚屽彿"
+				/>
+			</u-form-item>
+			<u-form-item
 				label="瀹㈡埛鍚嶇О"
-				placeholder="鐐瑰嚮閫夋嫨瀹㈡埛"
-				:rules="[{ required: true, message: '璇烽�夋嫨瀹㈡埛' }]"
-				@click="showCustomerPicker = true"
-			/>
-			<van-field label="椤圭洰鍚嶇О" name="projectName" borderBottom="true" v-model="form.projectName" placeholder="璇疯緭鍏ラ」鐩悕绉�" :rules="[{ required: true, message: '椤圭洰鍚嶇О涓嶈兘涓虹┖' }]" required>
-			</van-field>
-			<van-field
-				v-model="form.executionDate"
-				is-link
-				readonly
+				prop="customerName"
 				required
-				name="executionDate"
+				border-bottom
+			>
+				<u-input
+					v-model="form.customerName"
+					readonly
+					placeholder="鐐瑰嚮閫夋嫨瀹㈡埛"
+					@click="showCustomerPicker = true"
+				/>
+			</u-form-item>
+			<u-form-item label="椤圭洰鍚嶇О" prop="projectName" required border-bottom>
+				<u-input v-model="form.projectName" placeholder="璇疯緭鍏ラ」鐩悕绉�" />
+			</u-form-item>
+			<u-form-item
 				label="绛捐鏃ユ湡"
-				placeholder="鐐瑰嚮閫夋嫨鏃堕棿"
-				:rules="[{ required: true, message: '绛捐鏃ユ湡涓嶈兘涓虹┖' }]"
-				@click="showDatePicker = true"
-			/>
-			<van-popup v-model:show="showDatePicker" destroy-on-close position="bottom">
-				<van-date-picker
+				prop="executionDate"
+				required
+				border-bottom
+			>
+				<u-input
+					v-model="form.executionDate"
+					readonly
+					placeholder="鐐瑰嚮閫夋嫨鏃堕棿"
+					@click="showDatePicker = true"
+				/>
+			</u-form-item>
+			<u-popup v-model="showDatePicker" mode="bottom">
+				<u-datetime-picker
 					v-model="pickerDateValue"
 					@confirm="onDateConfirm"
 					@cancel="showDatePicker = false"
 				/>
-			</van-popup>
-			<van-field label="浠樻鏂瑰紡" name="paymentMethod" borderBottom="true" v-model="form.paymentMethod" placeholder="璇疯緭鍏ヤ粯娆炬柟寮�">
-			</van-field>
-			<van-field label="褰曞叆浜�" name="entryPersonName" borderBottom="true" v-model="form.entryPersonName" placeholder="璇疯緭鍏�" disabled>
-			</van-field>
-			<van-field label="褰曞叆鏃ユ湡" name="entryDate" borderBottom="true" v-model="form.entryDate" placeholder="璇疯緭鍏�" disabled>
-			</van-field>
-			<van-popup v-model:show="showPicker" destroy-on-close position="bottom">
-				<van-picker
+			</u-popup>
+			<u-form-item label="浠樻鏂瑰紡" prop="paymentMethod" border-bottom>
+				<u-input v-model="form.paymentMethod" placeholder="璇疯緭鍏ヤ粯娆炬柟寮�" />
+			</u-form-item>
+			<u-form-item label="褰曞叆浜�" prop="entryPersonName" border-bottom>
+				<u-input v-model="form.entryPersonName" placeholder="璇疯緭鍏�" disabled />
+			</u-form-item>
+			<u-form-item label="褰曞叆鏃ユ湡" prop="entryDate" border-bottom>
+				<u-input v-model="form.entryDate" placeholder="璇疯緭鍏�" disabled />
+			</u-form-item>
+			<!-- 涓氬姟鍛橀�夋嫨寮圭獥 -->
+			<u-popup v-model="showPicker" mode="bottom">
+				<view class="picker-header">
+					<view class="picker-cancel" @click="showPicker = false">鍙栨秷</view>
+					<view class="picker-title">閫夋嫨涓氬姟鍛�</view>
+					<view class="picker-confirm" @click="confirmSalesman">纭畾</view>
+				</view>
+				<u-picker
 					:columns="userList"
 					v-model="pickerValue"
-					@confirm="onConfirm"
-					@cancel="showPicker = false"
+					@change="onPickerChange"
 				/>
-			</van-popup>
-			<van-popup v-model:show="showCustomerPicker" destroy-on-close position="bottom">
-				<van-picker
+			</u-popup>
+			
+			<!-- 瀹㈡埛閫夋嫨寮圭獥 -->
+			<u-popup v-model="showCustomerPicker" mode="bottom">
+				<view class="picker-header">
+					<view class="picker-cancel" @click="showCustomerPicker = false">鍙栨秷</view>
+					<view class="picker-title">閫夋嫨瀹㈡埛</view>
+					<view class="picker-confirm" @click="confirmCustomer">纭畾</view>
+				</view>
+				<u-picker
 					:columns="customerOption"
 					v-model="pickerCustomerValue"
-					@confirm="onCustomerConfirm"
-					@cancel="showCustomerPicker = false"
+					@change="onCustomerPickerChange"
 				/>
-			</van-popup>
+			</u-popup>
 			
 			<!-- 浜у搧澶х被閫夋嫨鍣� -->
-			<van-popup v-model:show="showCategoryPicker" destroy-on-close position="bottom">
+			<u-popup v-model="showCategoryPicker" mode="bottom">
 				<!-- 澶撮儴鎸夐挳鍖哄煙 -->
 				<view class="popup-header">
 					<view @click="showCategoryPicker = false" class="cancelButton">鍙栨秷</view>
@@ -91,175 +115,209 @@
 					check-strictly
 					@check-change="onCategoryConfirm"
 				/>
-			</van-popup>
+			</u-popup>
 			
 			<!-- 瑙勬牸鍨嬪彿閫夋嫨鍣� -->
-			<van-popup v-model:show="showSpecificationPicker" destroy-on-close position="bottom">
-				<van-picker
+			<u-popup v-model="showSpecificationPicker" mode="bottom">
+				<u-picker
 					:columns="modelOptions"
 					v-model="pickerSpecificationValue"
 					@confirm="onSpecificationConfirm"
 					@cancel="showSpecificationPicker = false"
 				/>
-			</van-popup>
+			</u-popup>
 			
 			<!-- 绋庣巼閫夋嫨鍣� -->
-			<van-popup v-model:show="showTaxRatePicker" destroy-on-close position="bottom">
-				<van-picker
+			<u-popup v-model="showTaxRatePicker" mode="bottom">
+				<u-picker
 					:columns="taxRateOptions"
 					v-model="pickerTaxRateValue"
 					@confirm="onTaxRateConfirm"
 					@cancel="showTaxRatePicker = false"
 				/>
-			</van-popup>
+			</u-popup>
 			
 			<!-- 鍙戠エ绫诲瀷閫夋嫨鍣� -->
-			<van-popup v-model:show="showInvoiceTypePicker" destroy-on-close position="bottom">
-				<van-picker
+			<u-popup v-model="showInvoiceTypePicker" mode="bottom">
+				<u-picker
 					:columns="invoiceTypeOptions"
 					v-model="pickerInvoiceTypeValue"
 					@confirm="onInvoiceTypeConfirm"
 					@cancel="showInvoiceTypePicker = false"
 				/>
-			</van-popup>
+			</u-popup>
 			<!-- 浜у搧淇℃伅 -->
 			<view class="product-section">
 				<view class="section-header">
 					<text class="section-title">浜у搧淇℃伅</text>
-					<van-button type="primary" size="small" @click="addProduct" class="add-btn" icon="plus"  v-if="operationType !== 'view'">鏂板</van-button>
+					<u-button type="primary" size="small" @click="addProduct" class="add-btn" v-if="operationType !== 'view'">
+						<u-icon name="plus" size="14" />
+						鏂板
+					</u-button>
 				</view>
 				<view class="product-card" v-for="(product, idx) in productData" :key="idx">
 					<!-- 浜у搧绫� -->
 					<view class="product-header">
 						<view class="product-title">
-							<van-icon name="description" color="#2979ff" size="15" />
+							<u-icon name="file-text" color="#2979ff" size="15" />
 							<text class="product-productCategory">浜у搧 {{ idx + 1 }}</text>
 						</view>
 						<!-- 鎿嶄綔鎸夐挳 -->
-						<view class="product-actions"  v-if="operationType !== 'view'">
-							<van-button type="danger" size="mini" @click="removeProduct(idx)" class="del-btn" icon="delete">鍒犻櫎</van-button>
+						<view class="product-actions" v-if="operationType !== 'view'">
+							<u-button type="error" size="mini" @click="removeProduct(idx)" class="del-btn">
+								<u-icon name="trash" size="12" />
+								鍒犻櫎
+							</u-button>
 						</view>
 					</view>
 					
 					<!-- 浜у搧淇℃伅琛ㄥ崟 -->
 					<view class="product-form">
 						<!-- 浜у搧澶х被 -->
-						<van-field
-							v-model="product.productCategory"
-							is-link
-							readonly
-							name="productCategory"
+						<u-form-item
 							label="浜у搧澶х被"
+							prop="productCategory"
 							required
-							placeholder="璇烽�夋嫨"
-							:rules="[{ required: true, message: '璇烽�夋嫨' }]"
-							@click="openCategoryPicker(idx)"
-						/>
+							border-bottom
+						>
+							<u-input
+								v-model="product.productCategory"
+								readonly
+								placeholder="璇烽�夋嫨"
+								@click="openCategoryPicker(idx)"
+							/>
+						</u-form-item>
 						
 						<!-- 瑙勬牸鍨嬪彿 -->
-						<van-field
-							v-model="product.specificationModel"
-							is-link
-							readonly
-							name="specificationModel"
+						<u-form-item
 							label="瑙勬牸鍨嬪彿"
+							prop="specificationModel"
 							required
-							:rules="[{ required: true, message: '璇烽�夋嫨' }]"
-							placeholder="璇烽�夋嫨"
-							@click="openSpecificationPicker(idx)"
-						/>
+							border-bottom
+						>
+							<u-input
+								v-model="product.specificationModel"
+								readonly
+								placeholder="璇烽�夋嫨"
+								@click="openSpecificationPicker(idx)"
+							/>
+						</u-form-item>
 						
 						<!-- 鍗曚綅 -->
-						<van-field
-							v-model="product.unit"
-							name="unit"
+						<u-form-item
 							label="鍗曚綅"
+							prop="unit"
 							required
-							:rules="[{ required: true, message: '璇疯緭鍏�' }]"
-							placeholder="璇疯緭鍏�"
-						/>
+							border-bottom
+						>
+							<u-input
+								v-model="product.unit"
+								placeholder="璇疯緭鍏�"
+							/>
+						</u-form-item>
 						
 						<!-- 绋庣巼 -->
-						<van-field
-							v-model="product.taxRate"
-							is-link
-							readonly
-							name="taxRate"
+						<u-form-item
 							label="绋庣巼(%)"
+							prop="taxRate"
 							required
-							:rules="[{ required: true, message: '璇烽�夋嫨' }]"
-							placeholder="璇烽�夋嫨"
-							@click="openTaxRatePicker(idx)"
-						/>
+							border-bottom
+						>
+							<u-input
+								v-model="product.taxRate"
+								readonly
+								placeholder="璇烽�夋嫨"
+								@click="openTaxRatePicker(idx)"
+							/>
+						</u-form-item>
 						
 						<!-- 鍚◣鍗曚环 -->
-						<van-field
-							v-model="product.taxInclusiveUnitPrice"
-							name="taxInclusiveUnitPrice"
+						<u-form-item
 							label="鍚◣鍗曚环(鍏�)"
-							type="number"
+							prop="taxInclusiveUnitPrice"
 							required
-							:rules="[{ required: true, message: '璇疯緭鍏�' }]"
-							placeholder="璇疯緭鍏�"
-							@blur="formatTaxPrice(idx)"
-						/>
+							border-bottom
+						>
+							<u-input
+								v-model="product.taxInclusiveUnitPrice"
+								type="number"
+								placeholder="璇疯緭鍏�"
+								@blur="formatTaxPrice(idx)"
+							/>
+						</u-form-item>
 						
 						<!-- 鏁伴噺 -->
-						<van-field
-							v-model="product.quantity"
-							name="quantity"
+						<u-form-item
 							label="鏁伴噺"
-							type="number"
-							:rules="[{ required: true, message: '璇疯緭鍏�' }]"
+							prop="quantity"
 							required
-							placeholder="璇疯緭鍏�"
-							@blur="formatAmount(idx)"
-						/>
+							border-bottom
+						>
+							<u-input
+								v-model="product.quantity"
+								type="number"
+								placeholder="璇疯緭鍏�"
+								@blur="formatAmount(idx)"
+							/>
+						</u-form-item>
 						
 						<!-- 鍚◣鎬讳环 -->
-						<van-field
-							v-model="product.taxInclusiveTotalPrice"
-							name="taxInclusiveTotalPrice"
+						<u-form-item
 							label="鍚◣鎬讳环(鍏�)"
-							type="number"
-							:rules="[{ required: true, message: '璇疯緭鍏�' }]"
+							prop="taxInclusiveTotalPrice"
 							required
-							placeholder="璇疯緭鍏�"
-							@blur="formatTaxTotal(idx)"
-						/>
+							border-bottom
+						>
+							<u-input
+								v-model="product.taxInclusiveTotalPrice"
+								type="number"
+								placeholder="璇疯緭鍏�"
+								@blur="formatTaxTotal(idx)"
+							/>
+						</u-form-item>
 						
 						<!-- 涓嶅惈绋庢�讳环 -->
-						<van-field
-							v-model="product.taxExclusiveTotalPrice"
-							name="taxExclusiveTotalPrice"
+						<u-form-item
 							label="涓嶅惈绋庢�讳环(鍏�)"
-							type="number"
+							prop="taxExclusiveTotalPrice"
 							required
-							:rules="[{ required: true, message: '璇疯緭鍏�' }]"
-							placeholder="璇疯緭鍏�"
-							@blur="formatNoTaxTotal(idx)"
-						/>
+							border-bottom
+						>
+							<u-input
+								v-model="product.taxExclusiveTotalPrice"
+								type="number"
+								placeholder="璇疯緭鍏�"
+								@blur="formatNoTaxTotal(idx)"
+							/>
+						</u-form-item>
 						
 						<!-- 鍙戠エ绫诲瀷 -->
-						<van-field
-							v-model="product.invoiceType"
-							is-link
-							readonly
-							name="invoiceType"
+						<u-form-item
 							label="鍙戠エ绫诲瀷"
-							:rules="[{ required: true, message: '璇烽�夋嫨' }]"
+							prop="invoiceType"
 							required
-							placeholder="璇烽�夋嫨"
-							@click="openInvoiceTypePicker(idx)"
-						/>
+							border-bottom
+						>
+							<u-input
+								v-model="product.invoiceType"
+								readonly
+								placeholder="璇烽�夋嫨"
+								@click="openInvoiceTypePicker(idx)"
+							/>
+						</u-form-item>
 					</view>
 				</view>
 			</view>
-			<view class="footer-btns" v-if="operationType !== 'view'">
-				<van-button class="cancel-btn" @click="goBack">鍙栨秷</van-button>
-				<van-button class="save-btn" native-type="submit" form-type="submit">淇濆瓨</van-button>
-			</view>
-		</van-form>
+		</u-form>
+		
+		<!-- 浣跨敤鍏叡搴曢儴鎸夐挳缁勪欢 -->
+		<FooterButtons
+			:show="operationType !== 'view'"
+			cancelText="鍙栨秷"
+			confirmText="淇濆瓨"
+			@cancel="goBack"
+			@confirm="onSubmit"
+		/>
   </view>
 </template>
 
@@ -276,6 +334,8 @@
 } from "@/api/salesManagement/salesLedger";
 import useUserStore from "@/store/modules/user";
 import {calculateTaxExclusiveTotalPrice} from "@/utils/summarizeTable";
+import PageHeader from '@/components/PageHeader.vue';
+import FooterButtons from '@/components/FooterButtons.vue';
 
 // 鑾峰彇椤甸潰鍙傛暟
 const operationType = ref('');
@@ -314,6 +374,12 @@
 const pickerSpecificationValue = ref(['']);
 const pickerTaxRateValue = ref(['']);
 const pickerInvoiceTypeValue = ref(['']);
+
+// 涓存椂瀛樺偍閫夋嫨鍣ㄩ�変腑鐨勫��
+const tempSalesmanValue = ref('');
+const tempCustomerValue = ref('');
+const selectedSalesman = ref(null);
+const selectedCustomer = ref(null);
 const currentProductIndex = ref(0);
 
 // 閫夐」鏁版嵁
@@ -356,15 +422,58 @@
     invoiceType: ''
   });
 };
-const onConfirm = ({ selectedValues, selectedOptions }) => {
-	form.value.salesman = selectedOptions[0]?.text;
-	pickerValue.value = [selectedValues[0]];
+// 涓氬姟鍛橀�夋嫨鍣ㄥ彉鍖栦簨浠�
+const onPickerChange = ({ selectedValues, selectedOptions }) => {
+	selectedSalesman.value = selectedOptions[0];
+	tempSalesmanValue.value = {
+		text: selectedOptions[0]?.text,
+		value: selectedOptions[0]?.value
+	};
+};
+
+// 纭閫夋嫨涓氬姟鍛�
+const confirmSalesman = () => {
+	if (selectedSalesman.value) {
+		form.value.salesman = selectedSalesman.value.text;
+		pickerValue.value = [selectedSalesman.value.value];
+	}
 	showPicker.value = false;
 };
+
+// 瀹㈡埛閫夋嫨鍣ㄥ彉鍖栦簨浠�
+const onCustomerPickerChange = ({ selectedValues, selectedOptions }) => {
+	selectedCustomer.value = selectedOptions[0];
+	tempCustomerValue.value = {
+		text: selectedOptions[0]?.text,
+		value: selectedOptions[0]?.value
+	};
+};
+
+// 纭閫夋嫨瀹㈡埛
+const confirmCustomer = () => {
+	if (selectedCustomer.value) {
+		form.value.customerName = selectedCustomer.value.text;
+		form.value.customerId = selectedCustomer.value.value;
+		pickerCustomerValue.value = [selectedCustomer.value.value];
+	}
+	showCustomerPicker.value = false;
+};
+
+// 淇敼鍘熸湁鐨勭‘璁ゆ柟娉曪紙淇濇寔鍏煎鎬э級
+const onConfirm = ({ selectedValues, selectedOptions }) => {
+	if (selectedOptions && selectedOptions[0]) {
+		form.value.salesman = selectedOptions[0].text;
+		pickerValue.value = [selectedValues[0]];
+	}
+	showPicker.value = false;
+};
+
 const onCustomerConfirm = ({ selectedValues, selectedOptions }) => {
-	form.value.customerName = selectedOptions[0]?.text;
-	form.value.customerId = selectedOptions[0]?.value;
-	pickerCustomerValue.value = [selectedValues[0]];
+	if (selectedOptions && selectedOptions[0]) {
+		form.value.customerName = selectedOptions[0].text;
+		form.value.customerId = selectedOptions[0].value;
+		pickerCustomerValue.value = [selectedValues[0]];
+	}
 	showCustomerPicker.value = false;
 };
 const onDateConfirm = ({ selectedValues }) => {
@@ -664,20 +773,20 @@
 };
 const getUserList = () => {
 	userListNoPage().then((res) => {
-		// 灏嗙敤鎴锋暟鎹粍瑁呮垚 picker 闇�瑕佺殑鏍煎紡
-		userList.value = res.data.map(user => ({
+		// 纭繚鏁版嵁鏍煎紡姝g‘
+		userList.value = [res.data.map(user => ({
 			text: user.nickName,
 			value: user.nickName
-		}));
+		}))];
 	})
 }
 const getCustomerList = () => {
 	customerList().then((res) => {
-		// 灏嗙敤鎴锋暟鎹粍瑁呮垚 picker 闇�瑕佺殑鏍煎紡
-		customerOption.value = res.map(item => ({
+		// 纭繚鏁版嵁鏍煎紡姝g‘
+		customerOption.value = [res.map(item => ({
 			text: item.customerName,
 			value: item.id
-		}));
+		}))];
 	})
 }
 const convertIdToValue = (data) => {
@@ -745,6 +854,7 @@
   background: #f8f9fa;
   padding-bottom: 5rem;
 }
+
 .header {
   display: flex;
   align-items: center;
@@ -757,6 +867,7 @@
 	/* 鍏煎 iOS 鍒樻捣/鐏靛姩宀涘畨鍏ㄥ尯 */
 	padding-top: env(safe-area-inset-top);
 }
+
 .title {
   flex: 1;
   text-align: center;
@@ -764,6 +875,7 @@
   font-weight: 600;
   color: #333;
 }
+
 .form-section {
 	margin-top: 1rem;
 }
@@ -779,17 +891,20 @@
   padding: 1rem;
   box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,0.04);
 }
+
 .section-header {
   display: flex;
   align-items: center;
   justify-content: space-between;
   margin-bottom: 1rem;
 }
+
 .section-title {
   font-size: 1rem;
   font-weight: 600;
   color: #333;
 }
+
 .product-card {
 	background: #FFFFFF;
 	box-shadow: 0 0 1.25rem 0 rgba(0,57,117,0.08);
@@ -797,6 +912,7 @@
   padding: 1rem 0.5rem 0 0.5rem;
   position: relative;
 }
+
 .product-header {
   display: flex;
   align-items: center;
@@ -804,70 +920,46 @@
   padding: 0 0.5rem 0.75rem 0.5rem;
   border-bottom: 0.0625rem solid #e8e8e8;
 }
+
 .product-productCategory {
   margin-left: 0.5rem;
   font-size: 0.875rem;
   font-weight: 500;
   color: #333;
 }
+
 .info-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 0.75rem;
   margin-bottom: 1rem;
 }
+
 .info-item {
   display: flex;
   flex-direction: column;
   gap: 0.25rem;
 }
+
 .info-label {
   font-size: 0.75rem;
   color: #666;
   font-weight: 400;
 }
+
 .info-value {
   font-size: 0.875rem;
   color: #333;
   font-weight: 500;
 }
+
 .info-value.highlight {
   color: #2979ff;
   font-weight: 600;
 }
+
 .product-form {
   margin-bottom: 1rem;
-}
-.footer-btns {
-  position: fixed;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  background: #fff;
-  display: flex;
-  justify-content: space-around;
-  align-items: center;
-  padding: 0.75rem 0;
-  box-shadow: 0 -0.125rem 0.5rem rgba(0,0,0,0.05);
-  z-index: 1000;
-}
-.cancel-btn {
-	font-weight: 400;
-	font-size: 1rem;
-	color: #FFFFFF;
-	width: 6.375rem;
-	background: #C7C9CC;
-	box-shadow: 0 0.25rem 0.625rem 0 rgba(3,88,185,0.2);
-	border-radius: 2.5rem 2.5rem 2.5rem 2.5rem;
-}
-.save-btn {
-	font-weight: 400;
-	font-size: 1rem;
-	color: #FFFFFF;
-	width: 14rem;
-	background: linear-gradient( 140deg, #00BAFF 0%, #006CFB 100%);
-	box-shadow: 0 0.25rem 0.625rem 0 rgba(3,88,185,0.2);
-	border-radius: 2.5rem 2.5rem 2.5rem 2.5rem;
 }
 
 .popup-header {
@@ -880,13 +972,102 @@
 	top: 0;
 	z-index: 10;
 }
+
 .cancelButton {
 	color: #969799
 }
+
 .confirmButton {
 	color: #1989FA
 }
+
 .u-tree {
 	height: 13rem;
 }
+
+/* 绉婚櫎 input 杈规鐨勬牱寮� */
+:deep(.u-input) {
+  border: none !important;
+  box-shadow: none !important;
+  background: transparent !important;
+}
+
+:deep(.u-input__content) {
+  border: none !important;
+  box-shadow: none !important;
+  background: transparent !important;
+}
+
+:deep(.u-input__content__field-wrapper) {
+  border: none !important;
+  box-shadow: none !important;
+  background: transparent !important;
+}
+
+:deep(.u-input__content__field-wrapper__field) {
+  border: none !important;
+  box-shadow: none !important;
+  background: transparent !important;
+  outline: none !important;
+}
+
+/* 绉婚櫎 textarea 杈规鐨勬牱寮� */
+:deep(.u-textarea) {
+  border: none !important;
+  box-shadow: none !important;
+  background: transparent !important;
+}
+
+:deep(.u-textarea__content) {
+  border: none !important;
+  box-shadow: none !important;
+  background: transparent !important;
+}
+
+:deep(.u-textarea__content__field) {
+  border: none !important;
+  box-shadow: none !important;
+  background: transparent !important;
+  outline: none !important;
+}
+
+/* 绉婚櫎 form-item 鐨勮竟妗� */
+:deep(.u-form-item) {
+  border: none !important;
+}
+
+:deep(.u-form-item__body) {
+  border: none !important;
+}
+
+/* 淇濇寔鍒嗗壊绾挎牱寮� */
+:deep(.u-form-item--border-bottom) {
+  border-bottom: 1px solid #ebeef5 !important;
+}
+
+/* 閫夋嫨鍣ㄥご閮ㄦ牱寮� */
+.picker-header {
+	display: flex;
+	justify-content: space-between;
+	align-items: center;
+	padding: 15px 20px;
+	background: #fff;
+	border-bottom: 1px solid #ebeef5;
+}
+
+.picker-cancel {
+	color: #909399;
+	font-size: 16px;
+}
+
+.picker-title {
+	color: #303133;
+	font-size: 16px;
+	font-weight: 500;
+}
+
+.picker-confirm {
+	color: #2979ff;
+	font-size: 16px;
+}
 </style>

--
Gitblit v1.9.3