From 60107cb11e472d693de543e8ec422bfe8e31dbec Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 31 十月 2025 17:30:48 +0800
Subject: [PATCH] Merge branch 'master' into dev-3.4.2.10

---
 src/views/MaterialReview/MaterialReviewAudit.vue |  138 +++++++++------------------------------------
 1 files changed, 28 insertions(+), 110 deletions(-)

diff --git a/src/views/MaterialReview/MaterialReviewAudit.vue b/src/views/MaterialReview/MaterialReviewAudit.vue
index 5039c84..698fbc7 100644
--- a/src/views/MaterialReview/MaterialReviewAudit.vue
+++ b/src/views/MaterialReview/MaterialReviewAudit.vue
@@ -1,110 +1,24 @@
 <template>
-  <LoadingLayout>
-    <AppContainer>
-      <PageFormLayout title="鏉愭枡瀹℃牳">
-        <DetailView :form="state.detail" :has-form="true">
-          <template #table>
-            <DeclareEnterpriseTableView ref="tableRef"></DeclareEnterpriseTableView>
-          </template>
-          <template #form>
-            <ProForm :model="state.form" ref="formRef" label-width="120px">
-              <ProFormCol>
-                <ProFormColItem :span="12">
-                  <ProFormItemV2
-                    label="鐢虫姤瀹℃牳:"
-                    prop="status"
-                    :check-rules="[{ message: '璇烽�夋嫨瀹℃牳鐘舵��' }]"
-                  >
-                    <ProFormRadio v-model="state.form.status" :value-enum="DataRangeEnumText" />
-                  </ProFormItemV2>
-                </ProFormColItem>
-              </ProFormCol>
-              <ProFormCol>
-                <ProFormColItem>
-                  <ProFormItemV2 label="椹冲洖鍘熷洜:" prop="remark">
-                    <ProFormTextArea
-                      v-model="state.form.remark"
-                      placeholder="璇疯緭鍏�"
-                      show-word-limit
-                      :maxlength="200"
-                    ></ProFormTextArea>
-                  </ProFormItemV2>
-                </ProFormColItem>
-              </ProFormCol>
-            </ProForm>
-          </template>
-        </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,
-  ProFormCol,
-  ProFormColItem,
-  ProFormItemV2,
-  ProFormTextArea,
-  ProFormRadio,
-  LoadingLayout,
-  UploadUserFile,
-  PageFormLayout,
-} from '@bole-core/components';
-import { DataRangeEnum, DataRangeEnumText } from '@/constants';
-import DetailView from '@/components/commonView/DetailView.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 { useRouteView } from '@/hooks';
-import { FormInstance } from 'element-plus';
+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: 'MaterialReviewAudit',
 });
 
 const route = useRoute();
+const eventContext = useGlobalEventContext();
 const { closeViewPush } = useRouteView();
 const id = route.params?.id as string;
-const state = reactive({
-  detail: {
-    categoryName: '',
-    amount: 0,
-    url: [] as UploadUserFile[],
-  },
-  form: {
-    status: '' as any as DataRangeEnum,
-    remark: '',
-  },
-});
-
-const tableRef = ref<InstanceType<typeof DeclareEnterpriseTableView>>();
-
-const { data: detail, isLoading } = useQuery({
-  queryKey: ['informationServices/getInformationShowDetail', id],
-  queryFn: async () => {
-    return await informationServices.getInformationShowDetail(
-      { id: id },
-      {
-        showLoading: false,
-      }
-    );
-  },
-  placeholderData: () => ({} as API.InformationShowDetailDto),
-  onSuccess(data) {
-    state.detail.categoryName = data.categoryName;
-    state.detail.amount = data.attentionCount;
-    state.detail.url = convertApi2FormUrlOnlyOne(data.avatarUrl);
-
-    tableRef.value?.getList();
-  },
-});
 
 function handleBack() {
   closeViewPush(route, {
@@ -112,21 +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(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) {}
 }
-
-function confirm() {}
 </script>
-
-<style lang="scss" scoped>
-@use '@/style/common.scss' as *;
-</style>

--
Gitblit v1.9.1