| | |
| | | <script setup lang="ts" generic="T"> |
| | | import { |
| | | FourStreamsMaterialFileTableProps, |
| | | FourStreamsMaterialFileTableItem, |
| | | FourStreamsMaterialFileBusinessTypeEnumText, |
| | | BaseMaterialFileTableItem, |
| | | FourStreamsMaterialFileBusinessTypeEnumText, |
| | | } from './types'; |
| | | import { |
| | | ProTableV2, |
| | | defineColumns, |
| | | defineOperationBtns, |
| | | BlFileUpload, |
| | | bolePreview, |
| | | useDialog, |
| | | } from '@bole-core/components'; |
| | | import FourStreamsBatchMaterialFileDialog from './FourStreamsBatchMaterialFileDialog.vue'; |
| | | import { downloadFileByUrl } from '@/utils'; |
| | | import { Message, isFileCanPreview } from '@bole-core/core'; |
| | | import { Message, isFileCanPreview, downloadWithZip } from '@bole-core/core'; |
| | | import { useDefineColumns } from '@/hooks'; |
| | | import FourStreamsBatchMaterialFileDialog from './FourStreamsBatchMaterialFileDialog.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'FourStreamsMaterialFileTable', |
| | |
| | | name: '上传', |
| | | }, |
| | | extraProps: { |
| | | hide: (row: FourStreamsMaterialFileTableItem) => { |
| | | hide: (row: BaseMaterialFileTableItem<T>) => { |
| | | if (!props.showUploadBtn) return true; |
| | | let fileList = row?.fileList?.filter?.((item) => item.status === 'success'); |
| | | return fileList?.length > 0; |
| | |
| | | onClick: (row) => handlePreview(row), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: FourStreamsMaterialFileTableItem) => { |
| | | hide: (row: BaseMaterialFileTableItem<T>) => { |
| | | if (!props.showCheckBtn) return true; |
| | | let fileList = row?.fileList?.filter?.((item) => item.status === 'success'); |
| | | if (!fileList?.length) { |
| | |
| | | onClick: (row) => handleBatchDownload(row), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: FourStreamsMaterialFileTableItem) => { |
| | | hide: (row: BaseMaterialFileTableItem<T>) => { |
| | | return ( |
| | | !props.showDownloadBtn || |
| | | !row?.fileList?.filter?.((item) => item.status === 'success')?.length |
| | |
| | | onClick: (row) => handleDelete(row), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: FourStreamsMaterialFileTableItem) => { |
| | | hide: (row: BaseMaterialFileTableItem<T>) => { |
| | | if (!props.showDeleteBtn) return true; |
| | | let fileList = row?.fileList?.filter?.((item) => item.status === 'success'); |
| | | return !fileList?.length; |
| | |
| | | ], |
| | | }); |
| | | |
| | | async function handleDelete(row: FourStreamsMaterialFileTableItem) { |
| | | async function handleDelete(row: BaseMaterialFileTableItem<T>) { |
| | | try { |
| | | await Message.deleteMessage(); |
| | | row.fileList = []; |
| | |
| | | }); |
| | | const { dialogProps, dialogState } = useDialog(); |
| | | |
| | | async function handlePreview(row: FourStreamsMaterialFileTableItem) { |
| | | async function handlePreview(row: BaseMaterialFileTableItem<T>) { |
| | | if (row.fileList.length > 1) { |
| | | // currentEnterpriseMaterialFileTableItem.value = row; |
| | | // await nextTick(); |
| | | // dialogState.dialogVisible = true; |
| | | currentFourStreamsMaterialFileTableItem.value = row; |
| | | await nextTick(); |
| | | dialogState.dialogVisible = true; |
| | | } else { |
| | | bolePreview({ |
| | | fileUrl: row.fileList[0].url, |
| | |
| | | } |
| | | } |
| | | |
| | | function handleBatchDownload(row: FourStreamsMaterialFileTableItem) { |
| | | async function handleBatchDownload(row: BaseMaterialFileTableItem<T>) { |
| | | const successFileList = row.fileList.filter((item) => item.status === 'success'); |
| | | if (successFileList.length === 0) { |
| | | Message.errorMessage('没有可下载的文件'); |
| | |
| | | } else { |
| | | // downloadWithZip( |
| | | // successFileList.map((item) => ({ data: item.url })), |
| | | // `${AllEnterpriseMaterialFileBusinessTypeEnumText[row.fileBusinessType]}材料文件` |
| | | // `${props.BusinessTypeEnumText[row.fileBusinessType as any]}` |
| | | // ); |
| | | currentFourStreamsMaterialFileTableItem.value = row; |
| | | await nextTick(); |
| | | dialogState.dialogVisible = true; |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="本次申报奖励金总额:" prop="applySumAmount"> |
| | | <ProFormInputNumber v-model="form.applySumAmount" unit="元" /> |
| | | <ProFormInputNumber v-model="form.applySumAmount" formatValue="money" unit="元" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | |
| | | export type ApplyTransferMaterialFileTableItem = |
| | | BaseMaterialFileTableItem<ApplyTransferFileBusinessTypeEnum>; |
| | | |
| | | export type TransferFileEnumInRewardGrandTableItem = |
| | | BaseMaterialFileTableItem<TransferFileEnumInRewardGrand>; |
| | | |
| | | export enum EnterpriseTypeEnum { |
| | | /** |
| | | * 人力资源公司 |
| | |
| | | [ApplyTransferFileBusinessTypeEnum.FinanceToFileUrl]: 'financeToFileUrl', |
| | | [ApplyTransferFileBusinessTypeEnum.TransferToFileUrl]: 'transferToFileUrl', |
| | | } as const; |
| | | |
| | | export enum TransferFileEnumInRewardGrand { |
| | | /** 拨付凭证*/ |
| | | FinanceFileUrl = 200, |
| | | /** 充值凭证*/ |
| | | SettleFileUrl = 210, |
| | | } |
| | | |
| | | export const TransferFileEnumInRewardGrandText = { |
| | | [TransferFileEnumInRewardGrand.FinanceFileUrl]: '拨付凭证', |
| | | [TransferFileEnumInRewardGrand.SettleFileUrl]: '充值凭证', |
| | | }; |
| | | |
| | | export const TransferFileEnumInRewardGrandKey = { |
| | | [TransferFileEnumInRewardGrand.FinanceFileUrl]: 'financeFileUrl', |
| | | [TransferFileEnumInRewardGrand.SettleFileUrl]: 'settleFileUrl', |
| | | } as const; |
| | |
| | | FourStreamsMaterialFileBusinessTypeEnum, |
| | | FourStreamsMaterialFileBusinessTypeEnumKey, |
| | | FourStreamsMaterialFileTableItem, |
| | | TransferFileEnumInRewardGrand, |
| | | TransferFileEnumInRewardGrandKey, |
| | | TransferFileEnumInRewardGrandTableItem, |
| | | } from '../types'; |
| | | |
| | | export class FourStreamsMaterialUtils { |
| | |
| | | static ApplyTransferMaterialFile = [ |
| | | ApplyTransferFileBusinessTypeEnum.FinanceToFileUrl, |
| | | ApplyTransferFileBusinessTypeEnum.TransferToFileUrl, |
| | | ]; |
| | | |
| | | /**财政拨付和平台充值凭证 奖励金发放*/ |
| | | static TransferFileEnumInRewardGrandFile = [ |
| | | TransferFileEnumInRewardGrand.FinanceFileUrl, |
| | | TransferFileEnumInRewardGrand.SettleFileUrl, |
| | | ]; |
| | | |
| | | static isFourStreamsParkType(parkTypeName) { |
| | |
| | | } as ApplyTransferMaterialFileTableItem; |
| | | }); |
| | | } |
| | | |
| | | static initApplyRewardGrandFileList< |
| | | T extends { financeFileUrl?: string; settleFileUrl?: string } |
| | | >(data: T) { |
| | | return this.TransferFileEnumInRewardGrandFile.map((item) => { |
| | | const filePathList = data[TransferFileEnumInRewardGrandKey[item]] |
| | | ? data[TransferFileEnumInRewardGrandKey[item]].split('|') |
| | | : []; |
| | | return { |
| | | fileBusinessType: item, |
| | | fileList: filePathList.map(convertApi2FormUrl), |
| | | } as TransferFileEnumInRewardGrandTableItem; |
| | | }); |
| | | } |
| | | } |
| | | |
| | | export class ParkTypeUtils { |
| | |
| | | |
| | | export enum SettleStatusEnum { |
| | | /** |
| | | * 待发放 |
| | | * 待充值 |
| | | */ |
| | | WaitForSettle = 1, |
| | | /** |
| | | * 已发放 |
| | | * 已充值 |
| | | */ |
| | | HasSettle = 2, |
| | | } |
| | | |
| | | export const SettleStatusEnumText = { |
| | | [SettleStatusEnum.WaitForSettle]: '待发放', |
| | | [SettleStatusEnum.HasSettle]: '已发放', |
| | | [SettleStatusEnum.WaitForSettle]: '待充值', |
| | | [SettleStatusEnum.HasSettle]: '已充值', |
| | | }; |
| | | |
| | | export enum FinanceStatusEnum { |
| | | /** |
| | | * 待拨付 |
| | | */ |
| | | WaitForIncome = 1, |
| | | /** |
| | | * 已拨付 |
| | | */ |
| | | HasIncome = 2, |
| | | } |
| | | |
| | | export const FinanceStatusEnumText = { |
| | | [FinanceStatusEnum.WaitForIncome]: '待拨付', |
| | | [FinanceStatusEnum.HasIncome]: '已拨付', |
| | | }; |
| | | |
| | | export enum IncomeStatusEnum { |
| | |
| | | ); |
| | | } |
| | | |
| | | /** 导入奖励金入账 POST /api/ParkBountyApply/ImportParkBountyData */ |
| | | export async function importParkBountyData( |
| | | body: API.ImportBountyApplyDataInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.ImportBountyApplyDataOutput>('/api/ParkBountyApply/ImportParkBountyData', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 内部审核 POST /api/ParkBountyApply/IncheckParkBountyApply */ |
| | | export async function incheckParkBountyApply( |
| | | body: API.IncheckParkBountyApplyInput, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 政务端—奖励金发放—上传财政拨付凭证 POST /api/ParkBountyApply/ParkBountyApplyFinanceBill */ |
| | | export async function parkBountyApplyFinanceBill( |
| | | body: API.ParkBountyApplyFinanceFileInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<number>('/api/ParkBountyApply/ParkBountyApplyFinanceBill', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 财政入账上传凭证 POST /api/ParkBountyApply/ParkBountyApplyFinanceFile */ |
| | | export async function parkBountyApplyFinanceFile( |
| | | body: API.ParkBountyApplyRechargeFileInput, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 政务端—奖励金发放—上传凭证 POST /api/ParkBountyApply/ParkBountyApplySettle */ |
| | | /** 政务端—奖励金发放—上传充值凭证 POST /api/ParkBountyApply/ParkBountyApplySettle */ |
| | | export async function parkBountyApplySettle( |
| | | body: API.ParkBountyApplySettleInput, |
| | | options?: API.RequestConfig |
| | |
| | | configuration?: Record<string, any>; |
| | | } |
| | | |
| | | interface ExportBountyApplyData { |
| | | /** 企业名称 */ |
| | | enterpriseName: string; |
| | | /** 信用代码 */ |
| | | societyCreditCode: string; |
| | | /** 财政拨付金额 */ |
| | | financeToAmountStr?: string; |
| | | /** 平台充值金额 */ |
| | | transferToAmountStr?: string; |
| | | /** 财政拨付金额 */ |
| | | financeToAmount?: number; |
| | | /** 平台充值金额 */ |
| | | transferToAmount?: number; |
| | | /** 备注 */ |
| | | remark?: string; |
| | | } |
| | | |
| | | interface ExportInsStaffInput { |
| | | companyId?: string; |
| | | url?: string; |
| | |
| | | } |
| | | |
| | | type FinanceStatusEnum = 1 | 2; |
| | | |
| | | type FinanceTypeEnum = 10 | 20; |
| | | |
| | | interface FirstPartyCompanyAuditDatilOutput { |
| | | id?: string; |
| | |
| | | remianAmount?: number; |
| | | payRemark?: string; |
| | | fileUrl?: string; |
| | | financeType?: FinanceTypeEnum; |
| | | payFileUrls?: string[]; |
| | | } |
| | | |
| | |
| | | inCheckStatus?: BountyCheckStatusEnum; |
| | | settleStatus?: SettleStatusEnum; |
| | | incomeStatus?: IncomeStatusEnum; |
| | | financeStatus?: FinanceStatusEnum; |
| | | } |
| | | |
| | | interface GetParkBountyApplyListOutput { |
| | |
| | | id?: string; |
| | | /** 申请批次号 */ |
| | | batchNo?: string; |
| | | /** 发放日期 */ |
| | | settleTime?: string; |
| | | /** 入账时间 */ |
| | | incomeTime?: string; |
| | | incomeStatus?: TransferToStatusEnum; |
| | | /** 发放金额 */ |
| | | /** 申报总额 */ |
| | | applySumAmount?: number; |
| | | /** 入账凭证 */ |
| | | /** 平台充值入账时间 */ |
| | | transferToTime?: string; |
| | | transferToStatus?: TransferToStatusEnum; |
| | | /** 平台充值金额 */ |
| | | transferToAmount?: number; |
| | | /** 平台充值入账凭证 */ |
| | | transferToFileUrl?: string; |
| | | /** 财政拨付金额 */ |
| | | financeToAmount?: number; |
| | | /** 财政拨付入账时间 */ |
| | | financeToTime?: string; |
| | | /** 财政拨付发放日期 */ |
| | | financeTime?: string; |
| | | /** 平台充值发放日期 */ |
| | | settleTime?: string; |
| | | financeToStatus?: FinanceStatusEnum; |
| | | /** 拨付入账凭证 */ |
| | | financeToFileUrl?: string; |
| | | } |
| | | |
| | | interface GetParkCustomerBountyGrantOutputPageOutput { |
| | |
| | | payCount?: number; |
| | | /** 最近发放时间 */ |
| | | lastPayTime?: string; |
| | | /** 发放总额 */ |
| | | bountySumAmount?: number; |
| | | /** 奖励金余额 */ |
| | | bountyAmount?: number; |
| | | } |
| | |
| | | interface GetUserBaseEnterpriseInfoOutput { |
| | | /** 奖励金余额 */ |
| | | bountyAmount?: number; |
| | | /** 充值余额 */ |
| | | rechargeAmount?: number; |
| | | enterpriseName?: string; |
| | | societyCreditCode?: string; |
| | | licenseUrl?: string; |
| | |
| | | |
| | | interface IdentityUserUpdateRolesDto { |
| | | roleNames: string[]; |
| | | } |
| | | |
| | | interface ImportBountyApplyDataInput { |
| | | /** 导入地址 */ |
| | | url?: string; |
| | | /** 奖励金申请Id */ |
| | | parkBountyApplyId?: string; |
| | | } |
| | | |
| | | interface ImportBountyApplyDataOutput { |
| | | /** 错误数据列表 */ |
| | | error?: ExportBountyApplyData[]; |
| | | } |
| | | |
| | | interface ImportIdentityCardInput { |
| | |
| | | financeSumAmount?: number; |
| | | /** 平台充值总额 */ |
| | | settleSumAmount?: number; |
| | | /** 发放凭证 */ |
| | | settleFileUrl?: string; |
| | | /** 财政发放凭证 */ |
| | | financeFileUrl?: string; |
| | | } |
| | | |
| | | interface OutcheckParkBountyApplyInput { |
| | |
| | | data?: ParkBountyApplyDetailInfo[]; |
| | | } |
| | | |
| | | interface ParkBountyApplyFinanceFileInput { |
| | | parkBountyApplyId?: string; |
| | | /** 发放凭证 */ |
| | | financeFileUrl?: string; |
| | | /** 发放金额 */ |
| | | financeSumAmount?: number; |
| | | } |
| | | |
| | | interface ParkBountyApplyRechargeFileInput { |
| | | parkBountyApplyDetailId?: string; |
| | | /** 平台充值凭证 */ |
| | |
| | | }, |
| | | { |
| | | id: '10', |
| | | enCode: 'bountyAmount', |
| | | enCode: 'bountySumAmount', |
| | | name: '发放总额', |
| | | width: 150, |
| | | }, |
| | |
| | | columnsRenderProps: { |
| | | lastApplyTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | lastPayTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | bountySumAmount: { type: 'money' }, |
| | | bountyAmount: { type: 'money' }, |
| | | enterpriseType: { type: 'enum', valueEnum: EnterpriseTypeText }, |
| | | }, |
| | |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="开户支行:" prop="bankName"> |
| | | <ProFormText v-model.trim="detail.bankName" /> |
| | | <ProFormItemV2 label="开户支行:" prop="bankBranchName"> |
| | | <ProFormText v-model.trim="detail.bankBranchName" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | |
| | | }, |
| | | { |
| | | id: '2', |
| | | enCode: 'batchNo', |
| | | enCode: 'applySumAmount', |
| | | name: '申报总额', |
| | | }, |
| | | { |
| | | id: '3', |
| | | enCode: 'applySumAmount', |
| | | enCode: 'financeToAmount', |
| | | name: '财政拨付金额', |
| | | }, |
| | | { |
| | | id: '4', |
| | | enCode: 'settleTime', |
| | | enCode: 'financeTime', |
| | | name: '财政拨付日期', |
| | | }, |
| | | { |
| | | id: '5', |
| | | enCode: 'applySumAmount', |
| | | enCode: 'transferToAmount', |
| | | name: '平台充值金额', |
| | | }, |
| | | { |
| | | id: '6', |
| | | enCode: 'incomeTime', |
| | | enCode: 'settleTime', |
| | | name: '平台充值日期', |
| | | }, |
| | | ]; |
| | |
| | | }, |
| | | columnsRenderProps: { |
| | | settleTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | incomeTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | financeTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | applySumAmount: { type: 'money' }, |
| | | incomeStatus: { type: 'enum', valueEnum: IncomeStatusEnumText }, |
| | | financeToAmount: { type: 'money' }, |
| | | transferToAmount: { type: 'money' }, |
| | | }, |
| | | } |
| | | ); |
| | | |
| | | function openMaterialFileDialog(row: API.ParkBountyApplyTransferDetailInfo) { |
| | | function openMaterialFileDialog(row: API.GetParkCustomerBountyGrantOutput) { |
| | | handleMaterialFileAdd({ |
| | | list: FourStreamsMaterialUtils.initApplyTransferMaterialFileList(row), |
| | | }); |
| | |
| | | @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" |
| | |
| | | :show-check-btn="false" |
| | | downloadBtnText="查看" |
| | | title="查看凭证" |
| | | :BusinessTypeEnumText="ApplyTransferFileBusinessTypeEnumText" |
| | | :BusinessTypeEnumText="TransferFileEnumInRewardGrandText" |
| | | /> |
| | | <FinancialDialog v-bind="dialogFinancialProps"></FinancialDialog> |
| | | <PlateformDialog v-bind="dialogPlateformProps"></PlateformDialog> |
| | |
| | | } from '@bole-core/components'; |
| | | import { Message, OrderInputType } from '@bole-core/core'; |
| | | import { format } from '@/utils'; |
| | | import { SettleStatusEnum, SettleStatusEnumText } from '@/constants'; |
| | | 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 { useQueryClient } from '@tanstack/vue-query'; |
| | | import { FourStreamsMaterialUtils } from '@/components/commonView/utils'; |
| | | import { |
| | | ApplyTransferMaterialFileTableItem, |
| | | ApplyTransferFileBusinessTypeEnumText, |
| | | TransferFileEnumInRewardGrandText, |
| | | TransferFileEnumInRewardGrandTableItem, |
| | | } from '@/components/commonView/types'; |
| | | |
| | | defineOptions({ |
| | |
| | | }, |
| | | { |
| | | 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, |
| | | }, |
| | | }, |
| | | { |
| | |
| | | }, |
| | | 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'), |
| | |
| | | defaultExtraParams: { |
| | | batchNo: '', |
| | | settleStatus: '' as any as SettleStatusEnum, |
| | | financeStatus: '' as any as FinanceStatusEnum, |
| | | creationTime: [] as unknown as ModelValueType, |
| | | settleTime: [] as unknown as ModelValueType, |
| | | orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }], |
| | |
| | | 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.ParkBountyApplyTransferDetailInfo) { |
| | | function openMaterialFileDialog(row: API.GetParkBountyApplyListOutput) { |
| | | handleMaterialFileAdd({ |
| | | list: FourStreamsMaterialUtils.initApplyTransferMaterialFileList(row), |
| | | list: FourStreamsMaterialUtils.initApplyRewardGrandFileList(row), |
| | | }); |
| | | } |
| | | |
| | | const { dialogProps: dialogMaterialFileProps, handleAdd: handleMaterialFileAdd } = useFormDialog({ |
| | | defaultFormParams: { |
| | | list: [] as ApplyTransferMaterialFileTableItem[], |
| | | list: [] as TransferFileEnumInRewardGrandTableItem[], |
| | | }, |
| | | }); |
| | | |
| | |
| | | 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> |
| | |
| | | <ProForm :model="innerForm" ref="dialogForm" label-width="120px"> |
| | | <ProFormItemV2 |
| | | label="拨付总额:" |
| | | prop="amount" |
| | | prop="financeSumAmount" |
| | | :check-rules="[{ message: '请输入拨付总额', type: 'number' }]" |
| | | > |
| | | <ProFormInputNumber v-model="innerForm.amount" :controls="false" :min="0" :precision="2" /> |
| | | <ProFormInputNumber |
| | | v-model="innerForm.financeSumAmount" |
| | | :controls="false" |
| | | :min="0" |
| | | :precision="2" |
| | | /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | label="上传拨付凭证:" |
| | | prop="settleFileUrl" |
| | | prop="financeFileUrl" |
| | | :check-rules="[{ message: '请上传发放凭证', type: 'upload' }]" |
| | | > |
| | | <ProFormUpload |
| | | v-model:file-url="innerForm.settleFileUrl" |
| | | v-model:file-url="innerForm.financeFileUrl" |
| | | :limitFileSize="50" |
| | | accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png" |
| | | > |
| | |
| | | modelValue: boolean; |
| | | form?: { |
| | | parkBountyApplyId: string; |
| | | amount: number; |
| | | settleFileUrl: UploadUserFile[]; |
| | | financeSumAmount: number; |
| | | financeFileUrl: UploadUserFile[]; |
| | | }; |
| | | }; |
| | | |
| | |
| | | <ProForm :model="innerForm" ref="dialogForm" label-width="120px"> |
| | | <ProFormItemV2 |
| | | label="充值总额:" |
| | | prop="amount" |
| | | prop="settleSumAmount" |
| | | :check-rules="[{ message: '请输入充值总额', type: 'number' }]" |
| | | > |
| | | <ProFormInputNumber v-model="innerForm.amount" :controls="false" :min="0" :precision="2" /> |
| | | <ProFormInputNumber |
| | | v-model="innerForm.settleSumAmount" |
| | | :controls="false" |
| | | :min="0" |
| | | :precision="2" |
| | | /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | label="上传充值凭证:" |
| | |
| | | modelValue: boolean; |
| | | form?: { |
| | | parkBountyApplyId: string; |
| | | amount: number; |
| | | settleSumAmount: number; |
| | | settleFileUrl: UploadUserFile[]; |
| | | }; |
| | | }; |