| | |
| | | <template> |
| | | <div>MaterialReviewAudit</div> |
| | | <LoadingLayout> |
| | | <AppContainer> |
| | | <PageFormLayout title="申报审核"> |
| | | <DetailView :form="form" :has-form="true"> |
| | | <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" |
| | | :show-check-btn="false" |
| | | /> |
| | | </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 { Message } from '@bole-core/core'; |
| | | import { useIndustrialParkDropDownList } from '@/hooks/industrialPark'; |
| | | import { |
| | | CustomerApplyFileTypeListItem, |
| | | EnterpriseApplyFileUtils, |
| | | } from '@/components/commonView/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'MaterialReviewAudit', |
| | | }); |
| | | |
| | | const route = useRoute(); |
| | | 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[], |
| | | |
| | | status: '' as any as BountyCheckStatusEnum, |
| | | remark: '', |
| | | |
| | | suportPlatRecharge: false, |
| | | }); |
| | | |
| | | const { addRewardApplyStep3Columns } = useAddRewardApplyStep3Columns({ |
| | | suportPlatRecharge: toRef(form, 'suportPlatRecharge'), |
| | | }); |
| | | |
| | | const { extraParamState, getList, reset, proTableProps, operationBtns, dialogProps } = |
| | | useDeclareEnterpriseTable({ |
| | | id: ref(id), |
| | | applyMonth: toRef(form, 'applyMonth'), |
| | | }); |
| | | |
| | | 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.suportPlatRecharge = data.suportPlatRecharge; |
| | | |
| | | getList(); |
| | | }, |
| | | }); |
| | | |
| | | function handleBack() { |
| | | closeViewPush(route, { |
| | | name: 'MaterialReviewList', |
| | | }); |
| | | } |
| | | |
| | | 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() { |
| | | try { |
| | | let params: API.OutcheckParkBountyApplyInput = { |
| | | parkBountyApplyId: id, |
| | | outCheckStatus: form.status, |
| | | remark: form.remark, |
| | | }; |
| | | let res = await parkBountyApplyServices.outcheckParkBountyApply(params); |
| | | if (res) { |
| | | Message.successMessage('操作成功'); |
| | | eventContext.emit('materialReviewAudit:audit'); |
| | | queryClient.invalidateQueries({ |
| | | queryKey: ['parkBountyApplyServices/getGoverDataBoard'], |
| | | }); |
| | | handleBack(); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | |
| | | const { getIndustrialParkTypeNameById } = useIndustrialParkDropDownList(); |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |