| | |
| | | <LoadingLayout> |
| | | <AppContainer> |
| | | <PageFormLayout title="申报详情"> |
| | | <DetailView :form="state.detail"> |
| | | <template #table> |
| | | <DeclareEnterpriseTableView ref="tableRef"></DeclareEnterpriseTableView> |
| | | </template> |
| | | <DetailView :form="form"> |
| | | <ChunkCellV2 title="申报企业名单"> |
| | | <DeclareEnterpriseTableView |
| | | :getList="getList" |
| | | :extra-param-state="extraParamState" |
| | | :pro-table-props="proTableProps" |
| | | :reset="reset" |
| | | :open-dialog="openDialog" |
| | | ></DeclareEnterpriseTableView> |
| | | <MateriaDetailDialog |
| | | v-bind="dialogProps" |
| | | :show-upload-btn="false" |
| | | :show-delete-btn="false" |
| | | :show-check-btn="false" |
| | | /> |
| | | </ChunkCellV2> |
| | | </DetailView> |
| | | <template #footer> |
| | | <el-button @click="handleBack">关闭</el-button> |
| | | <el-button @click="handleBack" type="primary">确认</el-button> |
| | | </template> |
| | | </PageFormLayout> |
| | | </AppContainer> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { AppContainer, LoadingLayout, UploadUserFile, PageFormLayout } from '@bole-core/components'; |
| | | import { |
| | | AppContainer, |
| | | LoadingLayout, |
| | | UploadUserFile, |
| | | PageFormLayout, |
| | | useTable, |
| | | useFormDialog, |
| | | } from '@bole-core/components'; |
| | | import DetailView from '@/components/commonView/DetailView.vue'; |
| | | import ChunkCellV2 from '@/components/Layout/ChunkCellV2.vue'; |
| | | import MateriaDetailDialog from '@/components/commonView/MateriaDetailDialog.vue'; |
| | | import DeclareEnterpriseTableView from '@/components/commonView/DeclareEnterpriseTableView.vue'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import * as informationServices from '@/services/api/Information'; |
| | | import { convertApi2FormUrlOnlyOne } from '@/utils'; |
| | | import { useQuery, useQueryClient } from '@tanstack/vue-query'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import * as enterpriseApplyFileServices from '@/services/api/EnterpriseApplyFile'; |
| | | import { convertApi2FormUrlObjectBySeparator, setOSSLink } from '@/utils'; |
| | | import { useRouteView } from '@/hooks'; |
| | | import { OrderInputType } from '@bole-core/core'; |
| | | import { EnterpriseTypeText } from '@/constants'; |
| | | import { FourStreamsMaterialFileTableItem } from '@/components/commonView/types'; |
| | | import { useIndustrialParkDropDownList } from '@/hooks/industrialPark'; |
| | | import { |
| | | CustomerApplyFileTypeListItem, |
| | | EnterpriseApplyFileUtils, |
| | | FourStreamsMaterialUtils, |
| | | } from '@/components/commonView/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'RewardDeclareDetail', |
| | |
| | | const route = useRoute(); |
| | | const { closeViewPush } = useRouteView(); |
| | | const id = route.params?.id as string; |
| | | const state = reactive({ |
| | | detail: { |
| | | categoryName: '', |
| | | amount: 0, |
| | | url: [] as UploadUserFile[], |
| | | }, |
| | | const form = reactive({ |
| | | batchNo: '', |
| | | parkName: '', |
| | | parkTypeName: '', |
| | | applyMonth: '', |
| | | applySumAmount: 0, |
| | | enterpriseTaxSubFileUrl: [] as UploadUserFile[], |
| | | enterpriseOperateFileUrl: [] as UploadUserFile[], |
| | | enterpriseRelateFileUrl: [] as UploadUserFile[], |
| | | parkCollectFileList: [] as CustomerApplyFileTypeListItem[], |
| | | bountyAssignFileUlr: [] as UploadUserFile[], |
| | | bountyCollectFileUrl: [] as UploadUserFile[], |
| | | }); |
| | | |
| | | const tableRef = ref<InstanceType<typeof DeclareEnterpriseTableView>>(); |
| | | |
| | | const { data: detail, isLoading } = useQuery({ |
| | | queryKey: ['informationServices/getInformationShowDetail', id], |
| | | queryKey: ['parkBountyApplyServices/getParkBountyApplyDetail', id], |
| | | queryFn: async () => { |
| | | return await informationServices.getInformationShowDetail( |
| | | { id: id }, |
| | | return await parkBountyApplyServices.getParkBountyApplyDetailBaseInfo( |
| | | { parkBountyApplyId: id }, |
| | | { |
| | | showLoading: false, |
| | | } |
| | | ); |
| | | }, |
| | | placeholderData: () => ({} as API.InformationShowDetailDto), |
| | | placeholderData: () => ({} as API.OutCheckParkBountyApplyBaseInfo), |
| | | onSuccess(data) { |
| | | state.detail.categoryName = data.categoryName; |
| | | state.detail.amount = data.attentionCount; |
| | | state.detail.url = convertApi2FormUrlOnlyOne(data.avatarUrl); |
| | | form.batchNo = data.batchNo; |
| | | form.parkName = data.parkName; |
| | | form.parkTypeName = data.parkTypeName; |
| | | form.applyMonth = data.applyMonth; |
| | | form.applySumAmount = data.applySumAmount; |
| | | 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 |
| | | ); |
| | | |
| | | tableRef.value?.getList(); |
| | | getList(); |
| | | }, |
| | | }); |
| | | |
| | | const { |
| | | getDataSource: getList, |
| | | proTableProps, |
| | | paginationState, |
| | | extraParamState, |
| | | reset, |
| | | } = useTable( |
| | | async ({ pageIndex, pageSize }, extraParamState) => { |
| | | try { |
| | | let params: API.GetParkBountyApplyInfoInput = { |
| | | pageModel: { |
| | | rows: pageSize, |
| | | page: pageIndex, |
| | | orderInput: extraParamState.orderInput, |
| | | }, |
| | | searchKeyWord: extraParamState.searchKeyWord, |
| | | parkBountyApplyId: id, |
| | | }; |
| | | let res = await parkBountyApplyServices.getOutCheckParkBountyApplyDetailList(params); |
| | | return res; |
| | | } catch (error) {} |
| | | }, |
| | | { |
| | | defaultExtraParams: { |
| | | orderInput: [{ property: 'parkBountyApplyId', order: OrderInputType.Desc }], |
| | | searchKeyWord: '', |
| | | }, |
| | | columnsRenderProps: { |
| | | authType: { type: 'enum', valueEnum: EnterpriseTypeText }, |
| | | licenseUrl: { |
| | | type: 'urlV2', |
| | | formatter: (row: API.UserCertificationAuditListDto) => setOSSLink(row.licenseUrl), |
| | | }, |
| | | }, |
| | | } |
| | | ); |
| | | |
| | | const { dialogProps, handleAdd, editForm } = useFormDialog({ |
| | | defaultFormParams: { |
| | | list: [] as CustomerApplyFileTypeListItem[], |
| | | companyId: '', |
| | | }, |
| | | }); |
| | | |
| | | const { getIndustrialParkTypeNameById } = useIndustrialParkDropDownList(); |
| | | const queryClient = useQueryClient(); |
| | | async function openDialog(row: API.ParkBountyApplyDetailInfo) { |
| | | try { |
| | | const applyFiles = await queryClient.ensureQueryData({ |
| | | queryKey: [ |
| | | 'enterpriseApplyFileServices/getCustomerUploadApplyFiles', |
| | | row.enterpriseId, |
| | | form.applyMonth, |
| | | ], |
| | | queryFn: async () => { |
| | | return await enterpriseApplyFileServices.getCustomerUploadApplyFiles({ |
| | | enterpriseId: row.enterpriseId, |
| | | withMonth: form.applyMonth, |
| | | }); |
| | | }, |
| | | }); |
| | | const lastUploadEnterPactFile = await queryClient.ensureQueryData({ |
| | | queryKey: ['enterpriseApplyFileServices/getCustomerUploadApplyFiles', row.enterpriseId], |
| | | queryFn: async () => { |
| | | return await parkBountyApplyServices.getEnterpriseLastUploadEnterPactFileNew({ |
| | | companyId: row.enterpriseId, |
| | | }); |
| | | }, |
| | | }); |
| | | |
| | | const applyUploadFiles = await parkBountyApplyServices.getEnterpriseParkApplyUploadFiles({ |
| | | companyId: row.enterpriseId, |
| | | parkBountyApplyId: id, |
| | | }); |
| | | handleAdd({ |
| | | list: EnterpriseApplyFileUtils.initParkCollectFileListApplyFiles( |
| | | applyUploadFiles, |
| | | applyFiles, |
| | | lastUploadEnterPactFile |
| | | ), |
| | | companyId: row.enterpriseId, |
| | | }); |
| | | } catch (error) {} |
| | | // handleEdit({ |
| | | // list: FourStreamsMaterialUtils.initFourStreamsMaterialFileList( |
| | | // row, |
| | | // getIndustrialParkTypeNameById(detail.value?.parkId) |
| | | // ), |
| | | // companyId: row.enterpriseId, |
| | | // }); |
| | | } |
| | | |
| | | function handleBack() { |
| | | closeViewPush(route, { |
| | | name: 'RewardGrant', |