| | |
| | | enterpriseOperateFileUrl: UploadUserFile[]; |
| | | bountyAssignFileUlr: UploadUserFile[]; |
| | | bountyCollectFileUrl: UploadUserFile[]; |
| | | enterpriseRelateFileUrl: UploadUserFile[]; |
| | | }; |
| | | }; |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <ProDialog |
| | | title="æä»¶å表" |
| | | v-model="visible" |
| | | destroy-on-close |
| | | draggable |
| | | width="35%" |
| | | :close-on-click-modal="false" |
| | | :close-on-press-escape="false" |
| | | :top="'22vh'" |
| | | > |
| | | <ProDialogTableWrapper :height="400"> |
| | | <ProTableQueryFilterBar :show-reset-btn="false"> |
| | | <template #query> |
| | | <QueryFilterItem> |
| | | <span class="query-label">{{ name }}</span> |
| | | </QueryFilterItem> |
| | | </template> |
| | | <template #btn> |
| | | <el-button type="primary" @click="handleBatchDownload">æ¹éä¸è½½</el-button> |
| | | </template> |
| | | </ProTableQueryFilterBar> |
| | | <ProTableV2 |
| | | :tableData="fileList" |
| | | :columns="columns" |
| | | :operationBtns="operationBtns" |
| | | show-column-check |
| | | ref="proTable" |
| | | > |
| | | <template #extension="{ row }"> |
| | | <img :src="getExtensionIconByUrl(row.url)" alt="" style="margin: 0 auto" /> |
| | | </template> |
| | | <template #size="{ row }"> |
| | | {{ formatFileSize(row.size) }} |
| | | </template> |
| | | </ProTableV2> |
| | | </ProDialogTableWrapper> |
| | | </ProDialog> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { |
| | | ProDialog, |
| | | ProTableQueryFilterBar, |
| | | QueryFilterItem, |
| | | UploadUserFile, |
| | | ProDialogTableWrapper, |
| | | ProTableV2, |
| | | defineColumns, |
| | | defineOperationBtns, |
| | | bolePreview, |
| | | getExtensionIconByUrl, |
| | | } from '@bole-core/components'; |
| | | import { format, downloadFileByUrl, formatFileSize } from '@/utils'; |
| | | import { downloadWithZip, Message, isFileCanPreview } from '@bole-core/core'; |
| | | |
| | | defineOptions({ |
| | | name: 'FourStreamsBatchMaterialFileDialog', |
| | | }); |
| | | |
| | | type Props = { |
| | | name?: string; |
| | | zipName?: string; |
| | | showDeleteBtn?: boolean; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), { |
| | | showDeleteBtn: true, |
| | | }); |
| | | |
| | | const visible = defineModel<boolean>('visible'); |
| | | const fileList = defineModel<UploadUserFile[]>('fileList'); |
| | | |
| | | const proTable = ref<InstanceType<typeof ProTableV2>>(); |
| | | |
| | | const columns = defineColumns([ |
| | | { |
| | | id: '1', |
| | | enCode: 'extension', |
| | | name: 'æä»¶ç±»å', |
| | | }, |
| | | { |
| | | id: '2', |
| | | enCode: 'name', |
| | | name: 'æä»¶åç§°', |
| | | }, |
| | | ]); |
| | | |
| | | const operationBtns = defineOperationBtns([ |
| | | // { |
| | | // data: { |
| | | // enCode: 'detailBtn', |
| | | // name: 'æ¥ç', |
| | | // }, |
| | | // emits: { |
| | | // onClick: (row) => handlePreview(row), |
| | | // }, |
| | | // extraProps: { |
| | | // hide: (row: UploadUserFile) => !isFileCanPreview(row.path), |
| | | // }, |
| | | // }, |
| | | { |
| | | data: { |
| | | enCode: 'downloadBtn', |
| | | name: 'æ¥ç', |
| | | }, |
| | | emits: { |
| | | onClick: (row) => handleDownload(row), |
| | | }, |
| | | }, |
| | | { |
| | | data: { |
| | | enCode: 'delBtn', |
| | | name: 'å é¤', |
| | | }, |
| | | props: { |
| | | type: 'danger', |
| | | }, |
| | | emits: { |
| | | onClick: (row) => handleDelete(row), |
| | | }, |
| | | extraProps: { |
| | | hide: (row) => !props.showDeleteBtn, |
| | | }, |
| | | }, |
| | | ]); |
| | | |
| | | async function handleDelete(row: UploadUserFile) { |
| | | try { |
| | | await Message.deleteMessage(); |
| | | fileList.value = fileList.value.filter((item) => item.uid !== row.uid); |
| | | } catch (error) {} |
| | | } |
| | | |
| | | function handleDownload(row: UploadUserFile) { |
| | | downloadFileByUrl(row.url); |
| | | } |
| | | |
| | | function handlePreview(row: UploadUserFile) { |
| | | bolePreview({ |
| | | fileUrl: row.url, |
| | | }); |
| | | } |
| | | |
| | | function handleBatchDownload() { |
| | | if (fileList.value.length) { |
| | | const res: UploadUserFile[] = proTable.value.innerTableRef.getSelectionRows(); |
| | | if (res.length > 0) { |
| | | downloadWithZip( |
| | | res.map((item) => ({ data: item.url })), |
| | | props.zipName |
| | | ); |
| | | } else { |
| | | Message.errorMessage('æªéæ©æ°æ®'); |
| | | } |
| | | } else { |
| | | Message.errorMessage('ææ æ°æ®'); |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @use '@/style/common.scss' as *; |
| | | |
| | | .query-label { |
| | | font-size: 16px; |
| | | line-height: 40px; |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <ProDialog :title="title" v-model="visible" destroy-on-close draggable width="800px"> |
| | | <FourStreamsMaterialFileTable v-model:list="form.list" v-bind="props" /> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button type="primary" @click="handleConfirm">ç¡® å®</el-button> |
| | | </span> |
| | | </template> |
| | | </ProDialog> |
| | | </template> |
| | | |
| | | <script setup lang="ts" generic="T"> |
| | | import { ProDialog } from '@bole-core/components'; |
| | | import FourStreamsMaterialFileTable from './FourStreamsMaterialFileTable.vue'; |
| | | import { FourStreamsMaterialFileTableProps, BaseMaterialFileTableItem } from './types'; |
| | | |
| | | defineOptions({ |
| | | name: 'FourStreamsMaterialFileDialog', |
| | | }); |
| | | |
| | | type Props = FourStreamsMaterialFileTableProps & { |
| | | title?: string; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), { |
| | | showUploadBtn: true, |
| | | showCheckBtn: true, |
| | | showDownloadBtn: true, |
| | | showDeleteBtn: true, |
| | | title: 'ææè¯¦æ
', |
| | | }); |
| | | |
| | | const visible = defineModel({ type: Boolean }); |
| | | |
| | | type Form = { |
| | | list: BaseMaterialFileTableItem<T>[]; |
| | | }; |
| | | |
| | | const form = defineModel<Form>('form'); |
| | | |
| | | const emit = defineEmits<{ |
| | | (e: 'onConfirm'): void; |
| | | (e: 'onCancel'): void; |
| | | }>(); |
| | | |
| | | function handleConfirm() { |
| | | emit('onConfirm'); |
| | | } |
| | | </script> |
| | |
| | | :showTableColumnSetting="false" |
| | | > |
| | | <template #fileBusinessType="{ row }"> |
| | | {{ FourStreamsMaterialFileBusinessTypeEnumText[row.fileBusinessType] }} |
| | | {{ BusinessTypeEnumText[row.fileBusinessType] }} |
| | | </template> |
| | | <template #operationBtn-uploadBtn="{ data, row }"> |
| | | <BlFileUpload |
| | |
| | | </BlFileUpload> |
| | | </template> |
| | | </ProTableV2> |
| | | <FourStreamsBatchMaterialFileDialog |
| | | v-bind="dialogProps" |
| | | :name="''" |
| | | :zipName="`${BusinessTypeEnumText[currentFourStreamsMaterialFileTableItem.fileBusinessType as any]}`" |
| | | v-model:fileList="currentFourStreamsMaterialFileTableItem.fileList" |
| | | :showDeleteBtn="showDeleteBtn" |
| | | /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | <script setup lang="ts" generic="T"> |
| | | import { |
| | | FourStreamsMaterialFileTableProps, |
| | | FourStreamsMaterialFileTableItem, |
| | | FourStreamsMaterialFileBusinessTypeEnumText, |
| | | BaseMaterialFileTableItem, |
| | | } from './types'; |
| | | import { |
| | | ProTableV2, |
| | | defineColumns, |
| | | defineOperationBtns, |
| | | BlFileUpload, |
| | | bolePreview, |
| | | useDialog, |
| | | } from '@bole-core/components'; |
| | | import FourStreamsBatchMaterialFileDialog from './FourStreamsBatchMaterialFileDialog.vue'; |
| | | import { downloadFileByUrl } from '@/utils'; |
| | | import { Message, isFileCanPreview } from '@bole-core/core'; |
| | | import { useDefineColumns } from '@/hooks'; |
| | |
| | | showDownloadBtn: true, |
| | | showDeleteBtn: true, |
| | | downloadBtnText: 'ä¸è½½', |
| | | BusinessTypeEnumText: () => FourStreamsMaterialFileBusinessTypeEnumText, |
| | | }); |
| | | |
| | | const list = defineModel<FourStreamsMaterialFileTableItem[]>('list'); |
| | | const list = defineModel<BaseMaterialFileTableItem<T>[]>('list'); |
| | | |
| | | const columns = defineColumns([ |
| | | { |
| | |
| | | } catch (error) {} |
| | | } |
| | | |
| | | const currentFourStreamsMaterialFileTableItem = ref<BaseMaterialFileTableItem<T>>({ |
| | | fileBusinessType: 0 as any, |
| | | fileList: [], |
| | | }); |
| | | const { dialogProps, dialogState } = useDialog(); |
| | | |
| | | async function handlePreview(row: FourStreamsMaterialFileTableItem) { |
| | | if (row.fileList.length > 1) { |
| | | // currentEnterpriseMaterialFileTableItem.value = row; |
| | |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="å
¥é©»æ
åµå
³è说æ:" prop="enterpriseOperateFileUrl"> |
| | | <ProFormUpload v-model:file-url="form.enterpriseOperateFileUrl"></ProFormUpload> |
| | | <ProFormItemV2 label="å
¥é©»æ
åµå
³è说æ:" prop="enterpriseRelateFileUrl"> |
| | | <ProFormUpload v-model:file-url="form.enterpriseRelateFileUrl"></ProFormUpload> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | |
| | | form: { |
| | | enterpriseTaxSubFileUrl: UploadUserFile[]; |
| | | enterpriseOperateFileUrl: UploadUserFile[]; |
| | | enterpriseRelateFileUrl: UploadUserFile[]; |
| | | }; |
| | | }; |
| | | |
| | |
| | | import { EnterpriseMaterialFileBusinessTypeEnum } from '@/constants'; |
| | | import { UploadUserFile } from '@bole-core/components'; |
| | | |
| | | export type FourStreamsMaterialFileTableProps = { |
| | |
| | | showDownloadBtn?: boolean; |
| | | showDeleteBtn?: boolean; |
| | | downloadBtnText?: string; |
| | | BusinessTypeEnumText?: { [key: number]: string }; |
| | | }; |
| | | |
| | | export type FourStreamsMaterialFileTableItem = { |
| | | fileBusinessType: FourStreamsMaterialFileBusinessTypeEnum; |
| | | export type BaseMaterialFileTableItem<T> = { |
| | | fileBusinessType: T; |
| | | fileList: UploadUserFile[]; |
| | | }; |
| | | |
| | | export type FourStreamsMaterialFileTableItem = |
| | | BaseMaterialFileTableItem<FourStreamsMaterialFileBusinessTypeEnum>; |
| | | |
| | | export type ApplyTransferMaterialFileTableItem = |
| | | BaseMaterialFileTableItem<ApplyTransferFileBusinessTypeEnum>; |
| | | |
| | | export enum EnterpriseTypeEnum { |
| | | /** |
| | | * 人åèµæºå
¬å¸ |
| | |
| | | TaxSubFileUrl = 30, |
| | | /** ä¼ä¸è¥æ¶å©æ¶¦è¡¨ */ |
| | | OperateProfitesUrl = 40, |
| | | /** å
¥é©»å
³è说æ */ |
| | | /** |
| | | * å
¥é©»å
³è说æ |
| | | * @deprecated å·²ç»ä¸ç¨äº |
| | | */ |
| | | EnterRelateUrl = 50, |
| | | /** C端个ç¨å®ç¨æ
åµè¯´æ */ |
| | | /** C端个ç¨å®ç¨è¯´æ */ |
| | | PersonTaxRatePayUrl = 60, |
| | | /** C端个ç¨å®ç¨è¯´æ */ |
| | | PersonTaxInstructUrl = 70, |
| | | } |
| | | |
| | | export const FourStreamsMaterialFileBusinessTypeEnumText = { |
| | | [FourStreamsMaterialFileBusinessTypeEnum.ParkEnterPactUrl]: 'ååºå
¥é©»åè®®', |
| | | [FourStreamsMaterialFileBusinessTypeEnum.RatePaymentFileUrl]: 'ä¼ä¸å®ç¨è¯æ(çç« )', |
| | | [FourStreamsMaterialFileBusinessTypeEnum.TaxSubFileUrl]: 'ä¼ä¸ç¼´ç¨æç»æ±æ»è¡¨(çç« )', |
| | | [FourStreamsMaterialFileBusinessTypeEnum.OperateProfitesUrl]: 'ä¼ä¸è¥æ¶å©æ¶¦è¡¨', |
| | | [FourStreamsMaterialFileBusinessTypeEnum.EnterRelateUrl]: 'å
¥é©»å
³è说æ', |
| | | [FourStreamsMaterialFileBusinessTypeEnum.PersonTaxRatePayUrl]: 'C端个ç¨å®ç¨æ
åµè¯´æ', |
| | | [FourStreamsMaterialFileBusinessTypeEnum.PersonTaxRatePayUrl]: 'C端个ç¨å®ç¨è¯´æ', |
| | | [FourStreamsMaterialFileBusinessTypeEnum.PersonTaxInstructUrl]: 'C端å®ç¨æ
åµè¯´æ', |
| | | }; |
| | | |
| | | export const FourStreamsMaterialFileBusinessTypeEnumKey = { |
| | |
| | | [FourStreamsMaterialFileBusinessTypeEnum.OperateProfitesUrl]: 'operateProfitesUrl', |
| | | [FourStreamsMaterialFileBusinessTypeEnum.EnterRelateUrl]: 'enterRelateUrl', |
| | | [FourStreamsMaterialFileBusinessTypeEnum.PersonTaxRatePayUrl]: 'personTaxRatePayUrl', |
| | | [FourStreamsMaterialFileBusinessTypeEnum.PersonTaxInstructUrl]: 'personTaxInstructUrl', |
| | | } as const; |
| | | |
| | | export enum ApplyTransferFileBusinessTypeEnum { |
| | | /** æ¨ä»åè¯*/ |
| | | FinanceToFileUrl = 100, |
| | | /** å
å¼åè¯*/ |
| | | TransferToFileUrl = 110, |
| | | } |
| | | |
| | | export const ApplyTransferFileBusinessTypeEnumText = { |
| | | [ApplyTransferFileBusinessTypeEnum.FinanceToFileUrl]: 'æ¨ä»åè¯', |
| | | [ApplyTransferFileBusinessTypeEnum.TransferToFileUrl]: 'å
å¼åè¯', |
| | | }; |
| | | |
| | | export const ApplyTransferFileBusinessTypeEnumKey = { |
| | | [ApplyTransferFileBusinessTypeEnum.FinanceToFileUrl]: 'financeToFileUrl', |
| | | [ApplyTransferFileBusinessTypeEnum.TransferToFileUrl]: 'transferToFileUrl', |
| | | } as const; |
| | |
| | | import { convertApi2FormUrlOnlyOne } from '@/utils'; |
| | | import { convertApi2FormUrl, convertApi2FormUrlOnlyOne } from '@/utils'; |
| | | import { |
| | | ApplyTransferFileBusinessTypeEnum, |
| | | ApplyTransferFileBusinessTypeEnumKey, |
| | | ApplyTransferMaterialFileTableItem, |
| | | FourStreamsMaterialFileBusinessTypeEnum, |
| | | FourStreamsMaterialFileBusinessTypeEnumKey, |
| | | FourStreamsMaterialFileTableItem, |
| | |
| | | FourStreamsMaterialFileBusinessTypeEnum.PersonTaxRatePayUrl, |
| | | ]; |
| | | |
| | | /**è´¢æ¿æ¨ä»åå¹³å°å
å¼åè¯ */ |
| | | static ApplyTransferMaterialFile = [ |
| | | ApplyTransferFileBusinessTypeEnum.FinanceToFileUrl, |
| | | ApplyTransferFileBusinessTypeEnum.TransferToFileUrl, |
| | | ]; |
| | | |
| | | static isFourStreamsParkType(parkTypeName) { |
| | | return ( |
| | | ParkTypeUtils.isPhysicalIndustrialPark(parkTypeName) || |
| | |
| | | ]) |
| | | ); |
| | | } |
| | | |
| | | static initApplyTransferMaterialFileList< |
| | | T extends { financeToFileUrl?: string; transferToFileUrl?: string } |
| | | >(data: T) { |
| | | return this.ApplyTransferMaterialFile.map((item) => { |
| | | const filePathList = data[ApplyTransferFileBusinessTypeEnumKey[item]] |
| | | ? data[ApplyTransferFileBusinessTypeEnumKey[item]].split('|') |
| | | : []; |
| | | return { |
| | | fileBusinessType: item, |
| | | fileList: filePathList.map(convertApi2FormUrl), |
| | | } as ApplyTransferMaterialFileTableItem; |
| | | }); |
| | | } |
| | | } |
| | | |
| | | export class ParkTypeUtils { |
| | |
| | | ); |
| | | } |
| | | |
| | | /** è·åä¼ä¸æå䏿¬¡ä¸ä¼ çååºå
¥é©»åè®®æä»¶ GET /api/ParkBountyApply/GetEnterpriseLastUploadEnterPactFile */ |
| | | export async function getEnterpriseLastUploadEnterPactFile( |
| | | // å å çæçParamç±»å (ébodyåæ°swaggeré»è®¤æ²¡æçæå¯¹è±¡) |
| | | params: API.APIgetEnterpriseLastUploadEnterPactFileParams, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<string>('/api/ParkBountyApply/GetEnterpriseLastUploadEnterPactFile', { |
| | | method: 'GET', |
| | | params: { |
| | | ...params, |
| | | }, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** è·åä¼ä¸å
å¼å®¡æ ¸å表 POST /api/ParkBountyApply/GetEnterprisePreChargeCheckList */ |
| | | export async function getEnterprisePreChargeCheckList( |
| | | body: API.GetEnterprisePreChargeCheckListInput, |
| | |
| | | ); |
| | | } |
| | | |
| | | /** è·åæ¹éå
¥è´¦ä¸æªè´¢æ¿æ¨ä»çä¼ä¸ GET /api/ParkBountyApply/GetParkBountyApplyBatchFinanceEnterprise */ |
| | | export async function getParkBountyApplyBatchFinanceEnterprise( |
| | | // å å çæçParamç±»å (ébodyåæ°swaggeré»è®¤æ²¡æçæå¯¹è±¡) |
| | | params: API.APIgetParkBountyApplyBatchFinanceEnterpriseParams, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetNotTransferCompanyNameListOutput[]>( |
| | | '/api/ParkBountyApply/GetParkBountyApplyBatchFinanceEnterprise', |
| | | { |
| | | method: 'GET', |
| | | params: { |
| | | ...params, |
| | | }, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** è¿è¥ç«¯-å¥å±éåæ¾-å
¥è´¦-è·åæ¹éå
¥è´¦ä¸æªå
¥è´¦çä¼ä¸ GET /api/ParkBountyApply/GetParkBountyApplyBatchTransferEnterprise */ |
| | | export async function getParkBountyApplyBatchTransferEnterprise( |
| | | // å å çæçParamç±»å (ébodyåæ°swaggeré»è®¤æ²¡æçæå¯¹è±¡) |
| | |
| | | transactionDetailId?: string; |
| | | } |
| | | |
| | | interface APIgetEnterpriseLastUploadEnterPactFileParams { |
| | | companyId?: string; |
| | | } |
| | | |
| | | interface APIgetEnterpriseMaterialIdByUserIdParams { |
| | | userId?: string; |
| | | materialType?: EnterpriseMaterialTypeEnum; |
| | |
| | | id?: string; |
| | | } |
| | | |
| | | interface APIgetParkBountyApplyBatchFinanceEnterpriseParams { |
| | | parkBountyApplyId?: string; |
| | | } |
| | | |
| | | interface APIgetParkBountyApplyBatchTransferEnterpriseParams { |
| | | parkBountyApplyId?: string; |
| | | } |
| | |
| | | userName?: string; |
| | | /** é¶è¡è´¦æ· */ |
| | | outBankNum?: string; |
| | | /** ä¼ä¸åç§° */ |
| | | enterpriseName?: string; |
| | | /** åºæ¬¾ä¼ä¸è´¦æ·åç§° */ |
| | | outEnterpriseName?: string; |
| | | /** å
å¼éé¢ */ |
| | |
| | | outBankResumeName?: string; |
| | | /** åºè´¦åå */ |
| | | outReceiptFileUrl?: string; |
| | | /** å®¡æ ¸å¤æ³¨ */ |
| | | checkRemark?: string; |
| | | checkStatus?: EnterpriseRechargeStatusEnum; |
| | | /** æäº¤æ¥æ */ |
| | | creationTime?: string; |
| | | } |
| | | |
| | | interface GetFeatureListResultDto { |
| | |
| | | /** å
é¨å®¡æ ¸åå */ |
| | | inCheckRemark?: string; |
| | | inCheckStatus?: BountyCheckStatusEnum; |
| | | /** è´¢æ¿æ¨ä»æ»é¢ */ |
| | | financeSumAmount?: number; |
| | | /** å¹³å°å
弿»é¢ */ |
| | | settleSumAmount?: number; |
| | | } |
| | | |
| | | interface OutcheckParkBountyApplyInput { |
| | |
| | | bountyCollectFileUrl?: string; |
| | | /** å
¥é©»å
³è说æ */ |
| | | enterpriseRelateFileUrl?: string; |
| | | /** åæ¾åè¯ */ |
| | | settleFileUrl?: string; |
| | | /** è´¢æ¿åæ¾åè¯ */ |
| | | financeFileUrl?: string; |
| | | /** å
å¼éé¢ */ |
| | | settleSumAmount?: number; |
| | | /** è´¢æ¿åæ¾éé¢ */ |
| | | financeSumAmount?: number; |
| | | } |
| | | |
| | | interface ParkBountyApplyBatchFinanceInput { |
| | |
| | | parkBountyApplyDetailId?: string; |
| | | /** å
¥è´¦åè¯ */ |
| | | transferToFileUrl?: string; |
| | | financeToStatus?: FinanceStatusEnum; |
| | | /** è´¢æ¿å
¥è´¦éé¢ */ |
| | | financeToAmount?: number; |
| | | /** è´¢æ¿å
¥è´¦æ¶é´ */ |
| | | financeToTime?: string; |
| | | /** è´¢æ¿å
¥è´¦åè¯ */ |
| | | financeToFileUrl?: string; |
| | | /** è´¢æ¿å
¥è´¦æä½ç¨æ· */ |
| | | financeToUserId?: string; |
| | | } |
| | | |
| | | interface ParkBountyApplyTransferDetailInfoPageOutput { |
| | |
| | | <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.transferToFileUrl ?? '')" |
| | | preview-btn-text="æ¥çåè¯" |
| | | /> |
| | | </template> |
| | | </ProTableV2> |
| | | <FourStreamsMaterialFileDialog |
| | | v-bind="dialogMaterialFileProps" |
| | | :show-upload-btn="false" |
| | | :show-delete-btn="false" |
| | | :show-check-btn="false" |
| | | downloadBtnText="æ¥ç" |
| | | title="æ¥çåè¯" |
| | | :BusinessTypeEnumText="ApplyTransferFileBusinessTypeEnumText" |
| | | /> |
| | | </AppContainer> |
| | | </LoadingLayout> |
| | | </template> |
| | |
| | | useTable, |
| | | ProTableV2, |
| | | defineOperationBtns, |
| | | PreviewBtnV2, |
| | | useFormDialog, |
| | | } from '@bole-core/components'; |
| | | import { convertApi2FormUrlBySeparator } from '@/utils'; |
| | | import { OrderInputType } from '@bole-core/core'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import { IncomeStatusEnumText } from '@/constants'; |
| | | import { ApplyTransferFileBusinessTypeEnumText } from '@/components/commonView/types'; |
| | | import { FourStreamsMaterialUtils } from '@/components/commonView/utils'; |
| | | import { ApplyTransferMaterialFileTableItem } from '@/components/commonView/types'; |
| | | |
| | | defineOptions({ |
| | | name: 'RewardGrantRecordView', |
| | |
| | | enCode: 'checkBtn', |
| | | name: 'æ¥çåè¯', |
| | | }, |
| | | emits: { |
| | | onClick: (row) => openMaterialFileDialog(row), |
| | | }, |
| | | }, |
| | | ]); |
| | | |
| | |
| | | } |
| | | ); |
| | | |
| | | function handlePreview(row: API.InsureBatchBillDto) {} |
| | | function openMaterialFileDialog(row: API.ParkBountyApplyTransferDetailInfo) { |
| | | handleMaterialFileAdd({ |
| | | list: FourStreamsMaterialUtils.initApplyTransferMaterialFileList(row), |
| | | }); |
| | | } |
| | | |
| | | const { dialogProps: dialogMaterialFileProps, handleAdd: handleMaterialFileAdd } = useFormDialog({ |
| | | defaultFormParams: { |
| | | list: [] as ApplyTransferMaterialFileTableItem[], |
| | | }, |
| | | }); |
| | | |
| | | onMounted(async () => { |
| | | await getList(); |
| | |
| | | enterpriseOperateFileUrl: [] as UploadUserFile[], |
| | | bountyAssignFileUlr: [] as UploadUserFile[], |
| | | bountyCollectFileUrl: [] as UploadUserFile[], |
| | | enterpriseRelateFileUrl: [] as UploadUserFile[], |
| | | |
| | | status: '' as any as BountyCheckStatusEnum, |
| | | remark: '', |
| | |
| | | form.enterpriseOperateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseOperateFileUrl); |
| | | form.bountyAssignFileUlr = convertApi2FormUrlOnlyOne(data?.bountyAssignFileUlr); |
| | | form.bountyCollectFileUrl = convertApi2FormUrlOnlyOne(data?.bountyCollectFileUrl); |
| | | form.enterpriseRelateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseRelateFileUrl); |
| | | |
| | | getList(); |
| | | }, |
| | |
| | | enterpriseOperateFileUrl: [] as UploadUserFile[], |
| | | bountyAssignFileUlr: [] as UploadUserFile[], |
| | | bountyCollectFileUrl: [] as UploadUserFile[], |
| | | enterpriseRelateFileUrl: [] as UploadUserFile[], |
| | | |
| | | outCheckStatus: '' as any as BountyCheckStatusEnum, |
| | | outCheckRemark: '', |
| | |
| | | form.enterpriseOperateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseOperateFileUrl); |
| | | form.bountyAssignFileUlr = convertApi2FormUrlOnlyOne(data?.bountyAssignFileUlr); |
| | | form.bountyCollectFileUrl = convertApi2FormUrlOnlyOne(data?.bountyCollectFileUrl); |
| | | form.enterpriseRelateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseRelateFileUrl); |
| | | |
| | | getList(); |
| | | }, |
| | |
| | | enterpriseOperateFileUrl: [] as UploadUserFile[], |
| | | bountyAssignFileUlr: [] as UploadUserFile[], |
| | | bountyCollectFileUrl: [] as UploadUserFile[], |
| | | enterpriseRelateFileUrl: [] as UploadUserFile[], |
| | | }); |
| | | |
| | | const { data: detail, isLoading } = useQuery({ |
| | |
| | | } |
| | | ); |
| | | }, |
| | | placeholderData: () => ({} as API.ParkBountyApplyBaseInfo), |
| | | placeholderData: () => ({} as API.OutCheckParkBountyApplyBaseInfo), |
| | | onSuccess(data) { |
| | | form.batchNo = data.batchNo; |
| | | form.parkName = data.parkName; |
| | |
| | | form.enterpriseOperateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseOperateFileUrl); |
| | | form.bountyAssignFileUlr = convertApi2FormUrlOnlyOne(data?.bountyAssignFileUlr); |
| | | form.bountyCollectFileUrl = convertApi2FormUrlOnlyOne(data?.bountyCollectFileUrl); |
| | | form.enterpriseRelateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseRelateFileUrl); |
| | | |
| | | getList(); |
| | | }, |
| | |
| | | </ProTableQueryFilterBar> |
| | | |
| | | <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> |
| | | <template #operationBtn-checkBtn="{ data, row }"> |
| | | <PreviewBtnV2 |
| | | class="pro-table-operation-btn" |
| | | :url="convertApi2FormUrlBySeparator(row.settleFileUrl ?? '')" |
| | | preview-btn-text="æ¥çåè¯" |
| | | /> |
| | | </template> |
| | | </ProTableV2> |
| | | <FourStreamsMaterialFileDialog |
| | | v-bind="dialogMaterialFileProps" |
| | | :show-upload-btn="false" |
| | | :show-delete-btn="false" |
| | | :show-check-btn="false" |
| | | downloadBtnText="æ¥ç" |
| | | title="æ¥çåè¯" |
| | | :BusinessTypeEnumText="ApplyTransferFileBusinessTypeEnumText" |
| | | /> |
| | | <FinancialDialog v-bind="dialogFinancialProps"></FinancialDialog> |
| | | <PlateformDialog v-bind="dialogPlateformProps"></PlateformDialog> |
| | | </AppContainer> |
| | |
| | | FieldDatePicker, |
| | | useFormDialog, |
| | | UploadUserFile, |
| | | PreviewBtnV2, |
| | | } from '@bole-core/components'; |
| | | import { Message, OrderInputType } from '@bole-core/core'; |
| | | import { convertApi2FormUrlBySeparator, format } from '@/utils'; |
| | | import { format } from '@/utils'; |
| | | import { SettleStatusEnum, SettleStatusEnumText } from '@/constants'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import FinancialDialog from './components/FinancialDialog.vue'; |
| | |
| | | import _ from 'lodash'; |
| | | import { ModelValueType } from 'element-plus'; |
| | | import { useQueryClient } from '@tanstack/vue-query'; |
| | | import { FourStreamsMaterialUtils } from '@/components/commonView/utils'; |
| | | import { |
| | | ApplyTransferMaterialFileTableItem, |
| | | ApplyTransferFileBusinessTypeEnumText, |
| | | } from '@/components/commonView/types'; |
| | | |
| | | defineOptions({ |
| | | name: 'RewardGrant', |
| | |
| | | enCode: 'checkBtn', |
| | | name: 'æ¥çåè¯', |
| | | }, |
| | | emits: { |
| | | onClick: (row) => openMaterialFileDialog(row), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetParkBountyApplyListOutput) => |
| | | row.settleStatus === SettleStatusEnum.WaitForSettle, |
| | |
| | | }); |
| | | } |
| | | |
| | | function openMaterialFileDialog(row: API.ParkBountyApplyTransferDetailInfo) { |
| | | handleMaterialFileAdd({ |
| | | list: FourStreamsMaterialUtils.initApplyTransferMaterialFileList(row), |
| | | }); |
| | | } |
| | | |
| | | const { dialogProps: dialogMaterialFileProps, handleAdd: handleMaterialFileAdd } = useFormDialog({ |
| | | defaultFormParams: { |
| | | list: [] as ApplyTransferMaterialFileTableItem[], |
| | | }, |
| | | }); |
| | | |
| | | const queryClient = useQueryClient(); |
| | | const { |
| | | dialogProps: dialogFinancialProps, |