From 34e523d5ed7f25a0bc20532577ccde90386352aa Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 23 十月 2025 15:22:41 +0800
Subject: [PATCH] Merge branch 'dev-2.2.3' of http://120.26.58.240:8888/r/JYBIndependentFront into dev-2.2.3

---
 src/views/BalanceManage/BalanceManage.vue                    |   37 ++
 src/hooks/useUser.ts                                         |   10 
 src/services/api/typings.d.ts                                |  303 ++++++++++++++++++++
 src/constants/customerConsume.ts                             |   60 ++++
 src/views/BalanceManage/components/RewardGrantRecordView.vue |    6 
 src/views/BalanceManage/components/WithdrawalRecordView.vue  |  143 ++++++++++
 src/views/BalanceManage/components/PaymentRecordView.vue     |  123 ++++++++
 src/services/api/ParkBountyApply.ts                          |   81 +++++
 src/views/BalanceManage/components/RechargeRecordView.vue    |   18 
 src/views/Home/Home.vue                                      |    3 
 10 files changed, 753 insertions(+), 31 deletions(-)

diff --git a/src/constants/customerConsume.ts b/src/constants/customerConsume.ts
index 9fe7902..4c10490 100644
--- a/src/constants/customerConsume.ts
+++ b/src/constants/customerConsume.ts
@@ -18,3 +18,63 @@
   [FinanceTypeEnum.Recharge]: '棰勫厖鍊奸噾棰�',
   [FinanceTypeEnum.PlatReward]: '骞冲彴濂栧姳',
 };
+
+export enum TransferToStatusEnum {
+  /** 寰呭彂鏀�*/
+  WaitingForTransfer = 1,
+  /** 宸插彂鏀�*/
+  HasTransfer = 2,
+}
+
+export const TransferToStatusEnumText = {
+  [TransferToStatusEnum.WaitingForTransfer]: '寰呭彂鏀�',
+  [TransferToStatusEnum.HasTransfer]: '宸插彂鏀�',
+};
+
+export enum FinanceStatusEnum {
+  /** 鎷ㄤ粯寰呯櫥璁�*/
+  WaitForSettle = 1,
+  /** 鎷ㄤ粯宸茬櫥璁�*/
+  HasSettle = 2,
+  /** 宸蹭笂浼犲嚟璇�*/
+  HasBill = 3,
+}
+
+export const FinanceStatusEnumText = {
+  [FinanceStatusEnum.WaitForSettle]: '寰呮嫧浠�',
+  [FinanceStatusEnum.HasSettle]: '宸叉嫧浠�',
+  [FinanceStatusEnum.HasBill]: '宸叉嫧浠�',
+};
+
+export enum EnterpriseRechargeStatusEnum {
+  /** 寰呭鏍�*/
+  WaitCheck = 10,
+  /** 瀹℃牳閫氳繃*/
+  CheckPassed = 20,
+  /** 瀹℃牳鏈�氳繃*/
+  CheckReject = 30,
+}
+
+export const EnterpriseRechargeStatusEnumText = {
+  [EnterpriseRechargeStatusEnum.WaitCheck]: '寰呭鏍�',
+  [EnterpriseRechargeStatusEnum.CheckPassed]: '瀹℃牳閫氳繃',
+  [EnterpriseRechargeStatusEnum.CheckReject]: '瀹℃牳鏈�氳繃',
+};
+
+export const EnterpriseRechargeStatusEnumTextWithdrawal = {
+  [EnterpriseRechargeStatusEnum.WaitCheck]: '寰呭鏍�',
+  [EnterpriseRechargeStatusEnum.CheckPassed]: '宸叉嫧浠�',
+  [EnterpriseRechargeStatusEnum.CheckReject]: '瀹℃牳鏈�氳繃',
+};
+
+export enum EnterprisePrechargeInComeStatusEnum {
+  /** 鏈叆璐�*/
+  NotInCome = 10,
+  /** 宸插叆璐�*/
+  HasInCome = 20,
+}
+
+export const EnterprisePrechargeInComeStatusEnumText = {
+  [EnterprisePrechargeInComeStatusEnum.NotInCome]: '鏈叆璐�',
+  [EnterprisePrechargeInComeStatusEnum.HasInCome]: '宸插叆璐�',
+};
diff --git a/src/hooks/useUser.ts b/src/hooks/useUser.ts
index 1d23af1..d3fab41 100644
--- a/src/hooks/useUser.ts
+++ b/src/hooks/useUser.ts
@@ -2,6 +2,7 @@
 import { UserUtils } from '@bole-core/core';
 // import * as userRoleServices from '@/services/api/UserRole';
 import * as userServices from '@/services/api/User';
+import * as ParkBountyApplyServices from '@/services/api/ParkBountyApply';
 import { useQuery, useQueryClient } from '@tanstack/vue-query';
 
 export function useIsSystemAdmin() {
@@ -16,8 +17,17 @@
 
   const { userId, userInfo } = storeToRefs(userStore);
 
+  const { data: userDetail } = useQuery({
+    queryKey: ['ParkBountyApplyServices/get818UserInfo'],
+    queryFn: async () => {
+      return await ParkBountyApplyServices.get818UserInfo();
+    },
+    placeholderData: () => ({} as API.UserInfoV2),
+  });
+
   return {
     user: userInfo,
     userId: userId,
+    userDetail: userDetail,
   };
 }
diff --git a/src/services/api/ParkBountyApply.ts b/src/services/api/ParkBountyApply.ts
index 44fb7c0..4d95e5d 100644
--- a/src/services/api/ParkBountyApply.ts
+++ b/src/services/api/ParkBountyApply.ts
@@ -4,7 +4,7 @@
 
 /** 濂栧姳閲�-鍑鸿处 POST /api/ParkBountyApply/AuditParkBountyApplyTrade */
 export async function auditParkBountyApplyTrade(
-  body: API.AuditParkBountyTradeInput,
+  body: API.SyncAuditParkBountyTradeInput,
   options?: API.RequestConfig
 ) {
   return request<number>('/api/ParkBountyApply/AuditParkBountyApplyTrade', {
@@ -34,7 +34,7 @@
 
 /** 濂栧姳閲�-鍑鸿处-璐㈠姟瀹℃壒 POST /api/ParkBountyApply/FinanceAuditParkBountyApplyTrade */
 export async function financeAuditParkBountyApplyTrade(
-  body: API.AuditParkBountyTradeInput,
+  body: API.SyncFinanceAuditParkBountyTradeInput,
   options?: API.RequestConfig
 ) {
   return request<number>('/api/ParkBountyApply/FinanceAuditParkBountyApplyTrade', {
@@ -45,6 +45,47 @@
     data: body,
     ...(options || {}),
   });
+}
+
+/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/ParkBountyApply/Get818UserInfo */
+export async function get818UserInfo(options?: API.RequestConfig) {
+  return request<API.UserInfoV2>('/api/ParkBountyApply/Get818UserInfo', {
+    method: 'GET',
+    ...(options || {}),
+  });
+}
+
+/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/ParkBountyApply/GetEnterpriseDrawWithList */
+export async function getEnterpriseDrawWithList(
+  body: API.GetEnterpriseDrawWithListInput,
+  options?: API.RequestConfig
+) {
+  return request<API.GetEnterpriseDrawWithListOutputPageOutput>(
+    '/api/ParkBountyApply/GetEnterpriseDrawWithList',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/ParkBountyApply/GetEnterprisePrechargeList */
+export async function getEnterprisePrechargeList(body: API.PageInput, options?: API.RequestConfig) {
+  return request<API.GetEnterprisePrechargeListOutputPageOutput>(
+    '/api/ParkBountyApply/GetEnterprisePrechargeList',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
 }
 
 /** 杩愯惀绔�-濂栧姳杩涘嚭璐﹁鎯� POST /api/ParkBountyApply/GetParkBountyTradeDetailList */
@@ -83,6 +124,42 @@
   );
 }
 
+/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/ParkBountyApply/GetParkCustomerBountyFinanceList */
+export async function getParkCustomerBountyFinanceList(
+  body: API.QueryParkCustomerBountyApplyInput,
+  options?: API.RequestConfig
+) {
+  return request<API.GetParkCustomerBountyFinanceOutputPageOutput>(
+    '/api/ParkBountyApply/GetParkCustomerBountyFinanceList',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鍥尯瀹㈡埛绠$悊濂栧姳閲戝彂鏀捐褰� POST /api/ParkBountyApply/GetParkCustomerBountySettleList */
+export async function getParkCustomerBountySettleList(
+  body: API.QueryParkCustomerBountyApplyInput,
+  options?: API.RequestConfig
+) {
+  return request<API.GetParkCustomerBountySettleOutputPageOutput>(
+    '/api/ParkBountyApply/GetParkCustomerBountySettleList',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
 /** 杩愯惀绔�斿鍔遍噾-鍑鸿处 POST /api/ParkBountyApply/ParkBountyApplyTrade */
 export async function parkBountyApplyTrade(
   body: API.CreateParkBountyTradeInput,
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 7769d30..faa86b6 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -469,21 +469,13 @@
   interface AuditParkBountyTradeBySelfInput {
     /** 鍑鸿处璁板綍Id */
     id?: string;
+    /** 818鍑鸿处璁板綍Id */
+    parkBountyApplyDetailId?: string;
     selfAuditStatus?: EnumParkBountyTradeDetailAuditStatus;
     /** 瀹℃牳澶囨敞 */
     selfAuditRemark?: string;
     /** 瀹℃牳鍑瘉 */
     selfAuditFileUrl?: string;
-  }
-
-  interface AuditParkBountyTradeInput {
-    /** 鍑鸿处璁板綍Id */
-    id?: string;
-    auditStatus?: EnumParkBountyTradeDetailAuditStatus;
-    /** 瀹℃牳澶囨敞 */
-    auditRemark?: string;
-    /** 瀹℃牳鍑瘉 */
-    payAuditFileUrl?: string;
   }
 
   interface BaseAuthorizeDto {
@@ -531,6 +523,8 @@
   interface BatchSyncUserAmountInput {
     items?: SyncUserAmountInput[];
   }
+
+  type BountyCheckStatusEnum = 10 | 20 | 30 | -10;
 
   interface ChangePasswordInput {
     currentPassword?: string;
@@ -745,6 +739,12 @@
     downsizingInsuranceList?: string[];
   }
 
+  type EnterprisePrechargeInComeStatusEnum = 10 | 20;
+
+  type EnterpriseRechargeStatusEnum = 10 | 20 | 30;
+
+  type EnterpriseTypeEnum = 10 | 20 | 30 | 40;
+
   interface EntityExtensionDto {
     properties?: Record<string, any>;
     configuration?: Record<string, any>;
@@ -852,11 +852,67 @@
     url?: string;
   }
 
+  type FinanceStatusEnum = 1 | 2 | 3;
+
   type FinanceTypeEnum = 10 | 20;
+
+  type GenderTypeEnum = 1 | 2;
 
   interface GetEffectingStaffListInput {
     claimDateTime?: string;
     idNumber?: string;
+  }
+
+  interface GetEnterpriseDrawWithListInput {
+    pageModel?: Pagination;
+    keyWord?: string;
+    beginDateTime?: string;
+    endDateTime?: string;
+    enterpriseId?: string;
+    checkStatus?: EnterpriseRechargeStatusEnum;
+  }
+
+  interface GetEnterpriseDrawWithListOutput {
+    drawWithId?: string;
+    enterpriseId?: string;
+    enterpriseName?: string;
+    societyCreditCode?: string;
+    creationTime?: string;
+    enterpriseType?: string;
+    parkName?: string;
+    parkType?: string;
+    amount?: number;
+    remainAmount?: number;
+    checkStatus?: EnterpriseRechargeStatusEnum;
+    checkTime?: string;
+    checkRemark?: string;
+    checkFileUrl?: string;
+  }
+
+  interface GetEnterpriseDrawWithListOutputPageOutput {
+    pageModel?: Pagination;
+    objectData?: any;
+    data?: GetEnterpriseDrawWithListOutput[];
+  }
+
+  interface GetEnterprisePrechargeListOutput {
+    id?: string;
+    /** 鍏呭�奸噾棰� */
+    prechargeAmount?: number;
+    /** 鍏呭�煎嚟璇� */
+    rechargeVoucherFileUrl?: string;
+    /** 瀹℃牳澶囨敞 */
+    checkRemark?: string;
+    checkStatus?: EnterpriseRechargeStatusEnum;
+    inComeStatus?: EnterprisePrechargeInComeStatusEnum;
+    /** 鎻愪氦鏃ユ湡 */
+    creationTime?: string;
+  }
+
+  interface GetEnterprisePrechargeListOutputPageOutput {
+    pageModel?: Pagination;
+    objectData?: any;
+    data?: GetEnterprisePrechargeListOutput[];
   }
 
   interface GetFeatureListResultDto {
@@ -1124,6 +1180,7 @@
     /** 绀句細缁熶竴淇$敤浠g爜 */
     societyCreditCode?: string;
     id?: string;
+    parkBountyApplyDetailId?: string;
     /** 鏈�杩戝嚭璐﹂噾棰� */
     tradeAmount?: number;
     /** 鍑鸿处鍑瘉 */
@@ -1209,6 +1266,63 @@
     pageModel?: Pagination;
     objectData?: any;
     data?: GetParkBountyTradeOutput[];
+  }
+
+  interface GetParkCustomerBountyFinanceOutput {
+    id?: string;
+    /** 鐢宠鎵规鍙� */
+    batchNo?: string;
+    /** 鐢虫姤鏈堜唤 */
+    applyMonth?: string;
+    /** 鐢虫姤鎬婚 */
+    applySumAmount?: number;
+    /** 璐㈡斂鎷ㄤ粯閲戦 */
+    financeToAmount?: number;
+    /** 璐㈡斂鎷ㄤ粯鍏ヨ处鏃堕棿 */
+    financeToTime?: string;
+    /** 璐㈡斂鎷ㄤ粯鍙戞斁鏃ユ湡 */
+    financeTime?: string;
+    financeToStatus?: FinanceStatusEnum;
+    /** 鎷ㄤ粯鍏ヨ处鍑瘉 */
+    financeToFileUrl?: string;
+    inCheckStatus?: BountyCheckStatusEnum;
+    outCheckStatus?: BountyCheckStatusEnum;
+  }
+
+  interface GetParkCustomerBountyFinanceOutputPageOutput {
+    pageModel?: Pagination;
+    objectData?: any;
+    data?: GetParkCustomerBountyFinanceOutput[];
+  }
+
+  interface GetParkCustomerBountySettleOutput {
+    id?: string;
+    /** 鐢宠鎵规鍙� */
+    batchNo?: string;
+    /** 鐢虫姤鏈堜唤 */
+    applyMonth?: string;
+    /** 鐢虫姤鎬婚 */
+    applySumAmount?: number;
+    /** 骞冲彴鍏呭�煎叆璐︽椂闂� */
+    transferToTime?: string;
+    transferToStatus?: TransferToStatusEnum;
+    /** 骞冲彴鍏呭�奸噾棰� */
+    transferToAmount?: number;
+    /** 骞冲彴鍏呭�煎叆璐﹀嚟璇� */
+    transferToFileUrl?: string;
+    /** 璐㈡斂鎷ㄤ粯閲戦 */
+    financeToAmount?: number;
+    /** 骞冲彴鍏呭�煎彂鏀炬棩鏈� */
+    settleTime?: string;
+    financeToStatus?: FinanceStatusEnum;
+    inCheckStatus?: BountyCheckStatusEnum;
+    outCheckStatus?: BountyCheckStatusEnum;
+  }
+
+  interface GetParkCustomerBountySettleOutputPageOutput {
+    pageModel?: Pagination;
+    objectData?: any;
+    data?: GetParkCustomerBountySettleOutput[];
   }
 
   interface GetPermissionListResultDto {
@@ -1487,6 +1601,8 @@
     /** 瀵煎叆澶辫触鍒楄〃 */
     errorList?: ImportInsStaffAnalysisList[];
   }
+
+  type IndustrialParkStatusEnum = 10 | -10;
 
   type InsuranceClaimAttachmentBusinessTypeEnum = 10 | 20 | 30 | 40 | 50;
 
@@ -1911,6 +2027,8 @@
 
   type InsureProductSettingStatusEnum = 10 | -10;
 
+  type InvoicingStatusEnum = 0 | 10 | 20;
+
   interface IStringValueType {
     name?: string;
     properties?: Record<string, any>;
@@ -1944,6 +2062,8 @@
     name?: string;
     resource?: string;
   }
+
+  type MatchMakingIdentityEnum = 10 | 20;
 
   interface MethodParameterApiDescriptionModel {
     name?: string;
@@ -2493,6 +2613,11 @@
     importChannel?: string;
   }
 
+  interface QueryParkCustomerBountyApplyInput {
+    pageModel?: Pagination;
+    id?: string;
+  }
+
   interface QueryUserPageInput {
     pageModel?: Pagination;
     searchKey?: string;
@@ -2647,6 +2772,34 @@
     modules: ModuleTypeInfo[];
   }
 
+  interface SyncAuditParkBountyTradeInput {
+    /** 鍑鸿处璁板綍Id */
+    id?: string;
+    auditStatus?: EnumParkBountyTradeDetailAuditStatus;
+    /** 瀹℃牳澶囨敞 */
+    auditRemark?: string;
+    /** 瀹℃牳鍑瘉 */
+    payAuditFileUrl?: string;
+    /** 鍑鸿处鎿嶄綔浜� */
+    auditOperator?: string;
+    /** 鍑鸿处鎿嶄綔浜篒D */
+    auditOperatorId?: string;
+  }
+
+  interface SyncFinanceAuditParkBountyTradeInput {
+    /** 鍑鸿处璁板綍Id */
+    id?: string;
+    auditStatus?: EnumParkBountyTradeDetailAuditStatus;
+    /** 瀹℃牳澶囨敞 */
+    auditRemark?: string;
+    /** 瀹℃牳鍑瘉 */
+    payAuditFileUrl?: string;
+    /** 璐㈠姟瀹℃牳鎿嶄綔浜� */
+    financeAuditOperator?: string;
+    /** 璐㈠姟瀹℃牳鎿嶄綔浜篒d */
+    financeAuditOperatorId?: string;
+  }
+
   interface SyncUserAmountInput {
     /** 鐢ㄦ埛鍚嶇О */
     id?: string;
@@ -2728,6 +2881,8 @@
   interface TimingDto {
     timeZone?: TimeZone;
   }
+
+  type TransferToStatusEnum = 1 | 2;
 
   interface TypeApiDescriptionModel {
     baseType?: string;
@@ -2931,6 +3086,12 @@
     totalAmount?: number;
   }
 
+  type UserCertificationAuditStatusEnum = 0 | 10 | 30 | 40;
+
+  type UserCertificationChannelEnum = 10 | 20;
+
+  type UserCertificationStatusEnum = 0 | 20 | 30;
+
   interface UserData {
     id?: string;
     tenantId?: string;
@@ -2981,6 +3142,112 @@
     batchUpdateMessage?: boolean;
     /** 浼佷笟鍚嶇О */
     enterpriseName?: string;
+  }
+
+  interface UserInfoV2 {
+    /** 鐢ㄦ埛Id */
+    userId?: string;
+    /** 鐢ㄦ埛鍚� */
+    userName?: string;
+    /** 鎵嬫満鍙� */
+    phoneNumber?: string;
+    /** 鐢ㄦ埛鐧诲綍鎵�浣跨敤鐨勬墜鏈哄彿 */
+    userPhoneNumber?: string;
+    /** 璐︽埛浣欓 */
+    amount?: number;
+    /** 鏀跺埌鎵撹祻 */
+    reward?: number;
+    /** 鏄电О */
+    nickName?: string;
+    userCertificationAuditStatus?: UserCertificationAuditStatusEnum;
+    /** 鐢ㄦ埛璁よ瘉Id */
+    userCertificationId?: string;
+    /** 浼佷笟璁よ瘉鐨勫悕绉� */
+    customerName?: string;
+    /** 浼佷笟缁熶竴淇$敤浠g爜 */
+    societyCreditCode?: string;
+    /** 鐢ㄦ埛璁よ瘉Id(鍏徃Id) */
+    companyId?: string;
+    /** 娉曚汉鍚嶇О */
+    legalPersonName?: string;
+    /** 骞存秷璐� */
+    yearlyConsume?: number;
+    /** 骞翠骇鍝佽喘涔版秷璐� */
+    yearlyPurchasedConsume?: number;
+    /** 骞存墦璧忔秷璐� */
+    yearlyRewardConsume?: number;
+    /** 骞翠骇鍝佸箍鍛婃姇鏀炬秷璐� */
+    yearlyProductAdConsume?: number;
+    /** 骞磋祫璁箍鍛婃姇鏀炬秷璐� */
+    yearlyInformationAdConsume?: number;
+    /** 1锛屼紒涓� 2锛� 涓汉 */
+    userType?: number;
+    authType?: EnterpriseTypeEnum;
+    userCertificationStatus?: UserCertificationStatusEnum;
+    /** 0 鏈紑閫� 10 寰呭鏍�   20鍔炵悊涓�  30閫氳繃  -20 椹冲洖 40 涓嬫灦 50 绯荤粺涓嬫灦 */
+    openHRSiteStatus?: number;
+    /** 鑱旂郴浜� */
+    contacter?: string;
+    /** 鐢ㄦ埛璁よ瘉杩囨湡鏃ユ湡 */
+    userCertificationExpirationTime?: string;
+    invoicingStatus?: InvoicingStatusEnum;
+    /** 骞村寮�濮嬫椂闂� */
+    annualAuditStartTime?: string;
+    /** 鏀粯鍙戠エ鍦板潃 */
+    payInvoicingUrl?: string;
+    /** 缁戝畾閭鍦板潃 */
+    bindEmailAddress?: string;
+    /** 鐢ㄦ埛澶村儚鍦板潃 */
+    avatarUrl?: string;
+    genderType?: GenderTypeEnum;
+    /** 鑱岀О */
+    jobTitle?: string;
+    /** 鐪乧ode */
+    provinceCode?: number;
+    /** 甯俢ode */
+    cityCode?: number;
+    /** 鍖哄幙code */
+    countyCode?: number;
+    /** 鐪� */
+    provinceName?: string;
+    /** 甯� */
+    cityName?: string;
+    /** 鍖哄幙 */
+    countyName?: string;
+    /** 璇︾粏鍦板潃 */
+    addressDetail?: string;
+    /** 寰俊浜岀淮鐮佸浘鐗� */
+    wxQrCodeUrl?: string;
+    /** 涓汉淇℃伅閭鍦板潃 */
+    userInfoEmailAddress?: string;
+    /** 淇濋櫓绛剧害鐘舵�� 0鏈绾� 10宸茬绾� */
+    insureSignStatus?: number;
+    /** 鏄惁鎻愪氦閽卞寘寮�鎴风敵璇� */
+    isApplyWalletAccountOpen?: boolean;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhone?: string;
+    /** 閽卞寘寮�鎴风姸鎬� */
+    walletAccountOpenStatus?: WalletAccountOpenStatusInfo[];
+    /** 閽卞寘鐘舵�� */
+    walletMainStatus?: WalletAccountTypeMainStatusInfo[];
+    matchMakingIdentity?: MatchMakingIdentityEnum;
+    /** 鐢靛瓙绛惧嵃绔犲浘鐗囩敓鎴愮姸鎬� 0鏈敓鎴� 1宸茬敓鎴� */
+    signatureImageStatus?: number;
+    certificationChannel?: UserCertificationChannelEnum;
+    industrialParkId?: string;
+    industrialParkName?: string;
+    suportEnterpriseUpload?: boolean;
+    suportPlatRecharge?: boolean;
+    rewardEnable?: boolean;
+    suportWithDraw?: boolean;
+    industrialParkStatus?: IndustrialParkStatusEnum;
+    isHasBountyApply?: boolean;
+    /** 鏄惁鍙互鐧诲綍鐢靛瓙绛� */
+    canLoginUserSign?: boolean;
+    /** 鏄惁鍙互鐧诲綍姹熶綉淇� */
+    canLoginJYB?: boolean;
+    /** 鏄惁鍙互鐧诲綍鐏垫椿鐢ㄥ伐 */
+    canLoginFlexJob?: boolean;
   }
 
   interface UserListOutput {
@@ -3057,6 +3324,22 @@
     sequence?: number;
   }
 
+  type WalletAccountOpenStatusEnum = 10 | 20;
+
+  interface WalletAccountOpenStatusInfo {
+    walletAccountType?: WalletAccountTypeEnum;
+    walletAccountOpenStatus?: WalletAccountOpenStatusEnum;
+  }
+
+  type WalletAccountTypeEnum = 10 | 20 | 30;
+
+  interface WalletAccountTypeMainStatusInfo {
+    walletAccountType?: WalletAccountTypeEnum;
+    walletMainStatus?: WalletMainStatusEnum;
+  }
+
+  type WalletMainStatusEnum = 10 | -20 | -10;
+
   interface WindowsTimeZone {
     timeZoneId?: string;
   }
diff --git a/src/views/BalanceManage/BalanceManage.vue b/src/views/BalanceManage/BalanceManage.vue
index fd6b997..15a70b3 100644
--- a/src/views/BalanceManage/BalanceManage.vue
+++ b/src/views/BalanceManage/BalanceManage.vue
@@ -68,8 +68,22 @@
         </RewardInfoCard>
       </RewardInfoCardList>
       <ProTabs v-model="state.tabType" hasBorder class="reward-tabs">
-        <ProTabPane lazy label="娑堣垂璁板綍" name="Consume">
-          <ConsumeRecordView></ConsumeRecordView>
+        <ProTabPane lazy label="鎷ㄤ粯璁板綍" name="Payment">
+          <PaymentRecordView></PaymentRecordView>
+        </ProTabPane>
+        <template v-if="sceneThree || sceneFour">
+          <ProTabPane lazy label="濂栧姳鍙戞斁璁板綍" name="RewardGrant">
+            <RewardGrantRecordView></RewardGrantRecordView>
+          </ProTabPane>
+          <ProTabPane lazy label="鍏呭�艰褰�" name="Recharge">
+            <RechargeRecordView ref="rechargeRecordRef"></RechargeRecordView>
+          </ProTabPane>
+          <ProTabPane lazy label="娑堣垂璁板綍" name="Consume">
+            <ConsumeRecordView></ConsumeRecordView>
+          </ProTabPane>
+        </template>
+        <ProTabPane lazy label="鎻愮幇璁板綍" name="Withdrawal" v-if="sceneTwo || sceneFour">
+          <WithdrawalRecordView ref="withdrawalRecordRef"></WithdrawalRecordView>
         </ProTabPane>
       </ProTabs>
     </AppContainer>
@@ -84,6 +98,10 @@
 import RewardInfoCardContentItem from '@/components/Reward/RewardInfoCardContentItem.vue';
 import { setOSSLink, downloadFileByUrl, toThousand, addStarForString } from '@/utils';
 import ConsumeRecordView from './components/ConsumeRecordView.vue';
+import RechargeRecordView from './components/RechargeRecordView.vue';
+import RewardGrantRecordView from './components/RewardGrantRecordView.vue';
+import WithdrawalRecordView from './components/WithdrawalRecordView.vue';
+import PaymentRecordView from './components/PaymentRecordView.vue';
 import { useQuery } from '@tanstack/vue-query';
 import { useUser } from '@/hooks';
 
@@ -96,9 +114,22 @@
   tabType: 'Consume',
 };
 
-const { user } = useUser();
+const { userDetail } = useUser();
 const state = reactive({ ...BaseState });
 
+const sceneOne = computed(() => {
+  return !userDetail.value?.suportPlatRecharge && !userDetail.value?.suportWithDraw;
+});
+const sceneTwo = computed(() => {
+  return !userDetail.value?.suportPlatRecharge && userDetail.value?.suportWithDraw;
+});
+const sceneThree = computed(() => {
+  return userDetail.value?.suportPlatRecharge && !userDetail.value?.suportWithDraw;
+});
+const sceneFour = computed(() => {
+  return userDetail.value?.suportPlatRecharge && userDetail.value?.suportWithDraw;
+});
+
 const { isLoading, data: detail } = useQuery({
   queryKey: ['userServices/getUserAmountShow'],
   queryFn: async () => {
diff --git a/src/views/BalanceManage/components/PaymentRecordView.vue b/src/views/BalanceManage/components/PaymentRecordView.vue
new file mode 100644
index 0000000..9a20b0d
--- /dev/null
+++ b/src/views/BalanceManage/components/PaymentRecordView.vue
@@ -0,0 +1,123 @@
+<template>
+  <LoadingLayout :loading="state.loading">
+    <AppContainer>
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
+        <template #operationBtn-checkBtn="{ data, row }">
+          <PreviewBtnV2
+            class="pro-table-operation-btn"
+            :url="convertApi2FormUrlBySeparator(row.financeToFileUrl ?? '')"
+            preview-btn-text="鏌ョ湅鍑瘉"
+          />
+        </template>
+      </ProTableV2>
+    </AppContainer>
+  </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import {
+  AppContainer,
+  useTable,
+  PreviewBtnV2,
+  defineOperationBtns,
+  ProTableV2,
+} from '@bole-core/components';
+import { OrderInputType } from '@bole-core/core';
+import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
+import { FinanceStatusEnum, FinanceStatusEnumText } from '@/constants';
+import { useUser } from '@/hooks';
+import { convertApi2FormUrlBySeparator } from '@/utils';
+
+defineOptions({
+  name: 'PaymentRecordView',
+});
+
+const column = [
+  {
+    id: '1',
+    enCode: 'financeToTime',
+    name: '鎷ㄤ粯鏃堕棿',
+  },
+  {
+    id: '2',
+    enCode: 'financeToAmount',
+    name: '鎷ㄤ粯閲戦',
+  },
+  {
+    id: '3',
+    enCode: 'batchNo',
+    name: '鎷ㄤ粯鎵规',
+  },
+  {
+    id: '4',
+    enCode: 'applyMonth',
+    name: '鎷ㄤ粯鏈堜唤',
+  },
+  {
+    id: '5',
+    enCode: 'financeToStatus',
+    name: '鎷ㄤ粯鐘舵��',
+  },
+];
+
+const operationBtns = defineOperationBtns([
+  {
+    data: {
+      enCode: 'checkBtn',
+      name: '鏌ョ湅鍑瘉',
+    },
+  },
+]);
+
+const { userDetail } = useUser();
+const BaseState = {
+  loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+const {
+  getDataSource: getList,
+  proTableProps,
+  paginationState,
+  extraParamState,
+} = useTable(
+  async ({ pageIndex, pageSize }, extraParamState) => {
+    try {
+      let params: API.QueryParkCustomerBountyApplyInput = {
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+          orderInput: extraParamState.orderInput,
+        },
+        id: userDetail.value?.userId ?? '',
+      };
+      let res = await parkBountyApplyServices.getParkCustomerBountyFinanceList(params, {
+        showLoading: !state.loading,
+      });
+
+      return res;
+    } catch (error) {}
+  },
+  {
+    defaultExtraParams: {
+      orderInput: [{ property: 'financeToTime', order: OrderInputType.Desc }],
+    },
+    columnsRenderProps: {
+      financeToStatus: { type: 'enum', valueEnum: FinanceStatusEnumText },
+      financeToTime: { type: 'date', format: 'YYYY-MM-DD' },
+      applyMonth: { type: 'date', format: 'YYYY骞碝M鏈�' },
+      financeToAmount: { type: 'money' },
+    },
+  }
+);
+
+onMounted(async () => {
+  await getList();
+  state.loading = false;
+});
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+</style>
diff --git a/src/views/BalanceManage/components/RechargeRecordView.vue b/src/views/BalanceManage/components/RechargeRecordView.vue
index 21c2153..2f560b0 100644
--- a/src/views/BalanceManage/components/RechargeRecordView.vue
+++ b/src/views/BalanceManage/components/RechargeRecordView.vue
@@ -35,14 +35,15 @@
   defineOperationBtns,
 } from '@bole-core/components';
 import { OrderInputType } from '@bole-core/core';
-// import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
+import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
+import {
+  EnterpriseRechargeStatusEnumText,
+  EnterpriseRechargeStatusEnum,
+  EnterprisePrechargeInComeStatusEnum,
+  EnterprisePrechargeInComeStatusEnumText,
+} from '@/constants';
 import { useUser } from '@/hooks';
-// import {
-//   EnterprisePrechargeInComeStatusEnum,
-//   EnterprisePrechargeInComeStatusEnumText,
-//   EnterpriseRechargeStatusEnum,
-//   EnterpriseRechargeStatusEnumText,
-// } from '@/constants';
+
 import { convertApi2FormUrlBySeparator } from '@/utils';
 
 defineOptions({
@@ -85,14 +86,11 @@
 ]);
 
 const route = useRoute();
-const router = useRouter();
-const id = route.params.id as string;
 const BaseState = {
   loading: true,
 };
 
 const state = reactive({ ...BaseState });
-const { userDetail } = useUser();
 
 const {
   getDataSource: getList,
diff --git a/src/views/BalanceManage/components/RewardGrantRecordView.vue b/src/views/BalanceManage/components/RewardGrantRecordView.vue
index b3c3963..2b5c6e2 100644
--- a/src/views/BalanceManage/components/RewardGrantRecordView.vue
+++ b/src/views/BalanceManage/components/RewardGrantRecordView.vue
@@ -10,9 +10,9 @@
 <script setup lang="ts">
 import { AppContainer, useTable, ProTableV2 } from '@bole-core/components';
 import { OrderInputType } from '@bole-core/core';
-// import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
+import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
 import { useUser } from '@/hooks';
-// import { TransferToStatusEnumText } from '@/constants';
+import { TransferToStatusEnumText } from '@/constants';
 
 defineOptions({
   name: 'RewardGrantRecordView',
@@ -47,8 +47,6 @@
 ];
 
 const route = useRoute();
-const router = useRouter();
-const id = route.params.id as string;
 const BaseState = {
   loading: true,
 };
diff --git a/src/views/BalanceManage/components/WithdrawalRecordView.vue b/src/views/BalanceManage/components/WithdrawalRecordView.vue
new file mode 100644
index 0000000..269c24e
--- /dev/null
+++ b/src/views/BalanceManage/components/WithdrawalRecordView.vue
@@ -0,0 +1,143 @@
+<template>
+  <LoadingLayout :loading="state.loading">
+    <AppContainer>
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
+        <template #checkStatus="{ data, row }">
+          <div style="display: flex; justify-content: center; align-items: center">
+            {{ EnterpriseRechargeStatusEnumTextWithdrawal[row.checkStatus] }}
+            <el-tooltip
+              placement="top"
+              v-if="row.checkStatus === EnterpriseRechargeStatusEnum.CheckReject && row.checkRemark"
+              :content="row.checkRemark"
+            >
+              <el-icon color="#ff0000"><WarningFilled /></el-icon>
+            </el-tooltip>
+          </div>
+        </template>
+        <template #operationBtn-checkBtn="{ data, row }">
+          <PreviewBtnV2
+            class="pro-table-operation-btn"
+            :url="convertApi2FormUrlBySeparator(row.checkFileUrl ?? '')"
+            preview-btn-text="鏌ョ湅鍑瘉"
+          />
+        </template>
+      </ProTableV2>
+    </AppContainer>
+  </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import {
+  AppContainer,
+  useTable,
+  PreviewBtnV2,
+  ProTableV2,
+  defineOperationBtns,
+} from '@bole-core/components';
+import { OrderInputType } from '@bole-core/core';
+import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
+import { useUser } from '@/hooks';
+import {
+  EnterpriseRechargeStatusEnumTextWithdrawal,
+  EnterpriseRechargeStatusEnum,
+} from '@/constants';
+import { convertApi2FormUrlBySeparator } from '@/utils';
+
+defineOptions({
+  name: 'WithdrawalRecordView',
+});
+
+const column = [
+  {
+    id: '1',
+    enCode: 'creationTime',
+    name: '鐢宠鏃堕棿',
+  },
+  {
+    id: '2',
+    enCode: 'amount',
+    name: '鎻愮幇閲戦',
+  },
+  {
+    id: '3',
+    enCode: 'checkStatus',
+    name: '瀹℃牳鐘舵��',
+  },
+  {
+    id: '4',
+    enCode: 'checkTime',
+    name: '瀹℃牳鏃堕棿',
+  },
+  {
+    id: '5',
+    enCode: 'remainAmount',
+    name: '璧勯噾浣欓',
+  },
+];
+
+const operationBtns = defineOperationBtns([
+  {
+    data: {
+      enCode: 'checkBtn',
+      name: '鏌ョ湅鍑瘉',
+    },
+  },
+]);
+
+const route = useRoute();
+const router = useRouter();
+const id = route.params.id as string;
+const BaseState = {
+  loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+const {
+  getDataSource: getList,
+  proTableProps,
+  paginationState,
+  extraParamState,
+} = useTable(
+  async ({ pageIndex, pageSize }, extraParamState) => {
+    try {
+      let params: API.GetEnterpriseDrawWithListInput = {
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+          orderInput: extraParamState.orderInput,
+        },
+      };
+      let res = await parkBountyApplyServices.getEnterpriseDrawWithList(params, {
+        showLoading: !state.loading,
+      });
+      return res;
+    } catch (error) {}
+  },
+  {
+    defaultExtraParams: {
+      orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
+    },
+    columnsRenderProps: {
+      creationTime: { type: 'date', format: 'YYYY-MM-DD' },
+      checkTime: { type: 'date', format: 'YYYY-MM-DD' },
+      amount: { type: 'money' },
+      remainAmount: { type: 'money' },
+      checkStatus: { type: 'enum', valueEnum: EnterpriseRechargeStatusEnumTextWithdrawal },
+    },
+  }
+);
+
+onMounted(async () => {
+  await getList();
+  state.loading = false;
+});
+
+defineExpose({
+  getList,
+});
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+</style>
diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue
index 761c9e1..748ed15 100644
--- a/src/views/Home/Home.vue
+++ b/src/views/Home/Home.vue
@@ -197,8 +197,7 @@
       onClick: (role) => handleBatch(role),
     },
     extraProps: {
-      hide: (row: API.GetInsurancePageOutput) =>
-        row.productOnline || row.status !== InsurancePolicyStatusEnum.Effecting,
+      hide: (row: API.GetInsurancePageOutput) => row.status !== InsurancePolicyStatusEnum.Effecting,
     },
   },
   {

--
Gitblit v1.9.1