New file |
| | |
| | | <template> |
| | | <PortraitTable v-bind="portraitTableProps" :label-width="labelWidth"> </PortraitTable> |
| | | <div class="enclosure-list-title">附件列表</div> |
| | | <ProTableV2 |
| | | :table-data="annexList" |
| | | :columns="CommonAnnexTableColumns" |
| | | :operation-btns="operationListBtns" |
| | | :show-pagination="false" |
| | | :show-no-data="false" |
| | | :auto-height="false" |
| | | :show-table-column-setting="false" |
| | | :table-props="{ maxHeight: '400px' }" |
| | | :column-render-map="columnsRenderProps" |
| | | > |
| | | </ProTableV2> |
| | | </template> |
| | | |
| | | <script setup lang="ts" generic="TAnnexItem"> |
| | | import { downloadFileByUrl } from '@bole-core/core'; |
| | | import { CommonAnnexTableColumns } from '@/constants'; |
| | | import { ProTableV2, ProTableV2Props } from '@bole-core/components'; |
| | | |
| | | defineOptions({ |
| | | name: 'PortraitTableWithAttachment', |
| | | }); |
| | | |
| | | type Props = { |
| | | annexList: TAnnexItem[]; |
| | | customDownLoad?: (row: TAnnexItem) => Promise<any>; |
| | | labelWidth?: string; |
| | | portraitTableProps: any; |
| | | columnsRenderProps?: ProTableV2Props['columnRenderMap']; |
| | | downloadFileKey?: keyof TAnnexItem; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), { |
| | | labelWidth: '180px', |
| | | columnsRenderProps: () => ({}), |
| | | downloadFileKey: 'url' as any, |
| | | }); |
| | | |
| | | const operationListBtns = [ |
| | | { |
| | | data: { |
| | | enCode: 'downloadBtn', |
| | | name: '下载', |
| | | }, |
| | | emits: { |
| | | onClick: (row) => handleDownload(row), |
| | | }, |
| | | }, |
| | | ]; |
| | | |
| | | function handleDownload(row: TAnnexItem) { |
| | | if (props.customDownLoad) { |
| | | props.customDownLoad(row); |
| | | } else { |
| | | downloadFileByUrl(row[props.downloadFileKey] as any); |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @use '@/style/common.scss' as *; |
| | | |
| | | .enclosure-list-title { |
| | | padding: 16px 0; |
| | | font-size: 14px; |
| | | color: getCssVar('text-color', 'primary'); |
| | | line-height: 19px; |
| | | } |
| | | </style> |
| | |
| | | applyMonth: string; |
| | | applySumAmount: number; |
| | | /** 奖励金分配表 */ |
| | | bountyAssignFileUlr: UploadUserFile[]; |
| | | // bountyAssignFileUlr: UploadUserFile[]; |
| | | /** 奖励金汇总表 */ |
| | | bountyCollectFileUrl: UploadUserFile[]; |
| | | // bountyCollectFileUrl: UploadUserFile[]; |
| | | parkCollectFileList: CustomerApplyFileTypeListItem[]; |
| | | /**汇算材料 */ |
| | | calculationFileList: CustomerApplyFileTypeListItem[]; |
| | | /** 是否支持平台充值 */ |
| | | suportPlatRecharge?: boolean; |
| | | }; |
| | |
| | | <template> |
| | | <!-- <ProFormCol> |
| | | <ProFormColItem :span="12"> --> |
| | | <ProFormItemV2 |
| | | :label="`${item.fileTypeName}:`" |
| | | :prop="`parkCollectFileList.${index}.listFiles`" |
| | | :check-rules="[{ message: `请上传${item.fileTypeName}`, type: 'upload' }]" |
| | | :label-width="160" |
| | | :style="{ marginBottom: index === form.parkCollectFileList.length - 1 ? 0 : '22px' }" |
| | | v-for="(item, index) in form.parkCollectFileList" |
| | |
| | | accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png" |
| | | ></ProFormUpload> |
| | | </ProFormItemV2> |
| | | <!-- </ProFormColItem> |
| | | </ProFormCol> --> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { |
| | | ProFormCol, |
| | | ProFormColItem, |
| | | ProFormItemV2, |
| | | ProFormUpload, |
| | | UploadUserFile, |
| | | } from '@bole-core/components'; |
| | | import { ProFormItemV2, ProFormUpload } from '@bole-core/components'; |
| | | import { CustomerApplyFileTypeListItem } from './utils'; |
| | | |
| | | defineOptions({ |
| | |
| | | <template> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="本次申报奖励金总额:" prop="applySumAmount"> |
| | | <ProFormInputNumber v-model="form.applySumAmount" formatValue="money" unit="元" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 |
| | | label="奖励金分配明细表:" |
| | | prop="bountyAssignFileUlr" |
| | | style="margin-bottom: 22px" |
| | | > |
| | | <ProFormUpload |
| | | v-model:file-url="form.bountyAssignFileUlr" |
| | | :limitShowViewMoreBtnCount="4" |
| | | ></ProFormUpload> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="奖励金汇总表:" prop="bountyCollectFileUrl"> |
| | | <ProFormUpload |
| | | v-model:file-url="form.bountyCollectFileUrl" |
| | | :limitShowViewMoreBtnCount="4" |
| | | ></ProFormUpload> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormItemV2 label="本次申报奖励金总额:" prop="applySumAmount"> |
| | | <ProFormInputNumber v-model="form.applySumAmount" formatValue="money" unit="元" /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | :label="`${item.fileTypeName}:`" |
| | | :prop="`calculationFileList.${index}.listFiles`" |
| | | :label-width="160" |
| | | :style="{ marginBottom: index === form.calculationFileList.length - 1 ? 0 : '22px' }" |
| | | v-for="(item, index) in form.calculationFileList" |
| | | :key="item.fileSearchTypeId" |
| | | > |
| | | <ProFormUpload |
| | | v-model:file-url="item.listFiles" |
| | | :limit="1" |
| | | :limitFileSize="50" |
| | | :showTip="false" |
| | | :limitShowViewMoreBtnCount="4" |
| | | accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png" |
| | | ></ProFormUpload> |
| | | </ProFormItemV2> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { |
| | | ProFormCol, |
| | | ProFormColItem, |
| | | ProFormItemV2, |
| | | ProFormUpload, |
| | | UploadUserFile, |
| | | ProFormInputNumber, |
| | | } from '@bole-core/components'; |
| | | import { CustomerApplyFileTypeListItem } from './utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'SettlementMaterialInfoView', |
| | |
| | | type Props = { |
| | | form: { |
| | | applySumAmount: number; |
| | | bountyAssignFileUlr: UploadUserFile[]; |
| | | bountyCollectFileUrl: UploadUserFile[]; |
| | | calculationFileList: CustomerApplyFileTypeListItem[]; |
| | | }; |
| | | }; |
| | | |
New file |
| | |
| | | import { defineColumns } from '@bole-core/components'; |
| | | |
| | | export const CommonAnnexTableColumns = defineColumns([ |
| | | { |
| | | id: '1', |
| | | enCode: 'name', |
| | | name: '文件名', |
| | | }, |
| | | ]); |
| | |
| | | export * from './enum'; |
| | | export * from './common'; |
| | | export * from './oss'; |
| | | export * from './module'; |
| | | export * from './editor'; |
| | |
| | | */ |
| | | HasSettle = 2, |
| | | /** |
| | | * 已上传凭证 |
| | | */ |
| | | HasBill = 3, |
| | | /** |
| | | * 无需充值 |
| | | */ |
| | | NoNeed = -1, |
| | |
| | | [SettleStatusEnum.WaitForSettle]: '待充值', |
| | | [SettleStatusEnum.HasSettle]: '已充值', |
| | | [SettleStatusEnum.NoNeed]: '无需充值', |
| | | }; |
| | | export const SettleStatusEnumTextV2Query = { |
| | | [SettleStatusEnum.WaitForSettle]: '待登记', |
| | | [SettleStatusEnum.HasSettle]: '已登记', |
| | | }; |
| | | |
| | | export const SettleStatusEnumTextV2 = { |
| | | [SettleStatusEnum.WaitForSettle]: '待登记', |
| | | [SettleStatusEnum.HasSettle]: '已登记', |
| | | [SettleStatusEnum.HasBill]: '已登记', |
| | | [SettleStatusEnum.NoNeed]: '无需登记', |
| | | }; |
| | | |
| | | export enum FinanceStatusEnum { |
| | |
| | | * 已拨付 |
| | | */ |
| | | HasIncome = 2, |
| | | /** |
| | | * 已上传凭证 |
| | | */ |
| | | HasBill = 3, |
| | | } |
| | | |
| | | export const FinanceStatusEnumText = { |
| | | [FinanceStatusEnum.WaitForIncome]: '待拨付', |
| | | [FinanceStatusEnum.HasIncome]: '已拨付', |
| | | }; |
| | | |
| | | export const FinanceStatusEnumTextV2 = { |
| | | [FinanceStatusEnum.WaitForIncome]: '待登记', |
| | | [FinanceStatusEnum.HasIncome]: '已登记', |
| | | [FinanceStatusEnum.HasBill]: '已登记', |
| | | }; |
| | | |
| | | export const FinanceStatusEnumTextV2Query = { |
| | | [FinanceStatusEnum.WaitForIncome]: '待登记', |
| | | [FinanceStatusEnum.HasIncome]: '已登记', |
| | | }; |
| | | |
| | | export enum IncomeStatusEnum { |
| | |
| | | [EnterpriseBountyPayTypeEnum.PayOut]: '出金', |
| | | [EnterpriseBountyPayTypeEnum.PayIn]: '入金', |
| | | }; |
| | | |
| | | export enum IncomeTypeEnum { |
| | | /**财政拨付 */ |
| | | Fiscal = 10, |
| | | /**平台充值 */ |
| | | Platform = 20, |
| | | } |
| | | |
| | | export const IncomeTypeEnumText = { |
| | | [IncomeTypeEnum.Fiscal]: '财政拨付', |
| | | [IncomeTypeEnum.Platform]: '平台充值', |
| | | }; |
| | | |
| | | export enum EnterpriseRechargeStatusEnum { |
| | | /**待审核 */ |
| | | WaitCheck = 10, |
| | | /**审核通过 */ |
| | | CheckPassed = 20, |
| | | /**驳回 */ |
| | | CheckReject = 30, |
| | | } |
| | | |
| | | export const EnterpriseRechargeStatusEnumText = { |
| | | [EnterpriseRechargeStatusEnum.WaitCheck]: '待审核', |
| | | [EnterpriseRechargeStatusEnum.CheckPassed]: '审核通过', |
| | | [EnterpriseRechargeStatusEnum.CheckReject]: '驳回', |
| | | }; |
| | | |
| | | export const EnterpriseRechargeStatusEnumTextForAdudit = { |
| | | [EnterpriseRechargeStatusEnum.CheckPassed]: '通过', |
| | | [EnterpriseRechargeStatusEnum.CheckReject]: '驳回', |
| | | }; |
| | | |
| | | export enum BillStatusEnum { |
| | | /**未上传 */ |
| | | NotUpload = 10, |
| | | /**待完善 */ |
| | | NeedUpload = 20, |
| | | /**已上传 */ |
| | | HasUpload = 30, |
| | | } |
| | | |
| | | export const BillStatusEnumText = { |
| | | [BillStatusEnum.NotUpload]: '未上传', |
| | | [BillStatusEnum.NeedUpload]: '待完善', |
| | | [BillStatusEnum.HasUpload]: '已上传', |
| | | }; |
| | |
| | | export * from './useAccess'; |
| | | export * from './useRouteView'; |
| | | // export * from './useArea'; |
| | | export * from './portraitTable'; |
| | | export * from './useEvent'; |
| | | export * from './useUser'; |
| | | export * from './help'; |
New file |
| | |
| | | import { ColumnsRenderProps } from '@bole-core/components'; |
| | | import { MaybeRef } from 'vue'; |
| | | |
| | | export type UsePortraitTableColumnsItem<TData extends object = object> = ColumnsRenderProps & { |
| | | label?: string; |
| | | key?: keyof TData; |
| | | }; |
| | | |
| | | export type UsePortraitTableOptions<TData extends object> = { |
| | | data: Ref<TData>; |
| | | columns?: UsePortraitTableColumnsItem<TData>[]; |
| | | }; |
| | | |
| | | export function usePortraitTable<TData extends object>(options: UsePortraitTableOptions<TData>) { |
| | | const portraitTableProps = computed( |
| | | () => |
| | | ({ |
| | | data: options.data.value, |
| | | columns: options.columns ?? [], |
| | | } as any) |
| | | ); |
| | | |
| | | return { |
| | | portraitTableProps, |
| | | }; |
| | | } |
| | | |
| | | type UsePortraitTableWithAttachmentOptions< |
| | | TData extends object, |
| | | TAnnexItem extends object = object |
| | | > = UsePortraitTableOptions<TData> & { |
| | | annexList: Ref<TAnnexItem[]>; |
| | | columnsRenderProps?: { [key in keyof TAnnexItem]?: ColumnsRenderProps }; |
| | | }; |
| | | |
| | | export function usePortraitTableWithAttachment< |
| | | TData extends object, |
| | | TAnnexItem extends object = object |
| | | >(options: UsePortraitTableWithAttachmentOptions<TData, TAnnexItem>) { |
| | | const { annexList, columnsRenderProps } = options; |
| | | const { portraitTableProps } = usePortraitTable(options); |
| | | |
| | | const portraitTableWithAttachmentProps = computed(() => ({ |
| | | annexList: annexList.value, |
| | | portraitTableProps: portraitTableProps.value, |
| | | columnsRenderProps, |
| | | })); |
| | | |
| | | return { portraitTableWithAttachmentProps }; |
| | | } |
| | |
| | | component: () => import('@/views/Reward/RewardGrant.vue'), |
| | | meta: { |
| | | rank: 10031, |
| | | title: '奖励发放', |
| | | title: '奖励发放登记', |
| | | // rootMenu: true, |
| | | icon: 'home', |
| | | }, |
| | |
| | | rootMenu: false, |
| | | }, |
| | | }, |
| | | { |
| | | path: '/WithdrawalApproval', |
| | | name: 'WithdrawalApproval', |
| | | hidden: false, |
| | | alwaysShow: true, |
| | | component: () => import('@/views/Reward/WithdrawalApproval.vue'), |
| | | meta: { |
| | | rank: 10033, |
| | | title: '提现审批', |
| | | // rootMenu: true, |
| | | icon: 'home', |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | // { |
| | |
| | | // @ts-ignore |
| | | import { request } from '@/utils/request'; |
| | | |
| | | /** 批量引用企业资料 GET /api/EnterpriseApplyFile/BatchQuoteEnterpriseApplyFile */ |
| | | export async function batchQuoteEnterpriseApplyFile( |
| | | // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) |
| | | params: API.APIbatchQuoteEnterpriseApplyFileParams, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<number>('/api/EnterpriseApplyFile/BatchQuoteEnterpriseApplyFile', { |
| | | method: 'GET', |
| | | params: { |
| | | ...params, |
| | | }, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 确认提交材料上传 POST /api/EnterpriseApplyFile/CustomerUploadMonthApplyFile */ |
| | | export async function customerUploadMonthApplyFile( |
| | | body: API.CustomerUploadMonthApplyFileInput, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 提现审核 POST /api/ParkBountyApply/CheckEnterpriseApplyDrawWith */ |
| | | export async function checkEnterpriseApplyDrawWith( |
| | | body: API.CheckEnterpriseApplyDrawWithInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<number>('/api/ParkBountyApply/CheckEnterpriseApplyDrawWith', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 预充值审核 POST /api/ParkBountyApply/CheckUserEnterpriseRecharge */ |
| | | export async function checkUserEnterpriseRecharge( |
| | | body: API.CheckUserEnterpriseRechargeInput, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 客户端-申请提现 POST /api/ParkBountyApply/EnterpriseApplyDrawWith */ |
| | | export async function enterpriseApplyDrawWith( |
| | | body: API.EnterpriseApplyDrawWithInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<number>('/api/ParkBountyApply/EnterpriseApplyDrawWith', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 获取可选择公司和已剔除公司 POST /api/ParkBountyApply/GetCompanyNameList */ |
| | | export async function getCompanyNameList( |
| | | body: API.GetCompanyNameListInput, |
| | |
| | | ) { |
| | | return request<API.GetParkBountyApplyListOutputPageOutput>( |
| | | '/api/ParkBountyApply/GetCustmoerParkBountyApplyList', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** 获取提现申请详情 GET /api/ParkBountyApply/GetEnterpriseDrawWithDetail */ |
| | | export async function getEnterpriseDrawWithDetail( |
| | | // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) |
| | | params: API.APIgetEnterpriseDrawWithDetailParams, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetEnterpriseDrawWithDetailOutput>( |
| | | '/api/ParkBountyApply/GetEnterpriseDrawWithDetail', |
| | | { |
| | | method: 'GET', |
| | | params: { |
| | | ...params, |
| | | }, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** 获取提现申请记录列表 POST /api/ParkBountyApply/GetEnterpriseDrawWithList */ |
| | | export async function getEnterpriseDrawWithList( |
| | | body: API.GetEnterpriseDrawWithListInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetEnterpriseDrawWithListOutputPageOutput>( |
| | | '/api/ParkBountyApply/GetEnterpriseDrawWithList', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | |
| | | ) { |
| | | return request<API.GetEnterprisePreChargeCheckListOutputPageOutput>( |
| | | '/api/ParkBountyApply/GetEnterprisePreChargeCheckList', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** 获取充值记录列表 POST /api/ParkBountyApply/GetEnterprisePrechargeList */ |
| | | export async function getEnterprisePrechargeList(body: API.PageInput, options?: API.RequestConfig) { |
| | | return request<API.GetEnterprisePrechargeListOutputPageOutput>( |
| | | '/api/ParkBountyApply/GetEnterprisePrechargeList', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | |
| | | ); |
| | | } |
| | | |
| | | /** 运营端一园区客户管理详情一奖励金发放记录 POST /api/ParkBountyApply/GetParkCustomerBountyGrantList */ |
| | | export async function getParkCustomerBountyGrantList( |
| | | /** 拨付记录 POST /api/ParkBountyApply/GetParkCustomerBountyFinanceList */ |
| | | export async function getParkCustomerBountyFinanceList( |
| | | body: API.QueryParkCustomerBountyApplyInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetParkCustomerBountyGrantOutputPageOutput>( |
| | | '/api/ParkBountyApply/GetParkCustomerBountyGrantList', |
| | | return request<API.GetParkCustomerBountyFinanceOutputPageOutput>( |
| | | '/api/ParkBountyApply/GetParkCustomerBountyFinanceList', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** 运营端一园区客户管理详情一奖励金发放记录 POST /api/ParkBountyApply/GetParkCustomerBountySettleList */ |
| | | export async function getParkCustomerBountySettleList( |
| | | body: API.QueryParkCustomerBountyApplyInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetParkCustomerBountySettleOutputPageOutput>( |
| | | '/api/ParkBountyApply/GetParkCustomerBountySettleList', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 上传财政拨付登记金额 POST /api/ParkBountyApply/ParkBountyApplyFinanceBillAmount */ |
| | | export async function parkBountyApplyFinanceBillAmount( |
| | | body: API.ParkBountyApplyFinanceFileInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<number>('/api/ParkBountyApply/ParkBountyApplyFinanceBillAmount', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 财政入账上传凭证 POST /api/ParkBountyApply/ParkBountyApplyFinanceFile */ |
| | | export async function parkBountyApplyFinanceFile( |
| | | body: API.ParkBountyApplyRechargeFileInput, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 上传充值登记金额 POST /api/ParkBountyApply/ParkBountyApplySettleAmount */ |
| | | export async function parkBountyApplySettleAmount( |
| | | body: API.ParkBountyApplySettleInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<number>('/api/ParkBountyApply/ParkBountyApplySettleAmount', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 运营端—奖励金-出账 POST /api/ParkBountyApply/ParkBountyApplyTrade */ |
| | | export async function parkBountyApplyTrade( |
| | | body: API.CreateParkBountyTradeInput, |
| | |
| | | suportEnterpriseUpload?: boolean; |
| | | /** 是否支持平台充值 */ |
| | | suportPlatRecharge?: boolean; |
| | | /** 是否支持用户提现 */ |
| | | suportWithDraw?: boolean; |
| | | /** 文件 */ |
| | | industrialParkApplyFileFile?: IndustrialParkApplyFileFile[]; |
| | | } |
| | |
| | | productId?: string; |
| | | } |
| | | |
| | | interface APIbatchQuoteEnterpriseApplyFileParams { |
| | | parkBountyApplyId?: string; |
| | | } |
| | | |
| | | interface APIcalculationWalletBatchImportTempPayFeeParams { |
| | | walletAccountType?: WalletAccountTypeEnum; |
| | | } |
| | |
| | | |
| | | interface APIgetElecBillInfoParams { |
| | | transactionDetailId?: string; |
| | | } |
| | | |
| | | interface APIgetEnterpriseDrawWithDetailParams { |
| | | drawWithId?: string; |
| | | } |
| | | |
| | | interface APIgetEnterpriseLastUploadEnterPactFileNewParams { |
| | |
| | | |
| | | type BestSignUserSignStatusEunm = 1 | 5 | 10 | 20 | 30 | 40 | 50 | 90; |
| | | |
| | | type BillStatusEnum = 10 | 20 | 30; |
| | | |
| | | interface BindUserEmailInput { |
| | | /** 邮箱 */ |
| | | bindEmailAddress: string; |
| | |
| | | circleFriendReplyId?: string; |
| | | /** 审核状态 通过:10 驳回:-10 */ |
| | | status?: number; |
| | | } |
| | | |
| | | interface CheckEnterpriseApplyDrawWithInput { |
| | | applyDrawWithId?: string; |
| | | checkStatus?: EnterpriseRechargeStatusEnum; |
| | | /** 提现凭证 */ |
| | | checkFileUrl?: string; |
| | | checkRemark?: string; |
| | | } |
| | | |
| | | interface CheckInsureCityIsAllowInput { |
| | |
| | | freeCount?: number; |
| | | } |
| | | |
| | | interface EnterpriseApplyDrawWithInput { |
| | | amount?: number; |
| | | invoiceUrl?: string; |
| | | } |
| | | |
| | | interface EnterpriseBatchRefundInput { |
| | | guid?: string; |
| | | listOrderNo?: number[]; |
| | |
| | | type EnterpriseMonthApplyStatusEnum = 10 | 20; |
| | | |
| | | type EnterpriseMonthUploadStatusEnum = 10 | 20 | 30; |
| | | |
| | | type EnterprisePrechargeInComeStatusEnum = 10 | 20; |
| | | |
| | | type EnterpriseRechargeStatusEnum = 10 | 20 | 30; |
| | | |
| | |
| | | fileId?: string; |
| | | } |
| | | |
| | | type FinanceStatusEnum = 1 | 2; |
| | | type FinanceStatusEnum = 1 | 2 | 3; |
| | | |
| | | type FinanceTypeEnum = 10 | 20; |
| | | |
| | |
| | | data?: GetEnterpriseCredentialDataResponse; |
| | | } |
| | | |
| | | interface GetEnterpriseDrawWithDetailOutput { |
| | | id?: string; |
| | | enterpriseId?: string; |
| | | enterpriseName?: string; |
| | | societyCreditCode?: string; |
| | | creationTime?: string; |
| | | accountName?: string; |
| | | bankNumber?: string; |
| | | bankName?: string; |
| | | bankResumeName?: string; |
| | | amount?: number; |
| | | remainAmount?: number; |
| | | invoiceUrl?: string; |
| | | checkStatus?: EnterpriseRechargeStatusEnum; |
| | | checkTime?: string; |
| | | checkUserId?: string; |
| | | checkRemark?: string; |
| | | checkFileUrl?: string; |
| | | } |
| | | |
| | | interface GetEnterpriseDrawWithListInput { |
| | | pageModel?: Pagination; |
| | | keyWord?: string; |
| | | beginDateTime?: string; |
| | | endDateTime?: string; |
| | | checkStatus?: EnterpriseRechargeStatusEnum; |
| | | } |
| | | |
| | | interface GetEnterpriseDrawWithListOutput { |
| | | drawWithId?: string; |
| | | enterpriseId?: string; |
| | | enterpriseName?: string; |
| | | societyCreditCode?: string; |
| | | creationTime?: string; |
| | | enterpriseType?: string; |
| | | parkName?: string; |
| | | parkType?: string; |
| | | amount?: number; |
| | | remainAmount?: number; |
| | | checkStatus?: EnterpriseRechargeStatusEnum; |
| | | checkTime?: string; |
| | | checkRemark?: string; |
| | | checkFileUrl?: string; |
| | | } |
| | | |
| | | interface GetEnterpriseDrawWithListOutputPageOutput { |
| | | pageModel?: Pagination; |
| | | objectData?: any; |
| | | data?: GetEnterpriseDrawWithListOutput[]; |
| | | } |
| | | |
| | | interface GetEnterpriseMonthApplyFileOutput { |
| | | id?: string; |
| | | enterpriseId?: string; |
| | |
| | | pageModel?: Pagination; |
| | | objectData?: any; |
| | | data?: GetEnterprisePreChargeCheckListOutput[]; |
| | | } |
| | | |
| | | interface GetEnterprisePrechargeListOutput { |
| | | id?: string; |
| | | /** 充值金额 */ |
| | | prechargeAmount?: number; |
| | | /** 充值凭证 */ |
| | | rechargeVoucherFileUrl?: string; |
| | | /** 审核备注 */ |
| | | checkRemark?: string; |
| | | checkStatus?: EnterpriseRechargeStatusEnum; |
| | | inComeStatus?: EnterprisePrechargeInComeStatusEnum; |
| | | /** 提交日期 */ |
| | | creationTime?: string; |
| | | } |
| | | |
| | | interface GetEnterprisePrechargeListOutputPageOutput { |
| | | pageModel?: Pagination; |
| | | objectData?: any; |
| | | data?: GetEnterprisePrechargeListOutput[]; |
| | | } |
| | | |
| | | interface GetEnterpriseRechargeDetail { |
| | |
| | | financeTimeEnd?: string; |
| | | /** 入账起始日期 */ |
| | | incomeTimeBegin?: string; |
| | | /** 拨付入账结束日期 */ |
| | | financeIncomeTimeEnd?: string; |
| | | /** 拨付入账起始日期 */ |
| | | financeIncomeTimeBegin?: string; |
| | | /** 入账结束日期 */ |
| | | incomeTimeEnd?: string; |
| | | /** 外部审核起始日期 */ |
| | |
| | | inCheckStatus?: BountyCheckStatusEnum; |
| | | /** 财政入账时间 */ |
| | | financeIncomeTime?: string; |
| | | billStatus?: BillStatusEnum; |
| | | financeIncomeStatus?: IncomeStatusEnum; |
| | | /** 内部审核日期 */ |
| | | inCheckTime?: string; |
| | |
| | | suportEnterpriseUpload?: boolean; |
| | | /** 是否支持平台充值 */ |
| | | suportPlatRecharge?: boolean; |
| | | /** 是否支持用户提现 */ |
| | | suportWithDraw?: boolean; |
| | | } |
| | | |
| | | interface GetParkBountyApplyListOutputPageOutput { |
| | |
| | | /** 凭证 */ |
| | | payFileUrl?: string; |
| | | payFileUrls?: string[]; |
| | | financeType?: FinanceTypeEnum; |
| | | } |
| | | |
| | | interface GetParkCustomerBountyConsumptionOutputPageOutput { |
| | |
| | | data?: GetParkCustomerBountyConsumptionOutput[]; |
| | | } |
| | | |
| | | interface GetParkCustomerBountyGrantOutput { |
| | | interface GetParkCustomerBountyFinanceOutput { |
| | | id?: string; |
| | | /** 申请批次号 */ |
| | | batchNo?: string; |
| | | /** 申报月份 */ |
| | | applyMonth?: string; |
| | | /** 申报总额 */ |
| | | applySumAmount?: number; |
| | | /** 财政拨付金额 */ |
| | | financeToAmount?: number; |
| | | /** 财政拨付入账时间 */ |
| | | financeToTime?: string; |
| | | /** 财政拨付发放日期 */ |
| | | financeTime?: string; |
| | | financeToStatus?: FinanceStatusEnum; |
| | | /** 拨付入账凭证 */ |
| | | financeToFileUrl?: string; |
| | | inCheckStatus?: BountyCheckStatusEnum; |
| | | outCheckStatus?: BountyCheckStatusEnum; |
| | | } |
| | | |
| | | interface GetParkCustomerBountyFinanceOutputPageOutput { |
| | | pageModel?: Pagination; |
| | | objectData?: any; |
| | | data?: GetParkCustomerBountyFinanceOutput[]; |
| | | } |
| | | |
| | | interface GetParkCustomerBountySettleOutput { |
| | | id?: string; |
| | | /** 申请批次号 */ |
| | | batchNo?: string; |
| | |
| | | transferToFileUrl?: string; |
| | | /** 财政拨付金额 */ |
| | | financeToAmount?: number; |
| | | /** 财政拨付入账时间 */ |
| | | financeToTime?: string; |
| | | /** 财政拨付发放日期 */ |
| | | financeTime?: string; |
| | | /** 平台充值发放日期 */ |
| | | settleTime?: string; |
| | | financeToStatus?: FinanceStatusEnum; |
| | | /** 拨付入账凭证 */ |
| | | financeToFileUrl?: string; |
| | | inCheckStatus?: BountyCheckStatusEnum; |
| | | outCheckStatus?: BountyCheckStatusEnum; |
| | | } |
| | | |
| | | interface GetParkCustomerBountyGrantOutputPageOutput { |
| | | interface GetParkCustomerBountySettleOutputPageOutput { |
| | | pageModel?: Pagination; |
| | | objectData?: any; |
| | | data?: GetParkCustomerBountyGrantOutput[]; |
| | | data?: GetParkCustomerBountySettleOutput[]; |
| | | } |
| | | |
| | | interface GetParkCustomerManageDetailOutput { |
| | |
| | | /** 最近申报 */ |
| | | lastApplyTime?: string; |
| | | /** 发放次数 */ |
| | | payCount?: number; |
| | | financeCount?: number; |
| | | /** 最近发放时间 */ |
| | | lastPayTime?: string; |
| | | lastFinanceTime?: string; |
| | | /** 平台充值次数 */ |
| | | settleCount?: number; |
| | | /** 最近充值日期 */ |
| | | lastSettleTime?: string; |
| | | /** 发放总额 */ |
| | | bountySumAmount?: number; |
| | | settleSumAmount?: number; |
| | | /** 充值总额 */ |
| | | financeSumAmount?: number; |
| | | /** 奖励金余额 */ |
| | | bountyAmount?: number; |
| | | } |
| | |
| | | bountyAmount?: number; |
| | | /** 充值余额 */ |
| | | rechargeAmount?: number; |
| | | /** 财政拨付余额 */ |
| | | financeAmount?: number; |
| | | enterpriseName?: string; |
| | | societyCreditCode?: string; |
| | | licenseUrl?: string; |
| | |
| | | suportEnterpriseUpload?: boolean; |
| | | /** 是否支持平台充值 */ |
| | | suportPlatRecharge?: boolean; |
| | | /** 是否支持用户提现 */ |
| | | suportWithDraw?: boolean; |
| | | /** 注册地址 */ |
| | | registerAddress?: string; |
| | | /** 备注 */ |
| | |
| | | parkTypeId?: string; |
| | | /** 园区类型名称 */ |
| | | parkTypeName?: string; |
| | | /** 是否已经启用奖励金申报 */ |
| | | rewardEnable?: boolean; |
| | | /** 是否支持企业自主上传 */ |
| | | suportEnterpriseUpload?: boolean; |
| | | /** 是否支持平台充值 */ |
| | | suportPlatRecharge?: boolean; |
| | | } |
| | | |
| | | interface IndustrialParkFileTypeOutput { |
| | |
| | | suportEnterpriseUpload?: boolean; |
| | | /** 是否支持平台充值 */ |
| | | suportPlatRecharge?: boolean; |
| | | /** 是否支持用户提现 */ |
| | | suportWithDraw?: boolean; |
| | | } |
| | | |
| | | interface IndustrialParkListOutputPageOutput { |
| | |
| | | suportEnterpriseUpload?: boolean; |
| | | /** 是否支持平台充值 */ |
| | | suportPlatRecharge?: boolean; |
| | | /** 是否支持用户提现 */ |
| | | suportWithDraw?: boolean; |
| | | listFiles?: CustomerUploadMonthApplyFileTypeDto[]; |
| | | collectCountListFiles?: CustomerUploadMonthApplyFileTypeDto[]; |
| | | } |
| | | |
| | | interface OutcheckParkBountyApplyInput { |
| | |
| | | /** 财政发放金额 */ |
| | | financeSumAmount?: number; |
| | | listFiles?: CustomerUploadMonthApplyFileTypeDto[]; |
| | | collectCountListFiles?: CustomerUploadMonthApplyFileTypeDto[]; |
| | | } |
| | | |
| | | interface ParkBountyApplyBatchFinanceInput { |
| | |
| | | bountyCollectFileUrl?: string; |
| | | /** 申报总额 */ |
| | | applySumAmount?: number; |
| | | listFiles?: CustomerUploadMonthApplyFileTypeDto[]; |
| | | } |
| | | |
| | | interface SaveParkBountyApplyGatherFileInput { |
| | |
| | | type?: number; |
| | | } |
| | | |
| | | type SettleStatusEnum = 1 | 2 | -1; |
| | | type SettleStatusEnum = 1 | 2 | 3 | -1; |
| | | |
| | | interface SetUserCertificationAuditStatusInput { |
| | | /** 审核Id */ |
| | |
| | | suportEnterpriseUpload?: boolean; |
| | | /** 是否支持平台充值 */ |
| | | suportPlatRecharge?: boolean; |
| | | /** 是否支持用户提现 */ |
| | | suportWithDraw?: boolean; |
| | | /** 文件 */ |
| | | industrialParkApplyFileFile?: IndustrialParkApplyFileFile[]; |
| | | id?: string; |
| | |
| | | signatureImageStatus?: number; |
| | | certificationChannel?: UserCertificationChannelEnum; |
| | | industrialParkId?: string; |
| | | industrialParkName?: string; |
| | | suportEnterpriseUpload?: boolean; |
| | | suportPlatRecharge?: boolean; |
| | | rewardEnable?: boolean; |
| | | suportWithDraw?: boolean; |
| | | isHasBountyApply?: boolean; |
| | | } |
| | | |
| | | interface UserMessageInfo { |
| | |
| | | @change="getList()" |
| | | ></FieldDatePicker> |
| | | </QueryFilterItem> |
| | | <QueryFilterItem tip-content="最近发放日期"> |
| | | <QueryFilterItem tip-content="最近拨付日期"> |
| | | <FieldDatePicker |
| | | v-model="extraParamState.lastPayTime" |
| | | type="daterange" |
| | | range-separator="~" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | clearable |
| | | @change="getList()" |
| | | ></FieldDatePicker> |
| | | </QueryFilterItem> |
| | | <QueryFilterItem tip-content="最近充值日期"> |
| | | <FieldDatePicker |
| | | v-model="extraParamState.lastPayTime" |
| | | type="daterange" |
| | |
| | | }, |
| | | { |
| | | id: '8', |
| | | enCode: 'payCount', |
| | | name: '发放次数', |
| | | enCode: 'financeCount', |
| | | name: '财政拨付次数', |
| | | width: 150, |
| | | }, |
| | | { |
| | | id: '9', |
| | | enCode: 'lastPayTime', |
| | | name: '最近发放日期', |
| | | enCode: 'lastFinanceTime', |
| | | name: '最近拨付日期', |
| | | width: 180, |
| | | }, |
| | | { |
| | | id: '10', |
| | | enCode: 'bountySumAmount', |
| | | name: '发放总额', |
| | | enCode: 'financeSumAmount', |
| | | name: '拨付总额', |
| | | width: 150, |
| | | }, |
| | | { |
| | | id: '11', |
| | | enCode: 'settleCount', |
| | | name: '平台充值次数', |
| | | width: 150, |
| | | }, |
| | | { |
| | | id: '12', |
| | | enCode: 'lastSettleTime', |
| | | name: '最近充值日期', |
| | | width: 180, |
| | | }, |
| | | { |
| | | id: '13', |
| | | enCode: 'settleSumAmount', |
| | | name: '充值总额', |
| | | width: 150, |
| | | }, |
| | | { |
| | | id: '14', |
| | | enCode: 'bountyAmount', |
| | | 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' }, |
| | | lastFinanceTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | financeSumAmount: { type: 'money' }, |
| | | lastSettleTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | settleSumAmount: { type: 'money' }, |
| | | bountyAmount: { type: 'money' }, |
| | | enterpriseType: { type: 'enum', valueEnum: EnterpriseTypeText }, |
| | | }, |
| | |
| | | <ProTabPane lazy label="消费记录" name="rewardConsumeRecord"> |
| | | <RewardConsumeRecordView></RewardConsumeRecordView> |
| | | </ProTabPane> |
| | | <ProTabPane lazy label="提现记录" name="withdrawalRecord"> |
| | | <WithdrawalRecordView></WithdrawalRecordView> |
| | | </ProTabPane> |
| | | </ProTabs> |
| | | </AppContainer> |
| | | </LoadingLayout> |
| | |
| | | import EnterpriseDeclareRecordView from './components/EnterpriseDeclareRecordView.vue'; |
| | | import RewardGrantRecordView from './components/RewardGrantRecordView.vue'; |
| | | import RewardConsumeRecordView from './components/RewardConsumeRecordView.vue'; |
| | | import WithdrawalRecordView from './components/WithdrawalRecordView.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'EnterpriseInfoDetail', |
New file |
| | |
| | | <template> |
| | | <LoadingLayout :loading="state.loading"> |
| | | <AppContainer> |
| | | <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> |
| | | <template #operationBtn-checkBtn="{ data, row }"> |
| | | <PreviewBtnV2 |
| | | class="pro-table-operation-btn" |
| | | :url="convertApi2FormUrlBySeparator(row.checkFileUrl ?? '')" |
| | | preview-btn-text="查看凭证" |
| | | /> |
| | | </template> |
| | | </ProTableV2> |
| | | </AppContainer> |
| | | </LoadingLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { |
| | | AppContainer, |
| | | useTable, |
| | | ProTableV2, |
| | | defineOperationBtns, |
| | | PreviewBtnV2, |
| | | } from '@bole-core/components'; |
| | | import { convertApi2FormUrlBySeparator } from '@/utils'; |
| | | import { OrderInputType } from '@bole-core/core'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import { EnterpriseRechargeStatusEnum } from '@/constants'; |
| | | |
| | | defineOptions({ |
| | | name: 'WithdrawalRecordView', |
| | | }); |
| | | |
| | | const column: API.CustomModuleColumnDto[] = [ |
| | | { |
| | | id: '1', |
| | | enCode: 'creationTime', |
| | | name: '申请提现日期', |
| | | }, |
| | | { |
| | | id: '2', |
| | | enCode: 'checkTime', |
| | | name: '审核通过日期', |
| | | }, |
| | | { |
| | | id: '3', |
| | | enCode: 'amount', |
| | | name: '提现金额', |
| | | }, |
| | | { |
| | | id: '4', |
| | | enCode: 'remainAmount', |
| | | name: '资金余额', |
| | | }, |
| | | ]; |
| | | |
| | | const operationBtns = defineOperationBtns([ |
| | | { |
| | | data: { |
| | | enCode: 'checkBtn', |
| | | name: '查看凭证', |
| | | }, |
| | | }, |
| | | ]); |
| | | |
| | | const route = useRoute(); |
| | | const router = useRouter(); |
| | | const id = route.params.id as string; |
| | | const BaseState = { |
| | | loading: true, |
| | | }; |
| | | |
| | | const state = reactive({ ...BaseState }); |
| | | |
| | | const { |
| | | getDataSource: getList, |
| | | proTableProps, |
| | | paginationState, |
| | | extraParamState, |
| | | } = useTable( |
| | | async ({ pageIndex, pageSize }, extraParamState) => { |
| | | try { |
| | | let params: API.GetEnterpriseDrawWithListInput = { |
| | | pageModel: { |
| | | rows: pageSize, |
| | | page: pageIndex, |
| | | orderInput: extraParamState.orderInput, |
| | | }, |
| | | checkStatus: EnterpriseRechargeStatusEnum.CheckPassed, |
| | | }; |
| | | let res = await parkBountyApplyServices.getEnterpriseDrawWithList(params, { |
| | | showLoading: !state.loading, |
| | | }); |
| | | return res; |
| | | } catch (error) {} |
| | | }, |
| | | { |
| | | defaultExtraParams: { |
| | | orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }], |
| | | }, |
| | | columnsRenderProps: { |
| | | creationTime: { type: 'date', format: 'YYYY-MM-DD' }, |
| | | checkTime: { type: 'date', format: 'YYYY-MM-DD' }, |
| | | amount: { type: 'money' }, |
| | | remainAmount: { type: 'money' }, |
| | | }, |
| | | } |
| | | ); |
| | | |
| | | onMounted(async () => { |
| | | await getList(); |
| | | state.loading = false; |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @use '@/style/common.scss' as *; |
| | | </style> |
| | |
| | | parkTypeName: '', |
| | | applyMonth: '', |
| | | applySumAmount: 0, |
| | | enterpriseTaxSubFileUrl: [] as UploadUserFile[], |
| | | enterpriseOperateFileUrl: [] as UploadUserFile[], |
| | | enterpriseRelateFileUrl: [] as UploadUserFile[], |
| | | // enterpriseTaxSubFileUrl: [] as UploadUserFile[], |
| | | // enterpriseOperateFileUrl: [] as UploadUserFile[], |
| | | // enterpriseRelateFileUrl: [] as UploadUserFile[], |
| | | // bountyAssignFileUlr: [] as UploadUserFile[], |
| | | // bountyCollectFileUrl: [] as UploadUserFile[], |
| | | parkCollectFileList: [] as CustomerApplyFileTypeListItem[], |
| | | bountyAssignFileUlr: [] as UploadUserFile[], |
| | | bountyCollectFileUrl: [] as UploadUserFile[], |
| | | calculationFileList: [] as CustomerApplyFileTypeListItem[], |
| | | |
| | | status: '' as any as BountyCheckStatusEnum, |
| | | remark: '', |
| | |
| | | form.parkTypeName = data.parkTypeName; |
| | | form.applyMonth = data.applyMonth; |
| | | form.applySumAmount = data.applySumAmount; |
| | | form.enterpriseTaxSubFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | data?.enterpriseTaxSubFileUrl |
| | | ); |
| | | form.enterpriseOperateFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | data?.enterpriseOperateFileUrl |
| | | ); |
| | | form.bountyAssignFileUlr = convertApi2FormUrlObjectBySeparator(data?.bountyAssignFileUlr); |
| | | form.bountyCollectFileUrl = convertApi2FormUrlObjectBySeparator(data?.bountyCollectFileUrl); |
| | | form.enterpriseRelateFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | data?.enterpriseRelateFileUrl |
| | | ); |
| | | // form.enterpriseTaxSubFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | // data?.enterpriseTaxSubFileUrl |
| | | // ); |
| | | // form.enterpriseOperateFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | // data?.enterpriseOperateFileUrl |
| | | // ); |
| | | // form.bountyAssignFileUlr = convertApi2FormUrlObjectBySeparator(data?.bountyAssignFileUlr); |
| | | // form.bountyCollectFileUrl = convertApi2FormUrlObjectBySeparator(data?.bountyCollectFileUrl); |
| | | // form.enterpriseRelateFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | // data?.enterpriseRelateFileUrl |
| | | // ); |
| | | form.parkCollectFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList( |
| | | data.listFiles |
| | | ); |
| | | form.calculationFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList( |
| | | data.collectCountListFiles |
| | | ); |
| | | |
| | | getList(); |
| | | }, |
| | |
| | | parkTypeName: '', |
| | | applyMonth: '', |
| | | applySumAmount: 0, |
| | | enterpriseTaxSubFileUrl: [] as UploadUserFile[], |
| | | enterpriseOperateFileUrl: [] as UploadUserFile[], |
| | | enterpriseRelateFileUrl: [] as UploadUserFile[], |
| | | // enterpriseTaxSubFileUrl: [] as UploadUserFile[], |
| | | // enterpriseOperateFileUrl: [] as UploadUserFile[], |
| | | // enterpriseRelateFileUrl: [] as UploadUserFile[], |
| | | // bountyAssignFileUlr: [] as UploadUserFile[], |
| | | // bountyCollectFileUrl: [] as UploadUserFile[], |
| | | parkCollectFileList: [] as CustomerApplyFileTypeListItem[], |
| | | bountyAssignFileUlr: [] as UploadUserFile[], |
| | | bountyCollectFileUrl: [] as UploadUserFile[], |
| | | calculationFileList: [] as CustomerApplyFileTypeListItem[], |
| | | |
| | | outCheckStatus: '' as any as BountyCheckStatusEnum, |
| | | outCheckRemark: '', |
| | |
| | | form.applySumAmount = data.applySumAmount; |
| | | form.outCheckStatus = data.outCheckStatus; |
| | | form.outCheckRemark = data.outCheckRemark; |
| | | form.enterpriseTaxSubFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | data?.enterpriseTaxSubFileUrl |
| | | ); |
| | | form.enterpriseOperateFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | data?.enterpriseOperateFileUrl |
| | | ); |
| | | form.bountyAssignFileUlr = convertApi2FormUrlObjectBySeparator(data?.bountyAssignFileUlr); |
| | | form.bountyCollectFileUrl = convertApi2FormUrlObjectBySeparator(data?.bountyCollectFileUrl); |
| | | form.enterpriseRelateFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | data?.enterpriseRelateFileUrl |
| | | ); |
| | | // form.enterpriseTaxSubFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | // data?.enterpriseTaxSubFileUrl |
| | | // ); |
| | | // form.enterpriseOperateFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | // data?.enterpriseOperateFileUrl |
| | | // ); |
| | | // form.bountyAssignFileUlr = convertApi2FormUrlObjectBySeparator(data?.bountyAssignFileUlr); |
| | | // form.bountyCollectFileUrl = convertApi2FormUrlObjectBySeparator(data?.bountyCollectFileUrl); |
| | | // form.enterpriseRelateFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | // data?.enterpriseRelateFileUrl |
| | | // ); |
| | | form.parkCollectFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList( |
| | | data.listFiles |
| | | ); |
| | | form.calculationFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList( |
| | | data.collectCountListFiles |
| | | ); |
| | | |
| | | getList(); |
| | | }, |
| | |
| | | parkTypeName: '', |
| | | applyMonth: '', |
| | | applySumAmount: 0, |
| | | enterpriseTaxSubFileUrl: [] as UploadUserFile[], |
| | | enterpriseOperateFileUrl: [] as UploadUserFile[], |
| | | enterpriseRelateFileUrl: [] as UploadUserFile[], |
| | | // enterpriseTaxSubFileUrl: [] as UploadUserFile[], |
| | | // enterpriseOperateFileUrl: [] as UploadUserFile[], |
| | | // enterpriseRelateFileUrl: [] as UploadUserFile[], |
| | | parkCollectFileList: [] as CustomerApplyFileTypeListItem[], |
| | | bountyAssignFileUlr: [] as UploadUserFile[], |
| | | bountyCollectFileUrl: [] as UploadUserFile[], |
| | | calculationFileList: [] as CustomerApplyFileTypeListItem[], |
| | | // bountyAssignFileUlr: [] as UploadUserFile[], |
| | | // bountyCollectFileUrl: [] as UploadUserFile[], |
| | | }); |
| | | |
| | | const { data: detail, isLoading } = useQuery({ |
| | |
| | | form.parkTypeName = data.parkTypeName; |
| | | form.applyMonth = data.applyMonth; |
| | | form.applySumAmount = data.applySumAmount; |
| | | form.enterpriseTaxSubFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | data?.enterpriseTaxSubFileUrl |
| | | ); |
| | | form.enterpriseOperateFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | data?.enterpriseOperateFileUrl |
| | | ); |
| | | // form.enterpriseTaxSubFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | // data?.enterpriseTaxSubFileUrl |
| | | // ); |
| | | // form.enterpriseOperateFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | // data?.enterpriseOperateFileUrl |
| | | // ); |
| | | form.parkCollectFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList( |
| | | data.listFiles |
| | | ); |
| | | form.bountyAssignFileUlr = convertApi2FormUrlObjectBySeparator(data?.bountyAssignFileUlr); |
| | | form.bountyCollectFileUrl = convertApi2FormUrlObjectBySeparator(data?.bountyCollectFileUrl); |
| | | form.enterpriseRelateFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | data?.enterpriseRelateFileUrl |
| | | form.calculationFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList( |
| | | data.collectCountListFiles |
| | | ); |
| | | // form.bountyAssignFileUlr = convertApi2FormUrlObjectBySeparator(data?.bountyAssignFileUlr); |
| | | // form.bountyCollectFileUrl = convertApi2FormUrlObjectBySeparator(data?.bountyCollectFileUrl); |
| | | // form.enterpriseRelateFileUrl = convertApi2FormUrlObjectBySeparator( |
| | | // data?.enterpriseRelateFileUrl |
| | | // ); |
| | | |
| | | getList(); |
| | | }, |
| | |
| | | <QueryFilterItem tip-content="财政拨付状态"> |
| | | <FieldRadio |
| | | v-model="extraParamState.financeStatus" |
| | | :value-enum="FinanceStatusEnumText" |
| | | :value-enum="FinanceStatusEnumTextV2Query" |
| | | buttonStyle |
| | | showAllBtn |
| | | @change="getList()" |
| | |
| | | <QueryFilterItem tip-content="平台充值状态"> |
| | | <FieldRadio |
| | | v-model="extraParamState.settleStatus" |
| | | :value-enum="SettleStatusEnumText" |
| | | :value-enum="SettleStatusEnumTextV2Query" |
| | | buttonStyle |
| | | showAllBtn |
| | | @change="getList()" |
| | |
| | | title="查看凭证" |
| | | :BusinessTypeEnumText="TransferFileEnumInRewardGrandText" |
| | | /> |
| | | <FinancialDialog v-bind="dialogFinancialProps"></FinancialDialog> |
| | | <PlateformDialog v-bind="dialogPlateformProps"></PlateformDialog> |
| | | <RegisterDialog v-bind="dialogRegisterProps"></RegisterDialog> |
| | | <UploadCertRewardDialog v-bind="dialogCertRewardProps"></UploadCertRewardDialog> |
| | | <!-- <FinancialDialog v-bind="dialogFinancialProps"></FinancialDialog> |
| | | <PlateformDialog v-bind="dialogPlateformProps"></PlateformDialog> --> |
| | | </AppContainer> |
| | | </LoadingLayout> |
| | | </template> |
| | |
| | | import { format } from '@/utils'; |
| | | import { |
| | | SettleStatusEnum, |
| | | SettleStatusEnumText, |
| | | FinanceStatusEnum, |
| | | FinanceStatusEnumText, |
| | | TransferFileEnumInRewardGrandText, |
| | | FinanceStatusEnumTextV2, |
| | | FinanceStatusEnumTextV2Query, |
| | | SettleStatusEnumTextV2, |
| | | SettleStatusEnumTextV2Query, |
| | | IncomeTypeEnum, |
| | | BillStatusEnum, |
| | | } from '@/constants'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import RegisterDialog from './components/RegisterDialog.vue'; |
| | | import UploadCertRewardDialog from './components/UploadCertRewardDialog.vue'; |
| | | import FinancialDialog from './components/FinancialDialog.vue'; |
| | | import PlateformDialog from './components/PlateformDialog.vue'; |
| | | import _ from 'lodash'; |
| | |
| | | { |
| | | id: '7', |
| | | enCode: 'financeStatus', |
| | | name: '财政拨付状态', |
| | | name: '财政拨付登记状态', |
| | | width: 160, |
| | | }, |
| | | { |
| | | id: '8', |
| | | enCode: 'financeTime', |
| | | name: '拨付日期', |
| | | name: '登记拨付日期', |
| | | width: 180, |
| | | }, |
| | | { |
| | | id: '9', |
| | | enCode: 'settleStatus', |
| | | name: '平台充值状态', |
| | | name: '平台充值登记状态', |
| | | width: 160, |
| | | }, |
| | | { |
| | | id: '10', |
| | | enCode: 'settleTime', |
| | | name: '充值日期', |
| | | name: '登记充值日期', |
| | | width: 180, |
| | | }, |
| | | ]; |
| | |
| | | onClick: (role) => goDetail(role), |
| | | }, |
| | | }, |
| | | // { |
| | | // data: { |
| | | // enCode: 'financialBtn', |
| | | // name: '财政拨付', |
| | | // }, |
| | | // emits: { |
| | | // onClick: (role) => openFinancialDialog(role), |
| | | // }, |
| | | // extraProps: { |
| | | // hide: (row: API.GetParkBountyApplyListOutput) => |
| | | // row.financeStatus === FinanceStatusEnum.HasIncome, |
| | | // }, |
| | | // }, |
| | | // { |
| | | // data: { |
| | | // enCode: 'plateformBtn', |
| | | // name: '平台充值', |
| | | // }, |
| | | // emits: { |
| | | // onClick: (role) => openPlateformDialog(role), |
| | | // }, |
| | | // extraProps: { |
| | | // hide: (row: API.GetParkBountyApplyListOutput) => |
| | | // row.settleStatus !== SettleStatusEnum.WaitForSettle, |
| | | // }, |
| | | // }, |
| | | { |
| | | data: { |
| | | enCode: 'financialBtn', |
| | | name: '财政拨付', |
| | | enCode: 'registerBtn', |
| | | name: '登记', |
| | | }, |
| | | emits: { |
| | | onClick: (role) => openFinancialDialog(role), |
| | | onClick: (role) => openRegisterDialog(role), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetParkBountyApplyListOutput) => |
| | | row.financeStatus === FinanceStatusEnum.HasIncome, |
| | | !( |
| | | row.settleStatus === SettleStatusEnum.WaitForSettle || |
| | | row.financeStatus === FinanceStatusEnum.WaitForIncome |
| | | ), |
| | | }, |
| | | }, |
| | | { |
| | | data: { |
| | | enCode: 'plateformBtn', |
| | | name: '平台充值', |
| | | enCode: 'uploadCertBtn', |
| | | name: '上传凭证', |
| | | }, |
| | | emits: { |
| | | onClick: (role) => openPlateformDialog(role), |
| | | onClick: (role) => openCertRewardDialog(role), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetParkBountyApplyListOutput) => |
| | | row.settleStatus !== SettleStatusEnum.WaitForSettle, |
| | | !( |
| | | row.settleStatus === SettleStatusEnum.HasSettle || |
| | | row.financeStatus === FinanceStatusEnum.HasIncome |
| | | ), |
| | | }, |
| | | }, |
| | | { |
| | |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetParkBountyApplyListOutput) => |
| | | row.settleStatus !== SettleStatusEnum.HasSettle && |
| | | row.financeStatus === FinanceStatusEnum.WaitForIncome, |
| | | !( |
| | | row.settleStatus === SettleStatusEnum.HasBill || |
| | | row.financeStatus === FinanceStatusEnum.HasBill |
| | | ), |
| | | }, |
| | | }, |
| | | ]); |
| | |
| | | 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 }, |
| | | settleStatus: { type: 'enum', valueEnum: SettleStatusEnumTextV2 }, |
| | | financeStatus: { type: 'enum', valueEnum: FinanceStatusEnumTextV2 }, |
| | | }, |
| | | } |
| | | ); |
| | |
| | | }); |
| | | |
| | | 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: dialogFinancialProps, |
| | | handleEdit: handleFinancialEdit, |
| | | editForm: editFinancialForm, |
| | | dialogProps: dialogRegisterProps, |
| | | handleEdit: handleRegisterEdit, |
| | | editForm: editRegisterForm, |
| | | } = useFormDialog({ |
| | | onConfirm: handleFinancial, |
| | | onConfirm: handleRegister, |
| | | defaultFormParams: { |
| | | incomeType: '' as any as IncomeTypeEnum, |
| | | parkBountyApplyId: '', |
| | | financeSumAmount: 0, |
| | | financeFileUrl: [] as UploadUserFile[], |
| | | showSuportPlatRecharge: false, |
| | | showSuportFiscalRecharge: false, |
| | | }, |
| | | }); |
| | | |
| | | function openFinancialDialog(row?: API.GetParkBountyApplyListOutput) { |
| | | handleFinancialEdit({ |
| | | function openRegisterDialog(row?: API.GetParkBountyApplyListOutput) { |
| | | handleRegisterEdit({ |
| | | incomeType: '' as any as IncomeTypeEnum, |
| | | showSuportPlatRecharge: row.settleStatus === SettleStatusEnum.WaitForSettle, |
| | | showSuportFiscalRecharge: row.financeStatus === FinanceStatusEnum.WaitForIncome, |
| | | parkBountyApplyId: row.id, |
| | | financeSumAmount: 0, |
| | | financeFileUrl: [] as UploadUserFile[], |
| | | }); |
| | | } |
| | | async function handleFinancial() { |
| | | async function handleRegister() { |
| | | try { |
| | | let params: API.ParkBountyApplyFinanceFileInput = { |
| | | parkBountyApplyId: editFinancialForm.parkBountyApplyId, |
| | | financeSumAmount: editFinancialForm.financeSumAmount, |
| | | financeFileUrl: editFinancialForm.financeFileUrl.map((x) => x.path).join('|'), |
| | | let params = { |
| | | parkBountyApplyId: editRegisterForm.parkBountyApplyId, |
| | | }; |
| | | let res = await parkBountyApplyServices.parkBountyApplyFinanceBill(params); |
| | | let res; |
| | | if (editRegisterForm.incomeType === IncomeTypeEnum.Fiscal) { |
| | | (params as API.ParkBountyApplyFinanceFileInput).financeSumAmount = |
| | | editRegisterForm.financeSumAmount; |
| | | res = await parkBountyApplyServices.parkBountyApplyFinanceBillAmount(params); |
| | | } |
| | | if (editRegisterForm.incomeType === IncomeTypeEnum.Platform) { |
| | | (params as API.ParkBountyApplySettleInput).settleSumAmount = |
| | | editRegisterForm.financeSumAmount; |
| | | res = await parkBountyApplyServices.parkBountyApplySettleAmount(params); |
| | | } |
| | | if (res) { |
| | | Message.successMessage('操作成功'); |
| | | getList(paginationState.pageIndex); |
| | |
| | | } 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) {} |
| | | // } |
| | | |
| | | const { |
| | | dialogProps: dialogPlateformProps, |
| | | handleEdit: handlePlateformEdit, |
| | | editForm: editPlateformForm, |
| | | dialogProps: dialogCertRewardProps, |
| | | handleEdit: handleCertRewardEdit, |
| | | editForm: editCertRewardForm, |
| | | } = useFormDialog({ |
| | | onConfirm: handlePlateform, |
| | | onConfirm: handleCertReward, |
| | | defaultFormParams: { |
| | | incomeType: '' as any as IncomeTypeEnum, |
| | | parkBountyApplyId: '', |
| | | settleSumAmount: 0, |
| | | settleFileUrl: [] as UploadUserFile[], |
| | | fileUrl: [] as UploadUserFile[], |
| | | showSuportPlatRecharge: false, |
| | | showSuportFiscalRecharge: false, |
| | | }, |
| | | }); |
| | | |
| | | function openPlateformDialog(row?: API.GetParkBountyApplyListOutput) { |
| | | handlePlateformEdit({ |
| | | function openCertRewardDialog(row?: API.GetParkBountyApplyListOutput) { |
| | | handleCertRewardEdit({ |
| | | incomeType: '' as any as IncomeTypeEnum, |
| | | showSuportPlatRecharge: row.settleStatus === SettleStatusEnum.HasSettle, |
| | | showSuportFiscalRecharge: row.financeStatus === FinanceStatusEnum.HasIncome, |
| | | parkBountyApplyId: row.id, |
| | | settleSumAmount: 0, |
| | | settleFileUrl: [] as UploadUserFile[], |
| | | fileUrl: [] as UploadUserFile[], |
| | | }); |
| | | } |
| | | |
| | | async function handlePlateform() { |
| | | async function handleCertReward() { |
| | | try { |
| | | let params: API.ParkBountyApplySettleInput = { |
| | | parkBountyApplyId: editPlateformForm.parkBountyApplyId, |
| | | settleSumAmount: editPlateformForm.settleSumAmount, |
| | | settleFileUrl: editPlateformForm.settleFileUrl.map((x) => x.path).join('|'), |
| | | let params: API.ParkBountyApplyFinanceFileInput = { |
| | | parkBountyApplyId: editCertRewardForm.parkBountyApplyId, |
| | | }; |
| | | let res = await parkBountyApplyServices.parkBountyApplySettle(params); |
| | | let res; |
| | | if (editCertRewardForm.incomeType === IncomeTypeEnum.Fiscal) { |
| | | (params as API.ParkBountyApplyFinanceFileInput).financeFileUrl = editCertRewardForm.fileUrl |
| | | .map((x) => x.path) |
| | | .join('|'); |
| | | res = await parkBountyApplyServices.parkBountyApplyFinanceBill(params); |
| | | } |
| | | if (editCertRewardForm.incomeType === IncomeTypeEnum.Platform) { |
| | | (params as API.ParkBountyApplySettleInput).settleFileUrl = editCertRewardForm.fileUrl |
| | | .map((x) => x.path) |
| | | .join('|'); |
| | | res = await parkBountyApplyServices.parkBountyApplySettle(params); |
| | | } |
| | | if (res) { |
| | | Message.successMessage('操作成功'); |
| | | getList(paginationState.pageIndex); |
New file |
| | |
| | | <template> |
| | | <LoadingLayout :loading="state.loading"> |
| | | <AppContainer> |
| | | <ProTableQueryFilterBar @on-reset="reset"> |
| | | <template #query> |
| | | <QueryFilterItem tip-content="申请时间"> |
| | | <FieldDatePicker |
| | | v-model="extraParamState.dateTime" |
| | | type="daterange" |
| | | range-separator="~" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | clearable |
| | | @change="getList()" |
| | | ></FieldDatePicker> |
| | | </QueryFilterItem> |
| | | <QueryFilterItem tip-content="审核状态"> |
| | | <FieldRadio |
| | | v-model="extraParamState.checkStatus" |
| | | :value-enum="EnterpriseRechargeStatusEnumText" |
| | | buttonStyle |
| | | showAllBtn |
| | | @change="getList()" |
| | | /> |
| | | </QueryFilterItem> |
| | | <QueryFilterItem> |
| | | <SearchInput |
| | | v-model="extraParamState.keyWord" |
| | | style="width: 300px" |
| | | placeholder="企业名称/园区/信用代码" |
| | | @on-click-search="getList" |
| | | > |
| | | </SearchInput> |
| | | </QueryFilterItem> |
| | | </template> |
| | | </ProTableQueryFilterBar> |
| | | |
| | | <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> |
| | | </ProTableV2> |
| | | <WithdrawalApprovalAuditDialog v-bind="dialogProps"></WithdrawalApprovalAuditDialog> |
| | | </AppContainer> |
| | | </LoadingLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { |
| | | LoadingLayout, |
| | | AppContainer, |
| | | useTable, |
| | | ProTableQueryFilterBar, |
| | | ProTableV2, |
| | | defineOperationBtns, |
| | | SearchInput, |
| | | FieldRadio, |
| | | QueryFilterItem, |
| | | FieldDatePicker, |
| | | useFormDialog, |
| | | UploadUserFile, |
| | | } from '@bole-core/components'; |
| | | import { Message, OrderInputType } from '@bole-core/core'; |
| | | import { format } from '@/utils'; |
| | | import { EnterpriseRechargeStatusEnum, EnterpriseRechargeStatusEnumText } from '@/constants'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import WithdrawalApprovalAuditDialog from './components/WithdrawalApprovalAuditDialog.vue'; |
| | | import _ from 'lodash'; |
| | | import { ModelValueType } from 'element-plus'; |
| | | |
| | | defineOptions({ |
| | | name: 'WithdrawalApproval', |
| | | }); |
| | | |
| | | const column: API.CustomModuleColumnDto[] = [ |
| | | { |
| | | id: '1', |
| | | enCode: 'enterpriseName', |
| | | name: '企业名称', |
| | | }, |
| | | { |
| | | id: '2', |
| | | enCode: 'societyCreditCode', |
| | | name: '统一社会信用代码', |
| | | }, |
| | | { |
| | | id: '3', |
| | | enCode: 'enterpriseType', |
| | | name: '企业类型', |
| | | }, |
| | | { |
| | | id: '4', |
| | | enCode: 'parkName', |
| | | name: '所属园区', |
| | | }, |
| | | { |
| | | id: '5', |
| | | enCode: 'parkType', |
| | | name: '园区类型', |
| | | }, |
| | | { |
| | | id: '6', |
| | | enCode: 'creationTime', |
| | | name: '申请时间', |
| | | }, |
| | | { |
| | | id: '7', |
| | | enCode: 'amount', |
| | | name: '申请提现金额(元)', |
| | | }, |
| | | { |
| | | id: '8', |
| | | enCode: 'checkStatus', |
| | | name: '审核状态', |
| | | }, |
| | | { |
| | | id: '9', |
| | | enCode: 'checkTime', |
| | | name: '审核时间', |
| | | }, |
| | | ]; |
| | | |
| | | const operationBtns = defineOperationBtns([ |
| | | { |
| | | data: { |
| | | enCode: 'detailBtn', |
| | | name: '详情', |
| | | }, |
| | | emits: { |
| | | onClick: (role) => openDialog(role, true), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetEnterpriseDrawWithListOutput) => |
| | | row.checkStatus === EnterpriseRechargeStatusEnum.WaitCheck, |
| | | }, |
| | | }, |
| | | { |
| | | data: { |
| | | enCode: 'auditBtn', |
| | | name: '审核', |
| | | }, |
| | | emits: { |
| | | onClick: (role) => openDialog(role), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetEnterpriseDrawWithListOutput) => |
| | | row.checkStatus !== EnterpriseRechargeStatusEnum.WaitCheck, |
| | | }, |
| | | }, |
| | | ]); |
| | | |
| | | const router = useRouter(); |
| | | const BaseState = { |
| | | loading: true, |
| | | }; |
| | | |
| | | const state = reactive({ ...BaseState }); |
| | | |
| | | onMounted(async () => { |
| | | await getList(); |
| | | state.loading = false; |
| | | }); |
| | | |
| | | const { |
| | | getDataSource: getList, |
| | | proTableProps, |
| | | paginationState, |
| | | extraParamState, |
| | | reset, |
| | | } = useTable( |
| | | async ({ pageIndex, pageSize }, extraParamState) => { |
| | | try { |
| | | let params: API.GetEnterpriseDrawWithListInput = { |
| | | pageModel: { |
| | | rows: pageSize, |
| | | page: pageIndex, |
| | | orderInput: extraParamState.orderInput, |
| | | }, |
| | | keyWord: extraParamState.keyWord, |
| | | checkStatus: extraParamState.checkStatus, |
| | | beginDateTime: format(extraParamState.dateTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), |
| | | endDateTime: format(extraParamState.dateTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), |
| | | }; |
| | | let res = await parkBountyApplyServices.getEnterpriseDrawWithList(params, { |
| | | showLoading: !state.loading, |
| | | }); |
| | | return res; |
| | | } catch (error) {} |
| | | }, |
| | | { |
| | | defaultExtraParams: { |
| | | keyWord: '', |
| | | checkStatus: '' as any as EnterpriseRechargeStatusEnum, |
| | | dateTime: [] as unknown as ModelValueType, |
| | | orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }], |
| | | }, |
| | | columnsRenderProps: { |
| | | creationTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | checkTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | amount: { type: 'money' }, |
| | | checkStatus: { type: 'enum', valueEnum: EnterpriseRechargeStatusEnumText }, |
| | | }, |
| | | } |
| | | ); |
| | | |
| | | function openDialog(row: API.GetEnterpriseDrawWithListOutput, isCheck = false) { |
| | | handleAdd({ |
| | | drawWithId: row.drawWithId, |
| | | isCheck, |
| | | }); |
| | | } |
| | | |
| | | const { dialogProps, handleAdd, handleEdit, editForm } = useFormDialog({ |
| | | onConfirm: handleAddOrEdit, |
| | | defaultFormParams: { |
| | | drawWithId: '', |
| | | checkStatus: '' as any as EnterpriseRechargeStatusEnum, |
| | | checkRemark: '', |
| | | isCheck: false, |
| | | checkFileUrl: [] as UploadUserFile[], |
| | | }, |
| | | }); |
| | | |
| | | async function handleAddOrEdit() { |
| | | try { |
| | | let params: API.CheckEnterpriseApplyDrawWithInput = { |
| | | applyDrawWithId: editForm.drawWithId, |
| | | checkStatus: editForm.checkStatus, |
| | | checkFileUrl: editForm.checkFileUrl?.length > 0 ? editForm.checkFileUrl[0].path : '', |
| | | checkRemark: editForm.checkRemark, |
| | | }; |
| | | let res = await parkBountyApplyServices.checkEnterpriseApplyDrawWith(params); |
| | | if (res) { |
| | | Message.successMessage('操作成功'); |
| | | getList(paginationState.pageIndex); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @use '@/style/common.scss' as *; |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <ProDialog |
| | | title="登记" |
| | | v-model="visible" |
| | | @close="onDialogClose" |
| | | destroy-on-close |
| | | draggable |
| | | width="700px" |
| | | > |
| | | <ProForm :model="form" ref="dialogForm" label-width="120px"> |
| | | <ProFormItemV2 |
| | | label="登记类型:" |
| | | prop="incomeType" |
| | | :check-rules="[{ message: '请选择登记类型' }]" |
| | | > |
| | | <ProFormRadio |
| | | v-model="form.incomeType" |
| | | :value-enum="incomeTypeEnum" |
| | | :button-style="false" |
| | | /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | label="输入金额:" |
| | | prop="financeSumAmount" |
| | | :check-rules="[{ message: '请输入金额', type: 'number' }]" |
| | | > |
| | | <ProFormInputNumber |
| | | v-model="form.financeSumAmount" |
| | | :controls="false" |
| | | :min="0" |
| | | unit="元" |
| | | :precision="2" |
| | | ></ProFormInputNumber> |
| | | </ProFormItemV2> |
| | | </ProForm> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="emit('onCancel')">取 消</el-button> |
| | | <el-button type="primary" @click="handleConfirm">确 定</el-button> |
| | | </span> |
| | | </template> |
| | | </ProDialog> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { FormInstance } from 'element-plus'; |
| | | import { |
| | | ProDialog, |
| | | ProForm, |
| | | ProFormItemV2, |
| | | ProFormInputNumber, |
| | | ProFormRadio, |
| | | } from '@bole-core/components'; |
| | | import { IncomeTypeEnumText, IncomeTypeEnum, FinanceStatusEnum } from '@/constants'; |
| | | |
| | | defineOptions({ |
| | | name: 'RegisterDialog', |
| | | }); |
| | | |
| | | type Props = { |
| | | /** |
| | | * @deprecated |
| | | */ |
| | | financeSumAmount?: number; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | | |
| | | const visible = defineModel({ type: Boolean }); |
| | | |
| | | type Form = { |
| | | title?: string; |
| | | financeSumAmount: number; |
| | | incomeType: IncomeTypeEnum; |
| | | showSuportPlatRecharge: boolean; |
| | | showSuportFiscalRecharge: boolean; |
| | | }; |
| | | |
| | | const form = defineModel<Form>('form'); |
| | | |
| | | const emit = defineEmits<{ |
| | | (e: 'onConfirm'): void; |
| | | (e: 'onCancel'): void; |
| | | }>(); |
| | | |
| | | const incomeTypeEnum = computed(() => { |
| | | return [ |
| | | form.value.showSuportFiscalRecharge && { |
| | | label: IncomeTypeEnumText[IncomeTypeEnum.Fiscal], |
| | | value: IncomeTypeEnum.Fiscal, |
| | | }, |
| | | form.value.showSuportPlatRecharge && { |
| | | label: IncomeTypeEnumText[IncomeTypeEnum.Platform], |
| | | value: IncomeTypeEnum.Platform, |
| | | }, |
| | | ].filter(Boolean); |
| | | }); |
| | | |
| | | const dialogForm = ref<FormInstance>(); |
| | | |
| | | function onDialogClose() { |
| | | if (!dialogForm.value) return; |
| | | dialogForm.value.resetFields(); |
| | | } |
| | | |
| | | function handleConfirm() { |
| | | if (!dialogForm.value) return; |
| | | dialogForm.value.validate((valid) => { |
| | | if (valid) { |
| | | emit('onConfirm'); |
| | | } else { |
| | | return; |
| | | } |
| | | }); |
| | | } |
| | | </script> |
New file |
| | |
| | | <template> |
| | | <ProDialog |
| | | title="上传凭证" |
| | | v-model="visible" |
| | | @close="onDialogClose" |
| | | destroy-on-close |
| | | draggable |
| | | width="700px" |
| | | > |
| | | <ProForm :model="form" ref="dialogForm" label-width="120px"> |
| | | <ProFormItemV2 |
| | | label="入账类型:" |
| | | prop="incomeType" |
| | | :check-rules="[{ message: '请选择入账类型' }]" |
| | | > |
| | | <ProFormRadio |
| | | v-model="form.incomeType" |
| | | :value-enum="incomeTypeEnum" |
| | | :button-style="false" |
| | | /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | label="上传入账凭证:" |
| | | prop="fileUrl" |
| | | :check-rules="[{ message: '请上传入账凭证', type: 'upload' }]" |
| | | > |
| | | <ProFormUpload |
| | | v-model:file-url="form.fileUrl" |
| | | :limitFileSize="50" |
| | | accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png" |
| | | ></ProFormUpload> |
| | | </ProFormItemV2> |
| | | </ProForm> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="emit('onCancel')">取 消</el-button> |
| | | <el-button type="primary" @click="handleConfirm">确 定</el-button> |
| | | </span> |
| | | </template> |
| | | </ProDialog> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { FormInstance } from 'element-plus'; |
| | | import { |
| | | ProDialog, |
| | | ProForm, |
| | | ProFormItemV2, |
| | | UploadUserFile, |
| | | ProFormUpload, |
| | | ProFormRadio, |
| | | } from '@bole-core/components'; |
| | | import { IncomeTypeEnumText, IncomeTypeEnum } from '@/constants'; |
| | | |
| | | defineOptions({ |
| | | name: 'UploadCertRewardDialog', |
| | | }); |
| | | |
| | | const visible = defineModel({ type: Boolean }); |
| | | |
| | | type Form = { |
| | | title?: string; |
| | | fileUrl: UploadUserFile[]; |
| | | parkBountyApplyId: string; |
| | | incomeType: IncomeTypeEnum; |
| | | showSuportPlatRecharge: boolean; |
| | | showSuportFiscalRecharge: boolean; |
| | | }; |
| | | |
| | | const form = defineModel<Form>('form'); |
| | | |
| | | const emit = defineEmits<{ |
| | | (e: 'onConfirm'): void; |
| | | (e: 'onCancel'): void; |
| | | }>(); |
| | | |
| | | const incomeTypeEnum = computed(() => { |
| | | return [ |
| | | form.value.showSuportFiscalRecharge && { |
| | | label: IncomeTypeEnumText[IncomeTypeEnum.Fiscal], |
| | | value: IncomeTypeEnum.Fiscal, |
| | | }, |
| | | form.value.showSuportPlatRecharge && { |
| | | label: IncomeTypeEnumText[IncomeTypeEnum.Platform], |
| | | value: IncomeTypeEnum.Platform, |
| | | }, |
| | | ].filter(Boolean); |
| | | }); |
| | | |
| | | const dialogForm = ref<FormInstance>(); |
| | | |
| | | function onDialogClose() { |
| | | if (!dialogForm.value) return; |
| | | dialogForm.value.resetFields(); |
| | | } |
| | | |
| | | function handleConfirm() { |
| | | if (!dialogForm.value) return; |
| | | dialogForm.value.validate((valid) => { |
| | | if (valid) { |
| | | emit('onConfirm'); |
| | | } else { |
| | | return; |
| | | } |
| | | }); |
| | | } |
| | | </script> |
New file |
| | |
| | | <template> |
| | | <ProDialog :title="title" v-model="visible" @close="onDialogClose" destroy-on-close draggable> |
| | | <PortraitTableWithAttachment v-bind="portraitTableWithAttachmentProps" /> |
| | | <ProForm |
| | | :model="form" |
| | | ref="dialogForm" |
| | | label-width="90px" |
| | | style="margin-top: 20px" |
| | | :is-read="form.isCheck" |
| | | > |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 |
| | | label="审核:" |
| | | prop="checkStatus" |
| | | :check-rules="[{ message: '请选择审核状态' }]" |
| | | > |
| | | <ProFormRadio |
| | | v-model="form.checkStatus" |
| | | :value-enum="EnterpriseRechargeStatusEnumTextForAdudit" |
| | | /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol v-if="form.isCheck"> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="审核日期:" prop="creationTime"> |
| | | <ProFormDatePicker v-model="form.creationTime" type="date" format="YYYY-MM-DD HH:mm" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 |
| | | label="上传凭证:" |
| | | prop="checkFileUrl" |
| | | :required="form.checkStatus === EnterpriseRechargeStatusEnum.CheckPassed" |
| | | :check-rules="[ |
| | | { |
| | | message: '请上传凭证', |
| | | validator: (rule, value, callback) => { |
| | | if ( |
| | | value?.length === 0 && |
| | | form.checkStatus === EnterpriseRechargeStatusEnum.CheckPassed |
| | | ) { |
| | | callback(new Error('请上传凭证')); |
| | | } |
| | | callback(); |
| | | }, |
| | | }, |
| | | ]" |
| | | > |
| | | <ProFormUpload |
| | | v-model:file-url="form.checkFileUrl" |
| | | :limit="1" |
| | | :showTip="false" |
| | | :limitFileSize="50" |
| | | ></ProFormUpload> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | |
| | | <ProFormCol> |
| | | <ProFormColItem> |
| | | <ProFormItemV2 |
| | | label="审核理由:" |
| | | prop="checkRemark" |
| | | :required="form.checkStatus === EnterpriseRechargeStatusEnum.CheckReject" |
| | | :check-rules="[ |
| | | { |
| | | message: '请输入审核理由', |
| | | validator: (rule, value, callback) => { |
| | | if (!value && form.checkStatus === EnterpriseRechargeStatusEnum.CheckReject) { |
| | | callback(new Error('请输入驳回理由')); |
| | | } |
| | | callback(); |
| | | }, |
| | | }, |
| | | ]" |
| | | > |
| | | <ProFormTextArea |
| | | v-model="form.checkRemark" |
| | | placeholder="请输入" |
| | | show-word-limit |
| | | :maxlength="150" |
| | | ></ProFormTextArea> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | </ProForm> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="emit('onCancel')">取 消</el-button> |
| | | <el-button type="primary" @click="handleConfirm">确 定</el-button> |
| | | </span> |
| | | </template> |
| | | </ProDialog> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { FormInstance } from 'element-plus'; |
| | | import { |
| | | ProDialog, |
| | | ProForm, |
| | | ProFormItemV2, |
| | | ProFormTextArea, |
| | | ProFormCol, |
| | | ProFormColItem, |
| | | ProFormRadio, |
| | | ProFormUpload, |
| | | ProFormDatePicker, |
| | | UploadUserFile, |
| | | } from '@bole-core/components'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import { usePortraitTableWithAttachment } from '@/hooks'; |
| | | import { convertApi2FormUrl, convertApi2FormUrlOnlyOne } from '@/utils'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import { |
| | | EnterpriseRechargeStatusEnum, |
| | | EnterpriseRechargeStatusEnumTextForAdudit, |
| | | } from '@/constants'; |
| | | |
| | | defineOptions({ |
| | | name: 'WithdrawalApprovalAuditDialog', |
| | | }); |
| | | |
| | | // type Props = {}; |
| | | |
| | | // const props = withDefaults(defineProps<Props>(), {}); |
| | | |
| | | const visible = defineModel({ type: Boolean }); |
| | | |
| | | type Form = { |
| | | title?: string; |
| | | drawWithId: string; |
| | | checkStatus: EnterpriseRechargeStatusEnum; |
| | | checkRemark: string; |
| | | creationTime?: string; |
| | | isCheck: boolean; |
| | | checkFileUrl: UploadUserFile[]; |
| | | }; |
| | | |
| | | const form = defineModel<Form>('form'); |
| | | |
| | | const title = computed(() => (form.value?.isCheck ? '详情' : '提现审批')); |
| | | |
| | | const emit = defineEmits<{ |
| | | (e: 'onConfirm'): void; |
| | | (e: 'onCancel'): void; |
| | | }>(); |
| | | |
| | | watch( |
| | | () => visible.value, |
| | | (val) => { |
| | | if (val) { |
| | | refetch(); |
| | | } |
| | | } |
| | | ); |
| | | |
| | | const { |
| | | data: detail, |
| | | refetch, |
| | | isLoading, |
| | | } = useQuery({ |
| | | queryKey: ['parkBountyApplyServices/getEnterpriseDrawWithDetail', form.value?.drawWithId], |
| | | queryFn: async () => { |
| | | return await parkBountyApplyServices.getEnterpriseDrawWithDetail( |
| | | { |
| | | drawWithId: form.value?.drawWithId, |
| | | }, |
| | | { |
| | | showLoading: true, |
| | | } |
| | | ); |
| | | }, |
| | | placeholderData: () => ({} as API.GetEnterpriseDrawWithDetailOutput), |
| | | enabled: !!form.value?.drawWithId, |
| | | onSuccess(data) { |
| | | form.value.checkRemark = data.checkRemark ?? ''; |
| | | form.value.creationTime = data.creationTime ?? ''; |
| | | form.value.checkStatus = form.value?.isCheck |
| | | ? data.checkStatus |
| | | : ('' as any as EnterpriseRechargeStatusEnum); |
| | | form.value.checkFileUrl = convertApi2FormUrlOnlyOne(data.checkFileUrl); |
| | | }, |
| | | }); |
| | | |
| | | const { portraitTableWithAttachmentProps } = usePortraitTableWithAttachment({ |
| | | data: detail, |
| | | annexList: computed(() => |
| | | detail.value?.invoiceUrl |
| | | ? detail.value?.invoiceUrl.split('|').map((item) => convertApi2FormUrl(item)) |
| | | : [] |
| | | ), |
| | | columns: [ |
| | | { |
| | | label: '企业名称', |
| | | key: 'enterpriseName', |
| | | }, |
| | | { |
| | | label: '统一社会信用代码', |
| | | key: 'societyCreditCode', |
| | | }, |
| | | { |
| | | label: '账户名称', |
| | | key: 'accountName', |
| | | }, |
| | | { |
| | | label: '银行帐号', |
| | | key: 'bankNumber', |
| | | }, |
| | | { |
| | | label: '开户银行', |
| | | key: 'bankName', |
| | | }, |
| | | { |
| | | label: '开户支行', |
| | | key: 'bankResumeName', |
| | | }, |
| | | { |
| | | label: '提现金额', |
| | | key: 'amount', |
| | | type: 'money', |
| | | }, |
| | | { |
| | | label: '申请日期', |
| | | key: 'creationTime', |
| | | type: 'date', |
| | | }, |
| | | ], |
| | | }); |
| | | |
| | | const dialogForm = ref<FormInstance>(); |
| | | |
| | | function onDialogClose() { |
| | | if (!dialogForm.value) return; |
| | | dialogForm.value.resetFields(); |
| | | } |
| | | |
| | | function handleConfirm() { |
| | | if (!dialogForm.value) return; |
| | | if (form.value?.isCheck) { |
| | | emit('onCancel'); |
| | | return; |
| | | } |
| | | dialogForm.value.validate((valid) => { |
| | | if (valid) { |
| | | emit('onConfirm'); |
| | | } else { |
| | | return; |
| | | } |
| | | }); |
| | | } |
| | | </script> |