From 9e63ed4533fe6fbb5e81a096c9f5949c7ccf58f2 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期二, 08 四月 2025 17:34:15 +0800 Subject: [PATCH] feat: 接口 --- src/services/api/ParkReward.ts | 18 + src/services/api/typings.d.ts | 252 +++++++++++++++++++ src/components/commonView/SettlementMaterialInfoView.vue | 17 src/components/commonView/MaterialInfoView.vue | 11 src/services/api/index.ts | 2 src/components/commonView/DetailView.vue | 12 src/components/commonView/BatchInfoView.vue | 38 -- src/views/Reward/RewardGrant.vue | 84 ++++-- src/components/commonView/DeclareEnterpriseTableView.vue | 12 src/services/api/User.ts | 38 ++ src/constants/reward.ts | 52 ++++ src/components/commonView/types.ts | 26 ++ src/services/api/UserRole.ts | 15 + src/views/Reward/RewardDeclareDetail.vue | 43 ++ src/views/Reward/components/RewardGrantDialog.vue | 8 src/constants/index.ts | 1 src/services/api/ParkBountyApply.ts | 117 +++++++++ src/views/MaterialReview/MaterialReviewDetail.vue | 16 18 files changed, 660 insertions(+), 102 deletions(-) diff --git a/src/components/commonView/BatchInfoView.vue b/src/components/commonView/BatchInfoView.vue index b5442c6..ee26f52 100644 --- a/src/components/commonView/BatchInfoView.vue +++ b/src/components/commonView/BatchInfoView.vue @@ -1,41 +1,23 @@ <template> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="鐢虫姤鎵规鍙�:" prop="applyNo"> - <ProFormText placeholder="璇疯緭鍏ョ敵鎶ユ壒娆″彿" v-model.trim="form.categoryName" /> + <ProFormItemV2 label="鐢虫姤鎵规鍙�:" prop="batchNo"> + <ProFormText v-model.trim="form.batchNo" /> </ProFormItemV2> </ProFormColItem> <ProFormColItem :span="12"> - <ProFormItemV2 label="鐢宠濂栧姳閲戞湀浠�:" prop="applyDate"> - <ProFormDatePicker - v-model="form.categoryName" - format="YYYY-MM" - placeholder="璇烽�夋嫨鏈堜唤" - type="month" - /> + <ProFormItemV2 label="鐢宠濂栧姳閲戞湀浠�:" prop="applyMonth"> + <ProFormDatePicker v-model="form.applyMonth" format="YYYY-MM" type="month" /> </ProFormItemV2> </ProFormColItem> <ProFormColItem :span="12"> - <ProFormItemV2 label="鐢虫姤鍥尯:" prop="applyParkId"> - <ProFormSelect - v-model="form.categoryName" - :valueEnum="[]" - enumLabelKey="name" - enum-value-key="userId" - placeholder="璇烽�夋嫨鐢虫姤鍥尯" - > - </ProFormSelect> + <ProFormItemV2 label="鐢虫姤鍥尯:" prop="parkName"> + <ProFormText v-model.trim="form.parkName" /> </ProFormItemV2> </ProFormColItem> <ProFormColItem :span="12"> <ProFormItemV2 label="鍥尯绫诲瀷:"> - <ProFormSelect - v-model="form.categoryName" - :valueEnum="parkTypeList" - enumLabelKey="name" - enum-value-key="id" - > - </ProFormSelect> + <ProFormText v-model.trim="form.parkTypeName" /> </ProFormItemV2> </ProFormColItem> </ProFormCol> @@ -60,7 +42,11 @@ type Props = { form: { - categoryName: string; + batchNo: string; + parkName: string; + parkTypeName: string; + applyMonth: string; + applySumAmount: number; }; }; diff --git a/src/components/commonView/DeclareEnterpriseTableView.vue b/src/components/commonView/DeclareEnterpriseTableView.vue index 0a675de..3347562 100644 --- a/src/components/commonView/DeclareEnterpriseTableView.vue +++ b/src/components/commonView/DeclareEnterpriseTableView.vue @@ -57,32 +57,32 @@ }, { id: '2', - enCode: 'income', + enCode: 'enterpriseName', name: '浼佷笟鍚嶇О', }, { id: '3', - enCode: 'outcome', + enCode: 'societyCreditCode', name: '淇$敤浠g爜', }, { id: '4', - enCode: 'acctBalance', + enCode: 'contactPhone', name: '鐢佃瘽', }, { id: '5', - enCode: 'counterpartyAcctNoAndName', + enCode: 'authType', name: '浼佷笟绫诲瀷', }, { id: '6', - enCode: 'purpose', + enCode: 'licenseUrl', name: '钀ヤ笟鎵х収', }, { id: '7', - enCode: 'purpose', + enCode: 'bankAccountInfo', name: '鍩烘湰鎴蜂俊鎭�', }, ]); diff --git a/src/components/commonView/DetailView.vue b/src/components/commonView/DetailView.vue index 07ae905..18acd11 100644 --- a/src/components/commonView/DetailView.vue +++ b/src/components/commonView/DetailView.vue @@ -27,9 +27,15 @@ type Props = { hasForm?: boolean; form?: { - categoryName: string; - amount: number; - url: UploadUserFile[]; + batchNo: string; + parkName: string; + parkTypeName: string; + applyMonth: string; + applySumAmount: number; + enterpriseTaxSubFileUrl: UploadUserFile[]; + enterpriseOperateFileUrl: UploadUserFile[]; + bountyAssignFileUlr: UploadUserFile[]; + bountyCollectFileUrl: UploadUserFile[]; }; }; diff --git a/src/components/commonView/MaterialInfoView.vue b/src/components/commonView/MaterialInfoView.vue index 4c67bf9..a45a78f 100644 --- a/src/components/commonView/MaterialInfoView.vue +++ b/src/components/commonView/MaterialInfoView.vue @@ -1,15 +1,15 @@ <template> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="浼佷笟缂寸◣鏄庣粏姹囨�昏〃:" prop="link"> - <ProFormUpload v-model:file-url="form.url"></ProFormUpload> + <ProFormItemV2 label="浼佷笟缂寸◣鏄庣粏姹囨�昏〃:" prop="enterpriseTaxSubFileUrl"> + <ProFormUpload v-model:file-url="form.enterpriseTaxSubFileUrl"></ProFormUpload> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="浼佷笟钀ユ敹姹囨�昏〃:" prop="link"> - <ProFormUpload v-model:file-url="form.url"></ProFormUpload> + <ProFormItemV2 label="浼佷笟钀ユ敹姹囨�昏〃:" prop="enterpriseOperateFileUrl"> + <ProFormUpload v-model:file-url="form.enterpriseOperateFileUrl"></ProFormUpload> </ProFormItemV2> </ProFormColItem> </ProFormCol> @@ -30,7 +30,8 @@ type Props = { form: { - url: UploadUserFile[]; + enterpriseTaxSubFileUrl: UploadUserFile[]; + enterpriseOperateFileUrl: UploadUserFile[]; }; }; diff --git a/src/components/commonView/SettlementMaterialInfoView.vue b/src/components/commonView/SettlementMaterialInfoView.vue index 5bbb622..de9228b 100644 --- a/src/components/commonView/SettlementMaterialInfoView.vue +++ b/src/components/commonView/SettlementMaterialInfoView.vue @@ -1,22 +1,22 @@ <template> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="鏈鐢虫姤濂栧姳閲戞�婚:" prop="link"> - <ProFormInputNumber v-model="form.amount" unit="鍏�" /> + <ProFormItemV2 label="鏈鐢虫姤濂栧姳閲戞�婚:" prop="applySumAmount"> + <ProFormInputNumber v-model="form.applySumAmount" unit="鍏�" /> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="濂栧姳閲戝垎閰嶆槑缁嗚〃:" prop="link"> - <ProFormUpload v-model:file-url="form.url"></ProFormUpload> + <ProFormItemV2 label="濂栧姳閲戝垎閰嶆槑缁嗚〃:" prop="bountyAssignFileUlr"> + <ProFormUpload v-model:file-url="form.bountyAssignFileUlr"></ProFormUpload> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="濂栧姳閲戞眹鎬昏〃:" prop="link"> - <ProFormUpload v-model:file-url="form.url"></ProFormUpload> + <ProFormItemV2 label="濂栧姳閲戞眹鎬昏〃:" prop="bountyCollectFileUrl"> + <ProFormUpload v-model:file-url="form.bountyCollectFileUrl"></ProFormUpload> </ProFormItemV2> </ProFormColItem> </ProFormCol> @@ -38,8 +38,9 @@ type Props = { form: { - amount: number; - url: UploadUserFile[]; + applySumAmount: number; + bountyAssignFileUlr: UploadUserFile[]; + bountyCollectFileUrl: UploadUserFile[]; }; }; diff --git a/src/components/commonView/types.ts b/src/components/commonView/types.ts index 73dff5f..24c9b2e 100644 --- a/src/components/commonView/types.ts +++ b/src/components/commonView/types.ts @@ -12,3 +12,29 @@ fileBusinessType: EnterpriseMaterialFileBusinessTypeEnum; fileList: (API.AddEnterpriseMaterialFileInput & UploadUserFile)[]; }; + +export enum EnterpriseTypeEnum { + /** + * 浜哄姏璧勬簮鍏徃 + */ + HREnterprise = 10, + /** + * 鐢叉柟浼佷笟 + */ + FirstPartyCompany = 20, + /** + * 琛屼笟閰嶅 + */ + IndustryMating = 30, + /** + * 琛屼笟鏈烘瀯 + */ + IndustryBody = 40, +} + +export const EnterpriseTypeEnumText = { + [EnterpriseTypeEnum.HREnterprise]: '浜哄姏璧勬簮鍏徃', + [EnterpriseTypeEnum.FirstPartyCompany]: '鐢叉柟浼佷笟', + [EnterpriseTypeEnum.IndustryMating]: '琛屼笟閰嶅', + [EnterpriseTypeEnum.IndustryBody]: '琛屼笟鏈烘瀯', +}; diff --git a/src/constants/index.ts b/src/constants/index.ts index d5c8f0b..eb92ec8 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -11,3 +11,4 @@ export * from './app'; export * from './dic'; export * from './enterpriseMaterial'; +export * from './reward'; diff --git a/src/constants/reward.ts b/src/constants/reward.ts new file mode 100644 index 0000000..7eafdd7 --- /dev/null +++ b/src/constants/reward.ts @@ -0,0 +1,52 @@ +export enum BountyCheckStatusEnum { + /** + * 寰呭鏍� + */ + WaitCheck = 10, + /** + * 瀹℃牳閫氳繃 + */ + CheckPassed = 20, + /** + * 瀹℃牳涓嶉�氳繃 + */ + CheckReject = 30, +} + +export const BountyCheckStatusEnumText = { + [BountyCheckStatusEnum.WaitCheck]: '寰呭鏍�', + [BountyCheckStatusEnum.CheckPassed]: '瀹℃牳閫氳繃', + [BountyCheckStatusEnum.CheckReject]: '瀹℃牳涓嶉�氳繃', +}; + +export enum SettleStatusEnum { + /** + * 寰呭彂鏀� + */ + WaitForSettle = 1, + /** + * 宸插彂鏀� + */ + HasSettle = 2, +} + +export const SettleStatusEnumText = { + [SettleStatusEnum.WaitForSettle]: '寰呭彂鏀�', + [SettleStatusEnum.HasSettle]: '宸插彂鏀�', +}; + +export enum IncomeStatusEnum { + /** + * 寰呭叆璐� + */ + WaitForIncome = 1, + /** + * 宸插叆璐� + */ + HasIncome = 2, +} + +export const IncomeStatusEnumText = { + [IncomeStatusEnum.WaitForIncome]: '寰呭叆璐�', + [IncomeStatusEnum.HasIncome]: '宸插叆璐�', +}; diff --git a/src/services/api/ParkBountyApply.ts b/src/services/api/ParkBountyApply.ts new file mode 100644 index 0000000..55d0e25 --- /dev/null +++ b/src/services/api/ParkBountyApply.ts @@ -0,0 +1,117 @@ +/* eslint-disable */ +// @ts-ignore +import { request } from '@/utils/request'; + +/** 鑾峰彇鐢虫姤璇︽儏 POST /api/ParkBountyApply/GetParkBountyApplyDetail */ +export async function getParkBountyApplyDetail( + body: API.GetParkBountyApplyInfoInput, + options?: API.RequestConfig +) { + return request<API.GetParkBountyApplyInfoOutput>( + '/api/ParkBountyApply/GetParkBountyApplyDetail', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 鑾峰彇濂栧姳閲戝彂鏀惧垪琛� POST /api/ParkBountyApply/GetParkBountyApplyList */ +export async function getParkBountyApplyList( + body: API.GetParkBountyApplyListInput, + options?: API.RequestConfig +) { + return request<API.GetParkBountyApplyListOutputPageOutput>( + '/api/ParkBountyApply/GetParkBountyApplyList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 鑾峰彇鍏ヨ处璇︽儏 POST /api/ParkBountyApply/GetParkBountyApplyTransferDetail */ +export async function getParkBountyApplyTransferDetail( + body: API.GetParkBountyApplyTransferInfoInput, + options?: API.RequestConfig +) { + return request<API.GetParkBountyApplyTransferInfoOutput>( + '/api/ParkBountyApply/GetParkBountyApplyTransferDetail', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 鎵归噺鍏ヨ处 POST /api/ParkBountyApply/ParkBountyApplyBatchTransfer */ +export async function parkBountyApplyBatchTransfer( + body: API.ParkBountyApplyBatchTransferInput, + options?: API.RequestConfig +) { + return request<number>('/api/ParkBountyApply/ParkBountyApplyBatchTransfer', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 涓婁紶鍙戠エ鍑瘉 POST /api/ParkBountyApply/ParkBountyApplySettle */ +export async function parkBountyApplySettle( + body: API.ParkBountyApplySettleInput, + options?: API.RequestConfig +) { + return request<number>('/api/ParkBountyApply/ParkBountyApplySettle', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 濂栧姳閲戝叆璐� POST /api/ParkBountyApply/ParkBountyApplyTransfer */ +export async function parkBountyApplyTransfer( + body: API.ParkBountyApplyTransferInput, + options?: API.RequestConfig +) { + return request<number>('/api/ParkBountyApply/ParkBountyApplyTransfer', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 涓婁紶鍑瘉 POST /api/ParkBountyApply/ParkBountyApplyTransferFile */ +export async function parkBountyApplyTransferFile( + body: API.ParkBountyApplyTransferFileInput, + options?: API.RequestConfig +) { + return request<number>('/api/ParkBountyApply/ParkBountyApplyTransferFile', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/src/services/api/ParkReward.ts b/src/services/api/ParkReward.ts index 41bf2af..45e5177 100644 --- a/src/services/api/ParkReward.ts +++ b/src/services/api/ParkReward.ts @@ -62,6 +62,24 @@ }); } +/** 鑾峰彇浼佷笟濂栧姳閲戞祦姘� POST /api/ParkReward/GetEnterpriseBuntyTradeList */ +export async function getEnterpriseBuntyTradeList( + body: API.PageInput, + options?: API.RequestConfig +) { + return request<API.GetEnterpriseBuntyTradeDtoPageOutput>( + '/api/ParkReward/GetEnterpriseBuntyTradeList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + /** 鑾峰彇鏈�鏂板鍔辩敵璇蜂俊鎭� GET /api/ParkReward/GetNewestParkRewardApplyInfo */ export async function getNewestParkRewardApplyInfo( // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) diff --git a/src/services/api/User.ts b/src/services/api/User.ts index 2598eb6..d8c7edf 100644 --- a/src/services/api/User.ts +++ b/src/services/api/User.ts @@ -401,6 +401,14 @@ }); } +/** 鑾峰彇浼佷笟濂栭噾浣欓鍙婂熀鏈俊鎭� GET /api/User/GetUserBaseEnterpriseInfo */ +export async function getUserBaseEnterpriseInfo(options?: API.RequestConfig) { + return request<API.GetUserBaseEnterpriseInfoOutput>('/api/User/GetUserBaseEnterpriseInfo', { + method: 'GET', + ...(options || {}), + }); +} + /** 鑾峰彇鐢ㄦ埛璇佷功鐢宠鐘舵�� GET /api/User/GetUserBestSignUserRegStatus */ export async function getUserBestSignUserRegStatus(options?: API.RequestConfig) { return request<number>('/api/User/GetUserBestSignUserRegStatus', { @@ -698,6 +706,36 @@ }); } +/** 淇濆瓨閾惰鍩烘湰淇℃伅 POST /api/User/SetUserEnterpiseBankInfo */ +export async function setUserEnterpiseBankInfo( + body: API.SetUserEnterpriseBankInfoInput, + options?: API.RequestConfig +) { + return request<number>('/api/User/SetUserEnterpiseBankInfo', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 淇濆瓨浼佷笟鍩烘湰淇℃伅 POST /api/User/SetUserEnterpiseBaseInfo */ +export async function setUserEnterpiseBaseInfo( + body: API.SetUserEnterpiseBaseInfoInput, + options?: API.RequestConfig +) { + return request<number>('/api/User/SetUserEnterpiseBaseInfo', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + /** 鍙栧叧鐢ㄦ埛 POST /api/User/UnFollowUser */ export async function unFollowUser(body: API.UnFollowUserInput, options?: API.RequestConfig) { return request<number>('/api/User/UnFollowUser', { diff --git a/src/services/api/UserRole.ts b/src/services/api/UserRole.ts index 37b6b26..309f2fa 100644 --- a/src/services/api/UserRole.ts +++ b/src/services/api/UserRole.ts @@ -74,6 +74,21 @@ }); } +/** 鏀垮姟绔处鍙峰垪琛� POST /api/UserRole/GetGovermentClientUsers */ +export async function getGovermentClientUsers( + body: API.GetBackClientUsersInput, + options?: API.RequestConfig +) { + return request<API.UserDtoPageOutput>('/api/UserRole/GetGovermentClientUsers', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + /** 瑙掕壊鍒楄〃 POST /api/UserRole/GetRoles */ export async function getRoles(body: API.GetRolesInput, options?: API.RequestConfig) { return request<API.RoleInfoPageOutput>('/api/UserRole/GetRoles', { diff --git a/src/services/api/index.ts b/src/services/api/index.ts index f64d00b..ac84523 100644 --- a/src/services/api/index.ts +++ b/src/services/api/index.ts @@ -52,6 +52,7 @@ import * as OpenInformation from './OpenInformation'; import * as OperateHistory from './OperateHistory'; import * as Order from './Order'; +import * as ParkBountyApply from './ParkBountyApply'; import * as ParkOrHR from './ParkOrHR'; import * as ParkReward from './ParkReward'; import * as Permissions from './Permissions'; @@ -137,6 +138,7 @@ OpenInformation, OperateHistory, Order, + ParkBountyApply, ParkOrHR, ParkReward, Permissions, diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts index 459d219..dafc419 100644 --- a/src/services/api/typings.d.ts +++ b/src/services/api/typings.d.ts @@ -2671,6 +2671,8 @@ userId?: string; } + type BountyCheckStatusEnum = 10 | 20 | 30; + type BusinessSettingTypeEnum = 10; interface CalculationWalletPayFeeInput { @@ -3779,6 +3781,7 @@ companyOrgId?: string; /** 缁勭粐鏋舵瀯閮ㄩ棬id */ departmentOrgId?: string; + password?: string; } interface CreateBackClientUserInput { @@ -3795,6 +3798,7 @@ companyOrgId?: string; /** 缁勭粐鏋舵瀯閮ㄩ棬id */ departmentOrgId?: string; + password?: string; } interface CreateBaseRoleInput { @@ -5508,6 +5512,8 @@ listOrderNo?: number[]; } + type EnterpriseBountyPayTypeEnum = 10 | 20; + interface EnterpriseMaterialDetailOutput { id?: string; /** 骞� */ @@ -6230,7 +6236,7 @@ pageModel?: Pagination; /** 璐︽埛鏄惁閿佷綇锛堟槸鍚︾鐢級 */ isLocked?: boolean; - /** 鏌ヨ鏉′欢锛氬悕绉�/璐﹀彿 */ + /** 鏌ヨ鏉′欢锛氬悕绉�/璐﹀彿/鎵嬫満鍙� */ queryCondition?: string; } @@ -6520,6 +6526,23 @@ platedTime?: string; /** 鎿嶄綔浜� */ operator?: string; + } + + interface GetEnterpriseBuntyTradeDto { + id?: string; + payDateTime?: string; + amount?: number; + payType?: EnterpriseBountyPayTypeEnum; + remianAmount?: number; + payRemark?: string; + fileUrl?: string; + payFileUrls?: string[]; + } + + interface GetEnterpriseBuntyTradeDtoPageOutput { + pageModel?: Pagination; + objectData?: any; + data?: GetEnterpriseBuntyTradeDto[]; } interface GetEnterpriseCredentialDataResponse { @@ -7684,6 +7707,88 @@ enterinessName?: string; } + interface GetParkBountyApplyInfoInput { + parkBountyApplyId?: string; + /** 浼佷笟鍚�/淇$敤浠g爜 */ + searchKeyWord?: string; + } + + interface GetParkBountyApplyInfoOutput { + parkBountyApplyBaseInfo?: ParkBountyApplyBaseInfo; + parkBountyApplyDetailInfoList?: ParkBountyApplyDetailInfo[]; + } + + interface GetParkBountyApplyListInput { + pageModel?: Pagination; + /** 鐢宠鎵规鍙� */ + batchNo?: string; + /** 鐢宠璧峰鏃ユ湡 */ + creationTimeBegin?: string; + /** 鐢宠缁撴潫鏃ユ湡 */ + creationTimeEnd?: string; + /** 鍙戞斁璧峰鏃ユ湡 */ + settleTimeBegin?: string; + /** 鍙戞斁缁撴潫鏃ユ湡 */ + settleTimeEnd?: string; + /** 鍏ヨ处璧峰鏃ユ湡 */ + incomeTimeBegin?: string; + /** 鍏ヨ处缁撴潫鏃ユ湡 */ + incomeTimeEnd?: string; + /** 澶栭儴瀹℃牳璧峰鏃ユ湡 */ + outCheckTimeBegin?: string; + /** 澶栭儴瀹℃牳缁撴潫鏃ユ湡 */ + outCheckTimeEnd?: string; + outCheckStatus?: BountyCheckStatusEnum; + inCheckStatus?: BountyCheckStatusEnum; + settleStatus?: SettleStatusEnum; + incomeStatus?: IncomeStatusEnum; + } + + interface GetParkBountyApplyListOutput { + id?: string; + /** 鐢宠鎵规鍙� */ + batchNo?: string; + /** 鐢宠鍥尯Id */ + parkId?: string; + /** 鐢宠鍥尯 */ + parkName?: string; + /** 鐢宠鍥尯绫诲瀷 */ + parkTypeName?: string; + /** 鐢宠濂栧姳閲戞湀浠� */ + applyMonth?: string; + /** 濂栧姳閲戞眹鎬婚噾棰� */ + applySumAmount?: number; + /** 鐢宠鏃ユ湡 */ + creationTime?: string; + settleStatus?: SettleStatusEnum; + /** 鍙戞斁鏃ユ湡 */ + settleTime?: string; + incomeStatus?: IncomeStatusEnum; + /** 鍏ヨ处鏃ユ湡 */ + incomeTime?: string; + outCheckStatus?: BountyCheckStatusEnum; + /** 澶栭儴瀹℃牳鏃ユ湡 */ + outCheckTime?: string; + } + + interface GetParkBountyApplyListOutputPageOutput { + pageModel?: Pagination; + objectData?: any; + data?: GetParkBountyApplyListOutput[]; + } + + interface GetParkBountyApplyTransferInfoInput { + parkBountyApplyId?: string; + /** 浼佷笟鍚�/淇$敤浠g爜 */ + searchKeyWord?: string; + transferToStatus?: TransferToStatusEnum; + } + + interface GetParkBountyApplyTransferInfoOutput { + parkBountyApplyBaseInfo?: ParkBountyApplyBaseInfo; + parkBountyApplyTransferDetailInfoList?: ParkBountyApplyTransferDetailInfo[]; + } + interface GetParkOrHRInfoByUserInput { categoryId?: string; userId?: string; @@ -8158,6 +8263,19 @@ attestateEndDate?: string; /** 鏌ヨ鏉′欢锛氬鎴峰悕绉�/鑱旂郴浜�/鎵嬫満鍙� */ queryCondition?: string; + } + + interface GetUserBaseEnterpriseInfoOutput { + /** 濂栧姳閲戜綑棰� */ + bountyAmount?: number; + enterpriseName?: string; + societyCreditCode?: string; + licenseUrl?: string; + enterpriseIsVerify?: boolean; + bankName?: string; + bankBranchName?: string; + bankCardNumber?: string; + bankIsVerify?: boolean; } interface GetUserBaseInfoDataResponse { @@ -9115,6 +9233,8 @@ } type IncomeExpenseTypeEnum = 10 | 20; + + type IncomeStatusEnum = 1 | 2; interface IndustrialParkDetailOutput { id?: string; @@ -13730,6 +13850,118 @@ descriptorName?: string; } + interface ParkBountyApplyBaseInfo { + /** 鐢宠鎵规鍙� */ + batchNo?: string; + /** 鐢宠鍥尯Id */ + parkId?: string; + /** 鐢宠鍥尯 */ + parkName?: string; + /** 鐢宠鍥尯绫诲瀷 */ + parkTypeName?: string; + /** 鐢宠濂栧姳閲戞湀浠� */ + applyMonth?: string; + /** 濂栧姳閲戞眹鎬婚噾棰� */ + applySumAmount?: number; + /** 姹囨�绘槑缁嗚〃 */ + enterpriseTaxSubFileUrl?: string; + /** 浼佷笟钀ユ敹姹囨�昏〃 */ + enterpriseOperateFileUrl?: string; + /** 濂栧姳閲戝垎閰嶈〃 */ + bountyAssignFileUlr?: string; + /** 濂栧姳閲戞眹鎬昏〃 */ + bountyCollectFileUrl?: string; + } + + interface ParkBountyApplyBatchTransferInput { + parkBountyApplyDetailId?: string[]; + /** 鍏ヨ处閲戦 */ + transferToAmount?: number; + } + + interface ParkBountyApplyDetailInfo { + parkBountyApplyId?: string; + enterpriseId?: string; + /** 浼佷笟鍚嶇О */ + enterpriseName?: string; + /** 鍩烘湰鎴蜂俊鎭� */ + bankAccountInfo?: string; + /** 鐢佃瘽 */ + contactPhone?: string; + /** 钀ヤ笟鎵х収 */ + licenseUrl?: string; + /** 绀句細缁熶竴淇$敤浠g爜 */ + societyCreditCode?: string; + /** 鍥尯鍏ラ┗鍗忚 */ + parkEnterPactUrl?: string; + /** 瀹岀◣璇佹槑 */ + ratePaymentFileUrl?: string; + /** 浼佷笟缂寸◣鏄庣粏姹囨�昏〃 */ + taxSubFileUrl?: string; + /** 浼佷笟缁忚惀鍒╂鼎琛� */ + operateProfitesUrl?: string; + /** 鍏ラ┗鍏宠仈璇存槑 */ + enterRelateUrl?: string; + /** C绔釜绋庡畬绋庢儏鍐佃鏄� */ + personTaxRatePayUrl?: string; + authType?: EnterpriseTypeEnum; + } + + interface ParkBountyApplySettleInput { + parkBountyApplyId?: string; + /** 鍙戞斁鍑瘉 */ + settleFileUrl?: string; + } + + interface ParkBountyApplyTransferDetailInfo { + parkBountyApplyId?: string; + /** 璐﹀彿 */ + userName?: string; + enterpriseId?: string; + /** 浼佷笟鍚嶇О */ + enterpriseName?: string; + /** 鍩烘湰鎴蜂俊鎭� */ + bankAccountInfo?: string; + /** 鐢佃瘽 */ + contactPhone?: string; + /** 钀ヤ笟鎵х収 */ + licenseUrl?: string; + /** 绀句細缁熶竴淇$敤浠g爜 */ + societyCreditCode?: string; + /** 鍥尯鍏ラ┗鍗忚 */ + parkEnterPactUrl?: string; + /** 瀹岀◣璇佹槑 */ + ratePaymentFileUrl?: string; + /** 浼佷笟缂寸◣鏄庣粏姹囨�昏〃 */ + taxSubFileUrl?: string; + /** 浼佷笟缁忚惀鍒╂鼎琛� */ + operateProfitesUrl?: string; + /** 鍏ラ┗鍏宠仈璇存槑 */ + enterRelateUrl?: string; + /** C绔釜绋庡畬绋庢儏鍐佃鏄� */ + personTaxRatePayUrl?: string; + authType?: EnterpriseTypeEnum; + transferToStatus?: TransferToStatusEnum; + /** 鍏ヨ处閲戦 */ + transferToAmount?: number; + /** 鍏ヨ处鏃堕棿 */ + transferToTime?: string; + /** 鍏ヨ处鍑瘉 */ + transferToFileUrl?: string; + } + + interface ParkBountyApplyTransferFileInput { + parkBountyApplyDetailId?: string; + /** 鍏ヨ处鍑瘉 */ + transferToFileUrl?: string; + } + + interface ParkBountyApplyTransferInput { + parkBountyApplyDetailId?: string; + /** 鍏ヨ处閲戦 */ + transferToAmount?: number; + } + type ParkCustomersCountTypeEnum = 10 | 50 | 100; interface ParkHRForHomePageInput { @@ -16595,6 +16827,7 @@ interface ResetPasswordBaseInput { userId?: string; + password?: string; } interface ResetPasswordDto { @@ -17350,12 +17583,26 @@ type?: number; } + type SettleStatusEnum = 1 | 2; + interface SetUserCertificationAuditStatusInput { /** 瀹℃牳Id */ id?: string; auditStatus?: UserCertificationAuditStatusEnum; /** 瀹℃牳澶囨敞 */ auditNote?: string; + } + + interface SetUserEnterpiseBaseInfoInput { + enterpriseName?: string; + societyCreditCode?: string; + licenseUrl?: string; + } + + interface SetUserEnterpriseBankInfoInput { + bankName?: string; + bankBranchName?: string; + bankCardNumber?: string; } interface SetUserIndustrialParkInput { @@ -18285,6 +18532,8 @@ type TransAccountTypeEnum = 10 | 20; + type TransferToStatusEnum = 1 | 2; + interface TypeApiDescriptionModel { baseType?: string; isEnum?: boolean; @@ -18333,6 +18582,7 @@ companyOrgId?: string; /** 缁勭粐鏋舵瀯閮ㄩ棬id */ departmentOrgId?: string; + password?: string; /** 鐢ㄦ埛Id */ id?: string; } diff --git a/src/views/MaterialReview/MaterialReviewDetail.vue b/src/views/MaterialReview/MaterialReviewDetail.vue index f78fc8f..b04e8fa 100644 --- a/src/views/MaterialReview/MaterialReviewDetail.vue +++ b/src/views/MaterialReview/MaterialReviewDetail.vue @@ -4,15 +4,13 @@ <PageFormLayout> <template #title> <div class="page-form-layout-title"> - <div> - 鐢虫姤璇︽儏 - <span class="page-form-layout-title-item status"> - {{ `瀹℃牳鐘舵��:${form.categoryName}` }} - </span> - <span class="page-form-layout-title-item remark"> - {{ `瀹℃牳鏈�氳繃鍘熷洜:${form.categoryName}` }} - </span> - </div> + 鐢虫姤璇︽儏 + <span class="page-form-layout-title-item status"> + {{ `瀹℃牳鐘舵��:${form.categoryName}` }} + </span> + <span class="page-form-layout-title-item remark"> + {{ `瀹℃牳鏈�氳繃鍘熷洜:${form.categoryName}` }} + </span> </div> </template> <DetailView :form="form"> diff --git a/src/views/Reward/RewardDeclareDetail.vue b/src/views/Reward/RewardDeclareDetail.vue index 5bf7266..94164c5 100644 --- a/src/views/Reward/RewardDeclareDetail.vue +++ b/src/views/Reward/RewardDeclareDetail.vue @@ -18,7 +18,7 @@ import DetailView from '@/components/commonView/DetailView.vue'; import DeclareEnterpriseTableView from '@/components/commonView/DeclareEnterpriseTableView.vue'; import { useQuery } from '@tanstack/vue-query'; -import * as informationServices from '@/services/api/Information'; +import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; import { convertApi2FormUrlOnlyOne } from '@/utils'; import { useRouteView } from '@/hooks'; @@ -30,28 +30,49 @@ const { closeViewPush } = useRouteView(); const id = route.params?.id as string; const form = reactive({ - categoryName: '', - amount: 0, - url: [] as UploadUserFile[], + searchKeyWord: '', + batchNo: '', + parkName: '', + parkTypeName: '', + applyMonth: '', + applySumAmount: 0, + enterpriseTaxSubFileUrl: [] as UploadUserFile[], + enterpriseOperateFileUrl: [] as UploadUserFile[], + bountyAssignFileUlr: [] as UploadUserFile[], + bountyCollectFileUrl: [] as UploadUserFile[], }); const tableRef = ref<InstanceType<typeof DeclareEnterpriseTableView>>(); const { data: detail, isLoading } = useQuery({ - queryKey: ['informationServices/getInformationShowDetail', id], + queryKey: ['parkBountyApplyServices/getParkBountyApplyDetail', id], queryFn: async () => { - return await informationServices.getInformationShowDetail( - { id: id }, + return await parkBountyApplyServices.getParkBountyApplyDetail( + { parkBountyApplyId: id, searchKeyWord: form.searchKeyWord }, { showLoading: false, } ); }, - placeholderData: () => ({} as API.InformationShowDetailDto), + placeholderData: () => ({} as API.GetParkBountyApplyInfoOutput), onSuccess(data) { - form.categoryName = data.categoryName; - form.amount = data.attentionCount; - form.url = convertApi2FormUrlOnlyOne(data.avatarUrl); + form.batchNo = data.parkBountyApplyBaseInfo.batchNo; + form.parkName = data.parkBountyApplyBaseInfo.parkName; + form.parkTypeName = data.parkBountyApplyBaseInfo.parkTypeName; + form.applyMonth = data.parkBountyApplyBaseInfo.applyMonth; + form.applySumAmount = data.parkBountyApplyBaseInfo.applySumAmount; + form.enterpriseTaxSubFileUrl = convertApi2FormUrlOnlyOne( + data.parkBountyApplyBaseInfo?.enterpriseTaxSubFileUrl + ); + form.enterpriseOperateFileUrl = convertApi2FormUrlOnlyOne( + data.parkBountyApplyBaseInfo?.enterpriseOperateFileUrl + ); + form.bountyAssignFileUlr = convertApi2FormUrlOnlyOne( + data.parkBountyApplyBaseInfo?.bountyAssignFileUlr + ); + form.bountyCollectFileUrl = convertApi2FormUrlOnlyOne( + data.parkBountyApplyBaseInfo?.bountyCollectFileUrl + ); tableRef.value?.getList(); }, diff --git a/src/views/Reward/RewardGrant.vue b/src/views/Reward/RewardGrant.vue index 1d4c97c..d774178 100644 --- a/src/views/Reward/RewardGrant.vue +++ b/src/views/Reward/RewardGrant.vue @@ -5,7 +5,7 @@ <template #query> <QueryFilterItem tip-content="鐢虫姤鏃ユ湡"> <FieldDatePicker - v-model="extraParamState.date" + v-model="extraParamState.creationTime" type="daterange" range-separator="~" start-placeholder="寮�濮嬫棩鏈�" @@ -16,7 +16,7 @@ </QueryFilterItem> <QueryFilterItem tip-content="鍙戞斁鏃ユ湡"> <FieldDatePicker - v-model="extraParamState.date" + v-model="extraParamState.settleTime" type="daterange" range-separator="~" start-placeholder="寮�濮嬫棩鏈�" @@ -27,8 +27,8 @@ </QueryFilterItem> <QueryFilterItem> <FieldRadio - v-model="extraParamState.showStatus" - :value-enum="DataRangeEnumText" + v-model="extraParamState.settleStatus" + :value-enum="SettleStatusEnumText" 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" @@ -48,7 +48,6 @@ <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> </ProTableV2> - <RewardGrantDialog v-bind="dialogProps"></RewardGrantDialog> </AppContainer> </LoadingLayout> @@ -68,11 +67,12 @@ FieldDatePicker, useFormDialog, UploadUserFile, + bolePreview, } from '@bole-core/components'; import { OrderInputType } from '@bole-core/core'; import { convertApi2FormUrlOnlyOne, format } from '@/utils'; -import { DataRangeEnum, DataRangeEnumText } from '@/constants'; -import * as informationServices from '@/services/api/Information'; +import { SettleStatusEnum, SettleStatusEnumText } from '@/constants'; +import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; import RewardGrantDialog from './components/RewardGrantDialog.vue'; import _ from 'lodash'; import { ModelValueType } from 'element-plus'; @@ -84,42 +84,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: 'phoneNumber', + enCode: 'settleStatus', name: '鍙戞斁鐘舵��', }, { id: '8', - enCode: 'phoneNumber', + enCode: 'settleTime', name: '鍙戞斁鏃ユ湡', }, ]; @@ -175,16 +175,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, + settleStatus: extraParamState.settleStatus, + creationTimeBegin: format(extraParamState.creationTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), + creationTimeEnd: format(extraParamState.creationTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), + settleTimeBegin: format(extraParamState.settleTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), + settleTimeEnd: format(extraParamState.settleTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), }; - let res = await informationServices.getInformationForManage(params, { + let res = await parkBountyApplyServices.getParkBountyApplyList(params, { showLoading: !state.loading, }); return res; @@ -192,10 +196,17 @@ }, { defaultExtraParams: { - keyword: '', - showStatus: '' as any as DataRangeEnum, - date: [] as unknown as ModelValueType, + batchNo: '', + settleStatus: '' as any as SettleStatusEnum, + creationTime: [] as unknown as ModelValueType, + settleTime: [] as unknown as ModelValueType, orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }], + }, + columnsRenderProps: { + creationTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, + settleTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, + applySumAmount: { type: 'money' }, + settleStatus: { type: 'enum', valueEnum: SettleStatusEnumText }, }, } ); @@ -210,20 +221,35 @@ } const { dialogProps, handleAdd, handleEdit, editForm } = useFormDialog({ + onConfirm: handleAddOrEdit, defaultFormParams: { - id: '', - url: [] as UploadUserFile[], + parkBountyApplyId: '', + settleFileUrl: [] as UploadUserFile[], }, }); -function openDialog(row?: API.IncentivePaymentsManageListOutput) { +function openDialog(row?: API.GetParkBountyApplyListOutput) { handleEdit({ - id: row.enterpriseName, - url: convertApi2FormUrlOnlyOne(row.issueVouchersUrl), + parkBountyApplyId: row.id, + settleFileUrl: [] as UploadUserFile[], }); } -function handlePreview(row?: API.IncentivePaymentsManageListOutput) {} +async function handleAddOrEdit() { + try { + let params: API.ParkBountyApplySettleInput = { + parkBountyApplyId: editForm.parkBountyApplyId, + settleFileUrl: editForm.settleFileUrl[0].path, + }; + let res = await parkBountyApplyServices.parkBountyApplySettle(params); + } catch (error) {} +} + +function handlePreview(row?: API.GetParkBountyApplyListOutput) { + bolePreview({ + fileUrl: row.parkName, + }); +} </script> <style lang="scss" scoped> diff --git a/src/views/Reward/components/RewardGrantDialog.vue b/src/views/Reward/components/RewardGrantDialog.vue index a6b4b2c..ca8c963 100644 --- a/src/views/Reward/components/RewardGrantDialog.vue +++ b/src/views/Reward/components/RewardGrantDialog.vue @@ -11,11 +11,11 @@ <ProForm :model="innerForm" ref="dialogForm" label-width="120px"> <ProFormItemV2 label="涓婁紶鍙戞斁鍑瘉:" - prop="url" + prop="settleFileUrl" :check-rules="[{ message: '璇蜂笂浼犲彂鏀惧嚟璇�', type: 'upload' }]" > <ProFormUpload - v-model:file-url="innerForm.url" + v-model:file-url="innerForm.settleFileUrl" :limit="1" :limitFileSize="10" accept="doc,docx,pdf" @@ -51,8 +51,8 @@ type Props = { modelValue: boolean; form?: { - id: string; - url: UploadUserFile[]; + parkBountyApplyId: string; + settleFileUrl: UploadUserFile[]; }; }; -- Gitblit v1.9.1