From 8fb20fc31b4be097e5408b9ecfeb5002ebe042f3 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期四, 10 四月 2025 15:07:47 +0800 Subject: [PATCH] feat: 接口 --- src/views/MaterialReview/MaterialReview.vue | 68 ++- src/views/Account/components/AddOrEditAccountDialog.vue | 2 src/views/Account/components/ResetPasswordDialog.vue | 8 src/views/Login/Login.vue | 1 src/services/api/typings.d.ts | 244 ++++++++++++- src/views/EnterpriseInfo/EnterpriseInfo.vue | 22 src/components/commonView/SettlementMaterialInfoView.vue | 6 src/views/MaterialReview/MaterialReviewAudit.vue | 98 ++++ src/components/commonView/MaterialInfoView.vue | 6 src/views/EnterpriseInfo/components/EnterpriseDeclareRecordView.vue | 7 src/components/commonView/DetailView.vue | 6 src/services/api/Account.ts | 14 src/components/commonView/DeclareEnterpriseTableView.vue | 47 -- src/constants/reward.ts | 10 src/services/api/UserRole.ts | 30 + src/views/Account/AccountManageList.vue | 79 ++- src/components/Layout/ChunkCellV2.vue | 4 src/services/api/ParkBountyApply.ts | 181 ++++++++++ src/views/MaterialReview/MaterialReviewDetail.vue | 80 ++++ src/views/Home/Home.vue | 63 +++ 20 files changed, 794 insertions(+), 182 deletions(-) diff --git a/src/components/Layout/ChunkCellV2.vue b/src/components/Layout/ChunkCellV2.vue index bcf8b10..1bf7c85 100644 --- a/src/components/Layout/ChunkCellV2.vue +++ b/src/components/Layout/ChunkCellV2.vue @@ -36,5 +36,9 @@ margin-bottom: 0; border-bottom: none; } + + .chunk-cell-v2-content { + padding-bottom: 12px; + } } </style> diff --git a/src/components/commonView/DeclareEnterpriseTableView.vue b/src/components/commonView/DeclareEnterpriseTableView.vue index d067305..d952ab8 100644 --- a/src/components/commonView/DeclareEnterpriseTableView.vue +++ b/src/components/commonView/DeclareEnterpriseTableView.vue @@ -32,27 +32,31 @@ ProTableV2, SearchInput, useFormDialog, - useTable, defineOperationBtns, defineColumns, } from '@bole-core/components'; import MateriaDetailDialog from './MateriaDetailDialog.vue'; import { FourStreamsMaterialFileTableItem } from './types'; -import { OrderInputType } from '@bole-core/core'; -import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; defineOptions({ name: 'DeclareEnterpriseTableView', }); -type Props = {}; +type Props = { + getList: (pageIndex?: number) => Promise<void>; + reset: () => void; + proTableProps: any; + extraParamState: { + searchKeyWord: string; + }; +}; const props = withDefaults(defineProps<Props>(), {}); const column = defineColumns([ { id: '1', - enCode: 'accDateTime', + enCode: 'userName', name: '甯愬彿', }, { @@ -99,35 +103,6 @@ }, ]); -const { - getDataSource: getList, - proTableProps, - paginationState, - extraParamState, - reset, -} = useTable( - async ({ pageIndex, pageSize }, extraParamState) => { - try { - let params: API.GetParkBountyApplyInfoInput = { - pageModel: { - rows: pageSize, - page: pageIndex, - orderInput: extraParamState.orderInput, - }, - searchKeyWord: extraParamState.searchKeyWord, - }; - let res = await parkBountyApplyServices.getParkBountyApplyDetailList(params); - return res; - } catch (error) {} - }, - { - defaultExtraParams: { - orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }], - searchKeyWord: '', - }, - } -); - const { dialogProps, handleEdit, editForm } = useFormDialog({ defaultFormParams: { list: [] as FourStreamsMaterialFileTableItem[], @@ -139,10 +114,6 @@ list: [], }); } - -defineExpose({ - getList, -}); </script> <style lang="scss" scoped> diff --git a/src/components/commonView/DetailView.vue b/src/components/commonView/DetailView.vue index 18acd11..af0b043 100644 --- a/src/components/commonView/DetailView.vue +++ b/src/components/commonView/DetailView.vue @@ -1,12 +1,12 @@ <template> <ProForm :model="form" label-width="160px" label-position="left" is-read> - <ChunkCellV2 title="鏉愭枡瀹℃牳"> + <ChunkCellV2 title="鏉愭枡瀹℃牳" style="margin-bottom: 0"> <BatchInfoView :form="form"></BatchInfoView> </ChunkCellV2> - <ChunkCellV2 title="姹囨�绘潗鏂�"> + <ChunkCellV2 title="姹囨�绘潗鏂�" style="margin-bottom: 0"> <MaterialInfoView :form="form"></MaterialInfoView> </ChunkCellV2> - <ChunkCellV2 title="姹囩畻鏉愭枡"> + <ChunkCellV2 title="姹囩畻鏉愭枡" style="margin-bottom: 0"> <SettlementMaterialInfoView :form="form"></SettlementMaterialInfoView> </ChunkCellV2> <slot></slot> diff --git a/src/components/commonView/MaterialInfoView.vue b/src/components/commonView/MaterialInfoView.vue index a45a78f..0aaffd9 100644 --- a/src/components/commonView/MaterialInfoView.vue +++ b/src/components/commonView/MaterialInfoView.vue @@ -1,7 +1,11 @@ <template> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="浼佷笟缂寸◣鏄庣粏姹囨�昏〃:" prop="enterpriseTaxSubFileUrl"> + <ProFormItemV2 + label="浼佷笟缂寸◣鏄庣粏姹囨�昏〃:" + prop="enterpriseTaxSubFileUrl" + style="margin-bottom: 22px" + > <ProFormUpload v-model:file-url="form.enterpriseTaxSubFileUrl"></ProFormUpload> </ProFormItemV2> </ProFormColItem> diff --git a/src/components/commonView/SettlementMaterialInfoView.vue b/src/components/commonView/SettlementMaterialInfoView.vue index de9228b..5558441 100644 --- a/src/components/commonView/SettlementMaterialInfoView.vue +++ b/src/components/commonView/SettlementMaterialInfoView.vue @@ -8,7 +8,11 @@ </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="濂栧姳閲戝垎閰嶆槑缁嗚〃:" prop="bountyAssignFileUlr"> + <ProFormItemV2 + label="濂栧姳閲戝垎閰嶆槑缁嗚〃:" + prop="bountyAssignFileUlr" + style="margin-bottom: 22px" + > <ProFormUpload v-model:file-url="form.bountyAssignFileUlr"></ProFormUpload> </ProFormItemV2> </ProFormColItem> diff --git a/src/constants/reward.ts b/src/constants/reward.ts index 623df82..a1b97d9 100644 --- a/src/constants/reward.ts +++ b/src/constants/reward.ts @@ -1,5 +1,9 @@ export enum BountyCheckStatusEnum { /** + * 鏈彁浜� + */ + NotSubmit = -10, + /** * 寰呭鏍� */ WaitCheck = 10, @@ -16,7 +20,11 @@ export const BountyCheckStatusEnumText = { [BountyCheckStatusEnum.WaitCheck]: '寰呭鏍�', [BountyCheckStatusEnum.CheckPassed]: '瀹℃牳閫氳繃', - [BountyCheckStatusEnum.CheckReject]: '瀹℃牳涓嶉�氳繃', + [BountyCheckStatusEnum.CheckReject]: '瀹℃牳鏈�氳繃', +}; +export const BountyCheckStatusEnumTextForAudit = { + [BountyCheckStatusEnum.CheckPassed]: '瀹℃牳閫氳繃', + [BountyCheckStatusEnum.CheckReject]: '椹冲洖', }; export enum SettleStatusEnum { diff --git a/src/services/api/Account.ts b/src/services/api/Account.ts index 86fd3ef..7f7fd9a 100644 --- a/src/services/api/Account.ts +++ b/src/services/api/Account.ts @@ -341,6 +341,18 @@ }); } +/** 鏀垮姟绔竴绯荤粺閰嶇疆涓�閲嶇疆瀵嗙爜 POST /api/Account/ResetPassword */ +export async function resetPassword(body: API.ResetPasswordBaseInput, options?: API.RequestConfig) { + return request<number>('/api/Account/ResetPassword', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + /** 閲嶇疆瀵嗙爜骞跺彂閫佹墜鏈洪�氱煡鏂板瘑鐮� POST /api/Account/ResetPasswordWithMicroNotify */ export async function resetPasswordWithMicroNotify( body: API.ResetPasswordBaseInput, @@ -536,7 +548,7 @@ } /** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/accountAuth/ResetPassword */ -export async function resetPassword(body: API.ResetPasswordDto, options?: API.RequestConfig) { +export async function resetPassword_2(body: API.ResetPasswordDto, options?: API.RequestConfig) { return request<any>('/api/accountAuth/ResetPassword', { method: 'POST', headers: { diff --git a/src/services/api/ParkBountyApply.ts b/src/services/api/ParkBountyApply.ts index 16fefeb..0950200 100644 --- a/src/services/api/ParkBountyApply.ts +++ b/src/services/api/ParkBountyApply.ts @@ -17,6 +17,21 @@ }); } +/** 鎾ゅ洖鐢虫姤 GET /api/ParkBountyApply/CancelParkBountyApply */ +export async function cancelParkBountyApply( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIcancelParkBountyApplyParams, + options?: API.RequestConfig +) { + return request<number>('/api/ParkBountyApply/CancelParkBountyApply', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + /** 缁х画鐢虫姤 POST /api/ParkBountyApply/EditParkBountyApply */ export async function editParkBountyApply( body: API.EditParkBountyApplyStepOneInput, @@ -47,6 +62,32 @@ }); } +/** 鑾峰彇杩愯惀绔� 濂栧姳閲戠敵鎶ュ垪琛� POST /api/ParkBountyApply/GetCustmoerParkBountyApplyList */ +export async function getCustmoerParkBountyApplyList( + body: API.GetCustomerParkBountyApplyListInput, + options?: API.RequestConfig +) { + return request<API.GetParkBountyApplyListOutputPageOutput>( + '/api/ParkBountyApply/GetCustmoerParkBountyApplyList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 鏀垮姟绔�斿伐浣滃彴鏁版嵁鐪嬫澘 GET /api/ParkBountyApply/GetGoverDataBoard */ +export async function getGoverDataBoard(options?: API.RequestConfig) { + return request<API.GetGoverDataBoardOutput>('/api/ParkBountyApply/GetGoverDataBoard', { + method: 'GET', + ...(options || {}), + }); +} + /** 鑾峰彇宸茬敵鎶ヤ紒涓氬垪琛� 鍚彲閫夋嫨銆佸凡鍓旈櫎 POST /api/ParkBountyApply/GetHasApplyCompanyNameList */ export async function getHasApplyCompanyNameList( body: API.GetHasApplyCompanyNameListInput, @@ -65,12 +106,66 @@ ); } +/** 鏀垮姟绔�-鏉愭枡瀹℃牳-鐢虫姤璇︽儏 POST /api/ParkBountyApply/GetOutCheckParkBountyApplyDetailBaseInfo */ +export async function getOutCheckParkBountyApplyDetailBaseInfo( + body: API.GetParkBountyApplyInfoInput, + options?: API.RequestConfig +) { + return request<API.OutCheckParkBountyApplyBaseInfo>( + '/api/ParkBountyApply/GetOutCheckParkBountyApplyDetailBaseInfo', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 鏀垮姟绔�-鏉愭枡瀹℃牳-鐢虫姤浼佷笟鍚嶅崟 POST /api/ParkBountyApply/GetOutCheckParkBountyApplyDetailList */ +export async function getOutCheckParkBountyApplyDetailList( + body: API.GetParkBountyApplyInfoInput, + options?: API.RequestConfig +) { + return request<API.ParkBountyApplyDetailInfoPageOutput>( + '/api/ParkBountyApply/GetOutCheckParkBountyApplyDetailList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 鏀垮姟绔�-鏉愭枡瀹℃牳-鑾峰彇澶栭儴瀹℃牳鍒楄〃 POST /api/ParkBountyApply/GetOutcheckParkBountyList */ +export async function getOutcheckParkBountyList( + body: API.GetParkBountyApplyListInput, + options?: API.RequestConfig +) { + return request<API.GetParkBountyApplyListOutputPageOutput>( + '/api/ParkBountyApply/GetOutcheckParkBountyList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + /** 璺熻繘鍥尯鏌ヨ鍏徃鍒嗛〉鍒楄〃 POST /api/ParkBountyApply/GetParkApplyCompanyList */ export async function getParkApplyCompanyList( body: API.GetApplyCompanyListInput, options?: API.RequestConfig ) { - return request<API.GetParkApplyCompanyListOutputPageOutput>( + return request<API.ParkBountyApplyDetailInfoPageOutput>( '/api/ParkBountyApply/GetParkApplyCompanyList', { method: 'POST', @@ -96,6 +191,24 @@ 'Content-Type': 'application/json', }, data: body, + ...(options || {}), + } + ); +} + +/** 杩愯惀绔�-濂栧姳閲戝彂鏀�-鍏ヨ处-鑾峰彇鎵归噺鍏ヨ处涓湭鍏ヨ处鐨勪紒涓� GET /api/ParkBountyApply/GetParkBountyApplyBatchTransferEnterprise */ +export async function getParkBountyApplyBatchTransferEnterprise( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetParkBountyApplyBatchTransferEnterpriseParams, + options?: API.RequestConfig +) { + return request<API.GetCompanyNameListOutput[]>( + '/api/ParkBountyApply/GetParkBountyApplyBatchTransferEnterprise', + { + method: 'GET', + params: { + ...params, + }, ...(options || {}), } ); @@ -206,6 +319,42 @@ ); } +/** 杩愯惀绔�-濂栧姳杩涘嚭璐﹁鎯� POST /api/ParkBountyApply/GetParkBountyTradeDetailList */ +export async function getParkBountyTradeDetailList( + body: API.GetParkBountyTradeDetailByIdInput, + options?: API.RequestConfig +) { + return request<API.GetParkBountyTradeDetailOutputPageOutput>( + '/api/ParkBountyApply/GetParkBountyTradeDetailList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 杩愯惀绔�-濂栧姳閲戜娇鐢ㄧ鐞嗗垪琛� POST /api/ParkBountyApply/GetParkBountyTradeList */ +export async function getParkBountyTradeList( + body: API.GetParkBountyTradeInput, + options?: API.RequestConfig +) { + return request<API.GetParkBountyTradeOutputPageOutput>( + '/api/ParkBountyApply/GetParkBountyTradeList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + /** 杩愯惀绔�-鏀垮姟绔竴鍥尯瀹㈡埛绠$悊璇︽儏涓�浼佷笟鐢虫姤璁板綍 POST /api/ParkBountyApply/GetParkCustomerBountyApplyList */ export async function getParkCustomerBountyApplyList( body: API.QueryParkCustomerBountyApplyInput, @@ -275,6 +424,21 @@ }); } +/** 鏀垮姟绔�-鏉愭枡瀹℃牳-澶栭儴瀹℃牳 POST /api/ParkBountyApply/OutcheckParkBountyApply */ +export async function outcheckParkBountyApply( + body: API.OutcheckParkBountyApplyInput, + options?: API.RequestConfig +) { + return request<number>('/api/ParkBountyApply/OutcheckParkBountyApply', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + /** 杩愯惀绔�斿叆璐�-鎵归噺鍏ヨ处 POST /api/ParkBountyApply/ParkBountyApplyBatchTransfer */ export async function parkBountyApplyBatchTransfer( body: API.ParkBountyApplyBatchTransferInput, @@ -305,6 +469,21 @@ }); } +/** 杩愯惀绔�斿鍔遍噾-鍑鸿处 POST /api/ParkBountyApply/ParkBountyApplyTrade */ +export async function parkBountyApplyTrade( + body: API.CreateParkBountyTradeInput, + options?: API.RequestConfig +) { + return request<number>('/api/ParkBountyApply/ParkBountyApplyTrade', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + /** 杩愯惀绔�斿叆璐︹�斿鍔遍噾鍏ヨ处 POST /api/ParkBountyApply/ParkBountyApplyTransfer */ export async function parkBountyApplyTransfer( body: API.ParkBountyApplyTransferInput, diff --git a/src/services/api/UserRole.ts b/src/services/api/UserRole.ts index 309f2fa..9d36735 100644 --- a/src/services/api/UserRole.ts +++ b/src/services/api/UserRole.ts @@ -17,6 +17,21 @@ }); } +/** 鏀垮姟绔竴绯荤粺閰嶇疆涓�鍒涘缓鏀垮姟绔敤鎴� POST /api/UserRole/CreateGovermentClientUser */ +export async function createGovermentClientUser( + body: API.CreateGoverUserInput, + options?: API.RequestConfig +) { + return request<string>('/api/UserRole/CreateGovermentClientUser', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + /** 鏂板瑙掕壊 POST /api/UserRole/CreateRole */ export async function createRole(body: API.CreateBaseRoleInput, options?: API.RequestConfig) { return request<string>('/api/UserRole/CreateRole', { @@ -131,6 +146,21 @@ }); } +/** 鏀垮姟绔竴绯荤粺閰嶇疆涓�缂栬緫鏀垮姟绔处鎴� POST /api/UserRole/UpdateGovermentClientUser */ +export async function updateGovermentClientUser( + body: API.UpdateGovermentClientUserInput, + options?: API.RequestConfig +) { + return request<number>('/api/UserRole/UpdateGovermentClientUser', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + /** 瑙掕壊缂栬緫 POST /api/UserRole/UpdateRole */ export async function updateRole(body: API.CreateOrUpdateRoleInput, options?: API.RequestConfig) { return request<number>('/api/UserRole/UpdateRole', { diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts index dac04de..e6d6ec9 100644 --- a/src/services/api/typings.d.ts +++ b/src/services/api/typings.d.ts @@ -946,6 +946,10 @@ walletAccountType?: WalletAccountTypeEnum; } + interface APIcancelParkBountyApplyParams { + parkBountyApplyId?: string; + } + interface APIcheckUserCertificationRepeatParams { userId?: string; enterpriseName?: string; @@ -1550,6 +1554,10 @@ interface APIgetParams { id?: string; + } + + interface APIgetParkBountyApplyBatchTransferEnterpriseParams { + parkBountyApplyId?: string; } interface APIgetParkCustomerManageBaseDetailParams { @@ -3883,6 +3891,21 @@ status?: CooperationApplyStatusEnum; } + interface CreateGoverUserInput { + /** 鍚嶇О */ + name?: string; + /** 鐢ㄦ埛鍚� */ + userName?: string; + /** 澶囨敞 */ + remark?: string; + /** 鎵嬫満鍙� */ + phoneNumber?: string; + /** 瑙掕壊 */ + roleNames?: string[]; + /** 瀵嗙爜 */ + password?: string; + } + interface CreateInformationAdvertiseInput { /** 瀵瑰鑱旂郴浜� */ outerContacter?: string; @@ -4841,6 +4864,16 @@ name: string; /** 鎺掑簭 */ sequence?: number; + } + + interface CreateParkBountyTradeInput { + enterpriseId?: string; + /** 鏈�杩戝嚭璐﹂噾棰� */ + tradeAmount?: number; + /** 鍑鸿处鍑瘉 */ + payFileUrl?: string; + /** 娑堣垂绫诲瀷 */ + payRemark?: string; } interface CreateParkOrHRAdvertiseInput { @@ -6533,6 +6566,26 @@ data?: GetCustomerListOutput[]; } + interface GetCustomerParkBountyApplyListInput { + pageModel?: Pagination; + /** 鐢宠鎵规鍙� */ + batchNo?: string; + /** 鐢宠璧峰鏃ユ湡 */ + creationTimeBegin?: string; + /** 鐢宠缁撴潫鏃ユ湡 */ + creationTimeEnd?: string; + /** 鍐呴儴瀹℃牳璧峰鏃ユ湡 */ + inCheckTimeBegin?: string; + /** 鍐呴儴瀹℃牳缁撴潫鏃ユ湡 */ + inCheckTimeEnd?: string; + /** 澶栭儴瀹℃牳璧峰鏃ユ湡 */ + outCheckTimeBegin?: string; + /** 澶栭儴瀹℃牳缁撴潫鏃ユ湡 */ + outCheckTimeEnd?: string; + outCheckStatus?: BountyCheckStatusEnum; + inCheckStatus?: BountyCheckStatusEnum; + } + interface GetCustomersExportInput { /** 鏌ヨ鏉′欢锛氱敳鏂瑰悕绉�/鑱旂郴浜� */ queryCondition?: string; @@ -6745,6 +6798,25 @@ signName?: string; status?: LgGigWorkerSignStatus; settingStatus?: LgGigWorkerSignSettingStatus; + } + + interface GetGoverDataBoardOutput { + /** 寰呭鏍� */ + waitCheckEnterpriseNumber?: number; + /** 濂栧姳閲戝緟鍙戞斁 */ + waitForSettleRewardNumber?: number; + /** 绱宸插鏍镐紒涓� */ + accumulatedCheckEnterpriseNumber?: number; + /** 绱宸插鏍搁�氳繃浼佷笟 */ + accumulatedCheckPassEnterpriseNumber?: number; + /** 绱鏈鏍搁�氳繃浼佷笟 */ + accumulatedCheckRejectEnterpriseNumber?: number; + /** 绱宸插彂鏀惧鍔遍噾 */ + accumulatedHasSettleRewardAmount?: number; + /** 绱寰呭彂鏀惧鍔遍噾 */ + accumulatedWaitForSettleRewardAmount?: number; + /** 绱宸蹭娇鐢ㄥ鍔遍噾 */ + accumulatedUsedRewardAmount?: number; } interface GetHasApplyCompanyNameListInput { @@ -7757,32 +7829,6 @@ enterinessName?: string; } - interface GetParkApplyCompanyListOutput { - id?: string; - userName?: string; - enterpriseName?: string; - bankIsVerify?: boolean; - /** 钀ヤ笟鎵х収鏂囦欢鍦板潃 */ - licenseUrl?: string; - /** 缁熶竴绀句細淇$敤浠g爜 */ - societyCreditCode?: string; - /** 浼佷笟淇℃伅鏄惁宸插畬鍠� */ - enterpriseIsVerify?: boolean; - authType?: EnterpriseTypeEnum; - /** 浼佷笟绫诲瀷 10浜哄姏璧勬簮鍏徃 20鐢叉柟浼佷笟 30琛屼笟閰嶅 40琛屼笟鏈烘瀯 */ - type?: number; - /** 鐢ㄦ埛鎵嬫満鍙� */ - phoneNumber?: string; - /** 鍒涘缓鏃堕棿 */ - creationTime?: string; - } - - interface GetParkApplyCompanyListOutputPageOutput { - pageModel?: Pagination; - objectData?: any; - data?: GetParkApplyCompanyListOutput[]; - } - interface GetParkApplyCompanyStepTwoListInput { pageModel?: Pagination; parkBountyApplyId?: string; @@ -7791,6 +7837,8 @@ bankIsVerify?: boolean; /** 钀ヤ笟鎵х収鏄惁宸插畬鍠� */ enterpriseIsVerify?: boolean; + /** 閫夋嫨鍏徃Id */ + removeCompanyIds?: string[]; } interface GetParkBountyApplyFileInput { @@ -7874,6 +7922,9 @@ /** 鍙戞斁鏃ユ湡 */ settleTime?: string; incomeStatus?: IncomeStatusEnum; + inCheckStatus?: BountyCheckStatusEnum; + /** 鍐呴儴瀹℃牳鏃ユ湡 */ + inCheckTime?: string; outCheckStatus?: BountyCheckStatusEnum; /** 澶栭儴瀹℃牳鏃ユ湡 */ outCheckTime?: string; @@ -7891,6 +7942,82 @@ /** 浼佷笟鍚�/淇$敤浠g爜 */ searchKeyWord?: string; transferToStatus?: TransferToStatusEnum; + } + + interface GetParkBountyTradeDetailByIdInput { + pageModel?: Pagination; + /** 浼佷笟鍚�/淇$敤浠g爜 */ + searchKeyWord?: string; + /** 鐢宠璧峰鏃ユ湡 */ + creationTimeBegin?: string; + /** 鐢宠缁撴潫鏃ユ湡 */ + creationTimeEnd?: string; + /** 鍑鸿处璧峰鏃ユ湡 */ + transferTimeBegin?: string; + /** 鍑鸿处缁撴潫鏃ユ湡 */ + transferTimeEnd?: string; + enterpriseId?: string; + } + + interface GetParkBountyTradeDetailOutput { + /** 鏈�杩戝嚭璐﹂噾棰� */ + tradeAmount?: number; + /** 鍑鸿处鍑瘉 */ + payFileUrl?: string; + /** 娑堣垂绫诲瀷 */ + payRemark?: string; + /** 鍑鸿处鏃堕棿 */ + tradeTime?: string; + /** 濂栧姳閲戜綑棰� */ + remianAmount?: number; + } + + interface GetParkBountyTradeDetailOutputPageOutput { + pageModel?: Pagination; + objectData?: any; + data?: GetParkBountyTradeDetailOutput[]; + } + + interface GetParkBountyTradeInput { + pageModel?: Pagination; + /** 浼佷笟鍚�/淇$敤浠g爜 */ + searchKeyWord?: string; + /** 鐢宠璧峰鏃ユ湡 */ + creationTimeBegin?: string; + /** 鐢宠缁撴潫鏃ユ湡 */ + creationTimeEnd?: string; + /** 鍑鸿处璧峰鏃ユ湡 */ + transferTimeBegin?: string; + /** 鍑鸿处缁撴潫鏃ユ湡 */ + transferTimeEnd?: string; + } + + interface GetParkBountyTradeOutput { + /** 璐﹀彿 */ + userName?: string; + /** 浼佷笟鍚嶇О */ + enterpriseName?: string; + /** 鐢佃瘽 */ + contactPhone?: string; + /** 绀句細缁熶竴淇$敤浠g爜 */ + societyCreditCode?: string; + authType?: EnterpriseTypeEnum; + /** 鏈�杩戝嚭璐﹂噾棰� */ + tradeAmount?: number; + /** 鍑鸿处鏃堕棿 */ + tradeTime?: string; + /** 濂栧姳閲戜綑棰� */ + remianAmount?: number; + /** 鐢宠鍥尯 */ + parkName?: string; + /** 鐢宠鍥尯绫诲瀷 */ + parkTypeName?: string; + } + + interface GetParkBountyTradeOutputPageOutput { + pageModel?: Pagination; + objectData?: any; + data?: GetParkBountyTradeOutput[]; } interface GetParkCustomerBountyApplyOutput { @@ -7924,6 +8051,7 @@ remianAmount?: number; /** 鍑瘉 */ payFileUrl?: string; + payFileUrls?: string[]; } interface GetParkCustomerBountyConsumptionOutputPageOutput { @@ -9492,6 +9620,10 @@ id?: string; /** 鍥尯鍚嶇О */ parkName?: string; + /** 鍥尯绫诲瀷 */ + parkTypeId?: string; + /** 鍥尯绫诲瀷鍚嶇О */ + parkTypeName?: string; } interface IndustrialParkListOutput { @@ -14054,6 +14186,39 @@ requestId?: string; } + interface OutCheckParkBountyApplyBaseInfo { + /** 鐢宠鎵规鍙� */ + batchNo?: string; + /** 鐢宠鍥尯Id */ + parkId?: string; + /** 鐢宠鍥尯 */ + parkName?: string; + /** 鐢宠鍥尯绫诲瀷 */ + parkTypeName?: string; + /** 鐢宠濂栧姳閲戞湀浠� */ + applyMonth?: string; + /** 濂栧姳閲戞眹鎬婚噾棰� */ + applySumAmount?: number; + /** 姹囨�绘槑缁嗚〃 */ + enterpriseTaxSubFileUrl?: string; + /** 浼佷笟钀ユ敹姹囨�昏〃 */ + enterpriseOperateFileUrl?: string; + /** 濂栧姳閲戝垎閰嶈〃 */ + bountyAssignFileUlr?: string; + /** 濂栧姳閲戞眹鎬昏〃 */ + bountyCollectFileUrl?: string; + outCheckStatus?: BountyCheckStatusEnum; + /** 澶栭儴瀹℃牳鍘熷洜 */ + outCheckRemark?: string; + } + + interface OutcheckParkBountyApplyInput { + parkBountyApplyId?: string; + outCheckStatus?: BountyCheckStatusEnum; + /** 澶囨敞 */ + remark?: string; + } + interface PageInput { pageModel?: Pagination; } @@ -14117,6 +14282,7 @@ interface ParkBountyApplyDetailInfo { parkBountyApplyId?: string; enterpriseId?: string; + userName?: string; /** 浼佷笟鍚嶇О */ enterpriseName?: string; /** 鍩烘湰鎴蜂俊鎭� */ @@ -14140,8 +14306,6 @@ /** C绔釜绋庡畬绋庢儏鍐佃鏄� */ personTaxRatePayUrl?: string; authType?: EnterpriseTypeEnum; - /** 浼佷笟绫诲瀷 10浜哄姏璧勬簮鍏徃 20鐢叉柟浼佷笟 30琛屼笟閰嶅 40琛屼笟鏈烘瀯 */ - type?: number; /** 閾惰淇℃伅鍙锋槸鍚﹀凡瀹屽杽 */ bankIsVerify?: boolean; /** 浼佷笟淇℃伅鏄惁宸插畬鍠� */ @@ -16411,6 +16575,13 @@ enterpriseIsVerify?: boolean; /** 鎵�灞炲洯鍖� */ industrialParkId?: string; + /** 鏈�杩戠敵鎶ュ紑濮嬫棩鏈� */ + lastApplyBeginTime?: string; + /** 鏈�杩戠敵鎶ョ粨鏉熸棩鏈� */ + lastApplyEndTime?: string; + lastPayBeginTime?: string; + /** 鏈�杩戝彂鏀剧粨鏉熸棩鏈� */ + lastPayEndTime?: string; } interface QueryParkOrHRAuditPageInput { @@ -19052,6 +19223,23 @@ id?: string; } + interface UpdateGovermentClientUserInput { + /** 鍚嶇О */ + name?: string; + /** 鐢ㄦ埛鍚� */ + userName?: string; + /** 澶囨敞 */ + remark?: string; + /** 鎵嬫満鍙� */ + phoneNumber?: string; + /** 瑙掕壊 */ + roleNames?: string[]; + /** 瀵嗙爜 */ + password?: string; + /** 鐢ㄦ埛Id */ + id?: string; + } + interface UpdateIndustrialParkInput { /** 鍥尯鍚嶇О */ parkName: string; diff --git a/src/views/Account/AccountManageList.vue b/src/views/Account/AccountManageList.vue index 77fa4ba..5a287cb 100644 --- a/src/views/Account/AccountManageList.vue +++ b/src/views/Account/AccountManageList.vue @@ -38,6 +38,7 @@ defineOperationBtns, } from '@bole-core/components'; import * as userRoleServices from '@/services/api/UserRole'; +import * as accountServices from '@/services/api/Account'; import { Message, OrderInputType } from '@bole-core/core'; import AddOrEditAccountDialog from './components/AddOrEditAccountDialog.vue'; import ResetPasswordDialog from './components/ResetPasswordDialog.vue'; @@ -50,7 +51,7 @@ const column: API.CustomModuleColumnDto[] = [ { id: '1', - enCode: 'changeFlag', + enCode: 'userName', name: '璐﹀彿', }, { @@ -60,12 +61,12 @@ }, { id: '3', - enCode: 'idNumber', + enCode: 'phoneNumber', name: '鎵嬫満鍙�', }, { id: '4', - enCode: 'workType', + enCode: 'remark', name: '澶囨敞', }, ]; @@ -86,7 +87,7 @@ name: '閲嶇疆瀵嗙爜', }, emits: { - onClick: (role) => handleResetPasswordAdd(), + onClick: (role) => openResetPasswordDialog(role), }, }, ]); @@ -162,30 +163,27 @@ }); async function handleAddOrEdit() { - // try { - // let isEdit = !!editForm.id; - // let params: API.CreateAccountInput = { - // name: editForm.name, - // userName: editForm.userName, - // remark: editForm.remark, - // password: editForm.password, - // phoneNumber: editForm.phoneNumber, - // channel: editForm.channel, - // // clientId: RoleClientType.RoleBackendClientId, - // roleNames: [editForm.roleName], - // }; - // let res; - // if (isEdit) { - // (params as API.UpdateAccountInput).id = editForm.id; - // res = await accountServices.updateAccount(params); - // } else { - // res = await accountServices.createAccount(params); - // } - // if (res) { - // Message.successMessage('鎿嶄綔鎴愬姛'); - // getList(isEdit ? paginationState.pageIndex : 1); - // } - // } catch (error) {} + try { + let isEdit = !!editForm.id; + let params: API.CreateAccountInput = { + name: editForm.name, + userName: editForm.userName, + remark: editForm.remark, + phoneNumber: editForm.phoneNumber, + }; + let res; + if (isEdit) { + (params as API.UpdateGovermentClientUserInput).id = editForm.id; + res = await userRoleServices.updateGovermentClientUser(params); + } else { + (params as API.CreateGoverUserInput).password = editForm.password; + res = await userRoleServices.createGovermentClientUser(params); + } + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + getList(isEdit ? paginationState.pageIndex : 1); + } + } catch (error) {} } const { @@ -193,10 +191,31 @@ handleAdd: handleResetPasswordAdd, editForm: resetPasswordEditForm, } = useFormDialog({ - onConfirm: handleAddOrEdit, + onConfirm: resetPassword, defaultFormParams: { - id: '', + userId: '', password: '', }, }); + +function openResetPasswordDialog(row: API.UserDto) { + handleResetPasswordAdd({ + userId: row.id, + password: '', + }); +} + +async function resetPassword() { + try { + let params: API.ResetPasswordBaseInput = { + userId: resetPasswordEditForm.userId, + password: resetPasswordEditForm.password, + }; + let res = await accountServices.resetPassword(params); + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + getList(paginationState.pageIndex); + } + } catch (error) {} +} </script> diff --git a/src/views/Account/components/AddOrEditAccountDialog.vue b/src/views/Account/components/AddOrEditAccountDialog.vue index a9cf30c..96591f3 100644 --- a/src/views/Account/components/AddOrEditAccountDialog.vue +++ b/src/views/Account/components/AddOrEditAccountDialog.vue @@ -30,7 +30,7 @@ <ProFormText placeholder="璇疯緭鍏ユ墜鏈哄彿" v-model.trim="form.phoneNumber"></ProFormText> </ProFormItemV2> <ProFormItemV2 - v-if="isEdit" + v-if="!isEdit" label="瀵嗙爜:" prop="password" :check-rules="[{ message: '璇疯緭鍏ュ瘑鐮�', required: !form.id }]" diff --git a/src/views/Account/components/ResetPasswordDialog.vue b/src/views/Account/components/ResetPasswordDialog.vue index b92542c..e974bfd 100644 --- a/src/views/Account/components/ResetPasswordDialog.vue +++ b/src/views/Account/components/ResetPasswordDialog.vue @@ -8,11 +8,7 @@ :width="800" > <ProForm :model="form" ref="dialogForm" label-width="120px"> - <ProFormItemV2 - label="瀵嗙爜:" - prop="password" - :check-rules="[{ message: '璇疯緭鍏ュ瘑鐮�', required: !form.id }]" - > + <ProFormItemV2 label="瀵嗙爜:" prop="password" :check-rules="[{ message: '璇疯緭鍏ュ瘑鐮�' }]"> <ProFormText placeholder="璇疯緭鍏ュ瘑鐮�" v-model.trim="form.password" @@ -45,7 +41,7 @@ type Form = { title?: string; - id: string; + userId: string; password: string; }; diff --git a/src/views/EnterpriseInfo/EnterpriseInfo.vue b/src/views/EnterpriseInfo/EnterpriseInfo.vue index 0f8a514..d061b89 100644 --- a/src/views/EnterpriseInfo/EnterpriseInfo.vue +++ b/src/views/EnterpriseInfo/EnterpriseInfo.vue @@ -5,7 +5,7 @@ <template #query> <QueryFilterItem tip-content="鏈�杩戠敵鎶ユ棩鏈�"> <FieldDatePicker - v-model="extraParamState.date" + v-model="extraParamState.lastApplyTime" type="daterange" range-separator="~" start-placeholder="寮�濮嬫棩鏈�" @@ -16,7 +16,7 @@ </QueryFilterItem> <QueryFilterItem tip-content="鏈�杩戝彂鏀炬棩鏈�"> <FieldDatePicker - v-model="extraParamState.date" + v-model="extraParamState.lastPayTime" type="daterange" range-separator="~" start-placeholder="寮�濮嬫棩鏈�" @@ -27,7 +27,7 @@ </QueryFilterItem> <QueryFilterItem> <SearchInput - v-model="extraParamState.keyword" + v-model="extraParamState.keywords" style="width: 300px" placeholder="浼佷笟鍚�/缁熶竴淇$敤浠g爜" @on-click-search="getList" @@ -163,8 +163,11 @@ page: pageIndex, orderInput: extraParamState.orderInput, }, - publishStartDate: format(extraParamState.date?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), - publishEndDate: format(extraParamState.date?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), + keywords: extraParamState.keywords, + lastApplyBeginTime: format(extraParamState.lastApplyTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), + lastApplyEndTime: format(extraParamState.lastApplyTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), + lastPayBeginTime: format(extraParamState.lastPayTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), + lastPayEndTime: format(extraParamState.lastPayTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), }; let res = await parkBountyApplyServices.getParkCustomerManagePage(params, { showLoading: !state.loading, @@ -174,9 +177,10 @@ }, { defaultExtraParams: { - keyword: '', - date: [] as unknown as ModelValueType, - orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }], + keywords: '', + lastApplyTime: [] as unknown as ModelValueType, + lastPayTime: [] as unknown as ModelValueType, + orderInput: [{ property: 'id', order: OrderInputType.Desc }], }, columnsRenderProps: { lastApplyTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, @@ -187,7 +191,7 @@ } ); -function goDetail(row: any) { +function goDetail(row: API.GetParkCustomerManageOutput) { router.push({ name: 'EnterpriseInfoDetail', params: { diff --git a/src/views/EnterpriseInfo/components/EnterpriseDeclareRecordView.vue b/src/views/EnterpriseInfo/components/EnterpriseDeclareRecordView.vue index 6ec96ca..ae0e574 100644 --- a/src/views/EnterpriseInfo/components/EnterpriseDeclareRecordView.vue +++ b/src/views/EnterpriseInfo/components/EnterpriseDeclareRecordView.vue @@ -96,9 +96,12 @@ } ); -async function goDetail(row: API.InsureBatchBillDto) { +async function goDetail(row: API.GetParkCustomerBountyApplyOutput) { router.push({ - name: '', + name: 'MaterialReviewDetail', + params: { + id: row.id, + }, }); } diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue index f5e15ff..4fe6e3a 100644 --- a/src/views/Home/Home.vue +++ b/src/views/Home/Home.vue @@ -4,11 +4,21 @@ <ChunkCell title="寰呭鐞�"> <div class="data-board-card-list"> <DataBoardCard title="寰呭鏍镐紒涓�" :contentBetween="true"> - <DataBoardCardPrice :value="20000" :isInline="true" :useThousand="false" unit="瀹�" /> + <DataBoardCardPrice + :value="detail?.waitCheckEnterpriseNumber ?? 0" + :isInline="true" + :useThousand="false" + unit="瀹�" + /> <el-button type="primary" link @click="goToAudit">鍘诲鏍�</el-button> </DataBoardCard> <DataBoardCard title="濂栧姳閲戝緟鍙戞斁" :contentBetween="true"> - <DataBoardCardPrice :isInline="true" :value="20000" :useThousand="false" unit="瀹�" /> + <DataBoardCardPrice + :isInline="true" + :value="detail?.waitForSettleRewardNumber ?? 0" + :useThousand="false" + unit="瀹�" + /> <el-button type="primary" link @click="goToGrant">鍘诲彂鏀�</el-button> </DataBoardCard> </div> @@ -16,22 +26,37 @@ <ChunkCell title="鏁版嵁鐪嬫澘"> <div class="data-board-card-list"> <DataBoardCard title="绱宸插鏍镐紒涓�"> - <DataBoardCardPrice :value="20000" :useThousand="false" unit="瀹�" /> + <DataBoardCardPrice + :value="detail?.accumulatedCheckEnterpriseNumber ?? 0" + :useThousand="false" + unit="瀹�" + /> </DataBoardCard> <DataBoardCard title="绱宸插鏍搁�氳繃浼佷笟"> - <DataBoardCardPrice :value="20000" :useThousand="false" unit="瀹�" /> + <DataBoardCardPrice + :value="detail?.accumulatedCheckPassEnterpriseNumber ?? 0" + :useThousand="false" + unit="瀹�" + /> </DataBoardCard> <DataBoardCard title="绱鏈鏍搁�氳繃浼佷笟"> - <DataBoardCardPrice :value="20000" :useThousand="false" unit="瀹�" /> + <DataBoardCardPrice + :value="detail?.accumulatedCheckRejectEnterpriseNumber ?? 0" + :useThousand="false" + unit="瀹�" + /> </DataBoardCard> <DataBoardCard title="绱宸插彂鏀惧鍔遍噾"> - <DataBoardCardPrice :value="20000" unit="鍏�" /> + <DataBoardCardPrice :value="detail?.accumulatedHasSettleRewardAmount ?? 0" unit="鍏�" /> </DataBoardCard> <DataBoardCard title="绱寰呭彂鏀惧鍔遍噾"> - <DataBoardCardPrice :value="20000" unit="鍏�" /> + <DataBoardCardPrice + :value="detail?.accumulatedWaitForSettleRewardAmount ?? 0" + unit="鍏�" + /> </DataBoardCard> <DataBoardCard title="绱宸蹭娇鐢ㄥ鍔遍噾"> - <DataBoardCardPrice :value="20000" unit="鍏�" /> + <DataBoardCardPrice :value="detail?.accumulatedUsedRewardAmount ?? 0" unit="鍏�" /> </DataBoardCard> </div> </ChunkCell> @@ -43,13 +68,25 @@ import { AppContainer, ChunkCell } from '@bole-core/components'; import DataBoardCard from '@/components/DataBoardCard/DataBoardCard.vue'; import DataBoardCardPrice from '@/components/DataBoardCard/DataBoardCardPrice.vue'; +import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; +import { useQuery, useQueryClient } from '@tanstack/vue-query'; defineOptions({ name: 'Home', }); const router = useRouter(); -const isLoading = ref(false); + +const { data: detail, isLoading } = useQuery({ + queryKey: ['parkBountyApplyServices/getGoverDataBoard'], + queryFn: async () => { + return await parkBountyApplyServices.getGoverDataBoard({ + showLoading: false, + }); + }, + placeholderData: () => ({} as API.GetGoverDataBoardOutput), +}); + function goToAudit() { router.push({ name: 'MaterialReviewList', @@ -60,6 +97,14 @@ name: 'RewardGrant', }); } + +const queryClient = useQueryClient(); + +onMounted(async () => { + await queryClient.ensureQueryData({ + queryKey: ['parkBountyApplyServices/getGoverDataBoard'], + }); +}); </script> <style lang="scss" scoped> diff --git a/src/views/Login/Login.vue b/src/views/Login/Login.vue index 7f317c5..774987f 100644 --- a/src/views/Login/Login.vue +++ b/src/views/Login/Login.vue @@ -178,6 +178,7 @@ await userStore.loginByUsername({ userName: unref(user), userPassword: unref(pwd), + clientId: 'goverend-admin-app-client', }); loading.value = false; router.push({ diff --git a/src/views/MaterialReview/MaterialReview.vue b/src/views/MaterialReview/MaterialReview.vue index c3e7ca4..c3f3735 100644 --- a/src/views/MaterialReview/MaterialReview.vue +++ b/src/views/MaterialReview/MaterialReview.vue @@ -3,9 +3,9 @@ <AppContainer> <ProTableQueryFilterBar @on-reset="reset"> <template #query> - <QueryFilterItem tip-content="鏈�杩戠敵鎶ユ棩鏈�"> + <QueryFilterItem tip-content="鐢虫姤鏃ユ湡"> <FieldDatePicker - v-model="extraParamState.date" + v-model="extraParamState.creationTime" type="daterange" range-separator="~" start-placeholder="寮�濮嬫棩鏈�" @@ -14,9 +14,9 @@ @change="getList()" ></FieldDatePicker> </QueryFilterItem> - <QueryFilterItem tip-content="鏈�杩戝彂鏀炬棩鏈�"> + <QueryFilterItem tip-content="瀹℃牳鏃ユ湡"> <FieldDatePicker - v-model="extraParamState.date" + v-model="extraParamState.outCheckTime" type="daterange" range-separator="~" start-placeholder="寮�濮嬫棩鏈�" @@ -27,8 +27,8 @@ </QueryFilterItem> <QueryFilterItem> <FieldRadio - v-model="extraParamState.showStatus" - :value-enum="DataRangeEnumText" + v-model="extraParamState.outCheckStatus" + :value-enum="BountyCheckStatusEnumText" buttonStyle showAllBtn @change="getList()" @@ -36,7 +36,7 @@ </QueryFilterItem> <QueryFilterItem> <SearchInput - v-model="extraParamState.keyword" + v-model="extraParamState.batchNo" style="width: 200px" placeholder="鎵规鍙�" @on-click-search="getList" @@ -67,8 +67,8 @@ } from '@bole-core/components'; import { OrderInputType } from '@bole-core/core'; import { format } from '@/utils'; -import { DataRangeEnum, DataRangeEnumText } from '@/constants'; -import * as informationServices from '@/services/api/Information'; +import { BountyCheckStatusEnum, BountyCheckStatusEnumText, DataRangeEnumText } from '@/constants'; +import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; import _ from 'lodash'; import { ModelValueType } from 'element-plus'; import { useGlobalEventContext } from '@/hooks'; @@ -80,42 +80,42 @@ const column: API.CustomModuleColumnDto[] = [ { id: '1', - enCode: 'changeFlag', + enCode: 'batchNo', name: '鐢宠鎵规鍙�', }, { id: '2', - enCode: 'name', + enCode: 'parkName', name: '鐢宠鍥尯', }, { id: '3', - enCode: 'idNumber', + enCode: 'parkTypeName', name: '鍥尯绫诲瀷', }, { id: '4', - enCode: 'workType', + enCode: 'applyMonth', name: '鐢宠濂栧姳閲戞湀浠�', }, { id: '5', - enCode: 'gender', + enCode: 'applySumAmount', name: '濂栧姳閲戞眹鎬婚噾棰濓紙鍏冿級', }, { id: '6', - enCode: 'age', + enCode: 'creationTime', name: '鐢虫姤鏃ユ湡', }, { id: '7', - enCode: 'birthDay', + enCode: 'outCheckTime', name: '瀹℃牳鏃ユ湡', }, { id: '8', - enCode: 'phoneNumber', + enCode: 'outCheckStatus', name: '瀹℃牳鐘舵��', }, ]; @@ -137,6 +137,10 @@ }, emits: { onClick: (role) => goAudit(role), + }, + extraProps: { + hide: (row: API.GetParkBountyApplyListOutput) => + row.outCheckStatus !== BountyCheckStatusEnum.WaitCheck, }, }, ]); @@ -168,16 +172,20 @@ } = useTable( async ({ pageIndex, pageSize }, extraParamState) => { try { - let params: API.GetInformationForManageInput = { + let params: API.GetParkBountyApplyListInput = { pageModel: { rows: pageSize, page: pageIndex, orderInput: extraParamState.orderInput, }, - publishStartDate: format(extraParamState.date?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), - publishEndDate: format(extraParamState.date?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), + batchNo: extraParamState.batchNo, + outCheckStatus: extraParamState.outCheckStatus, + 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'), }; - let res = await informationServices.getInformationForManage(params, { + let res = await parkBountyApplyServices.getOutcheckParkBountyList(params, { showLoading: !state.loading, }); return res; @@ -185,15 +193,23 @@ }, { defaultExtraParams: { - keyword: '', - showStatus: '' as any as DataRangeEnum, - date: [] as unknown as ModelValueType, + batchNo: '', + outCheckStatus: '' as any as BountyCheckStatusEnum, + creationTime: [] as unknown as ModelValueType, + outCheckTime: [] 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' }, + applySumAmount: { type: 'money', precision: 2 }, + outCheckStatus: { type: 'enum', valueEnum: BountyCheckStatusEnumText }, }, } ); -function goDetail(row: any) { +function goDetail(row: API.GetParkBountyApplyListOutput) { router.push({ name: 'MaterialReviewDetail', params: { @@ -201,7 +217,7 @@ }, }); } -function goAudit(row: any) { +function goAudit(row: API.GetParkBountyApplyListOutput) { router.push({ name: 'MaterialReviewAudit', params: { diff --git a/src/views/MaterialReview/MaterialReviewAudit.vue b/src/views/MaterialReview/MaterialReviewAudit.vue index 104cf51..d92dc23 100644 --- a/src/views/MaterialReview/MaterialReviewAudit.vue +++ b/src/views/MaterialReview/MaterialReviewAudit.vue @@ -4,7 +4,12 @@ <PageFormLayout title="鏉愭枡瀹℃牳"> <DetailView :form="form" :has-form="true"> <ChunkCellV2 title="鐢虫姤浼佷笟鍚嶅崟" class="chunk-cell-table"> - <DeclareEnterpriseTableView ref="tableRef"></DeclareEnterpriseTableView> + <DeclareEnterpriseTableView + :getList="getList" + :extra-param-state="extraParamState" + :pro-table-props="proTableProps" + :reset="reset" + ></DeclareEnterpriseTableView> </ChunkCellV2> <ChunkCell> <ProForm :model="form" ref="formRef" label-width="120px"> @@ -15,13 +20,20 @@ prop="status" :check-rules="[{ message: '璇烽�夋嫨瀹℃牳鐘舵��' }]" > - <ProFormRadio v-model="form.status" :value-enum="DataRangeEnumText" /> + <ProFormRadio + v-model="form.status" + :value-enum="BountyCheckStatusEnumTextForAudit" + /> </ProFormItemV2> </ProFormColItem> </ProFormCol> - <ProFormCol> + <ProFormCol v-if="form.status === BountyCheckStatusEnum.CheckReject"> <ProFormColItem> - <ProFormItemV2 label="椹冲洖鍘熷洜:" prop="remark"> + <ProFormItemV2 + label="椹冲洖鍘熷洜:" + prop="remark" + :check-rules="[{ message: '璇疯緭鍏ラ┏鍥炲師鍥�' }]" + > <ProFormTextArea v-model="form.remark" placeholder="璇疯緭鍏�" @@ -56,22 +68,29 @@ LoadingLayout, UploadUserFile, PageFormLayout, + useTable, } from '@bole-core/components'; -import { DataRangeEnum, DataRangeEnumText } from '@/constants'; +import { + AuthTypeText, + BountyCheckStatusEnum, + BountyCheckStatusEnumTextForAudit, +} from '@/constants'; import ChunkCellV2 from '@/components/Layout/ChunkCellV2.vue'; import DetailView from '@/components/commonView/DetailView.vue'; import DeclareEnterpriseTableView from '@/components/commonView/DeclareEnterpriseTableView.vue'; import { useQuery } from '@tanstack/vue-query'; import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; -import { convertApi2FormUrlOnlyOne } from '@/utils'; -import { useRouteView } from '@/hooks'; +import { convertApi2FormUrlOnlyOne, setOSSLink } from '@/utils'; +import { useGlobalEventContext, useRouteView } from '@/hooks'; import { FormInstance } from 'element-plus'; +import { Message, OrderInputType } from '@bole-core/core'; defineOptions({ name: 'MaterialReviewAudit', }); const route = useRoute(); +const eventContext = useGlobalEventContext(); const { closeViewPush } = useRouteView(); const id = route.params?.id as string; const form = reactive({ @@ -85,16 +104,14 @@ bountyAssignFileUlr: [] as UploadUserFile[], bountyCollectFileUrl: [] as UploadUserFile[], - status: '' as any as DataRangeEnum, + status: '' as any as BountyCheckStatusEnum, remark: '', }); -const tableRef = ref<InstanceType<typeof DeclareEnterpriseTableView>>(); - const { data: detail, isLoading } = useQuery({ - queryKey: ['parkBountyApplyServices/getParkBountyApplyDetail', id], + queryKey: ['parkBountyApplyServices/getOutCheckParkBountyApplyDetailBaseInfo', id], queryFn: async () => { - return await parkBountyApplyServices.getParkBountyApplyDetailBaseInfo( + return await parkBountyApplyServices.getOutCheckParkBountyApplyDetailBaseInfo( { parkBountyApplyId: id }, { showLoading: false, @@ -113,9 +130,48 @@ form.bountyAssignFileUlr = convertApi2FormUrlOnlyOne(data?.bountyAssignFileUlr); form.bountyCollectFileUrl = convertApi2FormUrlOnlyOne(data?.bountyCollectFileUrl); - tableRef.value?.getList(); + getList(); }, }); + +const { + getDataSource: getList, + proTableProps, + paginationState, + extraParamState, + reset, +} = useTable( + async ({ pageIndex, pageSize }, extraParamState) => { + try { + let params: API.GetParkBountyApplyInfoInput = { + pageModel: { + rows: pageSize, + page: pageIndex, + orderInput: extraParamState.orderInput, + }, + searchKeyWord: extraParamState.searchKeyWord, + parkBountyApplyId: id, + }; + let res = await parkBountyApplyServices.getOutCheckParkBountyApplyDetailList(params); + return res; + } catch (error) {} + }, + { + defaultExtraParams: { + orderInput: [{ property: 'enterpriseId', order: OrderInputType.Desc }], + searchKeyWord: '', + }, + columnsRenderProps: { + authType: { type: 'enum', valueEnum: AuthTypeText }, + licenseUrl: { + type: 'url', + formatter: (row: API.UserCertificationAuditListDto) => setOSSLink(row.licenseUrl), + modal: true, + showDownloadBtn: false, + }, + }, + } +); function handleBack() { closeViewPush(route, { @@ -135,7 +191,21 @@ }); } -function confirm() {} +async function confirm() { + try { + let params: API.OutcheckParkBountyApplyInput = { + parkBountyApplyId: id, + outCheckStatus: form.status, + remark: form.remark, + }; + let res = await parkBountyApplyServices.outcheckParkBountyApply(params); + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + eventContext.emit('materialReviewAudit:audit'); + handleBack(); + } + } catch (error) {} +} </script> <style lang="scss" scoped> diff --git a/src/views/MaterialReview/MaterialReviewDetail.vue b/src/views/MaterialReview/MaterialReviewDetail.vue index ba85cbb..cc0fb29 100644 --- a/src/views/MaterialReview/MaterialReviewDetail.vue +++ b/src/views/MaterialReview/MaterialReviewDetail.vue @@ -6,16 +6,24 @@ <div class="page-form-layout-title"> 鐢虫姤璇︽儏 <span class="page-form-layout-title-item status"> - {{ `瀹℃牳鐘舵��:${form.categoryName}` }} + {{ `瀹℃牳鐘舵��:${BountyCheckStatusEnumText[form.outCheckStatus]}` }} </span> - <span class="page-form-layout-title-item remark"> - {{ `瀹℃牳鏈�氳繃鍘熷洜:${form.categoryName}` }} + <span + v-if="form.outCheckStatus === BountyCheckStatusEnum.CheckReject" + class="page-form-layout-title-item remark" + > + {{ `瀹℃牳鏈�氳繃鍘熷洜:${form.outCheckRemark ?? ''}` }} </span> </div> </template> <DetailView :form="form"> <ChunkCellV2 title="鐢虫姤浼佷笟鍚嶅崟"> - <DeclareEnterpriseTableView ref="tableRef"></DeclareEnterpriseTableView> + <DeclareEnterpriseTableView + :getList="getList" + :extra-param-state="extraParamState" + :pro-table-props="proTableProps" + :reset="reset" + ></DeclareEnterpriseTableView> </ChunkCellV2> </DetailView> <template #footer> @@ -27,14 +35,22 @@ </template> <script setup lang="ts"> -import { AppContainer, LoadingLayout, UploadUserFile, PageFormLayout } from '@bole-core/components'; +import { + AppContainer, + LoadingLayout, + UploadUserFile, + PageFormLayout, + useTable, +} from '@bole-core/components'; import ChunkCellV2 from '@/components/Layout/ChunkCellV2.vue'; import DetailView from '@/components/commonView/DetailView.vue'; import DeclareEnterpriseTableView from '@/components/commonView/DeclareEnterpriseTableView.vue'; import { useQuery } from '@tanstack/vue-query'; import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; -import { convertApi2FormUrlOnlyOne } from '@/utils'; +import { convertApi2FormUrlOnlyOne, setOSSLink } from '@/utils'; import { useRouteView } from '@/hooks'; +import { OrderInputType } from '@bole-core/core'; +import { AuthTypeText, BountyCheckStatusEnum, BountyCheckStatusEnumText } from '@/constants'; defineOptions({ name: 'MaterialReviewDetail', @@ -54,37 +70,79 @@ bountyAssignFileUlr: [] as UploadUserFile[], bountyCollectFileUrl: [] as UploadUserFile[], - categoryName: '', + outCheckStatus: '' as any as BountyCheckStatusEnum, + outCheckRemark: '', }); const tableRef = ref<InstanceType<typeof DeclareEnterpriseTableView>>(); const { data: detail, isLoading } = useQuery({ - queryKey: ['parkBountyApplyServices/getParkBountyApplyDetail', id], + queryKey: ['parkBountyApplyServices/getOutCheckParkBountyApplyDetailBaseInfo', id], queryFn: async () => { - return await parkBountyApplyServices.getParkBountyApplyDetailBaseInfo( + return await parkBountyApplyServices.getOutCheckParkBountyApplyDetailBaseInfo( { parkBountyApplyId: id }, { showLoading: false, } ); }, - placeholderData: () => ({} as API.ParkBountyApplyBaseInfo), + 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.outCheckStatus = data.outCheckStatus; + form.outCheckRemark = data.outCheckRemark; form.enterpriseTaxSubFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseTaxSubFileUrl); form.enterpriseOperateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseOperateFileUrl); form.bountyAssignFileUlr = convertApi2FormUrlOnlyOne(data?.bountyAssignFileUlr); form.bountyCollectFileUrl = convertApi2FormUrlOnlyOne(data?.bountyCollectFileUrl); - tableRef.value?.getList(); + getList(); }, }); +const { + getDataSource: getList, + proTableProps, + paginationState, + extraParamState, + reset, +} = useTable( + async ({ pageIndex, pageSize }, extraParamState) => { + try { + let params: API.GetParkBountyApplyInfoInput = { + pageModel: { + rows: pageSize, + page: pageIndex, + orderInput: extraParamState.orderInput, + }, + searchKeyWord: extraParamState.searchKeyWord, + parkBountyApplyId: id, + }; + let res = await parkBountyApplyServices.getOutCheckParkBountyApplyDetailList(params); + return res; + } catch (error) {} + }, + { + defaultExtraParams: { + orderInput: [{ property: 'enterpriseId', order: OrderInputType.Desc }], + searchKeyWord: '', + }, + columnsRenderProps: { + authType: { type: 'enum', valueEnum: AuthTypeText }, + licenseUrl: { + type: 'url', + formatter: (row: API.UserCertificationAuditListDto) => setOSSLink(row.licenseUrl), + modal: true, + showDownloadBtn: false, + }, + }, + } +); + function handleBack() { closeViewPush(route, { name: 'MaterialReviewList', -- Gitblit v1.9.1