From 44f10c278aae48b8793ae7309488c24494e69866 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 18 十一月 2025 14:46:19 +0800
Subject: [PATCH] fix: s

---
 src/views/MaterialReview/MaterialReReviewList.vue |  155 ++++++++++++++++++++++++++++-----------------------
 1 files changed, 84 insertions(+), 71 deletions(-)

diff --git a/src/views/MaterialReview/MaterialReReviewList.vue b/src/views/MaterialReview/MaterialReReviewList.vue
index d9283cc..39f1213 100644
--- a/src/views/MaterialReview/MaterialReReviewList.vue
+++ b/src/views/MaterialReview/MaterialReReviewList.vue
@@ -3,6 +3,17 @@
     <AppContainer>
       <ProTableQueryFilterBar @on-reset="reset">
         <template #query>
+          <QueryFilterItem>
+            <FieldSelect
+              v-model="extraParamState.industrialParkId"
+              placeholder="璇烽�夋嫨鍥尯"
+              :value-enum="fourStreamsIndustrialParkList"
+              enumLabelKey="parkName"
+              enum-value-key="id"
+              clearable
+              @change="getList()"
+            />
+          </QueryFilterItem>
           <QueryFilterItem tip-content="鐢虫姤鏃ユ湡">
             <FieldDatePicker
               v-model="extraParamState.creationTime"
@@ -16,7 +27,7 @@
           </QueryFilterItem>
           <QueryFilterItem tip-content="瀹℃牳鏃ユ湡">
             <FieldDatePicker
-              v-model="extraParamState.outCheckTime"
+              v-model="extraParamState.outReCheckTime"
               type="daterange"
               range-separator="~"
               start-placeholder="寮�濮嬫棩鏈�"
@@ -27,7 +38,7 @@
           </QueryFilterItem>
           <QueryFilterItem>
             <FieldRadio
-              v-model="extraParamState.outCheckStatus"
+              v-model="extraParamState.outReCheckStatus"
               :value-enum="BountyCheckStatusEnumText"
               buttonStyle
               showAllBtn
@@ -48,6 +59,7 @@
 
       <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
       </ProTableV2>
+      <ParkBountyApplyRedoDialog v-bind="dialogProps" />
     </AppContainer>
   </LoadingLayout>
 </template>
@@ -64,96 +76,58 @@
   FieldRadio,
   QueryFilterItem,
   FieldDatePicker,
+  FieldSelect,
+  useFormDialog,
 } from '@bole-core/components';
-import { OrderInputType } from '@bole-core/core';
+import { Message, OrderInputType } from '@bole-core/core';
 import { format } from '@/utils';
 import { BountyCheckStatusEnum, BountyCheckStatusEnumText, DataRangeEnumText } from '@/constants';
 import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
 import _ from 'lodash';
 import { ModelValueType } from 'element-plus';
-import { useGlobalEventContext } from '@/hooks';
+import { useAccess, useGlobalEventContext, useIndustrialParkDropDownList } from '@/hooks';
+import ParkBountyApplyRedoDialog from './components/ParkBountyApplyRedoDialog.vue';
 
 defineOptions({
   name: 'MaterialReviewList',
 });
 
-const column: API.CustomModuleColumnDto[] = [
-  {
-    id: '1',
-    enCode: 'batchNo',
-    name: '鐢宠鎵规鍙�',
-  },
-  {
-    id: '2',
-    enCode: 'parkName',
-    name: '鐢宠鍥尯',
-  },
-  {
-    id: '3',
-    enCode: 'parkTypeName',
-    name: '鍥尯绫诲瀷',
-  },
-  {
-    id: '4',
-    enCode: 'applyMonth',
-    name: '鐢宠濂栧姳閲戞湀浠�',
-  },
-  {
-    id: '5',
-    enCode: 'applySumAmount',
-    name: '濂栧姳閲戞眹鎬婚噾棰濓紙鍏冿級',
-  },
-  {
-    id: '6',
-    enCode: 'creationTime',
-    name: '鐢虫姤鏃ユ湡',
-  },
-  {
-    id: '7',
-    enCode: 'outCheckAuditOperator',
-    name: '瀹℃牳浜�',
-  },
-  {
-    id: '8',
-    enCode: 'outCheckTime',
-    name: '瀹℃牳鏃ユ湡',
-  },
-  {
-    id: '9',
-    enCode: 'outCheckStatus',
-    name: '瀹℃牳鐘舵��',
-  },
-];
-
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'detailBtn',
-      name: '璇︽儏',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  detailBtn: {
     emits: {
       onClick: (role) => goDetail(role),
     },
   },
-  {
-    data: {
-      enCode: 'auditBtn',
-      name: '瀹℃牳',
-    },
+  auditBtn: {
     emits: {
       onClick: (role) => goAudit(role),
     },
     extraProps: {
       hide: (row: API.GetParkBountyApplyListOutput) =>
-        row.outCheckStatus !== BountyCheckStatusEnum.WaitCheck,
+        row.outReCheckStatus !== BountyCheckStatusEnum.WaitCheck,
     },
   },
-]);
+  redoBtn: {
+    emits: {
+      onClick: (role) => openDialog(role),
+    },
+    extraProps: {
+      hide: (row: API.GetParkBountyApplyListOutput) =>
+        row.outReCheckStatus !== BountyCheckStatusEnum.CheckPassed,
+    },
+  },
+};
+
+const { checkSubModuleItemShow, column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 const BaseState = {
   loading: true,
 };
+
+const { fourStreamsIndustrialParkList } = useIndustrialParkDropDownList();
 
 const state = reactive({ ...BaseState });
 
@@ -184,11 +158,16 @@
           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'),
+        industrialParkId: extraParamState.industrialParkId,
       };
       let res = await parkBountyApplyServices.getOutcheckParkBountyList(params, {
         showLoading: !state.loading,
@@ -199,17 +178,20 @@
   {
     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 }],
+      industrialParkId: '',
     },
     columnsRenderProps: {
       applyMonth: { type: 'date', format: 'YYYY骞碝M鏈�' },
       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 },
     },
   }
 );
@@ -220,14 +202,45 @@
     params: {
       id: row.id,
     },
+    query: {
+      type: 'reReview',
+    },
   });
 }
 function goAudit(row: API.GetParkBountyApplyListOutput) {
   router.push({
-    name: 'MaterialReviewAudit',
+    name: 'MaterialReReviewAudit',
     params: {
       id: row.id,
     },
   });
 }
+
+function openDialog(row: API.GetParkBountyApplyListOutput) {
+  handleAdd({
+    parkBountyApplyId: row.id,
+  });
+}
+
+const { dialogProps, handleAdd, editForm } = useFormDialog({
+  onConfirm: outcheckParkBountyApplyReRedoed,
+  defaultFormParams: {
+    reasonForWithdrawal: '',
+    parkBountyApplyId: '',
+  },
+});
+
+async function outcheckParkBountyApplyReRedoed() {
+  try {
+    let params: API.OutcheckParkBountyApplyRedoedInput = {
+      parkBountyApplyId: editForm.parkBountyApplyId,
+      reasonForWithdrawal: editForm.reasonForWithdrawal,
+    };
+    let res = await parkBountyApplyServices.outcheckParkBountyApplyReRedoed(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
+  } catch (error) {}
+}
 </script>

--
Gitblit v1.9.1