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/components/materialReviewAudit.ts | 9
src/views/MaterialReview/MaterialReReviewList.vue | 54 +++-
src/constants/reward.ts | 8
src/services/api/typings.d.ts | 15 +
src/router/index.ts | 12 +
src/views/MaterialReview/MaterialReviewDetail.vue | 44 +++-
src/views/MaterialReview/MaterialReReviewAudit.vue | 50 +++++
src/views/MaterialReview/MaterialReviewAudit.vue | 183 -----------------
src/views/MaterialReview/components/MaterialReviewAuditView.vue | 197 +++++++++++++++++++
9 files changed, 370 insertions(+), 202 deletions(-)
diff --git a/src/constants/reward.ts b/src/constants/reward.ts
index 5535c7a..d637c28 100644
--- a/src/constants/reward.ts
+++ b/src/constants/reward.ts
@@ -1,6 +1,8 @@
import { Colors } from './enum';
export enum BountyCheckStatusEnum {
+ /**宸叉挙鍥� */
+ Redoed = -20,
/**
* 鏈彁浜�
*/
@@ -24,6 +26,12 @@
[BountyCheckStatusEnum.CheckPassed]: '瀹℃牳閫氳繃',
[BountyCheckStatusEnum.CheckReject]: '瀹℃牳鏈�氳繃',
};
+
+export const BountyCheckStatusEnumTextForDisplay = {
+ [BountyCheckStatusEnum.Redoed]: '宸叉挙鍥�',
+ ...BountyCheckStatusEnumText,
+};
+
export const BountyCheckStatusEnumTextForAudit = {
[BountyCheckStatusEnum.CheckPassed]: '瀹℃牳閫氳繃',
[BountyCheckStatusEnum.CheckReject]: '椹冲洖',
diff --git a/src/router/index.ts b/src/router/index.ts
index 6a610e0..89c9087 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -195,6 +195,18 @@
icon: 'home',
},
},
+ {
+ path: '/MaterialReReviewAudit/:id',
+ name: 'MaterialReReviewAudit',
+ hidden: true,
+ component: () => import('@/views/MaterialReview/MaterialReReviewAudit.vue'),
+ meta: {
+ rank: 10021,
+ title: '澶嶅',
+ // rootMenu: true,
+ icon: 'home',
+ },
+ },
],
},
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 54b580e..b284341 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -2925,7 +2925,7 @@
userId?: string;
}
- type BountyCheckStatusEnum = 10 | 20 | 30 | -10;
+ type BountyCheckStatusEnum = 10 | 20 | 30 | -20 | -10;
interface BuildRewardStatisticsInput {
/** 寮�濮嬬粺璁℃湀浠� */
@@ -9119,6 +9119,11 @@
settleStatus?: SettleStatusEnum;
incomeStatus?: IncomeStatusEnum;
financeStatus?: FinanceStatusEnum;
+ /** 澶栭儴澶嶅鏍歌捣濮嬫棩鏈� */
+ outReCheckTimeBegin?: string;
+ /** 澶栭儴澶嶅鏍哥粨鏉熸棩鏈� */
+ outReCheckTimeEnd?: string;
+ outReCheckStatus?: BountyCheckStatusEnum;
}
interface GetParkBountyApplyListOutput {
@@ -9180,10 +9185,15 @@
inCheckAuditOperator?: string;
/** 澶栭儴瀹℃牳浜� */
outCheckAuditOperator?: string;
+ /** 澶栭儴澶嶅鏍镐汉 */
+ outReCheckAuditOperator?: string;
/** 骞冲彴鎷ㄤ粯鍏ヨ处璺熻储鏀挎嫧浠樺叆璐︽搷浣滀汉 */
incomeAndFinanceIncomeOperator?: string;
/** 骞冲彴鎷ㄤ粯鐧昏璺熻储鏀挎嫧浠樼櫥璁版搷浣滀汉 */
settleAndFinanceOperator?: string;
+ outReCheckStatus?: BountyCheckStatusEnum;
+ /** 鏀垮姟绔瀹℃椂闂� */
+ outReCheckTime?: string;
}
interface GetParkBountyApplyListOutputPageOutput {
@@ -16410,6 +16420,9 @@
collectCountListFiles?: CustomerUploadMonthApplyFileTypeDto[];
/** 鎬荤殑棰濆琛ュ厖鏉愭枡 */
extraListFiles?: CustomerUploadMonthApplyFileTypeDto[];
+ outReCheckStatus?: BountyCheckStatusEnum;
+ /** 鏀垮姟绔瀹″娉� */
+ outReCheckRemark?: string;
}
interface OutcheckParkBountyApplyInput {
diff --git a/src/views/MaterialReview/MaterialReReviewAudit.vue b/src/views/MaterialReview/MaterialReReviewAudit.vue
new file mode 100644
index 0000000..fa7a81c
--- /dev/null
+++ b/src/views/MaterialReview/MaterialReReviewAudit.vue
@@ -0,0 +1,50 @@
+<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>
diff --git a/src/views/MaterialReview/MaterialReReviewList.vue b/src/views/MaterialReview/MaterialReReviewList.vue
index d9283cc..bb422f0 100644
--- a/src/views/MaterialReview/MaterialReReviewList.vue
+++ b/src/views/MaterialReview/MaterialReReviewList.vue
@@ -16,7 +16,7 @@
</QueryFilterItem>
<QueryFilterItem tip-content="瀹℃牳鏃ユ湡">
<FieldDatePicker
- v-model="extraParamState.outCheckTime"
+ v-model="extraParamState.outReCheckTime"
type="daterange"
range-separator="~"
start-placeholder="寮�濮嬫棩鏈�"
@@ -27,7 +27,7 @@
</QueryFilterItem>
<QueryFilterItem>
<FieldRadio
- v-model="extraParamState.outCheckStatus"
+ v-model="extraParamState.outReCheckStatus"
:value-enum="BountyCheckStatusEnumText"
buttonStyle
showAllBtn
@@ -109,19 +109,34 @@
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: '澶嶅鐘舵��',
},
];
@@ -145,7 +160,7 @@
},
extraProps: {
hide: (row: API.GetParkBountyApplyListOutput) =>
- row.outCheckStatus !== BountyCheckStatusEnum.WaitCheck,
+ row.outReCheckStatus !== BountyCheckStatusEnum.WaitCheck,
},
},
]);
@@ -184,11 +199,15 @@
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,
@@ -199,17 +218,19 @@
{
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骞碝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,11 +241,14 @@
params: {
id: row.id,
},
+ query: {
+ type: 'reReview',
+ },
});
}
function goAudit(row: API.GetParkBountyApplyListOutput) {
router.push({
- name: 'MaterialReviewAudit',
+ name: 'MaterialReReviewAudit',
params: {
id: row.id,
},
diff --git a/src/views/MaterialReview/MaterialReviewAudit.vue b/src/views/MaterialReview/MaterialReviewAudit.vue
index b31b81e..698fbc7 100644
--- a/src/views/MaterialReview/MaterialReviewAudit.vue
+++ b/src/views/MaterialReview/MaterialReviewAudit.vue
@@ -1,101 +1,15 @@
<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',
@@ -105,72 +19,6 @@
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, {
@@ -178,20 +26,9 @@
});
}
-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,
@@ -210,10 +47,4 @@
}
} catch (error) {}
}
-
-const { getIndustrialParkTypeNameById } = useIndustrialParkDropDownList();
</script>
-
-<style lang="scss" scoped>
-@use '@/style/common.scss' as *;
-</style>
diff --git a/src/views/MaterialReview/MaterialReviewDetail.vue b/src/views/MaterialReview/MaterialReviewDetail.vue
index 1b3d8e9..cfcbac6 100644
--- a/src/views/MaterialReview/MaterialReviewDetail.vue
+++ b/src/views/MaterialReview/MaterialReviewDetail.vue
@@ -5,16 +5,32 @@
<template #title>
<div class="page-form-layout-title">
鐢虫姤璇︽儏
- <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 v-if="isReReview">
+ <span class="page-form-layout-title-item status">
+ 澶嶅鐘舵��:<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">
@@ -75,6 +91,9 @@
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: '',
@@ -90,6 +109,9 @@
outCheckStatus: '' as any as BountyCheckStatusEnum,
outCheckRemark: '',
+
+ outReCheckStatus: '' as any as BountyCheckStatusEnum,
+ outReCheckRemark: '',
suportPlatRecharge: false,
suportFinance: false,
@@ -129,6 +151,8 @@
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
);
diff --git a/src/views/MaterialReview/components/MaterialReviewAuditView.vue b/src/views/MaterialReview/components/MaterialReviewAuditView.vue
new file mode 100644
index 0000000..b60976d
--- /dev/null
+++ b/src/views/MaterialReview/components/MaterialReviewAuditView.vue
@@ -0,0 +1,197 @@
+<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>
diff --git a/src/views/MaterialReview/components/materialReviewAudit.ts b/src/views/MaterialReview/components/materialReviewAudit.ts
new file mode 100644
index 0000000..054cd67
--- /dev/null
+++ b/src/views/MaterialReview/components/materialReviewAudit.ts
@@ -0,0 +1,9 @@
+import { BountyCheckStatusEnum } from '@/constants';
+import { CustomerApplyFileTypeListItem } from '@/components/commonView/utils';
+
+export type Form = {
+ extraListFiles: CustomerApplyFileTypeListItem[];
+
+ status: BountyCheckStatusEnum;
+ remark: string;
+};
--
Gitblit v1.9.1