| | |
| | | <template #query> |
| | | <QueryFilterItem tip-content="申报日期"> |
| | | <FieldDatePicker |
| | | v-model="extraParamState.date" |
| | | v-model="extraParamState.creationTime" |
| | | type="daterange" |
| | | range-separator="~" |
| | | start-placeholder="开始日期" |
| | |
| | | @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="开始日期" |
| | |
| | | @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()" |
| | |
| | | </QueryFilterItem> |
| | | <QueryFilterItem> |
| | | <SearchInput |
| | | v-model="extraParamState.keyword" |
| | | v-model="extraParamState.batchNo" |
| | | style="width: 200px" |
| | | placeholder="批次号" |
| | | @on-click-search="getList" |
| | |
| | | |
| | | <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> |
| | |
| | | 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', |
| | |
| | | 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: '充值日期', |
| | | }, |
| | | ]; |
| | | |
| | |
| | | }, |
| | | { |
| | | 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, |
| | | }, |
| | | }, |
| | | ]); |
| | |
| | | } = 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; |
| | |
| | | }, |
| | | { |
| | | 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年MM月' }, |
| | | 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: { |
| | |
| | | }); |
| | | } |
| | | |
| | | 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> |