| | |
| | | enterpriseOperateFileUrl: UploadUserFile[]; |
| | | bountyAssignFileUlr: UploadUserFile[]; |
| | | bountyCollectFileUrl: UploadUserFile[]; |
| | | enterpriseRelateFileUrl: UploadUserFile[]; |
| | | }; |
| | | }; |
| | | |
New file |
| | |
| | | <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> |
New file |
| | |
| | | <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.TaxSubFileUrl, |
| | | FourStreamsMaterialFileBusinessTypeEnum.OperateProfitesUrl, |
| | | FourStreamsMaterialFileBusinessTypeEnum.PersonTaxRatePayUrl, |
| | | ]; |
| | | |
| | | /**财政拨付和平台充值凭证 */ |
| | | static ApplyTransferMaterialFile = [ |
| | | ApplyTransferFileBusinessTypeEnum.FinanceToFileUrl, |
| | | ApplyTransferFileBusinessTypeEnum.TransferToFileUrl, |
| | | ]; |
| | | |
| | | static isFourStreamsParkType(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; |
| | |
| | | |
| | | interface APIgetParams { |
| | | id?: string; |
| | | } |
| | | |
| | | interface APIgetParkBountyApplyBatchFinanceEnterpriseParams { |
| | | parkBountyApplyId?: string; |
| | | } |
| | | |
| | | interface APIgetParkBountyApplyBatchTransferEnterpriseParams { |
| | |
| | | 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', |
| | |
| | | data: { |
| | | 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, |