From aea28d0ad246cc8d6ce0744b8f101dd7c8fd474f Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期三, 14 五月 2025 14:29:15 +0800
Subject: [PATCH] feat: 接口

---
 src/views/Reward/RewardGrant.vue |  268 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 210 insertions(+), 58 deletions(-)

diff --git a/src/views/Reward/RewardGrant.vue b/src/views/Reward/RewardGrant.vue
index a576222..563ce13 100644
--- a/src/views/Reward/RewardGrant.vue
+++ b/src/views/Reward/RewardGrant.vue
@@ -39,7 +39,7 @@
           <QueryFilterItem tip-content="璐㈡斂鎷ㄤ粯鐘舵��">
             <FieldRadio
               v-model="extraParamState.financeStatus"
-              :value-enum="FinanceStatusEnumText"
+              :value-enum="FinanceStatusEnumTextV2Query"
               buttonStyle
               showAllBtn
               @change="getList()"
@@ -48,7 +48,7 @@
           <QueryFilterItem tip-content="骞冲彴鍏呭�肩姸鎬�">
             <FieldRadio
               v-model="extraParamState.settleStatus"
-              :value-enum="SettleStatusEnumText"
+              :value-enum="SettleStatusEnumTextV2Query"
               buttonStyle
               showAllBtn
               @change="getList()"
@@ -68,7 +68,7 @@
 
       <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
       </ProTableV2>
-      <FourStreamsMaterialFileDialog
+      <FourStreamsMaterialFileDialogV2
         v-bind="dialogMaterialFileProps"
         :show-upload-btn="false"
         :show-delete-btn="false"
@@ -77,8 +77,10 @@
         title="鏌ョ湅鍑瘉"
         :BusinessTypeEnumText="TransferFileEnumInRewardGrandText"
       />
-      <FinancialDialog v-bind="dialogFinancialProps"></FinancialDialog>
-      <PlateformDialog v-bind="dialogPlateformProps"></PlateformDialog>
+      <RegisterDialog v-bind="dialogRegisterProps"></RegisterDialog>
+      <UploadCertRewardDialog v-bind="dialogCertRewardProps"></UploadCertRewardDialog>
+      <!-- <FinancialDialog v-bind="dialogFinancialProps"></FinancialDialog>
+      <PlateformDialog v-bind="dialogPlateformProps"></PlateformDialog> -->
     </AppContainer>
   </LoadingLayout>
 </template>
@@ -102,21 +104,25 @@
 import { format } from '@/utils';
 import {
   SettleStatusEnum,
-  SettleStatusEnumText,
   FinanceStatusEnum,
-  FinanceStatusEnumText,
+  TransferFileEnumInRewardGrandText,
+  FinanceStatusEnumTextV2,
+  FinanceStatusEnumTextV2Query,
+  SettleStatusEnumTextV2,
+  SettleStatusEnumTextV2Query,
+  IncomeTypeEnum,
+  BillStatusEnum,
 } from '@/constants';
 import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
+import RegisterDialog from './components/RegisterDialog.vue';
+import UploadCertRewardDialog from './components/UploadCertRewardDialog.vue';
 import FinancialDialog from './components/FinancialDialog.vue';
 import PlateformDialog from './components/PlateformDialog.vue';
 import _ from 'lodash';
 import { ModelValueType } from 'element-plus';
 import { useQueryClient } from '@tanstack/vue-query';
+import { TransferFileEnumInRewardGrandTableItem } from '@/components/commonView/types';
 import { FourStreamsMaterialUtils } from '@/components/commonView/utils';
-import {
-  TransferFileEnumInRewardGrandText,
-  TransferFileEnumInRewardGrandTableItem,
-} from '@/components/commonView/types';
 
 defineOptions({
   name: 'RewardGrant',
@@ -127,51 +133,61 @@
     id: '1',
     enCode: 'batchNo',
     name: '鐢宠鎵规鍙�',
+    width: 160,
   },
   {
     id: '2',
     enCode: 'parkName',
     name: '鐢宠鍥尯',
+    width: 250,
   },
   {
     id: '3',
     enCode: 'parkTypeName',
     name: '鍥尯绫诲瀷',
+    width: 160,
   },
   {
     id: '4',
     enCode: 'applyMonth',
     name: '鐢宠骞冲彴濂栧姳鏈堜唤',
+    width: 160,
   },
   {
     id: '5',
     enCode: 'applySumAmount',
     name: '骞冲彴濂栧姳姹囨�婚噾棰濓紙鍏冿級',
+    width: 180,
   },
   {
     id: '6',
     enCode: 'creationTime',
     name: '鐢虫姤鏃ユ湡',
+    width: 180,
   },
   {
     id: '7',
     enCode: 'financeStatus',
-    name: '璐㈡斂鎷ㄤ粯鐘舵��',
+    name: '璐㈡斂鎷ㄤ粯鐧昏鐘舵��',
+    width: 160,
   },
   {
     id: '8',
     enCode: 'financeTime',
-    name: '鎷ㄤ粯鏃ユ湡',
+    name: '鐧昏鎷ㄤ粯鏃ユ湡',
+    width: 180,
   },
   {
     id: '9',
     enCode: 'settleStatus',
-    name: '骞冲彴鍏呭�肩姸鎬�',
+    name: '骞冲彴鍏呭�肩櫥璁扮姸鎬�',
+    width: 160,
   },
   {
     id: '10',
     enCode: 'settleTime',
-    name: '鍏呭�兼棩鏈�',
+    name: '鐧昏鍏呭�兼棩鏈�',
+    width: 180,
   },
 ];
 
@@ -185,30 +201,62 @@
       onClick: (role) => goDetail(role),
     },
   },
+  // {
+  //   data: {
+  //     enCode: 'financialBtn',
+  //     name: '璐㈡斂鎷ㄤ粯',
+  //   },
+  //   emits: {
+  //     onClick: (role) => openFinancialDialog(role),
+  //   },
+  //   extraProps: {
+  //     hide: (row: API.GetParkBountyApplyListOutput) =>
+  //       row.financeStatus === FinanceStatusEnum.HasIncome,
+  //   },
+  // },
+  // {
+  //   data: {
+  //     enCode: 'plateformBtn',
+  //     name: '骞冲彴鍏呭��',
+  //   },
+  //   emits: {
+  //     onClick: (role) => openPlateformDialog(role),
+  //   },
+  //   extraProps: {
+  //     hide: (row: API.GetParkBountyApplyListOutput) =>
+  //       row.settleStatus !== SettleStatusEnum.WaitForSettle,
+  //   },
+  // },
   {
     data: {
-      enCode: 'financialBtn',
-      name: '璐㈡斂鎷ㄤ粯',
+      enCode: 'registerBtn',
+      name: '鐧昏',
     },
     emits: {
-      onClick: (role) => openFinancialDialog(role),
+      onClick: (role) => openRegisterDialog(role),
     },
     extraProps: {
       hide: (row: API.GetParkBountyApplyListOutput) =>
-        row.financeStatus === FinanceStatusEnum.HasIncome,
+        !(
+          row.settleStatus === SettleStatusEnum.WaitForSettle ||
+          row.financeStatus === FinanceStatusEnum.WaitForIncome
+        ),
     },
   },
   {
     data: {
-      enCode: 'plateformBtn',
-      name: '骞冲彴鍏呭��',
+      enCode: 'uploadCertBtn',
+      name: '涓婁紶鍑瘉',
     },
     emits: {
-      onClick: (role) => openPlateformDialog(role),
+      onClick: (role) => openCertRewardDialog(role),
     },
     extraProps: {
       hide: (row: API.GetParkBountyApplyListOutput) =>
-        row.settleStatus === SettleStatusEnum.HasSettle,
+        !(
+          row.settleStatus === SettleStatusEnum.HasSettle ||
+          row.financeStatus === FinanceStatusEnum.HasIncome
+        ),
     },
   },
   {
@@ -221,8 +269,10 @@
     },
     extraProps: {
       hide: (row: API.GetParkBountyApplyListOutput) =>
-        row.settleStatus === SettleStatusEnum.WaitForSettle &&
-        row.financeStatus === FinanceStatusEnum.WaitForIncome,
+        !(
+          row.settleStatus === SettleStatusEnum.HasBill ||
+          row.financeStatus === FinanceStatusEnum.HasBill
+        ),
     },
   },
 ]);
@@ -286,8 +336,8 @@
       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 },
+      settleStatus: { type: 'enum', valueEnum: SettleStatusEnumTextV2 },
+      financeStatus: { type: 'enum', valueEnum: FinanceStatusEnumTextV2 },
     },
   }
 );
@@ -314,34 +364,84 @@
 });
 
 const queryClient = useQueryClient();
+
+// const {
+//   dialogProps: dialogFinancialProps,
+//   handleEdit: handleFinancialEdit,
+//   editForm: editFinancialForm,
+// } = useFormDialog({
+//   onConfirm: handleFinancial,
+//   defaultFormParams: {
+//     parkBountyApplyId: '',
+//     financeSumAmount: 0,
+//     financeFileUrl: [] as UploadUserFile[],
+//   },
+// });
+
+// function openFinancialDialog(row?: API.GetParkBountyApplyListOutput) {
+//   handleFinancialEdit({
+//     parkBountyApplyId: row.id,
+//     financeSumAmount: 0,
+//     financeFileUrl: [] as UploadUserFile[],
+//   });
+// }
+// async function handleFinancial() {
+//   try {
+//     let params: API.ParkBountyApplyFinanceFileInput = {
+//       parkBountyApplyId: editFinancialForm.parkBountyApplyId,
+//       financeSumAmount: editFinancialForm.financeSumAmount,
+//       financeFileUrl: editFinancialForm.financeFileUrl.map((x) => x.path).join('|'),
+//     };
+//     let res = await parkBountyApplyServices.parkBountyApplyFinanceBill(params);
+//     if (res) {
+//       Message.successMessage('鎿嶄綔鎴愬姛');
+//       getList(paginationState.pageIndex);
+//       queryClient.invalidateQueries({
+//         queryKey: ['parkBountyApplyServices/getGoverDataBoard'],
+//       });
+//     }
+//   } catch (error) {}
+// }
 const {
-  dialogProps: dialogFinancialProps,
-  handleEdit: handleFinancialEdit,
-  editForm: editFinancialForm,
+  dialogProps: dialogRegisterProps,
+  handleEdit: handleRegisterEdit,
+  editForm: editRegisterForm,
 } = useFormDialog({
-  onConfirm: handleFinancial,
+  onConfirm: handleRegister,
   defaultFormParams: {
+    incomeType: '' as any as IncomeTypeEnum,
     parkBountyApplyId: '',
     financeSumAmount: 0,
-    financeFileUrl: [] as UploadUserFile[],
+    showSuportPlatRecharge: false,
+    showSuportFiscalRecharge: false,
   },
 });
 
-function openFinancialDialog(row?: API.GetParkBountyApplyListOutput) {
-  handleFinancialEdit({
+function openRegisterDialog(row?: API.GetParkBountyApplyListOutput) {
+  handleRegisterEdit({
+    incomeType: '' as any as IncomeTypeEnum,
+    showSuportPlatRecharge: row.settleStatus === SettleStatusEnum.WaitForSettle,
+    showSuportFiscalRecharge: row.financeStatus === FinanceStatusEnum.WaitForIncome,
     parkBountyApplyId: row.id,
     financeSumAmount: 0,
-    financeFileUrl: [] as UploadUserFile[],
   });
 }
-async function handleFinancial() {
+async function handleRegister() {
   try {
-    let params: API.ParkBountyApplyFinanceFileInput = {
-      parkBountyApplyId: editFinancialForm.parkBountyApplyId,
-      financeSumAmount: editFinancialForm.financeSumAmount,
-      financeFileUrl: editFinancialForm.financeFileUrl.map((x) => x.path).join('|'),
+    let params = {
+      parkBountyApplyId: editRegisterForm.parkBountyApplyId,
     };
-    let res = await parkBountyApplyServices.parkBountyApplyFinanceBill(params);
+    let res;
+    if (editRegisterForm.incomeType === IncomeTypeEnum.Fiscal) {
+      (params as API.ParkBountyApplyFinanceFileInput).financeSumAmount =
+        editRegisterForm.financeSumAmount;
+      res = await parkBountyApplyServices.parkBountyApplyFinanceBillAmount(params);
+    }
+    if (editRegisterForm.incomeType === IncomeTypeEnum.Platform) {
+      (params as API.ParkBountyApplySettleInput).settleSumAmount =
+        editRegisterForm.financeSumAmount;
+      res = await parkBountyApplyServices.parkBountyApplySettleAmount(params);
+    }
     if (res) {
       Message.successMessage('鎿嶄綔鎴愬姛');
       getList(paginationState.pageIndex);
@@ -352,35 +452,87 @@
   } catch (error) {}
 }
 
+// const {
+//   dialogProps: dialogPlateformProps,
+//   handleEdit: handlePlateformEdit,
+//   editForm: editPlateformForm,
+// } = useFormDialog({
+//   onConfirm: handlePlateform,
+//   defaultFormParams: {
+//     parkBountyApplyId: '',
+//     settleSumAmount: 0,
+//     settleFileUrl: [] as UploadUserFile[],
+//   },
+// });
+
+// function openPlateformDialog(row?: API.GetParkBountyApplyListOutput) {
+//   handlePlateformEdit({
+//     parkBountyApplyId: row.id,
+//     settleSumAmount: 0,
+//     settleFileUrl: [] as UploadUserFile[],
+//   });
+// }
+
+// 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) {}
+// }
+
 const {
-  dialogProps: dialogPlateformProps,
-  handleEdit: handlePlateformEdit,
-  editForm: editPlateformForm,
+  dialogProps: dialogCertRewardProps,
+  handleEdit: handleCertRewardEdit,
+  editForm: editCertRewardForm,
 } = useFormDialog({
-  onConfirm: handlePlateform,
+  onConfirm: handleCertReward,
   defaultFormParams: {
+    incomeType: '' as any as IncomeTypeEnum,
     parkBountyApplyId: '',
-    settleSumAmount: 0,
-    settleFileUrl: [] as UploadUserFile[],
+    fileUrl: [] as UploadUserFile[],
+    showSuportPlatRecharge: false,
+    showSuportFiscalRecharge: false,
   },
 });
 
-function openPlateformDialog(row?: API.GetParkBountyApplyListOutput) {
-  handlePlateformEdit({
+function openCertRewardDialog(row?: API.GetParkBountyApplyListOutput) {
+  handleCertRewardEdit({
+    incomeType: '' as any as IncomeTypeEnum,
+    showSuportPlatRecharge: row.settleStatus === SettleStatusEnum.HasSettle,
+    showSuportFiscalRecharge: row.financeStatus === FinanceStatusEnum.HasIncome,
     parkBountyApplyId: row.id,
-    settleSumAmount: 0,
-    settleFileUrl: [] as UploadUserFile[],
+    fileUrl: [] as UploadUserFile[],
   });
 }
-
-async function handlePlateform() {
+async function handleCertReward() {
   try {
-    let params: API.ParkBountyApplySettleInput = {
-      parkBountyApplyId: editPlateformForm.parkBountyApplyId,
-      settleSumAmount: editPlateformForm.settleSumAmount,
-      settleFileUrl: editPlateformForm.settleFileUrl.map((x) => x.path).join('|'),
+    let params: API.ParkBountyApplyFinanceFileInput = {
+      parkBountyApplyId: editCertRewardForm.parkBountyApplyId,
     };
-    let res = await parkBountyApplyServices.parkBountyApplySettle(params);
+    let res;
+    if (editCertRewardForm.incomeType === IncomeTypeEnum.Fiscal) {
+      (params as API.ParkBountyApplyFinanceFileInput).financeFileUrl = editCertRewardForm.fileUrl
+        .map((x) => x.path)
+        .join('|');
+      res = await parkBountyApplyServices.parkBountyApplyFinanceBill(params);
+    }
+    if (editCertRewardForm.incomeType === IncomeTypeEnum.Platform) {
+      (params as API.ParkBountyApplySettleInput).settleFileUrl = editCertRewardForm.fileUrl
+        .map((x) => x.path)
+        .join('|');
+      res = await parkBountyApplyServices.parkBountyApplySettle(params);
+    }
     if (res) {
       Message.successMessage('鎿嶄綔鎴愬姛');
       getList(paginationState.pageIndex);

--
Gitblit v1.9.1