Bladeren bron

feat: 发票抬头表单增加「导入微信抬头」按钮

- 调用微信小程序 wx.chooseInvoiceTitle 选择微信已保存的抬头
- 自动填入抬头名称、税号、地址、电话、银行等信息
- 条件编译仅微信小程序生效

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
skyline 4 dagen geleden
bovenliggende
commit
65cf62c9c6
1 gewijzigde bestanden met toevoegingen van 32 en 1 verwijderingen
  1. 32 1
      charge-front/src/pages-common/invoice/invoice-form.vue

+ 32 - 1
charge-front/src/pages-common/invoice/invoice-form.vue

@@ -27,7 +27,12 @@
 
     <!-- 发票抬头表单 -->
     <view class="block mt-20">
-      <view class="fs-30 fw-600 color-333 mb-28">填写发票信息</view>
+      <view class="flex-align-center flex-between mb-28">
+        <view class="fs-30 fw-600 color-333">填写发票信息</view>
+        <view class="import-btn flex-center br-20 fs-24 color-theme py-8 px-16" @click="importWechatTitle">
+          导入微信抬头
+        </view>
+      </view>
 
       <!-- 接收邮箱 -->
       <view class="form-item">
@@ -153,6 +158,25 @@ onLoad((options: any) => {
     .catch(() => {});
 });
 
+const importWechatTitle = () => {
+  // #ifdef MP-WEIXIN
+  wx.chooseInvoiceTitle({
+    success: (res: any) => {
+      form.invoiceType = res.type === '1' ? 'ORGANIZATION' : 'INDIVIDUAL';
+      form.invoiceTitle = res.title || '';
+      form.taxId = res.taxNumber || '';
+      form.address = res.companyAddress || '';
+      form.phone = res.telephone || '';
+      form.bankName = res.bankName || '';
+      form.bankAccount = res.bankAccount || '';
+    },
+    fail: (err: any) => {
+      console.log('取消选择微信抬头', err);
+    }
+  });
+  // #endif
+};
+
 const selectTitle = (item: any) => {
   selectedTitleId.value = item.id;
   form.invoiceType = item.invoiceType || "ORGANIZATION";
@@ -247,6 +271,13 @@ const submit = () => {
   line-height: 80rpx;
 }
 
+.flex-between { justify-content: space-between; }
+
+.import-btn {
+  border: 2rpx solid #419D95;
+  background: rgba(65, 157, 149, 0.06);
+}
+
 .type-selector {
   .type-option {
     border: 2rpx solid #e0e0e0;