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

---
 src/views/Reward/RewardGrant.vue |  104 ++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 73 insertions(+), 31 deletions(-)

diff --git a/src/views/Reward/RewardGrant.vue b/src/views/Reward/RewardGrant.vue
index 1d4c97c..18093e7 100644
--- a/src/views/Reward/RewardGrant.vue
+++ b/src/views/Reward/RewardGrant.vue
@@ -5,7 +5,7 @@
         <template #query>
           <QueryFilterItem tip-content="鐢虫姤鏃ユ湡">
             <FieldDatePicker
-              v-model="extraParamState.date"
+              v-model="extraParamState.creationTime"
               type="daterange"
               range-separator="~"
               start-placeholder="寮�濮嬫棩鏈�"
@@ -16,7 +16,7 @@
           </QueryFilterItem>
           <QueryFilterItem tip-content="鍙戞斁鏃ユ湡">
             <FieldDatePicker
-              v-model="extraParamState.date"
+              v-model="extraParamState.settleTime"
               type="daterange"
               range-separator="~"
               start-placeholder="寮�濮嬫棩鏈�"
@@ -27,8 +27,8 @@
           </QueryFilterItem>
           <QueryFilterItem>
             <FieldRadio
-              v-model="extraParamState.showStatus"
-              :value-enum="DataRangeEnumText"
+              v-model="extraParamState.settleStatus"
+              :value-enum="SettleStatusEnumText"
               buttonStyle
               showAllBtn
               @change="getList()"
@@ -36,7 +36,7 @@
           </QueryFilterItem>
           <QueryFilterItem>
             <SearchInput
-              v-model="extraParamState.keyword"
+              v-model="extraParamState.batchNo"
               style="width: 200px"
               placeholder="鎵规鍙�"
               @on-click-search="getList"
@@ -48,7 +48,6 @@
 
       <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
       </ProTableV2>
-
       <RewardGrantDialog v-bind="dialogProps"></RewardGrantDialog>
     </AppContainer>
   </LoadingLayout>
@@ -68,11 +67,12 @@
   FieldDatePicker,
   useFormDialog,
   UploadUserFile,
+  bolePreview,
 } from '@bole-core/components';
-import { OrderInputType } from '@bole-core/core';
-import { convertApi2FormUrlOnlyOne, format } from '@/utils';
-import { DataRangeEnum, DataRangeEnumText } from '@/constants';
-import * as informationServices from '@/services/api/Information';
+import { Message, OrderInputType } from '@bole-core/core';
+import { convertApi2FormUrl, convertApi2FormUrlOnlyOne, downloadFileByUrl, format } from '@/utils';
+import { SettleStatusEnum, SettleStatusEnumText } from '@/constants';
+import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
 import RewardGrantDialog from './components/RewardGrantDialog.vue';
 import _ from 'lodash';
 import { ModelValueType } from 'element-plus';
@@ -84,42 +84,42 @@
 const column: API.CustomModuleColumnDto[] = [
   {
     id: '1',
-    enCode: 'changeFlag',
+    enCode: 'batchNo',
     name: '鐢宠鎵规鍙�',
   },
   {
     id: '2',
-    enCode: 'name',
+    enCode: 'parkName',
     name: '鐢宠鍥尯',
   },
   {
     id: '3',
-    enCode: 'idNumber',
+    enCode: 'parkTypeName',
     name: '鍥尯绫诲瀷',
   },
   {
     id: '4',
-    enCode: 'workType',
+    enCode: 'applyMonth',
     name: '鐢宠濂栧姳閲戞湀浠�',
   },
   {
     id: '5',
-    enCode: 'gender',
+    enCode: 'applySumAmount',
     name: '濂栧姳閲戞眹鎬婚噾棰濓紙鍏冿級',
   },
   {
     id: '6',
-    enCode: 'age',
+    enCode: 'creationTime',
     name: '鐢虫姤鏃ユ湡',
   },
   {
     id: '7',
-    enCode: 'phoneNumber',
+    enCode: 'settleStatus',
     name: '鍙戞斁鐘舵��',
   },
   {
     id: '8',
-    enCode: 'phoneNumber',
+    enCode: 'settleTime',
     name: '鍙戞斁鏃ユ湡',
   },
 ];
@@ -142,6 +142,10 @@
     emits: {
       onClick: (role) => openDialog(role),
     },
+    extraProps: {
+      hide: (row: API.GetParkBountyApplyListOutput) =>
+        row.settleStatus === SettleStatusEnum.HasSettle,
+    },
   },
   {
     data: {
@@ -150,6 +154,10 @@
     },
     emits: {
       onClick: (role) => handlePreview(role),
+    },
+    extraProps: {
+      hide: (row: API.GetParkBountyApplyListOutput) =>
+        row.settleStatus === SettleStatusEnum.WaitForSettle,
     },
   },
 ]);
@@ -175,16 +183,20 @@
 } = useTable(
   async ({ pageIndex, pageSize }, extraParamState) => {
     try {
-      let params: API.GetInformationForManageInput = {
+      let params: API.GetParkBountyApplyListInput = {
         pageModel: {
           rows: pageSize,
           page: pageIndex,
           orderInput: extraParamState.orderInput,
         },
-        publishStartDate: format(extraParamState.date?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
-        publishEndDate: format(extraParamState.date?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+        batchNo: extraParamState.batchNo,
+        settleStatus: extraParamState.settleStatus,
+        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'),
+        settleTimeEnd: format(extraParamState.settleTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
       };
-      let res = await informationServices.getInformationForManage(params, {
+      let res = await parkBountyApplyServices.getParkBountyApplyList(params, {
         showLoading: !state.loading,
       });
       return res;
@@ -192,10 +204,18 @@
   },
   {
     defaultExtraParams: {
-      keyword: '',
-      showStatus: '' as any as DataRangeEnum,
-      date: [] as unknown as ModelValueType,
+      batchNo: '',
+      settleStatus: '' as any as SettleStatusEnum,
+      creationTime: [] as unknown as ModelValueType,
+      settleTime: [] as unknown as ModelValueType,
       orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
+    },
+    columnsRenderProps: {
+      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' },
+      applySumAmount: { type: 'money' },
+      settleStatus: { type: 'enum', valueEnum: SettleStatusEnumText },
     },
   }
 );
@@ -210,20 +230,42 @@
 }
 
 const { dialogProps, handleAdd, handleEdit, editForm } = useFormDialog({
+  onConfirm: handleAddOrEdit,
   defaultFormParams: {
-    id: '',
-    url: [] as UploadUserFile[],
+    parkBountyApplyId: '',
+    settleFileUrl: [] as UploadUserFile[],
   },
 });
 
-function openDialog(row?: API.IncentivePaymentsManageListOutput) {
+function openDialog(row?: API.GetParkBountyApplyListOutput) {
   handleEdit({
-    id: row.enterpriseName,
-    url: convertApi2FormUrlOnlyOne(row.issueVouchersUrl),
+    parkBountyApplyId: row.id,
+    settleFileUrl: [] as UploadUserFile[],
   });
 }
 
-function handlePreview(row?: API.IncentivePaymentsManageListOutput) {}
+async function handleAddOrEdit() {
+  try {
+    let params: API.ParkBountyApplySettleInput = {
+      parkBountyApplyId: editForm.parkBountyApplyId,
+      settleFileUrl: editForm.settleFileUrl.map((x) => x.path).join('|'),
+    };
+    let res = await parkBountyApplyServices.parkBountyApplySettle(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
+  } catch (error) {}
+}
+
+function handlePreview(row?: API.GetParkBountyApplyListOutput) {
+  const fileList = row.settleFileUrl?.split('|').map((x) => convertApi2FormUrl(x)) ?? [];
+  if (fileList.length > 1) {
+    console.log('fileList: ', fileList);
+  } else {
+    downloadFileByUrl(fileList[0]);
+  }
+}
 </script>
 
 <style lang="scss" scoped>

--
Gitblit v1.9.1