From b52bec54f02f5b894d5dde30f8f05b76c71771ba Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 12 九月 2025 15:48:18 +0800
Subject: [PATCH] feat: 支付宝充值

---
 src/views/ServiceChargeManage/ServiceChargeManage.vue |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/src/views/ServiceChargeManage/ServiceChargeManage.vue b/src/views/ServiceChargeManage/ServiceChargeManage.vue
index d543c3b..6888c19 100644
--- a/src/views/ServiceChargeManage/ServiceChargeManage.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeManage.vue
@@ -89,6 +89,8 @@
     </AppContainer>
     <UploadStatementDialog v-bind="dialogProps" />
     <SettleDetailDialog v-bind="dialogSettleProps" />
+    <RechargeEnterpriseWalletDialog v-bind="dialogRechargeProps" />
+    <AlipayWalletRecharge v-bind="dialogAlipayWalletProps" />
   </LoadingLayout>
 </template>
 
@@ -117,9 +119,12 @@
 } from '@/constants';
 import { downloadFileByUrl, setOssFileName } from '@/utils';
 import * as taskServices from '@/services/api/task';
+import * as enterpriseWalletServices from '@/services/api/enterpriseWallet';
 import { ModelValueType } from 'element-plus';
 import UploadStatementDialog from './components/UploadStatementDialog.vue';
 import SettleDetailDialog from './components/SettleDetailDialog.vue';
+import RechargeEnterpriseWalletDialog from './components/RechargeEnterpriseWalletDialog.vue';
+import AlipayWalletRecharge from './components/AlipayWalletRecharge.vue';
 import { Message } from '@bole-core/core';
 
 defineOptions({
@@ -201,12 +206,14 @@
       onClick: (role) => handleExport(role),
     },
     extraProps: {
-      hide: () => false,
+      hide: () => true,
     },
   },
 ]);
 
 const router = useRouter();
+
+const { userDetail } = useUser();
 
 const eventContext = useGlobalEventContext();
 
@@ -288,7 +295,6 @@
 });
 
 async function handleAddOrEdit() {
-  console.log('editForm: ', editForm);
   goDetail(editForm.id, editForm.settlementUrl[0]?.path);
 }
 
@@ -303,7 +309,7 @@
     name: '',
     code: '',
     settlementUserCount: 0,
-    settlementAmount: 0,
+    actualSettlementAmount: 0,
   },
 });
 
@@ -312,10 +318,51 @@
     let params: API.SureTaskSettlementCommand = {
       taskInfoId: settleEditForm.id,
     };
-    let res = await taskServices.sureTaskSettlement(params);
+    let res = await taskServices.sureTaskSettlement(params, {
+      skipErrorHandler: true,
+    });
     if (res) {
       Message.successMessage('鎿嶄綔鎴愬姛');
       getList(paginationState.pageIndex);
+    }
+  } catch (error) {
+    if (error?.info?.errorCode == 's510') {
+      handleRechargeAdd();
+    }
+  }
+}
+
+const {
+  dialogProps: dialogRechargeProps,
+  handleAdd: handleRechargeAdd,
+  editForm: rechargeEditForm,
+} = useFormDialog({
+  onConfirm: rechargeEnterpriseWallet,
+  defaultFormParams: {
+    amount: null as number,
+    remark: '',
+  },
+});
+
+const { dialogProps: dialogAlipayWalletProps, handleAdd: handleAlipayWalletAdd } = useFormDialog({
+  onConfirm: rechargeEnterpriseWallet,
+  defaultFormParams: {
+    alipayUrl: '',
+  },
+});
+
+async function rechargeEnterpriseWallet() {
+  try {
+    let params: API.RechargeEnterpriseWalletCommand = {
+      access: EnumEnterpriseWalletAccess.Alipay,
+      amount: rechargeEditForm.amount,
+      remark: rechargeEditForm.remark,
+    };
+    let res = await enterpriseWalletServices.rechargeEnterpriseWallet(params);
+    if (res) {
+      handleAlipayWalletAdd({
+        alipayUrl: res.payUrl,
+      });
     }
   } catch (error) {}
 }
@@ -326,7 +373,7 @@
     name: row.name,
     code: row.code,
     settlementUserCount: row.settlementUserCount ?? 0,
-    settlementAmount: row.settlementAmount ?? 0,
+    actualSettlementAmount: row.actualSettlementAmount ?? 0,
   });
 }
 

--
Gitblit v1.9.1