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

---
 src/pages/sales/invoicingRegistration/add.vue |  303 ++++++++++++++++++++++----------------------------
 1 files changed, 134 insertions(+), 169 deletions(-)

diff --git a/src/pages/sales/invoicingRegistration/add.vue b/src/pages/sales/invoicingRegistration/add.vue
index 1156f6e..64c1931 100644
--- a/src/pages/sales/invoicingRegistration/add.vue
+++ b/src/pages/sales/invoicingRegistration/add.vue
@@ -4,67 +4,63 @@
     <PageHeader title="鏂板寮�绁ㄧ櫥璁�" @back="goBack" />
     
     <!-- 琛ㄥ崟鍐呭 -->
-    <u-form @submit="submitForm" ref="formRef" label-width="110" input-align="right" error-message-align="right">
+    <van-form @submit="submitForm" ref="formRef" label-width="110px" input-align="right" error-message-align="right" scroll-to-error scroll-to-error-position="center">
       <!-- 鍩烘湰淇℃伅 -->
-      <u-cell-group title="鍩烘湰淇℃伅">
-        <u-form-item label="閿�鍞悎鍚屽彿" border-bottom>
-          <u-input
-            v-model="form.salesContractNo"
-            readonly
-            placeholder="鑷姩濉厖"
-          />
-        </u-form-item>
-        <u-form-item label="瀹㈡埛鍚嶇О" border-bottom>
-          <u-input
-            v-model="form.customerName"
-            readonly
-            placeholder="鑷姩濉厖"
-          />
-        </u-form-item>
-        <u-form-item label="涓氬姟鍛�" border-bottom>
-          <u-input
-            v-model="form.salesman"
-            readonly
-            placeholder="鑷姩濉厖"
-          />
-        </u-form-item>
-        <u-form-item label="椤圭洰鍚嶇О" border-bottom>
-          <u-input
-            v-model="form.projectName"
-            readonly
-            placeholder="鑷姩濉厖"
-          />
-        </u-form-item>
-        <u-form-item label="褰曞叆浜�" border-bottom>
-          <u-input
-            v-model="form.createUer"
-            readonly
-            placeholder="璇疯緭鍏ュ綍鍏ヤ汉"
-          />
-        </u-form-item>
-        <u-form-item label="褰曞叆鏃ユ湡" border-bottom>
-          <u-input
-            v-model="form.createTime"
-            readonly
-            placeholder="璇烽�夋嫨褰曞叆鏃ユ湡"
-            @click="showCreateTimePicker = true"
-          />
-        </u-form-item>
-        <u-form-item label="鍙戠エ鍙风爜" prop="invoiceNo" required border-bottom>
-          <u-input
-            v-model="form.invoiceNo"
-            placeholder="璇疯緭鍏ュ彂绁ㄥ彿鐮�"
-          />
-        </u-form-item>
-        <u-form-item label="寮�绁ㄦ棩鏈�" prop="issueDate" required border-bottom>
-          <u-input
-            v-model="form.issueDate"
-            readonly
-            placeholder="璇烽�夋嫨寮�绁ㄦ棩鏈�"
-            @click="showIssueDatePicker = true"
-          />
-        </u-form-item>
-      </u-cell-group>
+      <van-cell-group title="鍩烘湰淇℃伅" inset>
+        <van-field
+          v-model="form.salesContractNo"
+          label="閿�鍞悎鍚屽彿"
+          readonly
+          placeholder="鑷姩濉厖"
+        />
+        <van-field
+          v-model="form.customerName"
+          label="瀹㈡埛鍚嶇О"
+          readonly
+          placeholder="鑷姩濉厖"
+        />
+        <van-field
+          v-model="form.salesman"
+          label="涓氬姟鍛�"
+          readonly
+          placeholder="鑷姩濉厖"
+        />
+        <van-field
+          v-model="form.projectName"
+          label="椤圭洰鍚嶇О"
+          readonly
+          placeholder="鑷姩濉厖"
+        />
+        <van-field
+          v-model="form.createUer"
+          label="褰曞叆浜�"
+					readonly
+          placeholder="璇疯緭鍏ュ綍鍏ヤ汉"
+        />
+				<van-field
+					v-model="form.createTime"
+					label="褰曞叆鏃ユ湡"
+					readonly
+					placeholder="璇烽�夋嫨褰曞叆鏃ユ湡"
+					@click="showCreateTimePicker = true"
+				/>
+				<van-field
+					v-model="form.invoiceNo"
+					label="鍙戠エ鍙风爜"
+					required
+					placeholder="璇疯緭鍏ュ彂绁ㄥ彿鐮�"
+					:rules="[{ required: true, message: '璇疯緭鍏ュ彂绁ㄥ彿鐮�' }]"
+				/>
+        <van-field
+          v-model="form.issueDate"
+          label="寮�绁ㄦ棩鏈�"
+          readonly
+          placeholder="璇烽�夋嫨寮�绁ㄦ棩鏈�"
+					required
+          @click="showIssueDatePicker = true"
+          :rules="[{ required: true, message: '璇烽�夋嫨寮�绁ㄦ棩鏈�' }]"
+        />
+      </van-cell-group>
 
       <!-- 浜у搧淇℃伅 -->
       <view class="product-section">
@@ -73,7 +69,7 @@
         </view>
         
         <view v-if="productData.length === 0" class="empty-state">
-          <u-empty text="鏆傛棤浜у搧鏁版嵁" />
+          <van-empty description="鏆傛棤浜у搧鏁版嵁" />
         </view>
         
         <view v-else class="product-list">
@@ -85,151 +81,120 @@
             <!-- 浜у搧澶撮儴 -->
             <view class="product-header">
               <view class="product-title">
-                <u-icon name="file-text" color="#2979ff" size="15" />
+                <van-icon name="description" color="#2979ff" size="15" />
                 <text class="product-productCategory">浜у搧 {{ index + 1 }}</text>
               </view>
             </view>
             
             <!-- 浜у搧淇℃伅琛ㄥ崟 -->
             <view class="product-form">
-              <u-form-item label="浜у搧澶х被" border-bottom>
-                <u-input
-                  v-model="item.productCategory"
-                  readonly
-                />
-              </u-form-item>
-              <u-form-item label="瑙勬牸鍨嬪彿" border-bottom>
-                <u-input
-                  v-model="item.specificationModel"
-                  readonly
-                />
-              </u-form-item>
-              <u-form-item label="鍗曚綅" border-bottom>
-                <u-input
-                  v-model="item.unit"
-                  readonly
-                />
-              </u-form-item>
-              <u-form-item label="鏁伴噺" border-bottom>
-                <u-input
-                  v-model="item.quantity"
-                  readonly
-                />
-              </u-form-item>
-              <u-form-item label="绋庣巼(%)" border-bottom>
-                <u-input
-                  v-model="item.taxRate"
-                  readonly
-                />
-              </u-form-item>
-              <u-form-item label="鍚◣鍗曚环(鍏�)" border-bottom>
-                <u-input
-                  v-model="item.taxInclusiveUnitPrice"
-                  readonly
-                />
-              </u-form-item>
-              <u-form-item label="鍚◣鎬讳环(鍏�)" border-bottom>
-                <u-input
-                  v-model="item.taxInclusiveTotalPrice"
-                  readonly
-                />
-              </u-form-item>
-              <u-form-item label="涓嶅惈绋庢�讳环(鍏�)" border-bottom>
-                <u-input
-                  v-model="item.taxExclusiveTotalPrice"
-                  readonly
-                />
-              </u-form-item>
+              <van-field
+                v-model="item.productCategory"
+                label="浜у搧澶х被"
+                readonly
+              />
+              <van-field
+                v-model="item.specificationModel"
+                label="瑙勬牸鍨嬪彿"
+                readonly
+              />
+              <van-field
+                v-model="item.unit"
+                label="鍗曚綅"
+                readonly
+              />
+              <van-field
+                v-model="item.quantity"
+                label="鏁伴噺"
+                readonly
+              />
+              <van-field
+                v-model="item.taxRate"
+								label="绋庣巼(%)"
+                readonly
+              />
+              <van-field
+                v-model="item.taxInclusiveUnitPrice"
+                label="鍚◣鍗曚环(鍏�)"
+                readonly
+              />
+              <van-field
+                v-model="item.taxInclusiveTotalPrice"
+                label="鍚◣鎬讳环(鍏�)"
+                readonly
+              />
+              <van-field
+                v-model="item.taxExclusiveTotalPrice"
+                label="涓嶅惈绋庢�讳环(鍏�)"
+                readonly
+              />
               
               <!-- 鏈寮�绁ㄤ俊鎭� -->
-              <u-form-item label="鏈寮�绁ㄦ暟" border-bottom>
-                <u-input
-                  v-model="item.currentInvoiceNum"
-                  type="number"
-                  placeholder="璇疯緭鍏ュ紑绁ㄦ暟閲�"
-                  @blur="invoiceNumBlur(item)"
-                />
-              </u-form-item>
-              <u-form-item label="鏈寮�绁ㄩ噾棰�(鍏�)" border-bottom>
-                <u-input
-                  v-model="item.currentInvoiceAmount"
-                  type="number"
-                  placeholder="璇疯緭鍏ュ紑绁ㄩ噾棰�"
-                  @blur="invoiceAmountBlur(item)"
-                />
-              </u-form-item>
+              <van-field
+                v-model="item.currentInvoiceNum"
+                label="鏈寮�绁ㄦ暟"
+                type="number"
+                placeholder="璇疯緭鍏ュ紑绁ㄦ暟閲�"
+                @blur="invoiceNumBlur(item)"
+              />
+              <van-field
+                v-model="item.currentInvoiceAmount"
+                label="鏈寮�绁ㄩ噾棰�(鍏�)"
+                type="number"
+                placeholder="璇疯緭鍏ュ紑绁ㄩ噾棰�"
+                @blur="invoiceAmountBlur(item)"
+              />
               
               <!-- 鏈紑绁ㄤ俊鎭� -->
-              <u-form-item label="鏈紑绁ㄦ暟" border-bottom>
-                <u-input
-                  v-model="item.noInvoiceNum"
-                  readonly
-                />
-              </u-form-item>
-              <u-form-item label="鏈紑绁ㄩ噾棰�(鍏�)" border-bottom>
-                <u-input
-                  v-model="item.noInvoiceAmount"
-                  readonly
-                />
-              </u-form-item>
+              <van-field
+                v-model="item.noInvoiceNum"
+                label="鏈紑绁ㄦ暟"
+                readonly
+              />
+              <van-field
+                v-model="item.noInvoiceAmount"
+                label="鏈紑绁ㄩ噾棰�(鍏�)"
+                readonly
+              />
             </view>
           </view>
         </view>
       </view>
 
       <!-- 鎻愪氦鎸夐挳 -->
-      <view class="footer-btns">
-        <u-button class="cancel-btn" @click="goBack">鍙栨秷</u-button>
-        <u-button class="save-btn" type="primary" @click="submitForm">淇濆瓨</u-button>
-      </view>
-    </u-form>
+			<view class="footer-btns">
+				<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-popup v-model="showIssueDatePicker" mode="bottom">
-      <u-datetime-picker
+    <van-popup v-model:show="showIssueDatePicker" position="bottom">
+      <van-date-picker
         v-model="currentIssueDate"
         title="閫夋嫨寮�绁ㄦ棩鏈�"
         @confirm="onIssueDateConfirm"
         @cancel="showIssueDatePicker = false"
       />
-    </u-popup>
+    </van-popup>
 
-    <u-popup v-model="showCreateTimePicker" mode="bottom">
-      <u-datetime-picker
+    <van-popup v-model:show="showCreateTimePicker" position="bottom">
+      <van-date-picker
         v-model="currentCreateTime"
         title="閫夋嫨褰曞叆鏃ユ湡"
         @confirm="onCreateTimeConfirm"
         @cancel="showCreateTimePicker = false"
       />
-    </u-popup>
+    </van-popup>
   </view>
 </template>
 
 <script setup>
 import { ref, reactive, onMounted } from 'vue'
-// 鏇挎崲 Vant 鐨� toast 涓� uni 鍘熺敓鎴� uview-plus 鐨勬柟娉�
-// import { showToast, showLoadingToast, closeToast } from 'vant'
+import { showToast, showLoadingToast, closeToast } from 'vant'
 import { invoiceRegistrationSave } from '@/api/salesManagement/invoiceRegistration'
 import useUserStore from '@/store/modules/user'
 import {getSalesLedgerWithProducts} from "@/api/salesManagement/salesLedger";
-
-// 鏇挎崲 toast 鏂规硶
-const showToast = (message) => {
-  uni.showToast({
-    title: message,
-    icon: 'none'
-  })
-}
-
-const showLoadingToast = (message) => {
-  uni.showLoading({
-    title: message || '鍔犺浇涓�...'
-  })
-}
-
-const closeToast = () => {
-  uni.hideLoading()
-}
 
 const userStore = useUserStore()
 const editData = ref(null);

--
Gitblit v1.9.3