| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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[]; |
| | | }; |
| | | }; |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | 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.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.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'; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | 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, |
| | |
| | | ); |
| | | } |
| | | |
| | | /** è·åæç°ç³è¯·è¯¦æ
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: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** è·åä¼ä¸æå䏿¬¡ä¸ä¼ çååºå
¥é©»åè®®æä»¶ GET /api/ParkBountyApply/GetEnterpriseLastUploadEnterPactFile */ |
| | | export async function getEnterpriseLastUploadEnterPactFile( |
| | | // å å çæçParamç±»å (ébodyåæ°swaggeré»è®¤æ²¡æçæå¯¹è±¡) |
| | |
| | | ); |
| | | } |
| | | |
| | | /** è·åå
å¼è®°å½å表 POST /api/ParkBountyApply/GetEnterprisePrechargeList */ |
| | | export async function getEnterprisePrechargeList(body: API.PageInput, options?: API.RequestConfig) { |
| | | return request<API.GetEnterprisePrechargeListOutputPageOutput>( |
| | | '/api/ParkBountyApply/GetEnterprisePrechargeList', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** è·åé¢å
å¼è¯¦æ
GET /api/ParkBountyApply/GetEnterpriseRechargeDetail */ |
| | | export async function getEnterpriseRechargeDetail( |
| | | // å å çæçParamç±»å (ébodyåæ°swaggeré»è®¤æ²¡æçæå¯¹è±¡) |
| | |
| | | ); |
| | | } |
| | | |
| | | /** è¿è¥ç«¯ä¸ååºå®¢æ·ç®¡ç详æ
ä¸å¥å±éåæ¾è®°å½ 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; |
| | | } |
| | |
| | | transactionDetailId?: string; |
| | | } |
| | | |
| | | interface APIgetEnterpriseDrawWithDetailParams { |
| | | drawWithId?: string; |
| | | } |
| | | |
| | | interface APIgetEnterpriseLastUploadEnterPactFileNewParams { |
| | | companyId?: string; |
| | | } |
| | |
| | | |
| | | type BestSignUserSignStatusEunm = 1 | 5 | 10 | 20 | 30 | 40 | 50 | 90; |
| | | |
| | | type BillStatusEnum = 10 | 20 | 30; |
| | | |
| | | interface BindUserEmailInput { |
| | | /** é®ç®± */ |
| | | bindEmailAddress: string; |
| | |
| | | status?: number; |
| | | } |
| | | |
| | | interface CheckEnterpriseApplyDrawWithInput { |
| | | applyDrawWithId?: string; |
| | | checkStatus?: EnterpriseRechargeStatusEnum; |
| | | /** æç°åè¯ */ |
| | | checkFileUrl?: string; |
| | | checkRemark?: string; |
| | | } |
| | | |
| | | interface CheckInsureCityIsAllowInput { |
| | | insureOnlineType?: number; |
| | | marketProductId?: string; |
| | |
| | | freeCount?: number; |
| | | } |
| | | |
| | | interface EnterpriseApplyDrawWithInput { |
| | | amount?: number; |
| | | invoiceUrl?: string; |
| | | } |
| | | |
| | | interface EnterpriseBatchRefundInput { |
| | | guid?: string; |
| | | listOrderNo?: number[]; |
| | |
| | | |
| | | type EnterpriseMonthUploadStatusEnum = 10 | 20 | 30; |
| | | |
| | | type EnterprisePrechargeInComeStatusEnum = 10 | 20; |
| | | |
| | | type EnterpriseRechargeStatusEnum = 10 | 20 | 30; |
| | | |
| | | interface EnterpriseRegVerifyInput { |
| | |
| | | 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; |
| | |
| | | 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 { |
| | | id?: string; |
| | | /** å
å¼è´¦å· */ |
| | |
| | | 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', |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |