From 07e6a938f7993abf056dc4b106d4ad4fc6354bb5 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期四, 24 七月 2025 14:40:30 +0800 Subject: [PATCH] feat: 接口 --- src/views/Reward/components/RegisterGrantDialog.vue | 2 src/views/Reward/components/BatchRegisterDialog.vue | 4 src/services/api/typings.d.ts | 39 +++++++++ src/views/Reward/RewardApplyTradeCheck.vue | 13 +- src/services/api/ParkBountyApply.ts | 44 +++++++++++ src/utils/common/common.ts | 32 +++++++ src/views/Reward/components/RewardApplyTradeCheckDialog.vue | 17 ++- src/views/Reward/constants/columns.ts | 6 src/views/Reward/FinancialApproval.vue | 39 +++++---- src/views/Reward/RewardGrantRegister.vue | 4 10 files changed, 160 insertions(+), 40 deletions(-) diff --git a/src/services/api/ParkBountyApply.ts b/src/services/api/ParkBountyApply.ts index 39dd756..daa29dd 100644 --- a/src/services/api/ParkBountyApply.ts +++ b/src/services/api/ParkBountyApply.ts @@ -457,6 +457,24 @@ ); } +/** 鑾峰彇鎵归噺鐧昏涓湭璐㈡斂鎷ㄤ粯鐨勪紒涓� GET /api/ParkBountyApply/GetParkBountyApplyBatchFinanceRegEnterprise */ +export async function getParkBountyApplyBatchFinanceRegEnterprise( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetParkBountyApplyBatchFinanceRegEnterpriseParams, + options?: API.RequestConfig +) { + return request<API.GetNotTransferCompanyNameListOutput[]>( + '/api/ParkBountyApply/GetParkBountyApplyBatchFinanceRegEnterprise', + { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + } + ); +} + /** 杩愯惀绔�-濂栧姳閲戝彂鏀�-鍏ヨ处-鑾峰彇鎵归噺鍏ヨ处涓湭鍏ヨ处鐨勪紒涓� GET /api/ParkBountyApply/GetParkBountyApplyBatchTransferEnterprise */ export async function getParkBountyApplyBatchTransferEnterprise( // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) @@ -465,6 +483,24 @@ ) { return request<API.GetNotTransferCompanyNameListOutput[]>( '/api/ParkBountyApply/GetParkBountyApplyBatchTransferEnterprise', + { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + } + ); +} + +/** 鑾峰彇鎵归噺鐧昏涓湭鐧昏鐨勪紒涓� GET /api/ParkBountyApply/GetParkBountyApplyBatchTransferRegEnterprise */ +export async function getParkBountyApplyBatchTransferRegEnterprise( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetParkBountyApplyBatchTransferRegEnterpriseParams, + options?: API.RequestConfig +) { + return request<API.GetNotTransferCompanyNameListOutput[]>( + '/api/ParkBountyApply/GetParkBountyApplyBatchTransferRegEnterprise', { method: 'GET', params: { @@ -1042,6 +1078,14 @@ }); } +/** 淇鏁版嵁3.4.2.6 POST /api/ParkBountyApply/RepairData3_4_2_6 */ +export async function repairData3426(options?: API.RequestConfig) { + return request<any>('/api/ParkBountyApply/RepairData3_4_2_6', { + method: 'POST', + ...(options || {}), + }); +} + /** 淇濆瓨濂栭噾鍒嗛厤琛ㄣ�佸鍔遍噾姹囨�昏〃銆佸鍔辨�婚 POST /api/ParkBountyApply/SaveParkBountyApplyCollectFile */ export async function saveParkBountyApplyCollectFile( body: API.SaveParkBountyApplyCollectFileInput, diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts index 6b8a7e0..2d78064 100644 --- a/src/services/api/typings.d.ts +++ b/src/services/api/typings.d.ts @@ -87,6 +87,8 @@ bankName?: string; bankBranchName?: string; bankCardNumber?: string; + /** 瀵嗙爜 */ + password?: string; } interface AddEnterpriseMaterialFileInput { @@ -1638,7 +1640,15 @@ parkBountyApplyId?: string; } + interface APIgetParkBountyApplyBatchFinanceRegEnterpriseParams { + parkBountyApplyId?: string; + } + interface APIgetParkBountyApplyBatchTransferEnterpriseParams { + parkBountyApplyId?: string; + } + + interface APIgetParkBountyApplyBatchTransferRegEnterpriseParams { parkBountyApplyId?: string; } @@ -8992,8 +9002,15 @@ transferTimeBegin?: string; /** 鍑鸿处缁撴潫鏃ユ湡 */ transferTimeEnd?: string; + /** 瀹℃牳璧峰鏃ユ湡 */ + auditTimeBegin?: string; + /** 瀹℃牳缁撴潫鏃ユ湡 */ + auditTimeEnd?: string; + /** 鍥尯Id */ + parkId?: string; enterpriseId?: string; auditStatus?: EnumParkBountyTradeDetailAuditStatus; + financeAuditStatus?: EnumParkBountyTradeDetailAuditStatus; } interface GetParkBountyTradeDetailOutput { @@ -9007,6 +9024,8 @@ /** 绀句細缁熶竴淇$敤浠g爜 */ societyCreditCode?: string; authType?: EnterpriseTypeEnum; + /** 鍥尯Id */ + parkId?: string; /** 鐢宠鍥尯 */ parkName?: string; /** 鐢宠鍥尯绫诲瀷 */ @@ -9024,11 +9043,17 @@ /** 濂栧姳閲戜綑棰� */ remianAmount?: number; financeType?: FinanceTypeEnum; + showAuditStatus?: EnumParkBountyTradeDetailAuditStatus; auditStatus?: EnumParkBountyTradeDetailAuditStatus; /** 瀹℃牳澶囨敞 */ auditRemark?: string; /** 瀹℃牳鏃堕棿 */ auditTime?: string; + financeAuditStatus?: EnumParkBountyTradeDetailAuditStatus; + /** 璐㈠姟瀹℃牳澶囨敞 */ + financeAuditRemark?: string; + /** 璐㈠姟瀹℃牳鏃堕棿 */ + financeAuditTime?: string; /** 瀹℃牳鍑瘉 */ payAuditFileUrl?: string; } @@ -9051,6 +9076,10 @@ transferTimeBegin?: string; /** 鍑鸿处缁撴潫鏃ユ湡 */ transferTimeEnd?: string; + /** 瀹℃牳璧峰鏃ユ湡 */ + auditTimeBegin?: string; + /** 瀹℃牳缁撴潫鏃ユ湡 */ + auditTimeEnd?: string; } interface GetParkBountyTradeOutput { @@ -10879,6 +10908,12 @@ } interface ImportBountyApplyDataOutput { + /** 骞冲彴鎷ㄤ粯鎬婚 */ + settleSumAmount?: number; + /** 璐㈡斂鎷ㄤ粯鎬婚 */ + financeSumAmount?: number; + /** 鐢虫姤鎬婚 */ + applySumAmount?: number; /** 閿欒鏁版嵁鍒楄〃 */ error?: ExportBountyApplyData[]; } @@ -19852,6 +19887,10 @@ bountyCollectFileUrl?: string; /** 鐢虫姤鎬婚 */ applySumAmount?: number; + /** 骞冲彴鎷ㄤ粯鎬婚 */ + settleSumAmount?: number; + /** 璐㈡斂鎷ㄤ粯鎬婚 */ + financeSumAmount?: number; listFiles?: CustomerUploadMonthApplyFileTypeDto[]; } diff --git a/src/utils/common/common.ts b/src/utils/common/common.ts index 374c3a8..b0d960d 100644 --- a/src/utils/common/common.ts +++ b/src/utils/common/common.ts @@ -1,5 +1,5 @@ import dayjs from 'dayjs'; -import { BoleRegExp } from '@bole-core/core'; +import { BoleRegExp, Message } from '@bole-core/core'; import { round, floor, omitBy } from 'lodash'; export function format(date: string | Date, fmt = 'YYYY-MM-DD') { @@ -115,3 +115,33 @@ } return roleName; } + +export function copyTextToClipboard(text: string) { + if (navigator.clipboard && window.isSecureContext) { + // navigator clipboard 鍚戝壀璐存澘鍐欐枃鏈� + navigator.clipboard + .writeText(text) + .then(() => { + Message.successMessage('宸插鍒�'); + }) + .catch((error) => { + console.error('Failed to copy text to clipboard:', error); + }); + } else { + // 鍒涘缓text area + let textArea = document.createElement('textarea'); + textArea.value = text; + // 浣縯ext area涓嶅湪viewport锛屽悓鏃惰缃笉鍙 + textArea.style.position = 'absolute'; + textArea.style.opacity = 0 as any; + textArea.style.left = '-999999px'; + textArea.style.top = '-999999px'; + document.body.appendChild(textArea); + textArea.select(); + let res = document.execCommand('copy'); + if (res) { + Message.successMessage('宸插鍒�'); + } + textArea.remove(); + } +} diff --git a/src/views/Reward/FinancialApproval.vue b/src/views/Reward/FinancialApproval.vue index 465ca53..78ec38c 100644 --- a/src/views/Reward/FinancialApproval.vue +++ b/src/views/Reward/FinancialApproval.vue @@ -16,7 +16,7 @@ </QueryFilterItem> <QueryFilterItem tip-content="瀹℃牳鐘舵��"> <FieldRadio - v-model="extraParamState.auditStatus" + v-model="extraParamState.financeAuditStatus" :value-enum="EnumParkBountyTradeDetailAuditStatusText" buttonStyle showAllBtn @@ -37,8 +37,8 @@ <QueryFilterItem> <SearchInput v-model="extraParamState.searchKeyWord" - style="width: 200px" - placeholder="浼佷笟鍚嶇О/淇$敤浠g爜" + style="width: 300px" + placeholder="浼佷笟鍚�/淇$敤浠g爜/鑱旂郴浜�/鑱旂郴鏂瑰紡" @on-click-search="getList" > </SearchInput> @@ -102,7 +102,7 @@ }, extraProps: { hide: (row: API.GetParkBountyTradeDetailOutput) => - row.auditStatus === EnumParkBountyTradeDetailAuditStatus.Wait, + row.financeAuditStatus === EnumParkBountyTradeDetailAuditStatus.Wait, }, }, { @@ -115,7 +115,7 @@ }, extraProps: { hide: (row: API.GetParkBountyTradeDetailOutput) => - row.auditStatus !== EnumParkBountyTradeDetailAuditStatus.Wait, + row.financeAuditStatus !== EnumParkBountyTradeDetailAuditStatus.Wait, }, }, ]); @@ -152,12 +152,10 @@ orderInput: extraParamState.orderInput, }, searchKeyWord: extraParamState.searchKeyWord, - // transferTimeBegin: format(extraParamState.transferTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), - // transferTimeEnd: format(extraParamState.transferTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), - creationTimeBegin: format(extraParamState.creationTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), - creationTimeEnd: format(extraParamState.creationTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), - // "enterpriseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", - // "auditStatus": 10 + parkId: extraParamState.enterpriseId, + financeAuditStatus: extraParamState.financeAuditStatus, + auditTimeBegin: format(extraParamState.creationTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), + auditTimeEnd: format(extraParamState.creationTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), }; let res = await parkBountyApplyServices.getParkBountyTradeDetailList(params, { showLoading: !state.loading, @@ -169,16 +167,17 @@ defaultExtraParams: { searchKeyWord: '', enterpriseId: '', - auditStatus: '' as any as EnumParkBountyTradeDetailAuditStatus, + financeAuditStatus: '' as any as EnumParkBountyTradeDetailAuditStatus, creationTime: [] as unknown as ModelValueType, orderInput: [{ property: 'tradeTime', order: OrderInputType.Desc }], }, columnsRenderProps: { authType: { type: 'enum', valueEnum: EnterpriseTypeText }, tradeTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, + financeAuditTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, tradeAmount: { type: 'money' }, remianAmount: { type: 'money' }, - auditStatus: { + financeAuditStatus: { type: 'tag', valueEnum: EnumParkBountyTradeDetailAuditStatusText, tagTypeEnum: EnumParkBountyTradeDetailAuditStatusTag, @@ -192,11 +191,13 @@ id: row.id, isCheck, auditStatus: - row.auditStatus === EnumParkBountyTradeDetailAuditStatus.Reject + row.financeAuditStatus === EnumParkBountyTradeDetailAuditStatus.Reject ? EnumParkBountyTradeDetailAuditStatus.Reject : EnumParkBountyTradeDetailAuditStatus.Pass, - auditRemark: row.auditRemark, - payAuditFileUrl: convertApi2FormUrlOnlyOne(row.payAuditFileUrl), + auditRemark: row.financeAuditRemark, + payAuditFileUrl: isCheck + ? convertApi2FormUrlOnlyOne(row.payAuditFileUrl) + : ([] as UploadUserFile[]), userName: row.userName, enterpriseName: row.enterpriseName, societyCreditCode: row.societyCreditCode, @@ -207,9 +208,10 @@ tradeAmount: row.tradeAmount, remianAmount: row.remianAmount, tradeTime: row.tradeTime, - auditTime: row.auditTime, + auditTime: row.financeAuditTime, payRemark: row.payRemark, payFileUrl: convertApi2FormUrlOnlyOne(row.payFileUrl), + title: isCheck ? '璇︽儏' : '璐㈠姟瀹℃壒', }); } @@ -234,6 +236,7 @@ auditTime: '', payRemark: '', payFileUrl: [] as UploadUserFile[], + title: '', }, }); @@ -247,7 +250,7 @@ /** 瀹℃牳鍑瘉 */ payAuditFileUrl: editForm.payAuditFileUrl?.[0]?.path ?? '', }; - let res = await parkBountyApplyServices.auditParkBountyApplyTrade(params); + let res = await parkBountyApplyServices.financeAuditParkBountyApplyTrade(params); if (res) { Message.successMessage('鎿嶄綔鎴愬姛'); getList(paginationState.pageIndex); diff --git a/src/views/Reward/RewardApplyTradeCheck.vue b/src/views/Reward/RewardApplyTradeCheck.vue index 9c7a057..62ae73f 100644 --- a/src/views/Reward/RewardApplyTradeCheck.vue +++ b/src/views/Reward/RewardApplyTradeCheck.vue @@ -37,8 +37,8 @@ <QueryFilterItem> <SearchInput v-model="extraParamState.searchKeyWord" - style="width: 200px" - placeholder="浼佷笟鍚嶇О/淇$敤浠g爜" + style="width: 300px" + placeholder="浼佷笟鍚�/淇$敤浠g爜/鑱旂郴浜�/鑱旂郴鏂瑰紡" @on-click-search="getList" > </SearchInput> @@ -152,12 +152,10 @@ orderInput: extraParamState.orderInput, }, searchKeyWord: extraParamState.searchKeyWord, - // transferTimeBegin: format(extraParamState.transferTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), - // transferTimeEnd: format(extraParamState.transferTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), + parkId: extraParamState.enterpriseId, creationTimeBegin: format(extraParamState.creationTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), creationTimeEnd: format(extraParamState.creationTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), - // "enterpriseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", - // "auditStatus": 10 + auditStatus: extraParamState.auditStatus, }; let res = await parkBountyApplyServices.getParkBountyTradeDetailList(params, { showLoading: !state.loading, @@ -176,6 +174,7 @@ columnsRenderProps: { authType: { type: 'enum', valueEnum: EnterpriseTypeText }, tradeTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, + auditTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, tradeAmount: { type: 'money' }, remianAmount: { type: 'money' }, auditStatus: { @@ -210,6 +209,7 @@ auditTime: row.auditTime, payRemark: row.payRemark, payFileUrl: convertApi2FormUrlOnlyOne(row.payFileUrl), + title: isCheck ? '璇︽儏' : '鍑鸿处瀹℃壒', }); } @@ -234,6 +234,7 @@ auditTime: '', payRemark: '', payFileUrl: [] as UploadUserFile[], + title: '', }, }); diff --git a/src/views/Reward/RewardGrantRegister.vue b/src/views/Reward/RewardGrantRegister.vue index d80a889..0515dc7 100644 --- a/src/views/Reward/RewardGrantRegister.vue +++ b/src/views/Reward/RewardGrantRegister.vue @@ -174,7 +174,7 @@ }, }); -function openMaterialFileDialog(row: API.GetParkBountyApplyListOutput) { +function openMaterialFileDialog(row: API.ParkBountyApplyTransferDetailInfo) { handleMaterialFileAdd({ list: FourStreamsMaterialUtils.initApplyRewardGrandFileList(row), }); @@ -235,7 +235,7 @@ async function parkBountyApplyTransferReg() { try { let params: API.ParkBountyApplyTransferInput = { - parkBountyApplyDetailId: id, + parkBountyApplyDetailId: editRegisterForm.parkBountyApplyDetailId, transferToAmount: editRegisterForm.amount, parkBountyApplyId: editRegisterForm.parkBountyApplyId, transferToFileUrl: convertFormUrl2ApiBySeparator(editRegisterForm.fileUrl), diff --git a/src/views/Reward/components/BatchRegisterDialog.vue b/src/views/Reward/components/BatchRegisterDialog.vue index 9d1e70a..8154554 100644 --- a/src/views/Reward/components/BatchRegisterDialog.vue +++ b/src/views/Reward/components/BatchRegisterDialog.vue @@ -131,7 +131,7 @@ async function getParkBountyApplyBatchTransferEnterprise() { try { - let res = await parkBountyApplyServices.getParkBountyApplyBatchTransferEnterprise({ + let res = await parkBountyApplyServices.getParkBountyApplyBatchTransferRegEnterprise({ parkBountyApplyId: form.value.parkBountyApplyId, }); if (res) { @@ -144,7 +144,7 @@ async function getParkBountyApplyBatchFinanceEnterprise() { try { - let res = await parkBountyApplyServices.getParkBountyApplyBatchFinanceEnterprise({ + let res = await parkBountyApplyServices.getParkBountyApplyBatchFinanceRegEnterprise({ parkBountyApplyId: form.value.parkBountyApplyId, }); if (res) { diff --git a/src/views/Reward/components/RegisterGrantDialog.vue b/src/views/Reward/components/RegisterGrantDialog.vue index c866e8a..a7fb038 100644 --- a/src/views/Reward/components/RegisterGrantDialog.vue +++ b/src/views/Reward/components/RegisterGrantDialog.vue @@ -64,7 +64,7 @@ ProFormUpload, UploadUserFile, } from '@bole-core/components'; -import { IncomeTypeEnumText, IncomeTypeEnum, FinanceStatusEnum } from '@/constants'; +import { IncomeTypeEnumText, IncomeTypeEnum } from '@/constants'; defineOptions({ name: 'RegisterGrantDialog', diff --git a/src/views/Reward/components/RewardApplyTradeCheckDialog.vue b/src/views/Reward/components/RewardApplyTradeCheckDialog.vue index 92e94dc..9995f91 100644 --- a/src/views/Reward/components/RewardApplyTradeCheckDialog.vue +++ b/src/views/Reward/components/RewardApplyTradeCheckDialog.vue @@ -1,5 +1,11 @@ <template> - <ProDialog title="鍑鸿处瀹℃壒" v-model="visible" @close="onDialogClose" destroy-on-close draggable> + <ProDialog + :title="form.title" + v-model="visible" + @close="onDialogClose" + destroy-on-close + draggable + > <PortraitTableWithAttachment v-bind="portraitTableWithAttachmentProps"> <template #title> <el-row class="portrait-table-with-attachment-title"> @@ -109,15 +115,12 @@ ProFormDatePicker, UploadUserFile, } from '@bole-core/components'; -import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; -import { copyTextToClipboard, usePortraitTableWithAttachment } from '@/hooks'; -import { convertApi2FormUrl, convertApi2FormUrlOnlyOne } from '@/utils'; -import { useQuery } from '@tanstack/vue-query'; +import { usePortraitTableWithAttachment } from '@/hooks'; +import { copyTextToClipboard } from '@/utils'; import { EnumParkBountyTradeDetailAuditStatus, EnumParkBountyTradeDetailAuditStatusTextForAdudit, EnterpriseType, - EnterpriseTypeText, } from '@/constants'; defineOptions({ @@ -243,7 +246,7 @@ function handleApply() { copyTextToClipboard( - `寮�鎴峰悕绉帮細${form.value?.societyCreditCode}\n寮�鎴烽摱琛岋細${form.value?.contactPhone}\n寮�鎴疯处鍙凤細${form.value?.userName}` + `寮�鎴峰悕绉帮細${'澶钩璐骇淇濋櫓鏈夐檺鍏徃鎶氬窞涓績鏀叕鍙�'}\n寮�鎴烽摱琛岋細${'涓浗宸ュ晢閾惰鑲′唤鏈夐檺鍏徃鎶氬窞璧d笢鏀'}\n寮�鎴疯处鍙凤細${'1511 2001 2920 0156 069'}` ); } </script> diff --git a/src/views/Reward/constants/columns.ts b/src/views/Reward/constants/columns.ts index 86b1089..428f1cc 100644 --- a/src/views/Reward/constants/columns.ts +++ b/src/views/Reward/constants/columns.ts @@ -75,7 +75,7 @@ }, { id: '13', - enCode: 'a', + enCode: 'auditTime', name: '瀹℃牳鏃堕棿', width: 180, }, @@ -158,13 +158,13 @@ }, { id: '12', - enCode: 'auditStatus', + enCode: 'financeAuditStatus', name: '璐㈠姟瀹℃牳鐘舵��', width: 160, }, { id: '13', - enCode: 'a', + enCode: 'financeAuditTime', name: '瀹℃牳鏃堕棿', width: 180, }, -- Gitblit v1.9.1