From 39a0dc276d7a567548b314a94b5f812c6a8b1d17 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 30 十月 2025 16:59:09 +0800
Subject: [PATCH] fix: 3.4.2.10
---
src/views/BalanceManage/components/ConsumeRecordView.vue | 34 ++++++++++-
src/services/api/typings.d.ts | 9 +++
src/components/Dialog/ParkBountyTradeDetailFileDialog.vue | 123 +++++++++++++++++++++++++++++++++++++++++
src/views/Home/Home.vue | 3 +
4 files changed, 166 insertions(+), 3 deletions(-)
diff --git a/src/components/Dialog/ParkBountyTradeDetailFileDialog.vue b/src/components/Dialog/ParkBountyTradeDetailFileDialog.vue
new file mode 100644
index 0000000..d6ba211
--- /dev/null
+++ b/src/components/Dialog/ParkBountyTradeDetailFileDialog.vue
@@ -0,0 +1,123 @@
+<template>
+ <ProDialog title="鏂囦欢鍒楄〃" v-model="visible" @close="onDialogClose" destroy-on-close draggable>
+ <ProForm :model="form" ref="dialogForm" label-width="110px" is-read class="audit-file-form">
+ <ProFormItemV2
+ label="骞冲彴瀹℃壒鍑瘉:"
+ prop="selfAuditFileUrl"
+ v-if="form?.selfAuditFileUrl?.length > 0"
+ >
+ <ProFormUpload
+ v-model:file-url="form.selfAuditFileUrl"
+ :limitFileSize="50"
+ accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
+ ></ProFormUpload>
+ </ProFormItemV2>
+ <ProFormItemV2
+ label="鍑鸿处瀹℃壒鍑瘉:"
+ prop="payAuditFileUrl"
+ v-if="form?.payAuditFileUrl?.length > 0"
+ >
+ <ProFormUpload
+ v-model:file-url="form.payAuditFileUrl"
+ :limitFileSize="50"
+ accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
+ ></ProFormUpload>
+ </ProFormItemV2>
+ <ProFormItemV2
+ label="璐㈡斂瀹℃壒鍑瘉:"
+ prop="financeAuditFileUrl"
+ v-if="form?.financeAuditFileUrl?.length > 0"
+ >
+ <ProFormUpload
+ v-model:file-url="form.financeAuditFileUrl"
+ :limitFileSize="50"
+ accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
+ ></ProFormUpload>
+ </ProFormItemV2>
+ <ProFormItemV2 label="鍑鸿处鍑瘉:" prop="payFileUrl" v-if="form?.payFileUrl?.length > 0">
+ <ProFormUpload
+ v-model:file-url="form.payFileUrl"
+ :limitFileSize="50"
+ accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
+ ></ProFormUpload>
+ </ProFormItemV2>
+ <ProFormItemV2 label="淇濆崟鏂囦欢:" prop="insureBillUrl" v-if="form?.insureBillUrl?.length > 0">
+ <ProFormUpload
+ v-model:file-url="form.insureBillUrl"
+ :limitFileSize="50"
+ accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
+ ></ProFormUpload>
+ </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,
+ ProFormText,
+ UploadUserFile,
+ ProFormUpload,
+} from '@bole-core/components';
+
+defineOptions({
+ name: 'ParkBountyTradeDetailFileDialog',
+});
+
+// type Props = {};
+
+// const props = withDefaults(defineProps<Props>(), {});
+
+const visible = defineModel({ type: Boolean });
+
+type Form = {
+ title?: string;
+ payAuditFileUrl: UploadUserFile[];
+ financeAuditFileUrl: UploadUserFile[];
+ selfAuditFileUrl: UploadUserFile[];
+ payFileUrl: UploadUserFile[];
+ insureBillUrl: UploadUserFile[];
+};
+
+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>
+
+<style lang="scss" scoped>
+.audit-file-form {
+ .el-form-item {
+ margin-bottom: 22px;
+ }
+}
+</style>
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index a69d6dc..a7161b0 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -680,6 +680,9 @@
incomeBankName?: string;
enterpriseId?: string;
selfAuditStatus?: EnumParkBountyTradeDetailAuditStatus;
+ auditType?: EnumParkBountyTradeDetailAuditType;
+ /** 姹熺淇濊嚜涓诲嚭璐﹀叧鑱斾繚鍗昳d */
+ insurancePolicyId?: string;
}
interface CreateTempTokenInput {
@@ -756,6 +759,8 @@
type EnumAmountUpdateType = 10 | 20;
type EnumParkBountyTradeDetailAuditStatus = 10 | 20 | 30;
+
+ type EnumParkBountyTradeDetailAuditType = 10 | 100;
interface ExportInsuranceStaffListInput {
status?: InsuranceDetailStatusEnum;
@@ -1226,6 +1231,10 @@
selfAuditFileUrl?: string;
creationTime?: string;
bountyAmount?: number;
+ /** 瀹℃牳鍑瘉 */
+ financeAuditFileUrl?: string;
+ /** 姹熺淇濅笂浼犵殑淇濆崟鏂囦欢 */
+ insureBillUrl?: string;
}
interface GetParkBountyTradeDetailOutputPageOutput {
diff --git a/src/views/BalanceManage/components/ConsumeRecordView.vue b/src/views/BalanceManage/components/ConsumeRecordView.vue
index 087967e..bb9c7d4 100644
--- a/src/views/BalanceManage/components/ConsumeRecordView.vue
+++ b/src/views/BalanceManage/components/ConsumeRecordView.vue
@@ -2,14 +2,15 @@
<LoadingLayout :loading="state.loading">
<AppContainer>
<ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
- <template #operationBtn-checkBtn="{ data, row }">
+ <!-- <template #operationBtn-checkBtn="{ data, row }">
<PreviewBtnV2
class="pro-table-operation-btn"
:url="convertApi2FormUrlBySeparator(row.payFileUrl ?? '')"
preview-btn-text="鏌ョ湅鍑瘉"
/>
- </template>
+ </template> -->
</ProTableV2>
+ <ParkBountyTradeDetailFileDialog v-bind="dialogProps" />
</AppContainer>
</LoadingLayout>
</template>
@@ -21,10 +22,16 @@
PreviewBtnV2,
ProTableV2,
defineOperationBtns,
+ useFormDialog,
+ UploadUserFile,
} from '@bole-core/components';
import { OrderInputType } from '@bole-core/core';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
-import { convertApi2FormUrlBySeparator } from '@/utils';
+import {
+ convertApi2FormUrlBySeparator,
+ convertApi2FormUrlObjectBySeparator,
+ convertApi2FormUrlOnlyOne,
+} from '@/utils';
import { FinanceTypeEnumText } from '@/constants';
defineOptions({
@@ -64,6 +71,7 @@
enCode: 'checkBtn',
name: '鏌ョ湅鍑瘉',
},
+ emits: { onClick: (role) => openDialog(role) },
},
]);
@@ -116,6 +124,26 @@
await getList();
state.loading = false;
});
+
+function openDialog(row: API.GetParkBountyTradeDetailOutput) {
+ handleAdd({
+ payAuditFileUrl: convertApi2FormUrlObjectBySeparator(row.payAuditFileUrl),
+ financeAuditFileUrl: convertApi2FormUrlObjectBySeparator(row.financeAuditFileUrl),
+ selfAuditFileUrl: convertApi2FormUrlObjectBySeparator(row.selfAuditFileUrl),
+ payFileUrl: convertApi2FormUrlObjectBySeparator(row.payFileUrl),
+ insureBillUrl: convertApi2FormUrlObjectBySeparator(row.insureBillUrl),
+ });
+}
+
+const { dialogProps, handleAdd } = useFormDialog({
+ defaultFormParams: {
+ payAuditFileUrl: [] as UploadUserFile[],
+ financeAuditFileUrl: [] as UploadUserFile[],
+ selfAuditFileUrl: [] as UploadUserFile[],
+ payFileUrl: [] as UploadUserFile[],
+ insureBillUrl: [] as UploadUserFile[],
+ },
+});
</script>
<style lang="scss" scoped>
diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue
index 748ed15..0a9f426 100644
--- a/src/views/Home/Home.vue
+++ b/src/views/Home/Home.vue
@@ -735,6 +735,7 @@
function handleParkBountyApplyTradeBySelf(row: API.GetInsurancePageOutput) {
handleDisbursementAdd({
remianAmount: row.remianAmount,
+ insurancePolicyId: row.id,
});
}
@@ -745,6 +746,7 @@
} = useFormDialog({
onConfirm: parkBountyApplyTradeBySelf,
defaultFormParams: {
+ insurancePolicyId: '',
payRemark: '',
tradeAmount: 0,
remianAmount: 0,
@@ -769,6 +771,7 @@
incomeBankAccount: editDisbursementForm.incomeBankAccount,
incomeBankCardNumber: editDisbursementForm.incomeBankCardNumber,
incomeBankName: editDisbursementForm.incomeBankName,
+ insurancePolicyId: editDisbursementForm.insurancePolicyId,
};
let res = await parkBountyApplyServices.parkBountyApplyTradeBySelf(params);
if (res) {
--
Gitblit v1.9.1