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/MaterialReview.vue | 35 ++++++++
src/views/MaterialReview/MaterialReReviewList.vue | 35 ++++++++
src/constants/reward.ts | 1
src/services/api/typings.d.ts | 8 ++
src/views/MaterialReview/components/ParkBountyApplyRedoDialog.vue | 76 +++++++++++++++++++
src/services/api/ParkBountyApply.ts | 30 +++++++
src/views/MaterialReview/MaterialReviewDetail.vue | 12 ++
7 files changed, 191 insertions(+), 6 deletions(-)
diff --git a/src/constants/reward.ts b/src/constants/reward.ts
index d637c28..3240cec 100644
--- a/src/constants/reward.ts
+++ b/src/constants/reward.ts
@@ -22,6 +22,7 @@
}
export const BountyCheckStatusEnumText = {
+ [BountyCheckStatusEnum.Redoed]: '宸叉挙鍥�',
[BountyCheckStatusEnum.WaitCheck]: '寰呭鏍�',
[BountyCheckStatusEnum.CheckPassed]: '瀹℃牳閫氳繃',
[BountyCheckStatusEnum.CheckReject]: '瀹℃牳鏈�氳繃',
diff --git a/src/services/api/ParkBountyApply.ts b/src/services/api/ParkBountyApply.ts
index 978cf23..b64751b 100644
--- a/src/services/api/ParkBountyApply.ts
+++ b/src/services/api/ParkBountyApply.ts
@@ -931,6 +931,36 @@
});
}
+/** 鏀垮姟绔�-鏉愭枡瀹℃牳-澶栭儴瀹℃牳鎾ゅ洖 POST /api/ParkBountyApply/OutcheckParkBountyApplyRedoed */
+export async function outcheckParkBountyApplyRedoed(
+ body: API.OutcheckParkBountyApplyRedoedInput,
+ options?: API.RequestConfig
+) {
+ return request<number>('/api/ParkBountyApply/OutcheckParkBountyApplyRedoed', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** 澶栭儴瀹℃牳鎾ゅ洖-澶嶅鎾ゅ洖 POST /api/ParkBountyApply/OutcheckParkBountyApplyReRedoed */
+export async function outcheckParkBountyApplyReRedoed(
+ body: API.OutcheckParkBountyApplyRedoedInput,
+ options?: API.RequestConfig
+) {
+ return request<number>('/api/ParkBountyApply/OutcheckParkBountyApplyReRedoed', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
/** 鏀垮姟绔�-鏉愭枡瀹℃牳-澶栭儴澶嶅鏍� POST /api/ParkBountyApply/OutReCheckParkBountyApply */
export async function outReCheckParkBountyApply(
body: API.OutReCheckParkBountyApplyInput,
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index a324258..2bee1ca 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -9374,6 +9374,8 @@
outReCheckStatus?: BountyCheckStatusEnum;
/** 鏀垮姟绔瀹℃椂闂� */
outReCheckTime?: string;
+ /** 鎾ゅ洖鍘熷洜 */
+ reasonForWithdrawal?: string;
}
interface GetParkBountyApplyListOutputPageOutput {
@@ -16676,6 +16678,12 @@
extraListFiles?: CustomerUploadMonthApplyFileTypeDto[];
}
+ interface OutcheckParkBountyApplyRedoedInput {
+ parkBountyApplyId?: string;
+ /** 鎾ゅ洖鍘熷洜 */
+ reasonForWithdrawal?: string;
+ }
+
interface OutReCheckParkBountyApplyInput {
parkBountyApplyId?: string;
outReCheckStatus?: BountyCheckStatusEnum;
diff --git a/src/views/MaterialReview/MaterialReReviewList.vue b/src/views/MaterialReview/MaterialReReviewList.vue
index 43178ac..39f1213 100644
--- a/src/views/MaterialReview/MaterialReReviewList.vue
+++ b/src/views/MaterialReview/MaterialReReviewList.vue
@@ -59,6 +59,7 @@
<ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
</ProTableV2>
+ <ParkBountyApplyRedoDialog v-bind="dialogProps" />
</AppContainer>
</LoadingLayout>
</template>
@@ -76,14 +77,16 @@
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 { useAccess, useGlobalEventContext, useIndustrialParkDropDownList } from '@/hooks';
+import ParkBountyApplyRedoDialog from './components/ParkBountyApplyRedoDialog.vue';
defineOptions({
name: 'MaterialReviewList',
@@ -106,7 +109,7 @@
},
redoBtn: {
emits: {
- onClick: (role) => goAudit(role),
+ onClick: (role) => openDialog(role),
},
extraProps: {
hide: (row: API.GetParkBountyApplyListOutput) =>
@@ -212,4 +215,32 @@
},
});
}
+
+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>
diff --git a/src/views/MaterialReview/MaterialReview.vue b/src/views/MaterialReview/MaterialReview.vue
index 3d9dc5a..29530d4 100644
--- a/src/views/MaterialReview/MaterialReview.vue
+++ b/src/views/MaterialReview/MaterialReview.vue
@@ -59,6 +59,7 @@
<ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
</ProTableV2>
+ <ParkBountyApplyRedoDialog v-bind="dialogProps" />
</AppContainer>
</LoadingLayout>
</template>
@@ -76,14 +77,16 @@
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 { useAccess, useGlobalEventContext, useIndustrialParkDropDownList } from '@/hooks';
+import ParkBountyApplyRedoDialog from './components/ParkBountyApplyRedoDialog.vue';
defineOptions({
name: 'MaterialReviewList',
@@ -106,7 +109,7 @@
},
redoBtn: {
emits: {
- onClick: (role) => goAudit(role),
+ onClick: (role) => openDialog(role),
},
extraProps: {
hide: (row: API.GetParkBountyApplyListOutput) =>
@@ -203,6 +206,34 @@
},
});
}
+
+function openDialog(row: API.GetParkBountyApplyListOutput) {
+ handleAdd({
+ parkBountyApplyId: row.id,
+ });
+}
+
+const { dialogProps, handleAdd, editForm } = useFormDialog({
+ onConfirm: outcheckParkBountyApplyRedoed,
+ defaultFormParams: {
+ reasonForWithdrawal: '',
+ parkBountyApplyId: '',
+ },
+});
+
+async function outcheckParkBountyApplyRedoed() {
+ try {
+ let params: API.OutcheckParkBountyApplyRedoedInput = {
+ parkBountyApplyId: editForm.parkBountyApplyId,
+ reasonForWithdrawal: editForm.reasonForWithdrawal,
+ };
+ let res = await parkBountyApplyServices.outcheckParkBountyApplyRedoed(params);
+ if (res) {
+ Message.successMessage('鎿嶄綔鎴愬姛');
+ getList(paginationState.pageIndex);
+ }
+ } catch (error) {}
+}
</script>
<style lang="scss" scoped>
diff --git a/src/views/MaterialReview/MaterialReviewDetail.vue b/src/views/MaterialReview/MaterialReviewDetail.vue
index cfcbac6..f893421 100644
--- a/src/views/MaterialReview/MaterialReviewDetail.vue
+++ b/src/views/MaterialReview/MaterialReviewDetail.vue
@@ -13,8 +13,11 @@
>
</span>
<span class="page-form-layout-title-item remark">
- <TextOverTooltip v-if="form.outCheckStatus === BountyCheckStatusEnum.CheckReject">
- {{ `澶嶅鏈�氳繃鍘熷洜:${form.outCheckRemark ?? ''}` }}
+ <TextOverTooltip v-if="form.outReCheckStatus === BountyCheckStatusEnum.CheckReject">
+ {{ `澶嶅鏈�氳繃鍘熷洜:${form.outReCheckRemark ?? ''}` }}
+ </TextOverTooltip>
+ <TextOverTooltip v-if="form.outReCheckStatus === BountyCheckStatusEnum.Redoed">
+ {{ `鎾ゅ洖鍘熷洜:${form.reasonForWithdrawal ?? ''}` }}
</TextOverTooltip>
</span>
</template>
@@ -28,6 +31,9 @@
<span class="page-form-layout-title-item remark">
<TextOverTooltip v-if="form.outCheckStatus === BountyCheckStatusEnum.CheckReject">
{{ `瀹℃牳鏈�氳繃鍘熷洜:${form.outCheckRemark ?? ''}` }}
+ </TextOverTooltip>
+ <TextOverTooltip v-if="form.outCheckStatus === BountyCheckStatusEnum.Redoed">
+ {{ `鎾ゅ洖鍘熷洜:${form.reasonForWithdrawal ?? ''}` }}
</TextOverTooltip>
</span>
</template>
@@ -112,6 +118,7 @@
outReCheckStatus: '' as any as BountyCheckStatusEnum,
outReCheckRemark: '',
+ reasonForWithdrawal: '',
suportPlatRecharge: false,
suportFinance: false,
@@ -165,6 +172,7 @@
form.suportPlatRecharge = data.suportPlatRecharge;
form.suportFinance = data.suportFinance;
+ form.reasonForWithdrawal = data.reasonForWithdrawal ?? '';
getList();
},
diff --git a/src/views/MaterialReview/components/ParkBountyApplyRedoDialog.vue b/src/views/MaterialReview/components/ParkBountyApplyRedoDialog.vue
new file mode 100644
index 0000000..bbb6715
--- /dev/null
+++ b/src/views/MaterialReview/components/ParkBountyApplyRedoDialog.vue
@@ -0,0 +1,76 @@
+<template>
+ <ProDialog title="鎾ゅ洖鐢虫姤" v-model="visible" @close="onDialogClose" destroy-on-close draggable>
+ <ProForm :model="form" ref="dialogForm" label-width="110px">
+ <ProFormItemV2
+ label="鎾ゅ洖鍘熷洜"
+ prop="reasonForWithdrawal"
+ :check-rules="[{ message: '璇疯緭鍏ユ挙鍥炲師鍥�' }]"
+ >
+ <ProFormTextArea
+ placeholder="璇疯緭鍏�"
+ v-model="form.reasonForWithdrawal"
+ :maxlength="150"
+ show-word-limit
+ ></ProFormTextArea>
+ </ProFormItemV2>
+ </ProForm>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="emit('onCancel')">鍙� 娑�</el-button>
+ <el-button type="primary" @click="handleConfirm">纭� 瀹�</el-button>
+ </span>
+ </template>
+ </ProDialog>
+</template>
+
+<script setup lang="ts">
+import { FormInstance } from 'element-plus';
+import {
+ ProDialog,
+ ProForm,
+ ProFormItemV2,
+ ProFormTextArea,
+ UploadUserFile,
+} from '@bole-core/components';
+
+defineOptions({
+ name: 'ParkBountyApplyRedoDialog',
+});
+
+// type Props = {};
+
+// const props = withDefaults(defineProps<Props>(), {});
+
+const visible = defineModel({ type: Boolean });
+
+type Form = {
+ title?: string;
+ reasonForWithdrawal: string;
+ parkBountyApplyId: string;
+};
+
+const form = defineModel<Form>('form');
+
+const emit = defineEmits<{
+ (e: 'onConfirm'): void;
+ (e: 'onCancel'): void;
+}>();
+
+const dialogForm = ref<FormInstance>();
+
+function onDialogClose() {
+ if (!dialogForm.value) return;
+ dialogForm.value.resetFields();
+}
+
+function handleConfirm() {
+ if (!dialogForm.value) return;
+ dialogForm.value.validate((valid) => {
+ if (valid) {
+ emit('onConfirm');
+ } else {
+ return;
+ }
+ });
+}
+</script>
--
Gitblit v1.9.1