diff --git a/.image/wx-xingyu.png b/.image/wx-xingyu.png index 5e4b6017d18890f6d302a5d86de7eaf2196d83c9..da2e45a3468c0f621e3c2721f93f352379fc2883 100644 Binary files a/.image/wx-xingyu.png and b/.image/wx-xingyu.png differ diff --git a/apps/web-antd/src/api/crm/contract/index.ts b/apps/web-antd/src/api/crm/contract/index.ts index a4f2a2c7c867c0b619dd7d357a8ab032802d4b4c..53abb523e024437e30c36ac4270b0e6d7d2ff250 100644 --- a/apps/web-antd/src/api/crm/contract/index.ts +++ b/apps/web-antd/src/api/crm/contract/index.ts @@ -50,6 +50,7 @@ export namespace CrmContractApi { creatorName: string; updateTime?: Date; products?: ContractProduct[]; + contactName?: string; } } diff --git a/apps/web-antd/src/api/crm/customer/index.ts b/apps/web-antd/src/api/crm/customer/index.ts index 5faf62df636de313cf6635de9f105c5d98a1f718..e8983894ef14c2eb7532070402176fa7b9b23da6 100644 --- a/apps/web-antd/src/api/crm/customer/index.ts +++ b/apps/web-antd/src/api/crm/customer/index.ts @@ -16,6 +16,7 @@ export namespace CrmCustomerApi { ownerUserId: number; // 负责人的用户编号 ownerUserName?: string; // 负责人的用户名称 ownerUserDept?: string; // 负责人的部门名称 + ownerUserDeptName?: string; // 负责人的部门名称 lockStatus?: boolean; dealStatus?: boolean; mobile: string; // 手机号 @@ -34,7 +35,9 @@ export namespace CrmCustomerApi { creatorName?: string; // 创建人名称 createTime: Date; // 创建时间 updateTime: Date; // 更新时间 + poolDay?: number; // 距离进入公海天数 } + export interface CustomerImport { ownerUserId: number; file: File; diff --git a/apps/web-antd/src/api/crm/receivable/plan/index.ts b/apps/web-antd/src/api/crm/receivable/plan/index.ts index 63e00f271da4f8de94c22f1f60d79cc17d05eb71..46397cc7ca2aa98357008e380c398dcfd79055bc 100644 --- a/apps/web-antd/src/api/crm/receivable/plan/index.ts +++ b/apps/web-antd/src/api/crm/receivable/plan/index.ts @@ -98,7 +98,7 @@ export function deleteReceivablePlan(id: number) { } /** 导出回款计划 Excel */ -export function exportReceivablePlan(params: PageParam) { +export function exportReceivablePlan(params: any) { return requestClient.download('/crm/receivable-plan/export-excel', { params, }); diff --git a/apps/web-antd/src/api/infra/codegen/index.ts b/apps/web-antd/src/api/infra/codegen/index.ts index 759c8ee21be1eadb2b4a4ec85266308b17a293d6..992d41d2d7700e54e9cefd481b1b0a7353d5e476 100644 --- a/apps/web-antd/src/api/infra/codegen/index.ts +++ b/apps/web-antd/src/api/infra/codegen/index.ts @@ -65,7 +65,7 @@ export namespace InfraCodegenApi { } /** 更新代码生成请求 */ - export interface CodegenUpdateReq { + export interface CodegenUpdateReqVO { table: any | CodegenTable; columns: CodegenColumn[]; } @@ -106,25 +106,36 @@ export function getCodegenTable(tableId: number) { } /** 修改代码生成表定义 */ -export function updateCodegenTable(data: InfraCodegenApi.CodegenUpdateReq) { +export function updateCodegenTable(data: InfraCodegenApi.CodegenUpdateReqVO) { return requestClient.put('/infra/codegen/update', data); } /** 基于数据库的表结构,同步数据库的表和字段定义 */ export function syncCodegenFromDB(tableId: number) { - return requestClient.put(`/infra/codegen/sync-from-db?tableId=${tableId}`); + return requestClient.put( + '/infra/codegen/sync-from-db', + {}, + { + params: { tableId }, + }, + ); } /** 预览生成代码 */ export function previewCodegen(tableId: number) { return requestClient.get( - `/infra/codegen/preview?tableId=${tableId}`, + '/infra/codegen/preview', + { + params: { tableId }, + }, ); } /** 下载生成代码 */ export function downloadCodegen(tableId: number) { - return requestClient.download(`/infra/codegen/download?tableId=${tableId}`); + return requestClient.download('/infra/codegen/download', { + params: { tableId }, + }); } /** 获得表定义 */ diff --git a/apps/web-antd/src/api/infra/data-source-config/index.ts b/apps/web-antd/src/api/infra/data-source-config/index.ts index 88641f6540d6c63b6469c511c5c5b9fee193823d..81a3b0e3dc9b146954539430c3467bae3c4583d8 100644 --- a/apps/web-antd/src/api/infra/data-source-config/index.ts +++ b/apps/web-antd/src/api/infra/data-source-config/index.ts @@ -44,3 +44,10 @@ export function updateDataSourceConfig( export function deleteDataSourceConfig(id: number) { return requestClient.delete(`/infra/data-source-config/delete?id=${id}`); } + +/** 批量删除数据源配置 */ +export function deleteDataSourceConfigList(ids: number[]) { + return requestClient.delete( + `/infra/data-source-config/delete-list?ids=${ids.join(',')}`, + ); +} diff --git a/apps/web-antd/src/api/infra/file/index.ts b/apps/web-antd/src/api/infra/file/index.ts index e7dc78915983eb9e61f13eabfe28a3bdbe7df43b..edf06933becd3490bf27bec10c0d490655e86f45 100644 --- a/apps/web-antd/src/api/infra/file/index.ts +++ b/apps/web-antd/src/api/infra/file/index.ts @@ -19,7 +19,7 @@ export namespace InfraFileApi { } /** 文件预签名地址 */ - export interface FilePresignedUrlResp { + export interface FilePresignedUrlRespVO { configId: number; // 文件配置编号 uploadUrl: string; // 文件上传 URL url: string; // 文件 URL @@ -27,7 +27,7 @@ export namespace InfraFileApi { } /** 上传文件 */ - export interface FileUploadReq { + export interface FileUploadReqVO { file: globalThis.File; directory?: string; } @@ -52,7 +52,7 @@ export function deleteFileList(ids: number[]) { /** 获取文件预签名地址 */ export function getFilePresignedUrl(name: string, directory?: string) { - return requestClient.get( + return requestClient.get( '/infra/file/presigned-url', { params: { name, directory }, @@ -67,7 +67,7 @@ export function createFile(data: InfraFileApi.File) { /** 上传文件 */ export function uploadFile( - data: InfraFileApi.FileUploadReq, + data: InfraFileApi.FileUploadReqVO, onUploadProgress?: AxiosProgressEvent, ) { // 特殊:由于 upload 内部封装,即使 directory 为 undefined,也会传递给后端 diff --git a/apps/web-antd/src/api/infra/job/index.ts b/apps/web-antd/src/api/infra/job/index.ts index 05f6a727f6f8ab5e214255b7fc15620c00178762..04848dd8b213931da893c85e010e23925fb6b411 100644 --- a/apps/web-antd/src/api/infra/job/index.ts +++ b/apps/web-antd/src/api/infra/job/index.ts @@ -58,11 +58,12 @@ export function exportJob(params: any) { /** 任务状态修改 */ export function updateJobStatus(id: number, status: number) { - const params = { - id, - status, - }; - return requestClient.put('/infra/job/update-status', {}, { params }); + return requestClient.put('/infra/job/update-status', undefined, { + params: { + id, + status, + }, + }); } /** 定时任务立即执行一次 */ diff --git a/apps/web-antd/src/api/mp/account/index.ts b/apps/web-antd/src/api/mp/account/index.ts index 60833058ca4d7f9c5f8a6bcdce27be261170982e..c5ee331b05eda4716683a5117e8257adcef78c33 100644 --- a/apps/web-antd/src/api/mp/account/index.ts +++ b/apps/web-antd/src/api/mp/account/index.ts @@ -62,7 +62,7 @@ export function deleteAccount(id: number) { /** 生成公众号账号二维码 */ export function generateAccountQrCode(id: number) { - return requestClient.post(`/mp/account/generate-qr-code?id=${id}`); + return requestClient.put(`/mp/account/generate-qr-code?id=${id}`); } /** 清空公众号账号 API 配额 */ diff --git a/apps/web-antd/src/api/system/mail/template/index.ts b/apps/web-antd/src/api/system/mail/template/index.ts index ef08e248a236d34e41bd3cfc5913250a44d35309..9e2a5a78d425f7154afc24ff751f05bb16dc0ae6 100644 --- a/apps/web-antd/src/api/system/mail/template/index.ts +++ b/apps/web-antd/src/api/system/mail/template/index.ts @@ -58,7 +58,7 @@ export function deleteMailTemplate(id: number) { return requestClient.delete(`/system/mail-template/delete?id=${id}`); } -/** 批量删除邮件模板 */ +/** 批量删除邮件模版 */ export function deleteMailTemplateList(ids: number[]) { return requestClient.delete( `/system/mail-template/delete-list?ids=${ids.join(',')}`, diff --git a/apps/web-antd/src/api/system/oauth2/open/index.ts b/apps/web-antd/src/api/system/oauth2/open/index.ts index 591eaa7530d1acc9ae570de07418ba90cc63a80d..16d9c7e62cdb993f2ab519ce79f324f6c764f0ec 100644 --- a/apps/web-antd/src/api/system/oauth2/open/index.ts +++ b/apps/web-antd/src/api/system/oauth2/open/index.ts @@ -3,7 +3,7 @@ import { requestClient } from '#/api/request'; /** OAuth2.0 授权信息响应 */ export namespace SystemOAuth2ClientApi { /** 授权信息 */ - export interface AuthorizeInfoResp { + export interface AuthorizeInfoRespVO { client: { logo: string; name: string; @@ -17,7 +17,7 @@ export namespace SystemOAuth2ClientApi { /** 获得授权信息 */ export function getAuthorize(clientId: string) { - return requestClient.get( + return requestClient.get( `/system/oauth2/authorize?clientId=${clientId}`, ); } diff --git a/apps/web-antd/src/api/system/oauth2/token/index.ts b/apps/web-antd/src/api/system/oauth2/token/index.ts index 9209fd713a7b9a94d72a3769d00085d2d56aeda5..bd36979157524e0da425bfd2bc97fe69863cdfe6 100644 --- a/apps/web-antd/src/api/system/oauth2/token/index.ts +++ b/apps/web-antd/src/api/system/oauth2/token/index.ts @@ -32,10 +32,3 @@ export function deleteOAuth2Token(accessToken: string) { `/system/oauth2-token/delete?accessToken=${accessToken}`, ); } - -/** 批量删除 OAuth2.0 令牌 */ -export function deleteOAuth2TokenList(accessTokens: string[]) { - return requestClient.delete( - `/system/oauth2-token/delete-list?accessTokens=${accessTokens.join(',')}`, - ); -} diff --git a/apps/web-antd/src/api/system/permission/index.ts b/apps/web-antd/src/api/system/permission/index.ts index 076dffc40316ba084ee4239df2217576016b8955..9039d9a057cf65ac235ad7704204998d4bdbbd65 100644 --- a/apps/web-antd/src/api/system/permission/index.ts +++ b/apps/web-antd/src/api/system/permission/index.ts @@ -2,19 +2,19 @@ import { requestClient } from '#/api/request'; export namespace SystemPermissionApi { /** 分配用户角色请求 */ - export interface AssignUserRoleReq { + export interface AssignUserRoleReqVO { userId: number; roleIds: number[]; } /** 分配角色菜单请求 */ - export interface AssignRoleMenuReq { + export interface AssignRoleMenuReqVO { roleId: number; menuIds: number[]; } /** 分配角色数据权限请求 */ - export interface AssignRoleDataScopeReq { + export interface AssignRoleDataScopeReqVO { roleId: number; dataScope: number; dataScopeDeptIds: number[]; @@ -30,14 +30,14 @@ export async function getRoleMenuList(roleId: number) { /** 赋予角色菜单权限 */ export async function assignRoleMenu( - data: SystemPermissionApi.AssignRoleMenuReq, + data: SystemPermissionApi.AssignRoleMenuReqVO, ) { return requestClient.post('/system/permission/assign-role-menu', data); } /** 赋予角色数据权限 */ export async function assignRoleDataScope( - data: SystemPermissionApi.AssignRoleDataScopeReq, + data: SystemPermissionApi.AssignRoleDataScopeReqVO, ) { return requestClient.post('/system/permission/assign-role-data-scope', data); } @@ -51,7 +51,7 @@ export async function getUserRoleList(userId: number) { /** 赋予用户角色 */ export async function assignUserRole( - data: SystemPermissionApi.AssignUserRoleReq, + data: SystemPermissionApi.AssignUserRoleReqVO, ) { return requestClient.post('/system/permission/assign-user-role', data); } diff --git a/apps/web-antd/src/api/system/social/user/index.ts b/apps/web-antd/src/api/system/social/user/index.ts index fd0316e829200ef219c32ad43efb0b2fdcc5cd75..b91f15064d2b3fbeb71e58d444e63d8debb5e3bb 100644 --- a/apps/web-antd/src/api/system/social/user/index.ts +++ b/apps/web-antd/src/api/system/social/user/index.ts @@ -20,14 +20,14 @@ export namespace SystemSocialUserApi { } /** 社交绑定请求 */ - export interface SocialUserBindReq { + export interface SocialUserBindReqVO { type: number; code: string; state: string; } /** 取消社交绑定请求 */ - export interface SocialUserUnbindReq { + export interface SocialUserUnbindReqVO { type: number; openid: string; } @@ -49,12 +49,12 @@ export function getSocialUser(id: number) { } /** 社交绑定,使用 code 授权码 */ -export function socialBind(data: SystemSocialUserApi.SocialUserBindReq) { +export function socialBind(data: SystemSocialUserApi.SocialUserBindReqVO) { return requestClient.post('/system/social-user/bind', data); } /** 取消社交绑定 */ -export function socialUnbind(data: SystemSocialUserApi.SocialUserUnbindReq) { +export function socialUnbind(data: SystemSocialUserApi.SocialUserUnbindReqVO) { return requestClient.delete('/system/social-user/unbind', { data }); } diff --git a/apps/web-antd/src/api/system/user/profile/index.ts b/apps/web-antd/src/api/system/user/profile/index.ts index b2c42bcc3eda2e0478edf5196ed18db1bbfdf985..97898e71a0479d08f0a0021f51eafbb837b1d11d 100644 --- a/apps/web-antd/src/api/system/user/profile/index.ts +++ b/apps/web-antd/src/api/system/user/profile/index.ts @@ -2,7 +2,7 @@ import { requestClient } from '#/api/request'; export namespace SystemUserProfileApi { /** 用户个人中心信息 */ - export interface UserProfileResp { + export interface UserProfileRespVO { id: number; username: string; nickname: string; @@ -19,13 +19,13 @@ export namespace SystemUserProfileApi { } /** 更新密码请求 */ - export interface UpdatePasswordReq { + export interface UpdatePasswordReqVO { oldPassword: string; newPassword: string; } /** 更新个人信息请求 */ - export interface UpdateProfileReq { + export interface UpdateProfileReqVO { nickname?: string; email?: string; mobile?: string; @@ -36,19 +36,21 @@ export namespace SystemUserProfileApi { /** 获取登录用户信息 */ export function getUserProfile() { - return requestClient.get( + return requestClient.get( '/system/user/profile/get', ); } /** 修改用户个人信息 */ -export function updateUserProfile(data: SystemUserProfileApi.UpdateProfileReq) { +export function updateUserProfile( + data: SystemUserProfileApi.UpdateProfileReqVO, +) { return requestClient.put('/system/user/profile/update', data); } /** 修改用户个人密码 */ export function updateUserPassword( - data: SystemUserProfileApi.UpdatePasswordReq, + data: SystemUserProfileApi.UpdatePasswordReqVO, ) { return requestClient.put('/system/user/profile/update-password', data); } diff --git a/apps/web-antd/src/components/bpmn-process-designer/package/designer/ProcessDesigner.vue b/apps/web-antd/src/components/bpmn-process-designer/package/designer/ProcessDesigner.vue index fba2a575d5059ee306c368d4b534a3baf4bb7644..4fce9dacf3b6c71180186d2e02276dd24d1eb130 100644 --- a/apps/web-antd/src/components/bpmn-process-designer/package/designer/ProcessDesigner.vue +++ b/apps/web-antd/src/components/bpmn-process-designer/package/designer/ProcessDesigner.vue @@ -4,17 +4,7 @@ // import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css' // import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css' // import 'bpmn-js-properties-panel/dist/assets/bpmn-js-properties-panel.css' // 右侧框样式 -import { - computed, - defineEmits, - defineOptions, - defineProps, - h, - onBeforeUnmount, - onMounted, - provide, - ref, -} from 'vue'; +import { computed, h, onBeforeUnmount, onMounted, provide, ref } from 'vue'; import { AlignLeftOutlined, @@ -655,7 +645,7 @@ onBeforeUnmount(() => { type="file" id="files" ref="refFile" - style="display: none" + class="hidden" accept=".xml, .bpmn" @change="importLocalFile" /> diff --git a/apps/web-antd/src/components/bpmn-process-designer/package/designer/ProcessViewer.vue b/apps/web-antd/src/components/bpmn-process-designer/package/designer/ProcessViewer.vue index 4fe8540807494477bfd6f6535af92213af6149e5..4fdca3d869bfb21df3eedb60600250220aa7d412 100644 --- a/apps/web-antd/src/components/bpmn-process-designer/package/designer/ProcessViewer.vue +++ b/apps/web-antd/src/components/bpmn-process-designer/package/designer/ProcessViewer.vue @@ -1,5 +1,5 @@