From b7426e2384b85e92ec1b59061bdada9b4f5c69ec Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期三, 23 四月 2025 16:12:40 +0800 Subject: [PATCH] feat: 接口 --- src/views/Reward/RewardGrant.vue | 268 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 217 insertions(+), 51 deletions(-) diff --git a/src/views/Reward/RewardGrant.vue b/src/views/Reward/RewardGrant.vue index 1d4c97c..a576222 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="寮�濮嬫棩鏈�" @@ -14,9 +14,9 @@ @change="getList()" ></FieldDatePicker> </QueryFilterItem> - <QueryFilterItem tip-content="鍙戞斁鏃ユ湡"> + <QueryFilterItem tip-content="鎷ㄤ粯鏃ユ湡"> <FieldDatePicker - v-model="extraParamState.date" + v-model="extraParamState.financeTime" type="daterange" range-separator="~" start-placeholder="寮�濮嬫棩鏈�" @@ -25,10 +25,30 @@ @change="getList()" ></FieldDatePicker> </QueryFilterItem> - <QueryFilterItem> + <QueryFilterItem tip-content="鍏呭�兼棩鏈�"> + <FieldDatePicker + v-model="extraParamState.settleTime" + type="daterange" + range-separator="~" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + clearable + @change="getList()" + ></FieldDatePicker> + </QueryFilterItem> + <QueryFilterItem tip-content="璐㈡斂鎷ㄤ粯鐘舵��"> <FieldRadio - v-model="extraParamState.showStatus" - :value-enum="DataRangeEnumText" + v-model="extraParamState.financeStatus" + :value-enum="FinanceStatusEnumText" + buttonStyle + showAllBtn + @change="getList()" + /> + </QueryFilterItem> + <QueryFilterItem tip-content="骞冲彴鍏呭�肩姸鎬�"> + <FieldRadio + v-model="extraParamState.settleStatus" + :value-enum="SettleStatusEnumText" buttonStyle showAllBtn @change="getList()" @@ -36,7 +56,7 @@ </QueryFilterItem> <QueryFilterItem> <SearchInput - v-model="extraParamState.keyword" + v-model="extraParamState.batchNo" style="width: 200px" placeholder="鎵规鍙�" @on-click-search="getList" @@ -48,8 +68,17 @@ <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> </ProTableV2> - - <RewardGrantDialog v-bind="dialogProps"></RewardGrantDialog> + <FourStreamsMaterialFileDialog + v-bind="dialogMaterialFileProps" + :show-upload-btn="false" + :show-delete-btn="false" + :show-check-btn="false" + downloadBtnText="鏌ョ湅" + title="鏌ョ湅鍑瘉" + :BusinessTypeEnumText="TransferFileEnumInRewardGrandText" + /> + <FinancialDialog v-bind="dialogFinancialProps"></FinancialDialog> + <PlateformDialog v-bind="dialogPlateformProps"></PlateformDialog> </AppContainer> </LoadingLayout> </template> @@ -69,13 +98,25 @@ useFormDialog, UploadUserFile, } 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 RewardGrantDialog from './components/RewardGrantDialog.vue'; +import { Message, OrderInputType } from '@bole-core/core'; +import { format } from '@/utils'; +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'; import _ from 'lodash'; import { ModelValueType } from 'element-plus'; +import { useQueryClient } from '@tanstack/vue-query'; +import { FourStreamsMaterialUtils } from '@/components/commonView/utils'; +import { + TransferFileEnumInRewardGrandText, + TransferFileEnumInRewardGrandTableItem, +} from '@/components/commonView/types'; defineOptions({ name: 'RewardGrant', @@ -84,43 +125,53 @@ 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', - name: '鐢宠濂栧姳閲戞湀浠�', + enCode: 'applyMonth', + name: '鐢宠骞冲彴濂栧姳鏈堜唤', }, { id: '5', - enCode: 'gender', - name: '濂栧姳閲戞眹鎬婚噾棰濓紙鍏冿級', + enCode: 'applySumAmount', + name: '骞冲彴濂栧姳姹囨�婚噾棰濓紙鍏冿級', }, { id: '6', - enCode: 'age', + enCode: 'creationTime', name: '鐢虫姤鏃ユ湡', }, { id: '7', - enCode: 'phoneNumber', - name: '鍙戞斁鐘舵��', + enCode: 'financeStatus', + name: '璐㈡斂鎷ㄤ粯鐘舵��', }, { id: '8', - enCode: 'phoneNumber', - name: '鍙戞斁鏃ユ湡', + enCode: 'financeTime', + name: '鎷ㄤ粯鏃ユ湡', + }, + { + id: '9', + enCode: 'settleStatus', + name: '骞冲彴鍏呭�肩姸鎬�', + }, + { + id: '10', + enCode: 'settleTime', + name: '鍏呭�兼棩鏈�', }, ]; @@ -136,20 +187,42 @@ }, { data: { - enCode: 'grantBtn', - name: '鍙戞斁', + enCode: 'financialBtn', + name: '璐㈡斂鎷ㄤ粯', }, emits: { - onClick: (role) => openDialog(role), + onClick: (role) => openFinancialDialog(role), + }, + extraProps: { + hide: (row: API.GetParkBountyApplyListOutput) => + row.financeStatus === FinanceStatusEnum.HasIncome, }, }, { data: { - enCode: 'previewBtn', + enCode: 'plateformBtn', + name: '骞冲彴鍏呭��', + }, + emits: { + onClick: (role) => openPlateformDialog(role), + }, + extraProps: { + hide: (row: API.GetParkBountyApplyListOutput) => + row.settleStatus === SettleStatusEnum.HasSettle, + }, + }, + { + data: { + enCode: 'checkBtn', name: '鏌ョ湅鍑瘉', }, emits: { - onClick: (role) => handlePreview(role), + onClick: (row) => openMaterialFileDialog(row), + }, + extraProps: { + hide: (row: API.GetParkBountyApplyListOutput) => + row.settleStatus === SettleStatusEnum.WaitForSettle && + row.financeStatus === FinanceStatusEnum.WaitForIncome, }, }, ]); @@ -175,16 +248,23 @@ } = 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, + 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'), + settleTimeEnd: format(extraParamState.settleTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), + financeTimeBegin: format(extraParamState.financeTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), + financeTimeEnd: format(extraParamState.financeTime?.[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,15 +272,27 @@ }, { defaultExtraParams: { - keyword: '', - showStatus: '' as any as DataRangeEnum, - date: [] as unknown as ModelValueType, + batchNo: '', + settleStatus: '' as any as SettleStatusEnum, + financeStatus: '' as any as FinanceStatusEnum, + creationTime: [] as unknown as ModelValueType, + settleTime: [] as unknown as ModelValueType, + financeTime: [] 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' }, + 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: { @@ -209,21 +301,95 @@ }); } -const { dialogProps, handleAdd, handleEdit, editForm } = useFormDialog({ - defaultFormParams: { - id: '', - url: [] as UploadUserFile[], - }, -}); - -function openDialog(row?: API.IncentivePaymentsManageListOutput) { - handleEdit({ - id: row.enterpriseName, - url: convertApi2FormUrlOnlyOne(row.issueVouchersUrl), +function openMaterialFileDialog(row: API.GetParkBountyApplyListOutput) { + handleMaterialFileAdd({ + list: FourStreamsMaterialUtils.initApplyRewardGrandFileList(row), }); } -function handlePreview(row?: API.IncentivePaymentsManageListOutput) {} +const { dialogProps: dialogMaterialFileProps, handleAdd: handleMaterialFileAdd } = useFormDialog({ + defaultFormParams: { + list: [] as TransferFileEnumInRewardGrandTableItem[], + }, +}); + +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: 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) {} +} </script> <style lang="scss" scoped> -- Gitblit v1.9.1