From e944883d021a71da57b3f6c7ce7101c2bcc31b90 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期三, 23 四月 2025 09:14:27 +0800
Subject: [PATCH] feat: 接口

---
 src/views/EnterpriseInfo/components/RewardGrantRecordView.vue   |   17 +-
 src/services/api/typings.d.ts                                   |   74 +++++++++++-
 src/views/Reward/components/PlateformDialog.vue                 |   11 +
 src/views/EnterpriseInfo/EnterpriseInfo.vue                     |    3 
 src/components/commonView/SettlementMaterialInfoView.vue        |    2 
 src/views/Reward/RewardGrant.vue                                |   82 +++++++++---
 src/views/EnterpriseInfo/components/EnterpriseBasicInfoView.vue |    4 
 src/constants/reward.ts                                         |   24 +++
 src/components/commonView/types.ts                              |   20 +++
 src/components/commonView/utils/index.ts                        |   23 +++
 src/views/Reward/components/FinancialDialog.vue                 |   17 +-
 src/components/commonView/FourStreamsMaterialFileTable.vue      |   33 +++--
 src/services/api/ParkBountyApply.ts                             |   32 +++++
 13 files changed, 271 insertions(+), 71 deletions(-)

diff --git a/src/components/commonView/FourStreamsMaterialFileTable.vue b/src/components/commonView/FourStreamsMaterialFileTable.vue
index 4fb8aaf..2ed72e4 100644
--- a/src/components/commonView/FourStreamsMaterialFileTable.vue
+++ b/src/components/commonView/FourStreamsMaterialFileTable.vue
@@ -38,21 +38,21 @@
 <script setup lang="ts" generic="T">
 import {
   FourStreamsMaterialFileTableProps,
-  FourStreamsMaterialFileTableItem,
-  FourStreamsMaterialFileBusinessTypeEnumText,
   BaseMaterialFileTableItem,
+  FourStreamsMaterialFileBusinessTypeEnumText,
 } from './types';
 import {
   ProTableV2,
   defineColumns,
+  defineOperationBtns,
   BlFileUpload,
   bolePreview,
   useDialog,
 } from '@bole-core/components';
-import FourStreamsBatchMaterialFileDialog from './FourStreamsBatchMaterialFileDialog.vue';
 import { downloadFileByUrl } from '@/utils';
-import { Message, isFileCanPreview } from '@bole-core/core';
+import { Message, isFileCanPreview, downloadWithZip } from '@bole-core/core';
 import { useDefineColumns } from '@/hooks';
+import FourStreamsBatchMaterialFileDialog from './FourStreamsBatchMaterialFileDialog.vue';
 
 defineOptions({
   name: 'FourStreamsMaterialFileTable',
@@ -85,7 +85,7 @@
         name: '涓婁紶',
       },
       extraProps: {
-        hide: (row: FourStreamsMaterialFileTableItem) => {
+        hide: (row: BaseMaterialFileTableItem<T>) => {
           if (!props.showUploadBtn) return true;
           let fileList = row?.fileList?.filter?.((item) => item.status === 'success');
           return fileList?.length > 0;
@@ -101,7 +101,7 @@
         onClick: (row) => handlePreview(row),
       },
       extraProps: {
-        hide: (row: FourStreamsMaterialFileTableItem) => {
+        hide: (row: BaseMaterialFileTableItem<T>) => {
           if (!props.showCheckBtn) return true;
           let fileList = row?.fileList?.filter?.((item) => item.status === 'success');
           if (!fileList?.length) {
@@ -125,7 +125,7 @@
         onClick: (row) => handleBatchDownload(row),
       },
       extraProps: {
-        hide: (row: FourStreamsMaterialFileTableItem) => {
+        hide: (row: BaseMaterialFileTableItem<T>) => {
           return (
             !props.showDownloadBtn ||
             !row?.fileList?.filter?.((item) => item.status === 'success')?.length
@@ -145,7 +145,7 @@
         onClick: (row) => handleDelete(row),
       },
       extraProps: {
-        hide: (row: FourStreamsMaterialFileTableItem) => {
+        hide: (row: BaseMaterialFileTableItem<T>) => {
           if (!props.showDeleteBtn) return true;
           let fileList = row?.fileList?.filter?.((item) => item.status === 'success');
           return !fileList?.length;
@@ -155,7 +155,7 @@
   ],
 });
 
-async function handleDelete(row: FourStreamsMaterialFileTableItem) {
+async function handleDelete(row: BaseMaterialFileTableItem<T>) {
   try {
     await Message.deleteMessage();
     row.fileList = [];
@@ -168,11 +168,11 @@
 });
 const { dialogProps, dialogState } = useDialog();
 
-async function handlePreview(row: FourStreamsMaterialFileTableItem) {
+async function handlePreview(row: BaseMaterialFileTableItem<T>) {
   if (row.fileList.length > 1) {
-    // currentEnterpriseMaterialFileTableItem.value = row;
-    // await nextTick();
-    // dialogState.dialogVisible = true;
+    currentFourStreamsMaterialFileTableItem.value = row;
+    await nextTick();
+    dialogState.dialogVisible = true;
   } else {
     bolePreview({
       fileUrl: row.fileList[0].url,
@@ -180,7 +180,7 @@
   }
 }
 
-function handleBatchDownload(row: FourStreamsMaterialFileTableItem) {
+async function handleBatchDownload(row: BaseMaterialFileTableItem<T>) {
   const successFileList = row.fileList.filter((item) => item.status === 'success');
   if (successFileList.length === 0) {
     Message.errorMessage('娌℃湁鍙笅杞界殑鏂囦欢');
@@ -191,8 +191,11 @@
   } else {
     // downloadWithZip(
     //   successFileList.map((item) => ({ data: item.url })),
-    //   `${AllEnterpriseMaterialFileBusinessTypeEnumText[row.fileBusinessType]}鏉愭枡鏂囦欢`
+    //   `${props.BusinessTypeEnumText[row.fileBusinessType as any]}`
     // );
+    currentFourStreamsMaterialFileTableItem.value = row;
+    await nextTick();
+    dialogState.dialogVisible = true;
   }
 }
 </script>
diff --git a/src/components/commonView/SettlementMaterialInfoView.vue b/src/components/commonView/SettlementMaterialInfoView.vue
index 5558441..25ce58f 100644
--- a/src/components/commonView/SettlementMaterialInfoView.vue
+++ b/src/components/commonView/SettlementMaterialInfoView.vue
@@ -2,7 +2,7 @@
   <ProFormCol>
     <ProFormColItem :span="12">
       <ProFormItemV2 label="鏈鐢虫姤濂栧姳閲戞�婚:" prop="applySumAmount">
-        <ProFormInputNumber v-model="form.applySumAmount" unit="鍏�" />
+        <ProFormInputNumber v-model="form.applySumAmount" formatValue="money" unit="鍏�" />
       </ProFormItemV2>
     </ProFormColItem>
   </ProFormCol>
diff --git a/src/components/commonView/types.ts b/src/components/commonView/types.ts
index 997e2ba..d3c441b 100644
--- a/src/components/commonView/types.ts
+++ b/src/components/commonView/types.ts
@@ -20,6 +20,9 @@
 export type ApplyTransferMaterialFileTableItem =
   BaseMaterialFileTableItem<ApplyTransferFileBusinessTypeEnum>;
 
+export type TransferFileEnumInRewardGrandTableItem =
+  BaseMaterialFileTableItem<TransferFileEnumInRewardGrand>;
+
 export enum EnterpriseTypeEnum {
   /**
    * 浜哄姏璧勬簮鍏徃
@@ -102,3 +105,20 @@
   [ApplyTransferFileBusinessTypeEnum.FinanceToFileUrl]: 'financeToFileUrl',
   [ApplyTransferFileBusinessTypeEnum.TransferToFileUrl]: 'transferToFileUrl',
 } as const;
+
+export enum TransferFileEnumInRewardGrand {
+  /** 鎷ㄤ粯鍑瘉*/
+  FinanceFileUrl = 200,
+  /** 鍏呭�煎嚟璇�*/
+  SettleFileUrl = 210,
+}
+
+export const TransferFileEnumInRewardGrandText = {
+  [TransferFileEnumInRewardGrand.FinanceFileUrl]: '鎷ㄤ粯鍑瘉',
+  [TransferFileEnumInRewardGrand.SettleFileUrl]: '鍏呭�煎嚟璇�',
+};
+
+export const TransferFileEnumInRewardGrandKey = {
+  [TransferFileEnumInRewardGrand.FinanceFileUrl]: 'financeFileUrl',
+  [TransferFileEnumInRewardGrand.SettleFileUrl]: 'settleFileUrl',
+} as const;
diff --git a/src/components/commonView/utils/index.ts b/src/components/commonView/utils/index.ts
index 0122f02..badfdc5 100644
--- a/src/components/commonView/utils/index.ts
+++ b/src/components/commonView/utils/index.ts
@@ -6,6 +6,9 @@
   FourStreamsMaterialFileBusinessTypeEnum,
   FourStreamsMaterialFileBusinessTypeEnumKey,
   FourStreamsMaterialFileTableItem,
+  TransferFileEnumInRewardGrand,
+  TransferFileEnumInRewardGrandKey,
+  TransferFileEnumInRewardGrandTableItem,
 } from '../types';
 
 export class FourStreamsMaterialUtils {
@@ -31,6 +34,12 @@
   static ApplyTransferMaterialFile = [
     ApplyTransferFileBusinessTypeEnum.FinanceToFileUrl,
     ApplyTransferFileBusinessTypeEnum.TransferToFileUrl,
+  ];
+
+  /**璐㈡斂鎷ㄤ粯鍜屽钩鍙板厖鍊煎嚟璇�  濂栧姳閲戝彂鏀�*/
+  static TransferFileEnumInRewardGrandFile = [
+    TransferFileEnumInRewardGrand.FinanceFileUrl,
+    TransferFileEnumInRewardGrand.SettleFileUrl,
   ];
 
   static isFourStreamsParkType(parkTypeName) {
@@ -78,6 +87,20 @@
       } as ApplyTransferMaterialFileTableItem;
     });
   }
+
+  static initApplyRewardGrandFileList<
+    T extends { financeFileUrl?: string; settleFileUrl?: string }
+  >(data: T) {
+    return this.TransferFileEnumInRewardGrandFile.map((item) => {
+      const filePathList = data[TransferFileEnumInRewardGrandKey[item]]
+        ? data[TransferFileEnumInRewardGrandKey[item]].split('|')
+        : [];
+      return {
+        fileBusinessType: item,
+        fileList: filePathList.map(convertApi2FormUrl),
+      } as TransferFileEnumInRewardGrandTableItem;
+    });
+  }
 }
 
 export class ParkTypeUtils {
diff --git a/src/constants/reward.ts b/src/constants/reward.ts
index 536b7df..fdf0670 100644
--- a/src/constants/reward.ts
+++ b/src/constants/reward.ts
@@ -38,18 +38,34 @@
 
 export enum SettleStatusEnum {
   /**
-   * 寰呭彂鏀�
+   * 寰呭厖鍊�
    */
   WaitForSettle = 1,
   /**
-   * 宸插彂鏀�
+   * 宸插厖鍊�
    */
   HasSettle = 2,
 }
 
 export const SettleStatusEnumText = {
-  [SettleStatusEnum.WaitForSettle]: '寰呭彂鏀�',
-  [SettleStatusEnum.HasSettle]: '宸插彂鏀�',
+  [SettleStatusEnum.WaitForSettle]: '寰呭厖鍊�',
+  [SettleStatusEnum.HasSettle]: '宸插厖鍊�',
+};
+
+export enum FinanceStatusEnum {
+  /**
+   * 寰呮嫧浠�
+   */
+  WaitForIncome = 1,
+  /**
+   * 宸叉嫧浠�
+   */
+  HasIncome = 2,
+}
+
+export const FinanceStatusEnumText = {
+  [FinanceStatusEnum.WaitForIncome]: '寰呮嫧浠�',
+  [FinanceStatusEnum.HasIncome]: '宸叉嫧浠�',
 };
 
 export enum IncomeStatusEnum {
diff --git a/src/services/api/ParkBountyApply.ts b/src/services/api/ParkBountyApply.ts
index 908a4cd..58e1366 100644
--- a/src/services/api/ParkBountyApply.ts
+++ b/src/services/api/ParkBountyApply.ts
@@ -493,6 +493,21 @@
   );
 }
 
+/** 瀵煎叆濂栧姳閲戝叆璐� POST /api/ParkBountyApply/ImportParkBountyData */
+export async function importParkBountyData(
+  body: API.ImportBountyApplyDataInput,
+  options?: API.RequestConfig
+) {
+  return request<API.ImportBountyApplyDataOutput>('/api/ParkBountyApply/ImportParkBountyData', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鍐呴儴瀹℃牳 POST /api/ParkBountyApply/IncheckParkBountyApply */
 export async function incheckParkBountyApply(
   body: API.IncheckParkBountyApplyInput,
@@ -568,6 +583,21 @@
   });
 }
 
+/** 鏀垮姟绔�斿鍔遍噾鍙戞斁鈥斾笂浼犺储鏀挎嫧浠樺嚟璇� POST /api/ParkBountyApply/ParkBountyApplyFinanceBill */
+export async function parkBountyApplyFinanceBill(
+  body: API.ParkBountyApplyFinanceFileInput,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/ParkBountyApply/ParkBountyApplyFinanceBill', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 璐㈡斂鍏ヨ处涓婁紶鍑瘉 POST /api/ParkBountyApply/ParkBountyApplyFinanceFile */
 export async function parkBountyApplyFinanceFile(
   body: API.ParkBountyApplyRechargeFileInput,
@@ -583,7 +613,7 @@
   });
 }
 
-/** 鏀垮姟绔�斿鍔遍噾鍙戞斁鈥斾笂浼犲嚟璇� POST /api/ParkBountyApply/ParkBountyApplySettle */
+/** 鏀垮姟绔�斿鍔遍噾鍙戞斁鈥斾笂浼犲厖鍊煎嚟璇� POST /api/ParkBountyApply/ParkBountyApplySettle */
 export async function parkBountyApplySettle(
   body: API.ParkBountyApplySettleInput,
   options?: API.RequestConfig
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 0bd9a1c..aa699ac 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -5757,6 +5757,23 @@
     configuration?: Record<string, any>;
   }
 
+  interface ExportBountyApplyData {
+    /** 浼佷笟鍚嶇О */
+    enterpriseName: string;
+    /** 淇$敤浠g爜 */
+    societyCreditCode: string;
+    /** 璐㈡斂鎷ㄤ粯閲戦 */
+    financeToAmountStr?: string;
+    /** 骞冲彴鍏呭�奸噾棰� */
+    transferToAmountStr?: string;
+    /** 璐㈡斂鎷ㄤ粯閲戦 */
+    financeToAmount?: number;
+    /** 骞冲彴鍏呭�奸噾棰� */
+    transferToAmount?: number;
+    /** 澶囨敞 */
+    remark?: string;
+  }
+
   interface ExportInsStaffInput {
     companyId?: string;
     url?: string;
@@ -5873,6 +5890,8 @@
   }
 
   type FinanceStatusEnum = 1 | 2;
+
+  type FinanceTypeEnum = 10 | 20;
 
   interface FirstPartyCompanyAuditDatilOutput {
     id?: string;
@@ -6655,6 +6674,7 @@
     remianAmount?: number;
     payRemark?: string;
     fileUrl?: string;
+    financeType?: FinanceTypeEnum;
     payFileUrls?: string[];
   }
 
@@ -7986,6 +8006,7 @@
     inCheckStatus?: BountyCheckStatusEnum;
     settleStatus?: SettleStatusEnum;
     incomeStatus?: IncomeStatusEnum;
+    financeStatus?: FinanceStatusEnum;
   }
 
   interface GetParkBountyApplyListOutput {
@@ -8166,15 +8187,26 @@
     id?: string;
     /** 鐢宠鎵规鍙� */
     batchNo?: string;
-    /** 鍙戞斁鏃ユ湡 */
-    settleTime?: string;
-    /** 鍏ヨ处鏃堕棿 */
-    incomeTime?: string;
-    incomeStatus?: TransferToStatusEnum;
-    /** 鍙戞斁閲戦 */
+    /** 鐢虫姤鎬婚 */
     applySumAmount?: number;
-    /** 鍏ヨ处鍑瘉 */
+    /** 骞冲彴鍏呭�煎叆璐︽椂闂� */
+    transferToTime?: string;
+    transferToStatus?: TransferToStatusEnum;
+    /** 骞冲彴鍏呭�奸噾棰� */
+    transferToAmount?: number;
+    /** 骞冲彴鍏呭�煎叆璐﹀嚟璇� */
     transferToFileUrl?: string;
+    /** 璐㈡斂鎷ㄤ粯閲戦 */
+    financeToAmount?: number;
+    /** 璐㈡斂鎷ㄤ粯鍏ヨ处鏃堕棿 */
+    financeToTime?: string;
+    /** 璐㈡斂鎷ㄤ粯鍙戞斁鏃ユ湡 */
+    financeTime?: string;
+    /** 骞冲彴鍏呭�煎彂鏀炬棩鏈� */
+    settleTime?: string;
+    financeToStatus?: FinanceStatusEnum;
+    /** 鎷ㄤ粯鍏ヨ处鍑瘉 */
+    financeToFileUrl?: string;
   }
 
   interface GetParkCustomerBountyGrantOutputPageOutput {
@@ -8241,6 +8273,8 @@
     payCount?: number;
     /** 鏈�杩戝彂鏀炬椂闂� */
     lastPayTime?: string;
+    /** 鍙戞斁鎬婚 */
+    bountySumAmount?: number;
     /** 濂栧姳閲戜綑棰� */
     bountyAmount?: number;
   }
@@ -8737,6 +8771,8 @@
   interface GetUserBaseEnterpriseInfoOutput {
     /** 濂栧姳閲戜綑棰� */
     bountyAmount?: number;
+    /** 鍏呭�间綑棰� */
+    rechargeAmount?: number;
     enterpriseName?: string;
     societyCreditCode?: string;
     licenseUrl?: string;
@@ -9575,6 +9611,18 @@
 
   interface IdentityUserUpdateRolesDto {
     roleNames: string[];
+  }
+
+  interface ImportBountyApplyDataInput {
+    /** 瀵煎叆鍦板潃 */
+    url?: string;
+    /** 濂栧姳閲戠敵璇稩d */
+    parkBountyApplyId?: string;
+  }
+
+  interface ImportBountyApplyDataOutput {
+    /** 閿欒鏁版嵁鍒楄〃 */
+    error?: ExportBountyApplyData[];
   }
 
   interface ImportIdentityCardInput {
@@ -14332,6 +14380,10 @@
     financeSumAmount?: number;
     /** 骞冲彴鍏呭�兼�婚 */
     settleSumAmount?: number;
+    /** 鍙戞斁鍑瘉 */
+    settleFileUrl?: string;
+    /** 璐㈡斂鍙戞斁鍑瘉 */
+    financeFileUrl?: string;
   }
 
   interface OutcheckParkBountyApplyInput {
@@ -14468,6 +14520,14 @@
     data?: ParkBountyApplyDetailInfo[];
   }
 
+  interface ParkBountyApplyFinanceFileInput {
+    parkBountyApplyId?: string;
+    /** 鍙戞斁鍑瘉 */
+    financeFileUrl?: string;
+    /** 鍙戞斁閲戦 */
+    financeSumAmount?: number;
+  }
+
   interface ParkBountyApplyRechargeFileInput {
     parkBountyApplyDetailId?: string;
     /** 骞冲彴鍏呭�煎嚟璇� */
diff --git a/src/views/EnterpriseInfo/EnterpriseInfo.vue b/src/views/EnterpriseInfo/EnterpriseInfo.vue
index 5e21bbc..10434a9 100644
--- a/src/views/EnterpriseInfo/EnterpriseInfo.vue
+++ b/src/views/EnterpriseInfo/EnterpriseInfo.vue
@@ -123,7 +123,7 @@
   },
   {
     id: '10',
-    enCode: 'bountyAmount',
+    enCode: 'bountySumAmount',
     name: '鍙戞斁鎬婚',
     width: 150,
   },
@@ -196,6 +196,7 @@
     columnsRenderProps: {
       lastApplyTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
       lastPayTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
+      bountySumAmount: { type: 'money' },
       bountyAmount: { type: 'money' },
       enterpriseType: { type: 'enum', valueEnum: EnterpriseTypeText },
     },
diff --git a/src/views/EnterpriseInfo/components/EnterpriseBasicInfoView.vue b/src/views/EnterpriseInfo/components/EnterpriseBasicInfoView.vue
index fbc2d2e..7ffa8c1 100644
--- a/src/views/EnterpriseInfo/components/EnterpriseBasicInfoView.vue
+++ b/src/views/EnterpriseInfo/components/EnterpriseBasicInfoView.vue
@@ -42,8 +42,8 @@
               </ProFormItemV2>
             </ProFormColItem>
             <ProFormColItem :span="8">
-              <ProFormItemV2 label="寮�鎴锋敮琛�:" prop="bankName">
-                <ProFormText v-model.trim="detail.bankName" />
+              <ProFormItemV2 label="寮�鎴锋敮琛�:" prop="bankBranchName">
+                <ProFormText v-model.trim="detail.bankBranchName" />
               </ProFormItemV2>
             </ProFormColItem>
             <ProFormColItem :span="8">
diff --git a/src/views/EnterpriseInfo/components/RewardGrantRecordView.vue b/src/views/EnterpriseInfo/components/RewardGrantRecordView.vue
index 435b915..2f94db3 100644
--- a/src/views/EnterpriseInfo/components/RewardGrantRecordView.vue
+++ b/src/views/EnterpriseInfo/components/RewardGrantRecordView.vue
@@ -43,27 +43,27 @@
   },
   {
     id: '2',
-    enCode: 'batchNo',
+    enCode: 'applySumAmount',
     name: '鐢虫姤鎬婚',
   },
   {
     id: '3',
-    enCode: 'applySumAmount',
+    enCode: 'financeToAmount',
     name: '璐㈡斂鎷ㄤ粯閲戦',
   },
   {
     id: '4',
-    enCode: 'settleTime',
+    enCode: 'financeTime',
     name: '璐㈡斂鎷ㄤ粯鏃ユ湡',
   },
   {
     id: '5',
-    enCode: 'applySumAmount',
+    enCode: 'transferToAmount',
     name: '骞冲彴鍏呭�奸噾棰�',
   },
   {
     id: '6',
-    enCode: 'incomeTime',
+    enCode: 'settleTime',
     name: '骞冲彴鍏呭�兼棩鏈�',
   },
 ];
@@ -118,14 +118,15 @@
     },
     columnsRenderProps: {
       settleTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
-      incomeTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
+      financeTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
       applySumAmount: { type: 'money' },
-      incomeStatus: { type: 'enum', valueEnum: IncomeStatusEnumText },
+      financeToAmount: { type: 'money' },
+      transferToAmount: { type: 'money' },
     },
   }
 );
 
-function openMaterialFileDialog(row: API.ParkBountyApplyTransferDetailInfo) {
+function openMaterialFileDialog(row: API.GetParkCustomerBountyGrantOutput) {
   handleMaterialFileAdd({
     list: FourStreamsMaterialUtils.initApplyTransferMaterialFileList(row),
   });
diff --git a/src/views/Reward/RewardGrant.vue b/src/views/Reward/RewardGrant.vue
index 5891bf6..83dc7d8 100644
--- a/src/views/Reward/RewardGrant.vue
+++ b/src/views/Reward/RewardGrant.vue
@@ -25,7 +25,16 @@
               @change="getList()"
             ></FieldDatePicker>
           </QueryFilterItem>
-          <QueryFilterItem>
+          <QueryFilterItem tip-content="璐㈡斂鎷ㄤ粯鐘舵��">
+            <FieldRadio
+              v-model="extraParamState.financeStatus"
+              :value-enum="FinanceStatusEnumText"
+              buttonStyle
+              showAllBtn
+              @change="getList()"
+            />
+          </QueryFilterItem>
+          <QueryFilterItem tip-content="骞冲彴鍏呭�肩姸鎬�">
             <FieldRadio
               v-model="extraParamState.settleStatus"
               :value-enum="SettleStatusEnumText"
@@ -55,7 +64,7 @@
         :show-check-btn="false"
         downloadBtnText="鏌ョ湅"
         title="鏌ョ湅鍑瘉"
-        :BusinessTypeEnumText="ApplyTransferFileBusinessTypeEnumText"
+        :BusinessTypeEnumText="TransferFileEnumInRewardGrandText"
       />
       <FinancialDialog v-bind="dialogFinancialProps"></FinancialDialog>
       <PlateformDialog v-bind="dialogPlateformProps"></PlateformDialog>
@@ -80,7 +89,12 @@
 } from '@bole-core/components';
 import { Message, OrderInputType } from '@bole-core/core';
 import { format } from '@/utils';
-import { SettleStatusEnum, SettleStatusEnumText } from '@/constants';
+import {
+  SettleStatusEnum,
+  SettleStatusEnumText,
+  FinanceStatusEnum,
+  FinanceStatusEnumText,
+} from '@/constants';
 import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
 import FinancialDialog from './components/FinancialDialog.vue';
 import PlateformDialog from './components/PlateformDialog.vue';
@@ -89,8 +103,8 @@
 import { useQueryClient } from '@tanstack/vue-query';
 import { FourStreamsMaterialUtils } from '@/components/commonView/utils';
 import {
-  ApplyTransferMaterialFileTableItem,
-  ApplyTransferFileBusinessTypeEnumText,
+  TransferFileEnumInRewardGrandText,
+  TransferFileEnumInRewardGrandTableItem,
 } from '@/components/commonView/types';
 
 defineOptions({
@@ -130,12 +144,12 @@
   },
   {
     id: '7',
-    enCode: 'settleStatus',
+    enCode: 'financeStatus',
     name: '璐㈡斂鎷ㄤ粯鐘舵��',
   },
   {
     id: '8',
-    enCode: 'settleTime',
+    enCode: 'financeTime',
     name: '鎷ㄤ粯鏃ユ湡',
   },
   {
@@ -170,7 +184,7 @@
     },
     extraProps: {
       hide: (row: API.GetParkBountyApplyListOutput) =>
-        row.settleStatus === SettleStatusEnum.HasSettle,
+        row.financeStatus === FinanceStatusEnum.HasIncome,
     },
   },
   {
@@ -196,7 +210,8 @@
     },
     extraProps: {
       hide: (row: API.GetParkBountyApplyListOutput) =>
-        row.settleStatus === SettleStatusEnum.WaitForSettle,
+        row.settleStatus === SettleStatusEnum.WaitForSettle &&
+        row.financeStatus === FinanceStatusEnum.WaitForIncome,
     },
   },
 ]);
@@ -230,6 +245,7 @@
         },
         batchNo: extraParamState.batchNo,
         settleStatus: extraParamState.settleStatus,
+        financeStatus: extraParamState.financeStatus,
         creationTimeBegin: format(extraParamState.creationTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
         creationTimeEnd: format(extraParamState.creationTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
         settleTimeBegin: format(extraParamState.settleTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
@@ -245,6 +261,7 @@
     defaultExtraParams: {
       batchNo: '',
       settleStatus: '' as any as SettleStatusEnum,
+      financeStatus: '' as any as FinanceStatusEnum,
       creationTime: [] as unknown as ModelValueType,
       settleTime: [] as unknown as ModelValueType,
       orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
@@ -253,13 +270,15 @@
       applyMonth: { type: 'date', format: 'YYYY骞碝M鏈�' },
       creationTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
       settleTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
+      financeTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
       applySumAmount: { type: 'money' },
       settleStatus: { type: 'enum', valueEnum: SettleStatusEnumText },
+      financeStatus: { type: 'enum', valueEnum: FinanceStatusEnumText },
     },
   }
 );
 
-function goDetail(row: any) {
+function goDetail(row: API.GetParkBountyApplyListOutput) {
   router.push({
     name: 'RewardDeclareDetail',
     params: {
@@ -268,15 +287,15 @@
   });
 }
 
-function openMaterialFileDialog(row: API.ParkBountyApplyTransferDetailInfo) {
+function openMaterialFileDialog(row: API.GetParkBountyApplyListOutput) {
   handleMaterialFileAdd({
-    list: FourStreamsMaterialUtils.initApplyTransferMaterialFileList(row),
+    list: FourStreamsMaterialUtils.initApplyRewardGrandFileList(row),
   });
 }
 
 const { dialogProps: dialogMaterialFileProps, handleAdd: handleMaterialFileAdd } = useFormDialog({
   defaultFormParams: {
-    list: [] as ApplyTransferMaterialFileTableItem[],
+    list: [] as TransferFileEnumInRewardGrandTableItem[],
   },
 });
 
@@ -289,25 +308,26 @@
   onConfirm: handleFinancial,
   defaultFormParams: {
     parkBountyApplyId: '',
-    amount: 0,
-    settleFileUrl: [] as UploadUserFile[],
+    financeSumAmount: 0,
+    financeFileUrl: [] as UploadUserFile[],
   },
 });
 
 function openFinancialDialog(row?: API.GetParkBountyApplyListOutput) {
   handleFinancialEdit({
     parkBountyApplyId: row.id,
-    amount: 0,
-    settleFileUrl: [] as UploadUserFile[],
+    financeSumAmount: 0,
+    financeFileUrl: [] as UploadUserFile[],
   });
 }
 async function handleFinancial() {
   try {
-    let params: API.ParkBountyApplySettleInput = {
+    let params: API.ParkBountyApplyFinanceFileInput = {
       parkBountyApplyId: editFinancialForm.parkBountyApplyId,
-      settleFileUrl: editFinancialForm.settleFileUrl.map((x) => x.path).join('|'),
+      financeSumAmount: editFinancialForm.financeSumAmount,
+      financeFileUrl: editFinancialForm.financeFileUrl.map((x) => x.path).join('|'),
     };
-    let res = await parkBountyApplyServices.parkBountyApplySettle(params);
+    let res = await parkBountyApplyServices.parkBountyApplyFinanceBill(params);
     if (res) {
       Message.successMessage('鎿嶄綔鎴愬姛');
       getList(paginationState.pageIndex);
@@ -326,7 +346,7 @@
   onConfirm: handlePlateform,
   defaultFormParams: {
     parkBountyApplyId: '',
-    amount: 0,
+    settleSumAmount: 0,
     settleFileUrl: [] as UploadUserFile[],
   },
 });
@@ -334,12 +354,28 @@
 function openPlateformDialog(row?: API.GetParkBountyApplyListOutput) {
   handlePlateformEdit({
     parkBountyApplyId: row.id,
-    amount: 0,
+    settleSumAmount: 0,
     settleFileUrl: [] as UploadUserFile[],
   });
 }
 
-async function handlePlateform() {}
+async function handlePlateform() {
+  try {
+    let params: API.ParkBountyApplySettleInput = {
+      parkBountyApplyId: editPlateformForm.parkBountyApplyId,
+      settleSumAmount: editPlateformForm.settleSumAmount,
+      settleFileUrl: editPlateformForm.settleFileUrl.map((x) => x.path).join('|'),
+    };
+    let res = await parkBountyApplyServices.parkBountyApplySettle(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+      queryClient.invalidateQueries({
+        queryKey: ['parkBountyApplyServices/getGoverDataBoard'],
+      });
+    }
+  } catch (error) {}
+}
 </script>
 
 <style lang="scss" scoped>
diff --git a/src/views/Reward/components/FinancialDialog.vue b/src/views/Reward/components/FinancialDialog.vue
index a32c086..1bf081d 100644
--- a/src/views/Reward/components/FinancialDialog.vue
+++ b/src/views/Reward/components/FinancialDialog.vue
@@ -11,18 +11,23 @@
     <ProForm :model="innerForm" ref="dialogForm" label-width="120px">
       <ProFormItemV2
         label="鎷ㄤ粯鎬婚:"
-        prop="amount"
+        prop="financeSumAmount"
         :check-rules="[{ message: '璇疯緭鍏ユ嫧浠樻�婚', type: 'number' }]"
       >
-        <ProFormInputNumber v-model="innerForm.amount" :controls="false" :min="0" :precision="2" />
+        <ProFormInputNumber
+          v-model="innerForm.financeSumAmount"
+          :controls="false"
+          :min="0"
+          :precision="2"
+        />
       </ProFormItemV2>
       <ProFormItemV2
         label="涓婁紶鎷ㄤ粯鍑瘉:"
-        prop="settleFileUrl"
+        prop="financeFileUrl"
         :check-rules="[{ message: '璇蜂笂浼犲彂鏀惧嚟璇�', type: 'upload' }]"
       >
         <ProFormUpload
-          v-model:file-url="innerForm.settleFileUrl"
+          v-model:file-url="innerForm.financeFileUrl"
           :limitFileSize="50"
           accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
         >
@@ -58,8 +63,8 @@
   modelValue: boolean;
   form?: {
     parkBountyApplyId: string;
-    amount: number;
-    settleFileUrl: UploadUserFile[];
+    financeSumAmount: number;
+    financeFileUrl: UploadUserFile[];
   };
 };
 
diff --git a/src/views/Reward/components/PlateformDialog.vue b/src/views/Reward/components/PlateformDialog.vue
index c4136eb..79931a0 100644
--- a/src/views/Reward/components/PlateformDialog.vue
+++ b/src/views/Reward/components/PlateformDialog.vue
@@ -11,10 +11,15 @@
     <ProForm :model="innerForm" ref="dialogForm" label-width="120px">
       <ProFormItemV2
         label="鍏呭�兼�婚:"
-        prop="amount"
+        prop="settleSumAmount"
         :check-rules="[{ message: '璇疯緭鍏ュ厖鍊兼�婚', type: 'number' }]"
       >
-        <ProFormInputNumber v-model="innerForm.amount" :controls="false" :min="0" :precision="2" />
+        <ProFormInputNumber
+          v-model="innerForm.settleSumAmount"
+          :controls="false"
+          :min="0"
+          :precision="2"
+        />
       </ProFormItemV2>
       <ProFormItemV2
         label="涓婁紶鍏呭�煎嚟璇�:"
@@ -57,7 +62,7 @@
   modelValue: boolean;
   form?: {
     parkBountyApplyId: string;
-    amount: number;
+    settleSumAmount: number;
     settleFileUrl: UploadUserFile[];
   };
 };

--
Gitblit v1.9.1