| | |
| | | import { Colors } from './enum'; |
| | | |
| | | export enum BountyCheckStatusEnum { |
| | | /**已撤回 */ |
| | | Redoed = -20, |
| | | /** |
| | | * 未提交 |
| | | */ |
| | |
| | | [BountyCheckStatusEnum.CheckPassed]: '审核通过', |
| | | [BountyCheckStatusEnum.CheckReject]: '审核未通过', |
| | | }; |
| | | |
| | | export const BountyCheckStatusEnumTextForDisplay = { |
| | | [BountyCheckStatusEnum.Redoed]: '已撤回', |
| | | ...BountyCheckStatusEnumText, |
| | | }; |
| | | |
| | | export const BountyCheckStatusEnumTextForAudit = { |
| | | [BountyCheckStatusEnum.CheckPassed]: '审核通过', |
| | | [BountyCheckStatusEnum.CheckReject]: '驳回', |
| | |
| | | icon: 'home', |
| | | }, |
| | | }, |
| | | { |
| | | path: '/MaterialReReviewAudit/:id', |
| | | name: 'MaterialReReviewAudit', |
| | | hidden: true, |
| | | component: () => import('@/views/MaterialReview/MaterialReReviewAudit.vue'), |
| | | meta: { |
| | | rank: 10021, |
| | | title: '复审', |
| | | // rootMenu: true, |
| | | icon: 'home', |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | |
| | |
| | | userId?: string; |
| | | } |
| | | |
| | | type BountyCheckStatusEnum = 10 | 20 | 30 | -10; |
| | | type BountyCheckStatusEnum = 10 | 20 | 30 | -20 | -10; |
| | | |
| | | interface BuildRewardStatisticsInput { |
| | | /** 开始统计月份 */ |
| | |
| | | settleStatus?: SettleStatusEnum; |
| | | incomeStatus?: IncomeStatusEnum; |
| | | financeStatus?: FinanceStatusEnum; |
| | | /** 外部复审核起始日期 */ |
| | | outReCheckTimeBegin?: string; |
| | | /** 外部复审核结束日期 */ |
| | | outReCheckTimeEnd?: string; |
| | | outReCheckStatus?: BountyCheckStatusEnum; |
| | | } |
| | | |
| | | interface GetParkBountyApplyListOutput { |
| | |
| | | inCheckAuditOperator?: string; |
| | | /** 外部审核人 */ |
| | | outCheckAuditOperator?: string; |
| | | /** 外部复审核人 */ |
| | | outReCheckAuditOperator?: string; |
| | | /** 平台拨付入账跟财政拨付入账操作人 */ |
| | | incomeAndFinanceIncomeOperator?: string; |
| | | /** 平台拨付登记跟财政拨付登记操作人 */ |
| | | settleAndFinanceOperator?: string; |
| | | outReCheckStatus?: BountyCheckStatusEnum; |
| | | /** 政务端复审时间 */ |
| | | outReCheckTime?: string; |
| | | } |
| | | |
| | | interface GetParkBountyApplyListOutputPageOutput { |
| | |
| | | collectCountListFiles?: CustomerUploadMonthApplyFileTypeDto[]; |
| | | /** 总的额外补充材料 */ |
| | | extraListFiles?: CustomerUploadMonthApplyFileTypeDto[]; |
| | | outReCheckStatus?: BountyCheckStatusEnum; |
| | | /** 政务端复审备注 */ |
| | | outReCheckRemark?: string; |
| | | } |
| | | |
| | | interface OutcheckParkBountyApplyInput { |
| New file |
| | |
| | | <template> |
| | | <MaterialReviewAuditView :confirm="confirm"></MaterialReviewAuditView> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { useQuery, useQueryClient } from '@tanstack/vue-query'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import { useGlobalEventContext, useRouteView } from '@/hooks'; |
| | | import { Message } from '@bole-core/core'; |
| | | import { EnterpriseApplyFileUtils } from '@/components/commonView/utils'; |
| | | import MaterialReviewAuditView from './components/MaterialReviewAuditView.vue'; |
| | | import { Form } from './components/materialReviewAudit'; |
| | | |
| | | defineOptions({ |
| | | name: 'MaterialReReviewAudit', |
| | | }); |
| | | |
| | | const route = useRoute(); |
| | | const eventContext = useGlobalEventContext(); |
| | | const { closeViewPush } = useRouteView(); |
| | | const id = route.params?.id as string; |
| | | |
| | | function handleBack() { |
| | | closeViewPush(route, { |
| | | name: 'MaterialReReviewList', |
| | | }); |
| | | } |
| | | |
| | | const queryClient = useQueryClient(); |
| | | |
| | | async function confirm(form: Form) { |
| | | try { |
| | | let params: API.OutReCheckParkBountyApplyInput = { |
| | | parkBountyApplyId: id, |
| | | outReCheckStatus: form.status, |
| | | remark: form.remark, |
| | | extraListFiles: EnterpriseApplyFileUtils.convertFileTableListToApiBatch(form.extraListFiles), |
| | | }; |
| | | let res = await parkBountyApplyServices.outReCheckParkBountyApply(params); |
| | | if (res) { |
| | | Message.successMessage('操作成功'); |
| | | eventContext.emit('materialReviewAudit:audit'); |
| | | queryClient.invalidateQueries({ |
| | | queryKey: ['parkBountyApplyServices/getGoverDataBoard'], |
| | | }); |
| | | handleBack(); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | </script> |
| | |
| | | </QueryFilterItem> |
| | | <QueryFilterItem tip-content="审核日期"> |
| | | <FieldDatePicker |
| | | v-model="extraParamState.outCheckTime" |
| | | v-model="extraParamState.outReCheckTime" |
| | | type="daterange" |
| | | range-separator="~" |
| | | start-placeholder="开始日期" |
| | |
| | | </QueryFilterItem> |
| | | <QueryFilterItem> |
| | | <FieldRadio |
| | | v-model="extraParamState.outCheckStatus" |
| | | v-model="extraParamState.outReCheckStatus" |
| | | :value-enum="BountyCheckStatusEnumText" |
| | | buttonStyle |
| | | showAllBtn |
| | |
| | | name: '申报日期', |
| | | }, |
| | | { |
| | | id: '7', |
| | | id: '6-1', |
| | | enCode: 'outCheckAuditOperator', |
| | | name: '审核人', |
| | | name: '初审人', |
| | | }, |
| | | { |
| | | id: '6-2', |
| | | enCode: 'outCheckTime', |
| | | name: '初审日期', |
| | | }, |
| | | { |
| | | id: '6-3', |
| | | enCode: 'outCheckStatus', |
| | | name: '初审状态', |
| | | }, |
| | | { |
| | | id: '7', |
| | | enCode: 'outReCheckAuditOperator', |
| | | name: '复审人', |
| | | }, |
| | | { |
| | | id: '8', |
| | | enCode: 'outCheckTime', |
| | | name: '审核日期', |
| | | enCode: 'outReCheckTime', |
| | | name: '复审日期', |
| | | }, |
| | | { |
| | | id: '9', |
| | | enCode: 'outCheckStatus', |
| | | name: '审核状态', |
| | | enCode: 'outReCheckStatus', |
| | | name: '复审状态', |
| | | }, |
| | | ]; |
| | | |
| | |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetParkBountyApplyListOutput) => |
| | | row.outCheckStatus !== BountyCheckStatusEnum.WaitCheck, |
| | | row.outReCheckStatus !== BountyCheckStatusEnum.WaitCheck, |
| | | }, |
| | | }, |
| | | ]); |
| | |
| | | orderInput: extraParamState.orderInput, |
| | | }, |
| | | batchNo: extraParamState.batchNo, |
| | | outCheckStatus: extraParamState.outCheckStatus, |
| | | outCheckStatus: BountyCheckStatusEnum.CheckPassed, |
| | | outReCheckStatus: extraParamState.outReCheckStatus, |
| | | creationTimeBegin: format(extraParamState.creationTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), |
| | | creationTimeEnd: format(extraParamState.creationTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), |
| | | outCheckTimeBegin: format(extraParamState.outCheckTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), |
| | | outCheckTimeEnd: format(extraParamState.outCheckTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), |
| | | outReCheckTimeBegin: format( |
| | | extraParamState.outReCheckTime?.[0] ?? '', |
| | | 'YYYY-MM-DD 00:00:00' |
| | | ), |
| | | outReCheckTimeEnd: format(extraParamState.outReCheckTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), |
| | | }; |
| | | let res = await parkBountyApplyServices.getOutcheckParkBountyList(params, { |
| | | showLoading: !state.loading, |
| | |
| | | { |
| | | defaultExtraParams: { |
| | | batchNo: '', |
| | | outCheckStatus: '' as any as BountyCheckStatusEnum, |
| | | outReCheckStatus: '' as any as BountyCheckStatusEnum, |
| | | creationTime: [] as unknown as ModelValueType, |
| | | outCheckTime: [] as unknown as ModelValueType, |
| | | outReCheckTime: [] as unknown as ModelValueType, |
| | | orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }], |
| | | }, |
| | | columnsRenderProps: { |
| | | applyMonth: { type: 'date', format: 'YYYY年MM月' }, |
| | | creationTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | outCheckTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | outReCheckTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | applySumAmount: { type: 'money', precision: 2 }, |
| | | outCheckStatus: { type: 'enum', valueEnum: BountyCheckStatusEnumText }, |
| | | outReCheckStatus: { type: 'enum', valueEnum: BountyCheckStatusEnumText }, |
| | | }, |
| | | } |
| | | ); |
| | |
| | | params: { |
| | | id: row.id, |
| | | }, |
| | | query: { |
| | | type: 'reReview', |
| | | }, |
| | | }); |
| | | } |
| | | function goAudit(row: API.GetParkBountyApplyListOutput) { |
| | | router.push({ |
| | | name: 'MaterialReviewAudit', |
| | | name: 'MaterialReReviewAudit', |
| | | params: { |
| | | id: row.id, |
| | | }, |
| | |
| | | <template> |
| | | <LoadingLayout> |
| | | <AppContainer> |
| | | <PageFormLayout title="申报审核"> |
| | | <DetailView :form="form" :has-form="true" :isEdit="false"> |
| | | <ChunkCellV2 title="申报企业名单" class="chunk-cell-table"> |
| | | <DeclareEnterpriseTableView |
| | | :getList="getList" |
| | | :extra-param-state="extraParamState" |
| | | :pro-table-props="proTableProps" |
| | | :reset="reset" |
| | | :column="addRewardApplyStep3Columns" |
| | | :operationBtns="operationBtns" |
| | | ></DeclareEnterpriseTableView> |
| | | <MateriaDetailDialog |
| | | v-bind="dialogProps" |
| | | :show-upload-btn="false" |
| | | :show-delete-btn="false" |
| | | showMaterialExtraFileUploadBtn |
| | | showMaterialExtraFileDeleteBtn |
| | | /> |
| | | </ChunkCellV2> |
| | | <ChunkCell> |
| | | <ProForm :model="form" ref="formRef" label-width="120px"> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 |
| | | label="申报审核:" |
| | | prop="status" |
| | | :check-rules="[{ message: '请选择审核状态' }]" |
| | | > |
| | | <ProFormRadio |
| | | v-model="form.status" |
| | | :value-enum="BountyCheckStatusEnumTextForAudit" |
| | | /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol v-if="form.status === BountyCheckStatusEnum.CheckReject"> |
| | | <ProFormColItem> |
| | | <ProFormItemV2 |
| | | label="驳回原因:" |
| | | prop="remark" |
| | | :check-rules="[{ message: '请输入驳回原因' }]" |
| | | > |
| | | <ProFormTextArea |
| | | v-model="form.remark" |
| | | placeholder="请输入" |
| | | show-word-limit |
| | | :maxlength="200" |
| | | ></ProFormTextArea> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | </ProForm> |
| | | </ChunkCell> |
| | | </DetailView> |
| | | <template #footer> |
| | | <el-button @click="handleBack">关闭</el-button> |
| | | <el-button type="primary" @click="handleConfirm()">提交</el-button> |
| | | </template> |
| | | </PageFormLayout> |
| | | </AppContainer> |
| | | </LoadingLayout> |
| | | <MaterialReviewAuditView :confirm="confirm"></MaterialReviewAuditView> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { |
| | | AppContainer, |
| | | ProForm, |
| | | ChunkCell, |
| | | ProFormCol, |
| | | ProFormColItem, |
| | | ProFormItemV2, |
| | | ProFormTextArea, |
| | | ProFormRadio, |
| | | LoadingLayout, |
| | | PageFormLayout, |
| | | } from '@bole-core/components'; |
| | | import { |
| | | BountyCheckStatusEnum, |
| | | BountyCheckStatusEnumTextForAudit, |
| | | useAddRewardApplyStep3Columns, |
| | | } from '@/constants'; |
| | | import ChunkCellV2 from '@/components/Layout/ChunkCellV2.vue'; |
| | | import DetailView from '@/components/commonView/DetailView.vue'; |
| | | import DeclareEnterpriseTableView from '@/components/commonView/DeclareEnterpriseTableView.vue'; |
| | | import MateriaDetailDialog from '@/components/commonView/MateriaDetailDialog.vue'; |
| | | import { useQuery, useQueryClient } from '@tanstack/vue-query'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import { useDeclareEnterpriseTable, useGlobalEventContext, useRouteView } from '@/hooks'; |
| | | import { FormInstance } from 'element-plus'; |
| | | import { useGlobalEventContext, useRouteView } from '@/hooks'; |
| | | import { Message } from '@bole-core/core'; |
| | | import { useIndustrialParkDropDownList } from '@/hooks/industrialPark'; |
| | | import { |
| | | CustomerApplyFileTypeListItem, |
| | | EnterpriseApplyFileUtils, |
| | | } from '@/components/commonView/utils'; |
| | | import { EnterpriseApplyFileUtils } from '@/components/commonView/utils'; |
| | | import MaterialReviewAuditView from './components/MaterialReviewAuditView.vue'; |
| | | import { Form } from './components/materialReviewAudit'; |
| | | |
| | | defineOptions({ |
| | | name: 'MaterialReviewAudit', |
| | |
| | | const eventContext = useGlobalEventContext(); |
| | | const { closeViewPush } = useRouteView(); |
| | | const id = route.params?.id as string; |
| | | const form = reactive({ |
| | | batchNo: '', |
| | | parkName: '', |
| | | parkTypeName: '', |
| | | applyMonth: '', |
| | | applySumAmount: 0, |
| | | financeSumAmount: 0, |
| | | settleSumAmount: 0, |
| | | parkCollectFileList: [] as CustomerApplyFileTypeListItem[], |
| | | calculationFileList: [] as CustomerApplyFileTypeListItem[], |
| | | extraListFiles: [] as CustomerApplyFileTypeListItem[], |
| | | |
| | | status: '' as any as BountyCheckStatusEnum, |
| | | remark: '', |
| | | |
| | | suportPlatRecharge: false, |
| | | suportFinance: false, |
| | | }); |
| | | |
| | | const { addRewardApplyStep3Columns } = useAddRewardApplyStep3Columns({ |
| | | suportPlatRecharge: toRef(form, 'suportPlatRecharge'), |
| | | suportFinance: toRef(form, 'suportFinance'), |
| | | }); |
| | | |
| | | const { extraParamState, getList, reset, proTableProps, operationBtns, dialogProps } = |
| | | useDeclareEnterpriseTable({ |
| | | id: ref(id), |
| | | applyMonth: toRef(form, 'applyMonth'), |
| | | enableUploadExtraFiles: true, |
| | | }); |
| | | |
| | | const { data: detail, isLoading } = useQuery({ |
| | | queryKey: ['parkBountyApplyServices/getOutCheckParkBountyApplyDetailBaseInfo', id], |
| | | queryFn: async () => { |
| | | return await parkBountyApplyServices.getOutCheckParkBountyApplyDetailBaseInfo( |
| | | { parkBountyApplyId: id }, |
| | | { |
| | | showLoading: false, |
| | | } |
| | | ); |
| | | }, |
| | | placeholderData: () => ({} as API.OutCheckParkBountyApplyBaseInfo), |
| | | onSuccess(data) { |
| | | form.batchNo = data.batchNo; |
| | | form.parkName = data.parkName; |
| | | form.parkTypeName = data.parkTypeName; |
| | | form.applyMonth = data.applyMonth; |
| | | form.applySumAmount = data.applySumAmount; |
| | | form.financeSumAmount = data.financeSumAmount; |
| | | form.settleSumAmount = data.settleSumAmount; |
| | | form.parkCollectFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList( |
| | | data.listFiles |
| | | ); |
| | | form.calculationFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList( |
| | | data.collectCountListFiles |
| | | ); |
| | | form.extraListFiles = EnterpriseApplyFileUtils.convertApiFileToExtraListFiles( |
| | | data.extraListFiles |
| | | ); |
| | | |
| | | form.suportPlatRecharge = data.suportPlatRecharge; |
| | | form.suportFinance = data.suportFinance; |
| | | |
| | | getList(); |
| | | }, |
| | | }); |
| | | |
| | | function handleBack() { |
| | | closeViewPush(route, { |
| | |
| | | }); |
| | | } |
| | | |
| | | const formRef = ref<FormInstance>(); |
| | | function handleConfirm() { |
| | | if (!formRef.value) return; |
| | | formRef.value.validate((valid) => { |
| | | if (valid) { |
| | | confirm(); |
| | | } else { |
| | | return; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | const queryClient = useQueryClient(); |
| | | async function confirm() { |
| | | |
| | | async function confirm(form: Form) { |
| | | try { |
| | | let params: API.OutcheckParkBountyApplyInput = { |
| | | parkBountyApplyId: id, |
| | |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | |
| | | const { getIndustrialParkTypeNameById } = useIndustrialParkDropDownList(); |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @use '@/style/common.scss' as *; |
| | | </style> |
| | |
| | | <template #title> |
| | | <div class="page-form-layout-title"> |
| | | 申报详情 |
| | | <template v-if="isReReview"> |
| | | <span class="page-form-layout-title-item status"> |
| | | 审核状态:<span :style="{ color: BountyCheckStatusEnumColor[form.outCheckStatus] }">{{ |
| | | BountyCheckStatusEnumText[form.outCheckStatus] |
| | | }}</span> |
| | | 复审状态:<span |
| | | :style="{ color: BountyCheckStatusEnumColor[form.outReCheckStatus] }" |
| | | >{{ BountyCheckStatusEnumText[form.outCheckStatus] }}</span |
| | | > |
| | | </span> |
| | | <span class="page-form-layout-title-item remark"> |
| | | <TextOverTooltip v-if="form.outCheckStatus === BountyCheckStatusEnum.CheckReject"> |
| | | {{ `复审未通过原因:${form.outCheckRemark ?? ''}` }} |
| | | </TextOverTooltip> |
| | | </span> |
| | | </template> |
| | | <template v-else> |
| | | <span class="page-form-layout-title-item status"> |
| | | 审核状态:<span |
| | | :style="{ color: BountyCheckStatusEnumColor[form.outCheckStatus] }" |
| | | >{{ BountyCheckStatusEnumText[form.outCheckStatus] }}</span |
| | | > |
| | | </span> |
| | | <span class="page-form-layout-title-item remark"> |
| | | <TextOverTooltip v-if="form.outCheckStatus === BountyCheckStatusEnum.CheckReject"> |
| | | {{ `审核未通过原因:${form.outCheckRemark ?? ''}` }} |
| | | </TextOverTooltip> |
| | | </span> |
| | | </template> |
| | | </div> |
| | | </template> |
| | | <DetailView :form="form"> |
| | |
| | | const route = useRoute(); |
| | | const { closeViewPush } = useRouteView(); |
| | | const id = route.params?.id as string; |
| | | const type = route.query?.type as string; |
| | | //是否复审 |
| | | const isReReview = type === 'reReview'; |
| | | const form = reactive({ |
| | | batchNo: '', |
| | | parkName: '', |
| | |
| | | |
| | | outCheckStatus: '' as any as BountyCheckStatusEnum, |
| | | outCheckRemark: '', |
| | | |
| | | outReCheckStatus: '' as any as BountyCheckStatusEnum, |
| | | outReCheckRemark: '', |
| | | |
| | | suportPlatRecharge: false, |
| | | suportFinance: false, |
| | |
| | | form.settleSumAmount = data.settleSumAmount; |
| | | form.outCheckStatus = data.outCheckStatus; |
| | | form.outCheckRemark = data.outCheckRemark; |
| | | form.outReCheckStatus = data.outReCheckStatus; |
| | | form.outReCheckRemark = data.outReCheckRemark; |
| | | form.parkCollectFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList( |
| | | data.listFiles |
| | | ); |
| New file |
| | |
| | | <template> |
| | | <LoadingLayout> |
| | | <AppContainer> |
| | | <PageFormLayout title="申报审核"> |
| | | <DetailView :form="form" :has-form="true" :isEdit="false"> |
| | | <ChunkCellV2 title="申报企业名单" class="chunk-cell-table"> |
| | | <DeclareEnterpriseTableView |
| | | :getList="getList" |
| | | :extra-param-state="extraParamState" |
| | | :pro-table-props="proTableProps" |
| | | :reset="reset" |
| | | :column="addRewardApplyStep3Columns" |
| | | :operationBtns="operationBtns" |
| | | ></DeclareEnterpriseTableView> |
| | | <MateriaDetailDialog |
| | | v-bind="dialogProps" |
| | | :show-upload-btn="false" |
| | | :show-delete-btn="false" |
| | | showMaterialExtraFileUploadBtn |
| | | showMaterialExtraFileDeleteBtn |
| | | /> |
| | | </ChunkCellV2> |
| | | <ChunkCell> |
| | | <ProForm :model="form" ref="formRef" label-width="120px"> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 |
| | | label="申报审核:" |
| | | prop="status" |
| | | :check-rules="[{ message: '请选择审核状态' }]" |
| | | > |
| | | <ProFormRadio |
| | | v-model="form.status" |
| | | :value-enum="BountyCheckStatusEnumTextForAudit" |
| | | /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol v-if="form.status === BountyCheckStatusEnum.CheckReject"> |
| | | <ProFormColItem> |
| | | <ProFormItemV2 |
| | | label="驳回原因:" |
| | | prop="remark" |
| | | :check-rules="[{ message: '请输入驳回原因' }]" |
| | | > |
| | | <ProFormTextArea |
| | | v-model="form.remark" |
| | | placeholder="请输入" |
| | | show-word-limit |
| | | :maxlength="200" |
| | | ></ProFormTextArea> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | </ProForm> |
| | | </ChunkCell> |
| | | </DetailView> |
| | | <template #footer> |
| | | <el-button @click="handleBack">关闭</el-button> |
| | | <el-button type="primary" @click="handleConfirm()">提交</el-button> |
| | | </template> |
| | | </PageFormLayout> |
| | | </AppContainer> |
| | | </LoadingLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { |
| | | AppContainer, |
| | | ProForm, |
| | | ChunkCell, |
| | | ProFormCol, |
| | | ProFormColItem, |
| | | ProFormItemV2, |
| | | ProFormTextArea, |
| | | ProFormRadio, |
| | | LoadingLayout, |
| | | PageFormLayout, |
| | | } from '@bole-core/components'; |
| | | import { |
| | | BountyCheckStatusEnum, |
| | | BountyCheckStatusEnumTextForAudit, |
| | | useAddRewardApplyStep3Columns, |
| | | } from '@/constants'; |
| | | import ChunkCellV2 from '@/components/Layout/ChunkCellV2.vue'; |
| | | import DetailView from '@/components/commonView/DetailView.vue'; |
| | | import DeclareEnterpriseTableView from '@/components/commonView/DeclareEnterpriseTableView.vue'; |
| | | import MateriaDetailDialog from '@/components/commonView/MateriaDetailDialog.vue'; |
| | | import { useQuery, useQueryClient } from '@tanstack/vue-query'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import { useDeclareEnterpriseTable, useGlobalEventContext, useRouteView } from '@/hooks'; |
| | | import { FormInstance } from 'element-plus'; |
| | | import { |
| | | CustomerApplyFileTypeListItem, |
| | | EnterpriseApplyFileUtils, |
| | | } from '@/components/commonView/utils'; |
| | | import { Form } from './materialReviewAudit'; |
| | | |
| | | defineOptions({ |
| | | name: 'MaterialReviewAuditView', |
| | | }); |
| | | |
| | | type Props = { |
| | | confirm?: (form: Form) => Promise<void>; |
| | | handleBack?: () => any; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | | |
| | | const route = useRoute(); |
| | | const id = route.params?.id as string; |
| | | const form = reactive({ |
| | | batchNo: '', |
| | | parkName: '', |
| | | parkTypeName: '', |
| | | applyMonth: '', |
| | | applySumAmount: 0, |
| | | financeSumAmount: 0, |
| | | settleSumAmount: 0, |
| | | parkCollectFileList: [] as CustomerApplyFileTypeListItem[], |
| | | calculationFileList: [] as CustomerApplyFileTypeListItem[], |
| | | extraListFiles: [] as CustomerApplyFileTypeListItem[], |
| | | |
| | | status: '' as any as BountyCheckStatusEnum, |
| | | remark: '', |
| | | |
| | | suportPlatRecharge: false, |
| | | suportFinance: false, |
| | | }); |
| | | |
| | | const { addRewardApplyStep3Columns } = useAddRewardApplyStep3Columns({ |
| | | suportPlatRecharge: toRef(form, 'suportPlatRecharge'), |
| | | suportFinance: toRef(form, 'suportFinance'), |
| | | }); |
| | | |
| | | const { extraParamState, getList, reset, proTableProps, operationBtns, dialogProps } = |
| | | useDeclareEnterpriseTable({ |
| | | id: ref(id), |
| | | applyMonth: toRef(form, 'applyMonth'), |
| | | enableUploadExtraFiles: true, |
| | | }); |
| | | |
| | | const { data: detail, isLoading } = useQuery({ |
| | | queryKey: ['parkBountyApplyServices/getOutCheckParkBountyApplyDetailBaseInfo', id], |
| | | queryFn: async () => { |
| | | return await parkBountyApplyServices.getOutCheckParkBountyApplyDetailBaseInfo( |
| | | { parkBountyApplyId: id }, |
| | | { |
| | | showLoading: false, |
| | | } |
| | | ); |
| | | }, |
| | | placeholderData: () => ({} as API.OutCheckParkBountyApplyBaseInfo), |
| | | onSuccess(data) { |
| | | form.batchNo = data.batchNo; |
| | | form.parkName = data.parkName; |
| | | form.parkTypeName = data.parkTypeName; |
| | | form.applyMonth = data.applyMonth; |
| | | form.applySumAmount = data.applySumAmount; |
| | | form.financeSumAmount = data.financeSumAmount; |
| | | form.settleSumAmount = data.settleSumAmount; |
| | | form.parkCollectFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList( |
| | | data.listFiles |
| | | ); |
| | | form.calculationFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList( |
| | | data.collectCountListFiles |
| | | ); |
| | | form.extraListFiles = EnterpriseApplyFileUtils.convertApiFileToExtraListFiles( |
| | | data.extraListFiles |
| | | ); |
| | | |
| | | form.suportPlatRecharge = data.suportPlatRecharge; |
| | | form.suportFinance = data.suportFinance; |
| | | |
| | | getList(); |
| | | }, |
| | | }); |
| | | |
| | | function handleBack() { |
| | | props.handleBack?.(); |
| | | // closeViewPush(route, { |
| | | // name: props.backRouteName, |
| | | // }); |
| | | } |
| | | |
| | | const formRef = ref<FormInstance>(); |
| | | function handleConfirm() { |
| | | if (!formRef.value) return; |
| | | formRef.value.validate((valid) => { |
| | | if (valid) { |
| | | props.confirm?.(form); |
| | | } else { |
| | | return; |
| | | } |
| | | }); |
| | | } |
| | | </script> |
| New file |
| | |
| | | import { BountyCheckStatusEnum } from '@/constants'; |
| | | import { CustomerApplyFileTypeListItem } from '@/components/commonView/utils'; |
| | | |
| | | export type Form = { |
| | | extraListFiles: CustomerApplyFileTypeListItem[]; |
| | | |
| | | status: BountyCheckStatusEnum; |
| | | remark: string; |
| | | }; |