From 368c72d678ec6a1f5b60f109911d190e9c2a2809 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 31 十月 2025 17:30:24 +0800
Subject: [PATCH] fix: 四流

---
 src/views/MaterialReview/MaterialReviewAudit.vue |  187 +++-------------------------------------------
 1 files changed, 12 insertions(+), 175 deletions(-)

diff --git a/src/views/MaterialReview/MaterialReviewAudit.vue b/src/views/MaterialReview/MaterialReviewAudit.vue
index d92dc23..698fbc7 100644
--- a/src/views/MaterialReview/MaterialReviewAudit.vue
+++ b/src/views/MaterialReview/MaterialReviewAudit.vue
@@ -1,89 +1,15 @@
 <template>
-  <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"
-            ></DeclareEnterpriseTableView>
-          </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,
-  UploadUserFile,
-  PageFormLayout,
-  useTable,
-} from '@bole-core/components';
-import {
-  AuthTypeText,
-  BountyCheckStatusEnum,
-  BountyCheckStatusEnumTextForAudit,
-} from '@/constants';
-import ChunkCellV2 from '@/components/Layout/ChunkCellV2.vue';
-import DetailView from '@/components/commonView/DetailView.vue';
-import DeclareEnterpriseTableView from '@/components/commonView/DeclareEnterpriseTableView.vue';
-import { useQuery } from '@tanstack/vue-query';
+import { useQuery, useQueryClient } from '@tanstack/vue-query';
 import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
-import { convertApi2FormUrlOnlyOne, setOSSLink } from '@/utils';
 import { useGlobalEventContext, useRouteView } from '@/hooks';
-import { FormInstance } from 'element-plus';
-import { Message, OrderInputType } from '@bole-core/core';
+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: 'MaterialReviewAudit',
@@ -93,85 +19,6 @@
 const eventContext = useGlobalEventContext();
 const { closeViewPush } = useRouteView();
 const id = route.params?.id as string;
-const form = reactive({
-  batchNo: '',
-  parkName: '',
-  parkTypeName: '',
-  applyMonth: '',
-  applySumAmount: 0,
-  enterpriseTaxSubFileUrl: [] as UploadUserFile[],
-  enterpriseOperateFileUrl: [] as UploadUserFile[],
-  bountyAssignFileUlr: [] as UploadUserFile[],
-  bountyCollectFileUrl: [] as UploadUserFile[],
-
-  status: '' as any as BountyCheckStatusEnum,
-  remark: '',
-});
-
-const { data: detail, isLoading } = useQuery({
-  queryKey: ['parkBountyApplyServices/getOutCheckParkBountyApplyDetailBaseInfo', id],
-  queryFn: async () => {
-    return await parkBountyApplyServices.getOutCheckParkBountyApplyDetailBaseInfo(
-      { parkBountyApplyId: id },
-      {
-        showLoading: false,
-      }
-    );
-  },
-  placeholderData: () => ({} as API.ParkBountyApplyBaseInfo),
-  onSuccess(data) {
-    form.batchNo = data.batchNo;
-    form.parkName = data.parkName;
-    form.parkTypeName = data.parkTypeName;
-    form.applyMonth = data.applyMonth;
-    form.applySumAmount = data.applySumAmount;
-    form.enterpriseTaxSubFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseTaxSubFileUrl);
-    form.enterpriseOperateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseOperateFileUrl);
-    form.bountyAssignFileUlr = convertApi2FormUrlOnlyOne(data?.bountyAssignFileUlr);
-    form.bountyCollectFileUrl = convertApi2FormUrlOnlyOne(data?.bountyCollectFileUrl);
-
-    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: 'enterpriseId', order: OrderInputType.Desc }],
-      searchKeyWord: '',
-    },
-    columnsRenderProps: {
-      authType: { type: 'enum', valueEnum: AuthTypeText },
-      licenseUrl: {
-        type: 'url',
-        formatter: (row: API.UserCertificationAuditListDto) => setOSSLink(row.licenseUrl),
-        modal: true,
-        showDownloadBtn: false,
-      },
-    },
-  }
-);
 
 function handleBack() {
   closeViewPush(route, {
@@ -179,35 +26,25 @@
   });
 }
 
-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,
       outCheckStatus: form.status,
       remark: form.remark,
+      extraListFiles: EnterpriseApplyFileUtils.convertFileTableListToApiBatch(form.extraListFiles),
     };
     let res = await parkBountyApplyServices.outcheckParkBountyApply(params);
     if (res) {
       Message.successMessage('鎿嶄綔鎴愬姛');
       eventContext.emit('materialReviewAudit:audit');
+      queryClient.invalidateQueries({
+        queryKey: ['parkBountyApplyServices/getGoverDataBoard'],
+      });
       handleBack();
     }
   } catch (error) {}
 }
 </script>
-
-<style lang="scss" scoped>
-@use '@/style/common.scss' as *;
-</style>

--
Gitblit v1.9.1