From a2d490cc8d10e7b4cedb23919f088bf67a6dc20e Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 16 十月 2025 17:05:30 +0800
Subject: [PATCH] fix: s
---
src/views/Home/components/DisbursementDialog.vue | 184 ++++++++++++++++++++++++++
vite.config.ts | 9
src/constants/insuranceClaim.ts | 7 +
src/services/api/typings.d.ts | 57 ++++++++
src/services/api/ParkBountyApply.ts | 30 ++++
src/views/Home/Home.vue | 61 ++++++++
src/services/api/InsuranceOrder.ts | 15 ++
7 files changed, 359 insertions(+), 4 deletions(-)
diff --git a/src/constants/insuranceClaim.ts b/src/constants/insuranceClaim.ts
index 8256abd..f543380 100644
--- a/src/constants/insuranceClaim.ts
+++ b/src/constants/insuranceClaim.ts
@@ -207,3 +207,10 @@
[InsuranceDetailStatusEnum.Effecting]: '宸茬敓鏁�',
[InsuranceDetailStatusEnum.OutTimeEffect]: '宸茶繃鏈�',
};
+
+export const DefaultTaiPingAccountInfo = {
+ incomeCompanyName: '澶钩璐骇淇濋櫓鏈夐檺鍏徃鎶氬窞涓績鏀叕鍙�',
+ incomeBankAccount: '澶钩璐骇淇濋櫓鏈夐檺鍏徃鎶氬窞涓績鏀叕鍙�',
+ incomeBankCardNumber: '1511200129200156069',
+ incomeBankName: '涓浗宸ュ晢閾惰鑲′唤鏈夐檺鍏徃鎶氬窞璧d笢鏀',
+};
diff --git a/src/services/api/InsuranceOrder.ts b/src/services/api/InsuranceOrder.ts
index d1696f9..7cc1407 100644
--- a/src/services/api/InsuranceOrder.ts
+++ b/src/services/api/InsuranceOrder.ts
@@ -166,6 +166,21 @@
});
}
+/** 鑾峰彇鎶曚繚璁㈠崟璇︽儏 POST /api/InsuranceOrder/GetInsuranceDetail */
+export async function getInsuranceDetail(
+ body: API.GetInsurancePageInput,
+ options?: API.RequestConfig
+) {
+ return request<API.GetInsurancePageOutput>('/api/InsuranceOrder/GetInsuranceDetail', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
/** 鑾峰彇鎶曚繚浜哄憳瀹℃牳璁板綍 GET /api/InsuranceOrder/GetInsuranceOrderAuditRecord/${param1} */
export async function getInsuranceOrderAuditRecordId(
// 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
diff --git a/src/services/api/ParkBountyApply.ts b/src/services/api/ParkBountyApply.ts
index 2f27c0b..44fb7c0 100644
--- a/src/services/api/ParkBountyApply.ts
+++ b/src/services/api/ParkBountyApply.ts
@@ -17,6 +17,21 @@
});
}
+/** 濂栧姳閲�-浼佷笟鑷韩鍑鸿处-瀹℃壒 POST /api/ParkBountyApply/AuditParkBountyApplyTradeBySelf */
+export async function auditParkBountyApplyTradeBySelf(
+ body: API.AuditParkBountyTradeBySelfInput,
+ options?: API.RequestConfig
+) {
+ return request<number>('/api/ParkBountyApply/AuditParkBountyApplyTradeBySelf', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
/** 濂栧姳閲�-鍑鸿处-璐㈠姟瀹℃壒 POST /api/ParkBountyApply/FinanceAuditParkBountyApplyTrade */
export async function financeAuditParkBountyApplyTrade(
body: API.AuditParkBountyTradeInput,
@@ -82,3 +97,18 @@
...(options || {}),
});
}
+
+/** 濂栧姳閲�-绾夸笅鎶曚繚 浼佷笟鑷韩鎻愬嚭鍑鸿处鐢宠 POST /api/ParkBountyApply/ParkBountyApplyTradeBySelf */
+export async function parkBountyApplyTradeBySelf(
+ body: API.CreateParkBountyTradeInput,
+ options?: API.RequestConfig
+) {
+ return request<number>('/api/ParkBountyApply/ParkBountyApplyTradeBySelf', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 819658b..7769d30 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -466,6 +466,16 @@
values?: Record<string, any>;
}
+ interface AuditParkBountyTradeBySelfInput {
+ /** 鍑鸿处璁板綍Id */
+ id?: string;
+ selfAuditStatus?: EnumParkBountyTradeDetailAuditStatus;
+ /** 瀹℃牳澶囨敞 */
+ selfAuditRemark?: string;
+ /** 瀹℃牳鍑瘉 */
+ selfAuditFileUrl?: string;
+ }
+
interface AuditParkBountyTradeInput {
/** 鍑鸿处璁板綍Id */
id?: string;
@@ -654,7 +664,6 @@
}
interface CreateParkBountyTradeInput {
- enterpriseId?: string;
/** 鏈�杩戝嚭璐﹂噾棰� */
tradeAmount?: number;
/** 鍑鸿处鍑瘉 */
@@ -662,6 +671,18 @@
/** 娑堣垂绫诲瀷 */
payRemark?: string;
access?: ParkBountyTradeAccessEnum;
+ /** 杩涜处鍗曚綅 */
+ incomeCompanyName?: string;
+ /** 淇濆崟鍙� */
+ insureBillNo?: string;
+ /** 鏀舵鍗曚綅鍚嶇О */
+ incomeBankAccount?: string;
+ /** 鏀舵鍗曚綅璐﹀彿 */
+ incomeBankCardNumber?: string;
+ /** 寮�鎴疯 */
+ incomeBankName?: string;
+ enterpriseId?: string;
+ selfAuditStatus?: EnumParkBountyTradeDetailAuditStatus;
}
interface CreateTempTokenInput {
@@ -971,6 +992,8 @@
payStatus?: InsurancePolicyListPayStatusEnum;
/** 浠绘剰鍒嗘壒鏀粯瀹屾垚 */
anyPayComplete?: boolean;
+ /** 濂栧姳閲戜綑棰� */
+ remianAmount?: number;
}
interface GetInsurancePageOutputPageOutput {
@@ -1080,8 +1103,14 @@
transferTimeBegin?: string;
/** 鍑鸿处缁撴潫鏃ユ湡 */
transferTimeEnd?: string;
+ /** 鐢宠璧峰鏃ユ湡 */
+ creationTimeBegin?: string;
+ /** 鐢宠缁撴潫鏃ユ湡 */
+ creationTimeEnd?: string;
+ financeType?: FinanceTypeEnum;
enterpriseId?: string;
auditStatus?: EnumParkBountyTradeDetailAuditStatus;
+ selfAuditStatus?: EnumParkBountyTradeDetailAuditStatus;
}
interface GetParkBountyTradeDetailOutput {
@@ -1107,6 +1136,8 @@
/** 濂栧姳閲戜綑棰� */
remianAmount?: number;
financeType?: FinanceTypeEnum;
+ /** 瀹℃牳鏃堕棿 */
+ financeAuditTime?: string;
auditStatus?: EnumParkBountyTradeDetailAuditStatus;
/** 瀹℃牳澶囨敞 */
auditRemark?: string;
@@ -1114,6 +1145,25 @@
auditTime?: string;
/** 瀹℃牳鍑瘉 */
payAuditFileUrl?: string;
+ /** 杩涜处鍗曚綅 */
+ incomeCompanyName?: string;
+ /** 淇濆崟鍙� */
+ insureBillNo?: string;
+ /** 鏀舵鍗曚綅鍚嶇О */
+ incomeBankAccount?: string;
+ /** 鏀舵鍗曚綅璐﹀彿 */
+ incomeBankCardNumber?: string;
+ /** 寮�鎴疯 */
+ incomeBankName?: string;
+ selfAuditStatus?: EnumParkBountyTradeDetailAuditStatus;
+ /** 浼佷笟鑷韩鍑鸿处瀹℃牳澶囨敞 */
+ selfAuditRemark?: string;
+ /** 浼佷笟鑷韩鍑鸿处瀹℃牳鏃堕棿 */
+ selfAuditTime?: string;
+ /** 浼佷笟鑷韩瀹℃牳鍑瘉 */
+ selfAuditFileUrl?: string;
+ creationTime?: string;
+ bountyAmount?: number;
}
interface GetParkBountyTradeDetailOutputPageOutput {
@@ -1130,6 +1180,11 @@
transferTimeBegin?: string;
/** 鍑鸿处缁撴潫鏃ユ湡 */
transferTimeEnd?: string;
+ /** 鐢宠璧峰鏃ユ湡 */
+ creationTimeBegin?: string;
+ /** 鐢宠缁撴潫鏃ユ湡 */
+ creationTimeEnd?: string;
+ financeType?: FinanceTypeEnum;
}
interface GetParkBountyTradeOutput {
diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue
index b9b7bf6..3af683d 100644
--- a/src/views/Home/Home.vue
+++ b/src/views/Home/Home.vue
@@ -114,6 +114,7 @@
<UploadStampFileDialog v-bind="dialogStampFileProps" />
<InsureInstructionsDialog v-bind="dialogInstructionsProps" />
<InsureLineModeSelectDialog v-bind="dialogLineModeSelectProps" />
+ <DisbursementDialog v-bind="dialogDisbursementProps" />
</LoadingLayout>
</template>
@@ -135,6 +136,7 @@
useDialog,
} from '@bole-core/components';
import * as insuranceOrderServices from '@/services/api/InsuranceOrder';
+import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import { Message, OrderInputType, downloadFileByUrl } from '@bole-core/core';
import { columns, InsureLineMode } from './constants';
import UploadInsurePersonDialog from './components/UploadInsurePersonDialog.vue';
@@ -168,6 +170,7 @@
import _ from 'lodash';
import InsureInstructionsDialog from './components/InsureInstructionsDialog.vue';
import InsureLineModeSelectDialog from './components/InsureLineModeSelectDialog.vue';
+import DisbursementDialog from './components/DisbursementDialog.vue';
import { useInsureProductSchemeAllList, useUserInsureProductSetting } from '@/hooks';
// import { Recorder } from '@/utils/record';
@@ -289,6 +292,18 @@
extraProps: {
hide: (row: API.GetInsurancePageOutput) =>
row.auditStatus != InsurancePolicyAuditStatusEnum.WaitAdd,
+ },
+ },
+ {
+ data: {
+ enCode: 'applyTradeBySelfBtn',
+ name: '鍑鸿处鐢宠',
+ },
+ emits: {
+ onClick: (role) => handleParkBountyApplyTradeBySelf(role),
+ },
+ extraProps: {
+ hide: (row: API.GetInsurancePageOutput) => row.productOnline,
},
},
]).filter(Boolean);
@@ -713,4 +728,50 @@
}
} catch (error) {}
}
+
+function handleParkBountyApplyTradeBySelf(row: API.GetInsurancePageOutput) {
+ handleDisbursementAdd({
+ remianAmount: row.remianAmount,
+ });
+}
+
+const {
+ dialogProps: dialogDisbursementProps,
+ handleAdd: handleDisbursementAdd,
+ editForm: editDisbursementForm,
+} = useFormDialog({
+ onConfirm: parkBountyApplyTradeBySelf,
+ defaultFormParams: {
+ payRemark: '',
+ tradeAmount: 0,
+ remianAmount: 0,
+ payFileUrl: [] as UploadUserFile[],
+
+ incomeCompanyName: '',
+ insureBillNo: '',
+ incomeBankAccount: '',
+ incomeBankCardNumber: '',
+ incomeBankName: '',
+ },
+});
+
+async function parkBountyApplyTradeBySelf() {
+ try {
+ let params: API.CreateParkBountyTradeInput = {
+ tradeAmount: editDisbursementForm.tradeAmount,
+ payFileUrl: editDisbursementForm.payFileUrl.map((item) => item.url).join('|'),
+ payRemark: editDisbursementForm.payRemark,
+ incomeCompanyName: editDisbursementForm.incomeCompanyName,
+ insureBillNo: editDisbursementForm.insureBillNo,
+ incomeBankAccount: editDisbursementForm.incomeBankAccount,
+ incomeBankCardNumber: editDisbursementForm.incomeBankCardNumber,
+ incomeBankName: editDisbursementForm.incomeBankName,
+ };
+ let res = await parkBountyApplyServices.parkBountyApplyTradeBySelf(params);
+ if (res) {
+ Message.successMessage('鎿嶄綔鎴愬姛');
+ getList(paginationState.pageIndex);
+ }
+ } catch (error) {}
+}
</script>
diff --git a/src/views/Home/components/DisbursementDialog.vue b/src/views/Home/components/DisbursementDialog.vue
new file mode 100644
index 0000000..ba45f8f
--- /dev/null
+++ b/src/views/Home/components/DisbursementDialog.vue
@@ -0,0 +1,184 @@
+<template>
+ <ProDialog
+ title="娑堣垂"
+ v-model="innerVisible"
+ destroy-on-close
+ draggable
+ bodyNoPaddingBottom
+ @close="onDialogClose"
+ width="600px"
+ >
+ <ProForm :model="innerForm" ref="dialogForm" label-width="120px">
+ <ProFormItemV2
+ label="杈撳叆鍑鸿处閲戦:"
+ prop="tradeAmount"
+ :check-rules="[{ message: '璇疯緭鍏ュ嚭璐﹂噾棰�', type: 'number' }]"
+ >
+ <ProFormInputNumber
+ :max="innerForm.remianAmount"
+ v-model.trim="innerForm.tradeAmount"
+ :controls="false"
+ :min="0"
+ :precision="2"
+ unit="鍏�"
+ />
+ </ProFormItemV2>
+ <ProFormItemV2
+ label="娑堣垂绫诲瀷:"
+ prop="payRemark"
+ :check-rules="[{ message: '璇烽�夋嫨娑堣垂绫诲瀷' }]"
+ >
+ <ProFormSelect
+ placeholder="璇烽�夋嫨娑堣垂绫诲瀷"
+ :value-enum="[
+ {
+ value: '淇濋櫓浜у搧璐拱',
+ label: '淇濋櫓浜у搧璐拱',
+ },
+ ]"
+ clearable
+ v-model="innerForm.payRemark"
+ ></ProFormSelect>
+ </ProFormItemV2>
+ <ProFormItemV2
+ label="杩涜处鍗曚綅:"
+ prop="incomeCompanyName"
+ :check-rules="[{ message: '璇疯緭鍏ヨ繘璐﹀崟浣�' }]"
+ >
+ <ProFormText v-model.trim="innerForm.incomeCompanyName" placeholder="璇疯緭鍏ヨ繘璐﹀崟浣�">
+ </ProFormText>
+ </ProFormItemV2>
+ <ProFormItemV2
+ label="淇濆崟鍙�:"
+ prop="insureBillNo"
+ :check-rules="[{ message: '璇疯緭鍏ヤ繚鍗曞彿' }]"
+ >
+ <ProFormText v-model.trim="innerForm.insureBillNo" placeholder="璇疯緭鍏ヤ繚鍗曞彿">
+ </ProFormText>
+ </ProFormItemV2>
+ <ProFormItemV2
+ label="鏀舵鍗曚綅鍚嶇О:"
+ prop="incomeBankAccount"
+ :check-rules="[{ message: '璇疯緭鍏ユ敹娆惧崟浣嶅悕绉�' }]"
+ >
+ <ProFormText v-model.trim="innerForm.incomeBankAccount" placeholder="璇疯緭鍏ユ敹娆惧崟浣嶅悕绉�">
+ </ProFormText>
+ </ProFormItemV2>
+ <ProFormItemV2
+ label="鏀舵鍗曚綅璐﹀彿:"
+ prop="incomeBankCardNumber"
+ :check-rules="[{ message: '璇疯緭鍏ユ敹娆惧崟浣嶈处鍙�', type: 'bankCard' }]"
+ >
+ <ProFormText v-model.trim="innerForm.incomeBankCardNumber" placeholder="璇疯緭鍏ユ敹娆惧崟浣嶈处鍙�">
+ </ProFormText>
+ </ProFormItemV2>
+ <ProFormItemV2
+ label="寮�鎴疯:"
+ prop="incomeBankName"
+ :check-rules="[{ message: '璇疯緭鍏ュ紑鎴疯' }]"
+ >
+ <ProFormText v-model.trim="innerForm.incomeBankName" placeholder="璇疯緭鍏ュ紑鎴疯">
+ </ProFormText>
+ </ProFormItemV2>
+ <ProFormItemV2
+ label="涓婁紶鍑鸿处鍑瘉:"
+ prop="payFileUrl"
+ :check-rules="[{ message: '璇蜂笂浼犲嚭璐﹀嚟璇�', type: 'upload' }]"
+ >
+ <ProFormUpload
+ v-model:file-url="innerForm.payFileUrl"
+ :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 {
+ ProDialog,
+ UploadUserFile,
+ ProForm,
+ ProFormItemV2,
+ ProFormSelect,
+ ProFormInputNumber,
+ ProFormUpload,
+ ProFormText,
+} from '@bole-core/components';
+import { FormInstance } from 'element-plus';
+
+defineOptions({
+ name: 'DisbursementDialog',
+});
+
+type Props = {
+ modelValue: boolean;
+ form?: {
+ tradeAmount: number;
+ remianAmount: number;
+ payRemark: string;
+ payFileUrl: UploadUserFile[];
+
+ incomeCompanyName: string;
+ insureBillNo: string;
+ incomeBankAccount: string;
+ incomeBankCardNumber: string;
+ incomeBankName: string;
+ };
+};
+
+const props = withDefaults(defineProps<Props>(), {
+ modelValue: false,
+});
+
+const emit = defineEmits<{
+ (e: 'update:modelValue', value: boolean): void;
+ (e: 'update:form', value: Props['form']): void;
+ (e: 'onConfirm'): void;
+ (e: 'onCancel'): void;
+}>();
+
+const innerVisible = computed({
+ get() {
+ return props.modelValue;
+ },
+ set(val) {
+ emit('update:modelValue', val);
+ },
+});
+
+const innerForm = computed({
+ get() {
+ return props.form;
+ },
+ set(val) {
+ emit('update:form', val);
+ },
+});
+
+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>
diff --git a/vite.config.ts b/vite.config.ts
index f2a9eca..8702299 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -97,9 +97,12 @@
__INTLIFY_PROD_DEVTOOLS__: false,
},
build: {
- outDir: `dist/${dayjs().format(
- 'YYYY-MM-DD'
- )}/dist-jybfront-${VITE_AppType}-${mode}-${dayjs().format('YYYYMMDD')}`,
+ outDir:
+ mode === 'staging'
+ ? `dist/dist-jybfront-${VITE_AppType}-${mode}`
+ : `dist/${dayjs().format(
+ 'YYYY-MM-DD'
+ )}/dist-jybfront-${VITE_AppType}-${mode}-${dayjs().format('YYYYMMDD')}`,
},
optimizeDeps: {
include: [
--
Gitblit v1.9.1