| | |
| | | @change="getList()" |
| | | ></FieldDatePicker> |
| | | </QueryFilterItem> |
| | | <QueryFilterItem tip-content="发放日期"> |
| | | <QueryFilterItem tip-content="拨付日期"> |
| | | <FieldDatePicker |
| | | v-model="extraParamState.financeTime" |
| | | type="daterange" |
| | | range-separator="~" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | clearable |
| | | @change="getList()" |
| | | ></FieldDatePicker> |
| | | </QueryFilterItem> |
| | | <QueryFilterItem tip-content="充值日期"> |
| | | <FieldDatePicker |
| | | v-model="extraParamState.settleTime" |
| | | type="daterange" |
| | |
| | | @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" |
| | |
| | | </ProTableQueryFilterBar> |
| | | |
| | | <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> |
| | | <template #operationBtn-checkBtn="{ data, row }"> |
| | | <PreviewBtnV2 |
| | | class="pro-table-operation-btn" |
| | | :url="convertApi2FormUrlBySeparator(row.settleFileUrl ?? '')" |
| | | preview-btn-text="查看凭证" |
| | | /> |
| | | </template> |
| | | </ProTableV2> |
| | | <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> |
| | |
| | | FieldDatePicker, |
| | | useFormDialog, |
| | | UploadUserFile, |
| | | PreviewBtnV2, |
| | | } from '@bole-core/components'; |
| | | import { Message, OrderInputType } from '@bole-core/core'; |
| | | import { convertApi2FormUrlBySeparator, format } from '@/utils'; |
| | | import { SettleStatusEnum, SettleStatusEnumText } from '@/constants'; |
| | | 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', |
| | |
| | | }, |
| | | { |
| | | id: '7', |
| | | enCode: 'settleStatus', |
| | | enCode: 'financeStatus', |
| | | name: '财政拨付状态', |
| | | }, |
| | | { |
| | | id: '8', |
| | | enCode: 'settleTime', |
| | | enCode: 'financeTime', |
| | | name: '拨付日期', |
| | | }, |
| | | { |
| | |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetParkBountyApplyListOutput) => |
| | | row.settleStatus === SettleStatusEnum.HasSettle, |
| | | row.financeStatus === FinanceStatusEnum.HasIncome, |
| | | }, |
| | | }, |
| | | { |
| | |
| | | enCode: 'checkBtn', |
| | | name: '查看凭证', |
| | | }, |
| | | emits: { |
| | | onClick: (row) => openMaterialFileDialog(row), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetParkBountyApplyListOutput) => |
| | | row.settleStatus === SettleStatusEnum.WaitForSettle, |
| | | row.settleStatus === SettleStatusEnum.WaitForSettle && |
| | | row.financeStatus === FinanceStatusEnum.WaitForIncome, |
| | | }, |
| | | }, |
| | | ]); |
| | |
| | | }, |
| | | 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 parkBountyApplyServices.getParkBountyApplyList(params, { |
| | | showLoading: !state.loading, |
| | |
| | | defaultExtraParams: { |
| | | 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: { |
| | |
| | | }, |
| | | }); |
| | | } |
| | | |
| | | function openMaterialFileDialog(row: API.GetParkBountyApplyListOutput) { |
| | | handleMaterialFileAdd({ |
| | | list: FourStreamsMaterialUtils.initApplyRewardGrandFileList(row), |
| | | }); |
| | | } |
| | | |
| | | const { dialogProps: dialogMaterialFileProps, handleAdd: handleMaterialFileAdd } = useFormDialog({ |
| | | defaultFormParams: { |
| | | list: [] as TransferFileEnumInRewardGrandTableItem[], |
| | | }, |
| | | }); |
| | | |
| | | const queryClient = useQueryClient(); |
| | | const { |
| | |
| | | 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); |
| | |
| | | onConfirm: handlePlateform, |
| | | defaultFormParams: { |
| | | parkBountyApplyId: '', |
| | | amount: 0, |
| | | settleSumAmount: 0, |
| | | settleFileUrl: [] as UploadUserFile[], |
| | | }, |
| | | }); |
| | |
| | | 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> |