chore: initial commit
Some checks failed
Synchronize to Gitee / repo-sync (push) Has been cancelled
Typos Checking / Spell Check with Typos (push) Has been cancelled

This commit is contained in:
2026-06-23 11:56:23 +08:00
commit 72e2110987
2883 changed files with 367388 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
export interface LicenseInfo {
status: string | null;
corporation: string; // 客户名称
expired: string; // 授权时间
product: string; // 产品名称
edition: string; // 版本
licenseVersion: string; // 授权版本
count: number; // 授权数量
}

View File

@@ -0,0 +1,292 @@
import type { CompanyTypeEnum } from '../../enums/commonEnum';
import type { TableQueryParams } from '../common';
import { PersonalExportStatusEnum } from '@lib/shared/enums/systemEnum';
// 邮件设置
export interface ConfigEmailParams {
host: string; // SMTP 主机
port: string; // SMTP 端口
account: string; // SMTP 账号
password: string; // SMTP 密码
from: string; // 指定发件人
recipient: string; // 指定收件人
ssl: string; // SSL 开关
tsl: string; // TSL 开关
}
// 三方扫码登录配置基础类型
export interface ThirdPartyBaseLoginConfig {
agentId: string;
appSecret: string;
corpId: string;
startEnable: boolean;
}
// 钉钉扫码登录配置类型
export interface ThirdPartyDingTalkLoginConfig extends ThirdPartyBaseLoginConfig {
appId: string;
}
// 飞书扫码登录配置类型
export interface ThirdPartyLarkLoginConfig extends ThirdPartyBaseLoginConfig {
redirectUrl: string;
}
// DE配置类型
export interface ThirdPartyDEConfig {
agentId:string;
appSecret:string;
deAccessKey:string;
deAutoSync: boolean;
deBoardEnable: boolean;
deOrgID: string;
deSecretKey: string;
redirectUrl: string;
}
// sql智能体配置类型
export interface ThirdPartySQLBotConfig {
appSecret:string;
sqlBotChatEnable: boolean;
sqlBotBoardEnable: boolean;
}
// maxKB配置类型
export interface ThirdPartyMKConfig {
appSecret:string;
mkAddress: string;
mkEnable: boolean;
}
// 大单网配置类型
export interface ThirdPartyTenderConfig {
tenderAddress:string;
tenderEnable:boolean;
}
// 企查查配置类型
export interface ThirdPartyQccConfig{
qccAddress:string;
qccAccessKey:string;
qccSecretKey:string;
qccEnable:boolean;
}
export interface ThirdPartyResourceConfig{
type: CompanyTypeEnum;
verify: boolean;
config: Record<string, any>;
}
// 同步组织和扫码登录数据类型
export interface SyncAndScanItem extends ThirdPartyResourceConfig {
title: string;
description: string;
logo: string;
hasConfig: boolean;
}
export interface ThirdPartyResource {
id: string;
createUser: string;
updateUser: string;
createTime: number;
updateTime: number;
type: string;
organizationId: string;
sync: boolean;
syncResource: CompanyTypeEnum;
enable: boolean;
}
export interface DEOrgItem {
id: string;
name: string;
}
// 同步组织和扫码卡片数据类型
export interface IntegrationItem extends ThirdPartyResourceConfig {
type: CompanyTypeEnum; // 类型
title: string;
description: string;
logo: string;
hasConfig: boolean;
}
// 三方类型集合设置
export interface OptionDTO {
id: string; // key
name: string; // value
}
// 认证设置
export interface Auth {
description: string; // 描述
name: string; // 名称
type: string; // 类型 OAUTH2, LDAP, OIDC, CAS
enable: boolean; // 是否启用
}
export interface AuthForm extends Auth {
id?: string; // 认证源ID
configuration: Record<string, any>;
}
export interface AuthUpdateParams extends Auth {
id?: string; // 认证源ID
configuration: string; // 认证源配置
}
export interface AuthItem extends Auth {
id: string; // ID
createUser: string; // 创建人
updateUser: string; // 修改人
createTime: number; // 创建时间
updateTime: number; // 更新时间
configId: string; // 配置id
content: string; // 配置内容
}
export interface AuthTableQueryParams extends TableQueryParams {
configId: string; // 认证设置id
}
// 个人中心
export interface PersonalInfoRequest {
email: string;
phone: string;
}
export interface PersonalPassword {
originPassword: string;
password: string;
confirmPassword: string;
}
export interface SendEmailDTO {
email: string;
}
export interface RepeatClueParams extends TableQueryParams {
name: string;
id?: string;
}
export interface RepeatCustomerItem {
id: string;
name: string;
owner: string;
ownerName: string;
createTime: number;
repeatType: string;
clueCount: number;
clueModuleEnable: boolean;
opportunityCount: number;
opportunityModuleEnable: boolean;
}
export interface RepeatContactItem {
id: string;
name: string;
customerName: string;
ownerName: string;
createTime: number;
phone: string;
enable: boolean;
opportunityCount: number;
}
export interface RepeatClueItem {
id: string;
name: string;
owner: string;
stage: string;
ownerName: string;
contact: string;
phone: string;
}
export interface RepeatOpportunityItem {
id: string;
name: string;
customerId: string;
customerName: string;
stage: string;
products: string[];
productNames: string[];
owner: string;
ownerName: string;
productNameList: string[];
}
export interface ExportCenterListParams {
keyword: string;
exportType: string;
exportStatus: string;
}
export interface ExportCenterItem {
id: string;
createUser: string;
updateUser: string;
createTime: number;
updateTime: number;
fileName: string;
resourceType: string;
fileId: string;
status: PersonalExportStatusEnum;
organizationId: string;
}
export interface ApiKey {
id: string;
createUser: string;
accessKey: string;
secretKey: string;
createTime: number;
enable: boolean;
forever: boolean;
expireTime: number;
description: string;
}
export interface ApiKeyItem extends ApiKey {
isExpire: boolean;
desensitization: boolean;
showDescInput: boolean;
}
export interface DefaultTimeForm {
activeTimeType: string;
time?: number;
desc: string;
}
export interface UpdateApiKeyParams {
id: string;
forever?: boolean;
expireTime?: number;
description: string;
}
interface ParamItem {
paramKey: string; // 参数的 key
paramValue: string; // 参数的值
type: string; // 参数类型,一般是 string
}
// 保存基础信息、邮箱信息接口入参
export type SaveInfoParams = ParamItem[];
// 界面设置
export interface SavePageConfigParams {
fileList: (File | undefined)[];
request: (Record<string, any> | undefined)[];
}
interface FileParamItem extends ParamItem {
file: string;
fileName: string;
}
// 页面配置返回参数
export type PageConfigReturns = FileParamItem[];

View File

@@ -0,0 +1,46 @@
import type { TableQueryParams } from '../common';
export interface LoginLogParams extends TableQueryParams {
operator: string | null;
startTime?: number;
endTime?: number;
}
export interface LoginLogItem {
id: string;
createTime: number;
operator: string;
loginAddress: string;
platform: 'WEB' | 'MOBILE'; // 平台,WEB\MOBILE
operatorName: string;
}
export interface OperationLogParams extends LoginLogParams {
type?: string | null;
module?: string | null;
}
export interface OperationLogItem {
id: string;
operator: string;
operatorName: string;
createTime: number;
module: string;
type: string;
resourceName: string;
detail: string;
}
export interface OperationLogDetailDiffItem {
column: string;
oldValue: string;
newValue: string;
columnName: string;
oldValueName: string | number;
newValueName: string | number;
type: string;
}
export interface OperationLogDetail extends OperationLogItem {
diffs?: OperationLogDetailDiffItem[];
}

View File

@@ -0,0 +1,7 @@
export interface LoginParams {
username: string;
password: string;
authenticate: string;
loginAddress?: string;
platform: 'WEB' | 'MOBILE'; // 平台,WEB\MOBILE
}

View File

@@ -0,0 +1,120 @@
import type { TableQueryParams } from '../common';
import { SelectedUsersItem } from '@lib/shared/models/system/module';
export interface AnnouncementSaveParams {
id?: string;
subject: string; // 公告标题
content: string;
startTime: number;
endTime: number;
url: string; // 链接
organizationId: string;
deptIds: string[];
userIds: string[];
renameUrl: string;
range: [number, number] | undefined;
ownerIds: SelectedUsersItem[];
}
export interface AnnouncementTableQueryParams extends TableQueryParams {
organizationId: string;
}
export interface AnnouncementItemDetail {
id: string;
createUser: string;
updateUser: string;
createTime: number;
updateTime: number;
subject: string; // 公告标题
content: string; // 公告内容
startTime: number; // 公告开始时间
endTime: number; // 公告结束时间
url: string; // 公告链接
receiver: string; // 接收人
organizationId: string; // 组织ID
notice: boolean; // 是否为通知公告
receiveType: string; // 接收类型
contentText: string; // 公告文本内容
createUserName: string;
updateUserName: string;
renameUrl: string;
deptIdName: SelectedUsersItem[]; // 部门
userIdName: SelectedUsersItem[]; // 用户
}
export interface MessageTaskDetailDTOItem {
event: string;
eventName: string;
sysEnable: boolean;
emailEnable: boolean;
weComEnable: boolean;
dingTalkEnable: boolean;
larkEnable: boolean;
}
export interface MessageConfigItem extends MessageTaskDetailDTOItem {
id: string;
module: string; // 消息配置功能
moduleName: string; // 消息配置功能名称
messageTaskDetailDTOList: MessageTaskDetailDTOItem[];
}
export interface MessageSettingsConfig {
timeList: {
timeValue: number;
timeUnit: string;
}[];
userIds: string[];
roleIds: string[];
ownerEnable: boolean;
ownerLevel: number;
roleEnable: boolean;
userIdNames: { id: string; name: string }[];
roleIdNames: { id: string; name: string }[];
}
export interface SaveMessageConfigParams {
module: string;
event: string;
emailEnable?: boolean;
sysEnable?: boolean;
weComEnable?: boolean;
dingTalkEnable?: boolean;
larkEnable?: boolean;
config?:MessageSettingsConfig;
}
export interface MessageCenterItem {
id: string;
type: string; // 通知类型
receiver: string;
subject: string;
status: string;
operator: string;
operation: string;
organizationId: string;
resourceId: string;
resourceType: string; // 资源类型
resourceName: string; // 资源名称
content: string; // 通知内容
createUser: string;
updateUser: string;
createTime: number;
updateTime: number;
contentText: string;
}
export interface MessageCenterQueryParams extends TableQueryParams {
type: string;
status: string;
resourceType: string;
createTime: number | null;
endTime: number | null;
}
export type MessageCenterSubsetParams = Pick<
MessageCenterQueryParams,
'type' | 'status' | 'resourceType' | 'createTime' | 'endTime'
>;

View File

@@ -0,0 +1,274 @@
import type { FormDesignKeyEnum, FormLinkScenarioEnum } from '../../enums/formDesignEnum';
import type { ModuleField, TableQueryParams } from '../common';
import type { FormCreateField } from '@cordys/web/src/components/business/crm-form-create/types';
import { MemberSelectTypeEnum, ReasonTypeEnum } from '@lib/shared/enums/moduleEnum';
export interface ModuleNavCommon {
id?: string;
createUser?: string;
updateUser?: string;
createTime?: number;
updateTime?: number;
organizationId?: string;
enable: boolean;
pos?: number;
}
// 模块首页-导航模块列表
export interface ModuleNavBaseInfoItem extends ModuleNavCommon {
moduleKey: string;
disabled?: boolean;
}
// 顶部导航配置
export interface ModuleNavTopItem extends ModuleNavCommon {
navigationKey: string;
}
export interface ModuleNavItem extends ModuleNavBaseInfoItem {
icon: string;
key: string;
label: string;
}
// 模块首页-导航模块排序入参
export interface ModuleSortParams {
start: number;
end: number;
dragModuleId: string; // 拖拽模块ID
}
export interface SelectedUsersItem {
id: string; // ID
scope?: MemberSelectTypeEnum; // 范围
name: string; // 名称
disabled?: boolean;
}
export interface ModuleConditionsItem {
column: string;
operator: string;
value: string;
scope?: string[];
}
export interface OpportunityBaseInfoItem {
name: string;
enable: boolean;
operator: string; // 操作符
auto: boolean; // 自动回收
}
// 模块商机列表
export interface OpportunityItem extends OpportunityBaseInfoItem {
id: string;
organizationId: string;
ownerId: string; // 管理员ID
scopeId: string; // 范围ID
condition: string; // 回收条件
createUser: string;
updateUser: string;
createTime: number;
updateTime: number;
members: SelectedUsersItem[]; // 成员集合
owners: SelectedUsersItem[]; // 管理员集合
createUserName: string;
updateUserName: string;
}
// 模块商机详情
export interface OpportunityDetail extends OpportunityBaseInfoItem {
id?: string;
conditions: ModuleConditionsItem[]; // 规则条件集合
}
export interface OpportunityParams extends OpportunityDetail {
scopeIds: string[];
ownerIds: string[];
}
// 线索池领取规则
export interface CluePoolPickRuleParams {
limitOnNumber: boolean; // 是否限制领取数量
pickNumber?: number; // 领取数量
limitPreOwner: boolean; // 是否限制前归属人领取
pickIntervalDays?: number; // 领取间隔天数
limitNew: boolean; // 是否限制新数据领取
newPickInterval?: number; // 新数据领取间隔天数
}
// 线索池回收规则
export interface CluePoolRecycleRuleParams {
operator: string; // 操作符
conditions: ModuleConditionsItem[]; // 规则条件集合
}
// 编辑线索池请求参数
export interface CluePoolParams {
id?: string; // ID
name: string; // 线索池名称
scopeIds: string[]; // 范围ID集合
ownerIds: string[]; // 管理员ID集合
enable: boolean; // 启用/禁用
auto: boolean; // 自动回收
pickRule: CluePoolPickRuleParams; // 领取规则
recycleRule: CluePoolRecycleRuleParams; // 回收规则
hiddenFieldIds: string[]; // 隐藏的表格字段
}
export interface CluePoolForm extends Omit<CluePoolParams, 'scopeIds' | 'ownerIds'> {
adminIds: SelectedUsersItem[];
userIds: SelectedUsersItem[]; // 成员ID
hiddenFieldIds: string[]; // 隐藏的表格字段
}
// 线索池列表项
export interface CluePoolItem {
id: string;
createUser: string;
updateUser: string;
updateUserName: string;
createTime: number;
updateTime: number;
name: string;
scopeId: string;
organizationId: string;
ownerId: string;
enable: boolean;
auto: boolean;
members: SelectedUsersItem[];
owners: SelectedUsersItem[];
pickRule: CluePoolPickRuleParams; // 领取规则
recycleRule: CluePoolRecycleRuleParams; // 回收规则
fieldConfigs: {
editable: boolean;
enable: boolean;
fieldId: string;
fieldName: string;
}[]; // 隐藏的表格字段
}
// 库容参数
export interface CapacityParams {
scopeIds: string[]; // 范围ID集合
capacity?: number; // 容量
}
// 库容列表项
export interface CapacityItem {
id: string;
createUser: string;
updateUser: string;
createTime: number;
updateTime: number;
organizationId: string;
scopeId: string;
capacity: number;
members: SelectedUsersItem[];
filters?: { column: 'string'; operator: 'string'; value: 'string' }[];
}
// 表单设计保存参数
export type FormFooterDirection = 'flex-row' | 'flex-row-reverse' | 'justify-center';
export interface FormActionButton {
text: string;
enable: boolean;
}
export interface FormFieldLinkItem {
current: string;
link: string;
enable: boolean;
}
export interface FormConfigLinkScenarioItem {
key: FormLinkScenarioEnum;
linkFields: FormFieldLinkItem[];
}
export type FormConfigLinkProp = Partial<Record<FormDesignKeyEnum, FormConfigLinkScenarioItem[]>>;
export type FormViewSize = 'small' | 'medium' | 'large';
export interface FormConfig {
layout: number;
labelPos: 'left' | 'top';
inputWidth: 'custom' | 'full';
optBtnContent: FormActionButton[];
optBtnPos: FormFooterDirection;
viewSize?: FormViewSize;
linkProp?: FormConfigLinkProp;
}
export interface SaveFormDesignConfigParams {
formKey: FormDesignKeyEnum;
fields: FormCreateField[];
formProp: FormConfig;
}
export interface FormDesignConfigDetailParams {
fields: FormCreateField[];
formProp: FormConfig;
}
export interface FormDesignDataSourceTableQueryParams extends TableQueryParams {
field: string;
}
export interface ReasonParams {
id?: string;
name: string;
module: ReasonTypeEnum;
}
export interface UpdateReasonEnableParams {
module: ReasonTypeEnum;
enable: boolean;
}
export interface ReasonItem {
id: string;
createUser: string;
updateUser: string;
createTime: number;
updateTime: number;
name: string;
module: ReasonTypeEnum;
type: string;
organizationId: string;
}
export interface ReasonConfig {
enable: boolean;
dictList: ReasonItem[];
}
export interface SortReasonParams {
dragDictId: string; // 拖拽元素id
start: number; // 排序前
end: number; // 排序后
}
export interface DefaultSearchSetFormModel {
searchFields: Record<string, any>;
resultDisplay: boolean;
sortSetting: string[];
}
export interface CheckRepeatParams {
id: string;
value: string;
formKey: string;
}
export interface CheckRepeatInfo {
repeat: boolean;
name: string;
}
export interface GetRefDataSourceFieldParams {
sourceIds: string[];
dataSourceType: string;
}
export interface RefDataSourceFieldItem {
id: string;
moduleFields: ModuleField[];
optionMap?: Record<string, any[]>;
[key: string]: any;
}

View File

@@ -0,0 +1,109 @@
import type { TableQueryParams } from '../common';
import { UserInfo } from '../user';
import { SelectedUsersItem } from '@lib/shared/models/system/module';
// 添加部门
export interface DepartmentItemParams {
name: string;
parentId: string;
}
export interface UpdateDepartmentItemParams {
name: string;
id: string;
}
// 设置部门负责人
export interface SetCommanderParams {
departmentId: string;
commanderId: string | null;
}
export interface SetCommanderForm extends SetCommanderParams {
ownerIds: SelectedUsersItem[];
}
export interface MemberRoleItem {
id: string;
name: string;
userId: string;
}
export interface UserTableQueryParams extends TableQueryParams {
departmentId?: string;
}
export interface BaseMemberInfo {
phone: string;
gender: boolean; // 性别(false-男/true-女)
email: string;
name: string;
departmentId: string | null;
position: string; // 职位
employeeId: string; // 工号
employeeType: string | null; // 员工类型
supervisorId: string | null; // 直属上级
workCity: string | null; // 工作城市
enable: boolean; // 是否启用
roleIds: string[]; // 角色
userGroupIds: string[]; // 用户组
onboardingDate: number | null; // 入职日期
}
export interface MemberItem extends BaseMemberInfo {
id: string;
userId: string; // 用户ID
userName: string;
organizationId: string;
roles: MemberRoleItem[];
userGroups: MemberRoleItem[];
createUser: string;
createUserName: string;
updateUser: string;
updateUserName: string;
createTime: number;
updateTime: number;
departmentName: string;
supervisorName: string; // 直属上级名称
commander: boolean; // 是否是负责人
}
export interface MemberParams extends BaseMemberInfo {
id?: string;
userName: string;
roles: {
id: string;
name: string;
userId: string;
}[];
}
export interface ErrorMessagesType {
rowNum: number;
errMsg: string;
}
// 导入校验信息
export interface ValidateInfo {
failCount: number;
successCount: number;
errorMessages: ErrorMessagesType[];
}
export interface OrgUserInfo extends Omit<UserInfo, 'roles'> {
userId: string;
userName: string;
departmentName: string;
roles: MemberRoleItem[];
}
export interface DragNodeParams {
dragNodeId: string;
dropNodeId: string;
dropPosition: -1 | 0 | 1; // -1dropNodeId节点之前。 1dropNodeId节点后 0dropNodeId节点内
}
export interface DEToken {
url: string;
token: string;
}

View File

@@ -0,0 +1,352 @@
import {
ApprovalLevelDirectionEnum,
ApprovalOperationEnum,
ApprovalTypeEnum,
ApproverTypeEnum,
ProcessStatusEnum,
type ApprovalResourceTypeEnum,
} from '@lib/shared/enums/process';
import { RequestEnum } from '@lib/shared/enums/httpEnum';
import type { SelectedUsersItem } from './module';
import type { OptionDTO } from './business';
import type { FilterForm } from '@cordys/web/src/components/pure/crm-advance-filter/type';
import type { UserInfo } from '@lib/shared/models/user';
import {
ApprovalFieldPermissionModeEnum,
ApprovalNodeTypeEnum,
EmptyApproverActionEnum,
MultiApproverModeEnum,
SameSubmitterActionEnum,
} from '@lib/shared/enums/process';
import type { ActionNode, ConditionBranch } from '@cordys/web/src/components/business/crm-flow/types';
import type { TableQueryParams } from '../common';
import type { AttachmentInfo } from '@cordys/web/src/components/business/crm-form-create/types';
export interface BaseItem {
id: string;
name: string;
}
// 权限项
export interface PermissionItem {
id: string;
name: string;
enabled: boolean;
}
// 审批流程基本信息接口
export interface ApprovalProcessItem extends BaseItem {
number: string;
formType: string;
createExecute: boolean;
updateExecute: boolean;
deleteExecute: boolean;
enable: boolean;
submitterCanRevoke: boolean;
allowBatchProcess: boolean;
allowWithdraw: boolean;
allowAddSign: boolean;
duplicateApproverRule: string;
requireComment: boolean;
organizationId: string;
createUserName: string;
createUser: string;
updateUser: string;
updateUserName: string;
createTime: number;
updateTime: number;
}
// 审批权限详情
export interface ApprovalPermissionsDetail {
permissions: PermissionItem[];
statusPermissions: StatusPermissions[];
}
export interface ApprovalFieldPermission {
fieldId: string;
permissionType: ApprovalFieldPermissionModeEnum;
}
export interface ApprovalFieldUpdateConfig {
fieldId: string | null;
fieldValue: any;
enable: boolean;
}
export interface ApprovalWebhookConfig {
webHookDescribe: string;
webHookEnable: boolean;
webHookUrl: string;
webHookMethod: RequestEnum;
webHookHeader: string;
webHookBody: string;
}
export interface ApprovalPostConfig {
fieldUpdateConfigs: ApprovalFieldUpdateConfig[];
webHookConfig?: ApprovalWebhookConfig;
}
// 后端审批流节点的基础结构
export interface ApprovalProcessNodeBase<TNodeType extends ApprovalNodeTypeEnum> extends BaseItem {
nodeType: TNodeType;
number?: string;
sort: number;
}
// 审批节点里前后端共用的业务配置
export interface ApprovalNodeParticipantConfig {
approvalType: ApprovalTypeEnum; // 审批类型:人工审批/自动通过/自动拒绝
approverType: ApproverTypeEnum | null;
approverDirection?: ApprovalLevelDirectionEnum;
approverList: string[]; // 审批人配置列表:成员 ID / 角色 ID / 层级等
approverSelectOptions?: OptionDTO[]; // 审批人选择项(用于前端回显)
multiApproverMode: MultiApproverModeEnum; // 多人审批方式
emptyApproverAction: EmptyApproverActionEnum; // 异常处理-审批人为空时动作
fallbackApprover: string | null; // 异常处理-兜底审批人
fallbackApproverName?: string;
sameSubmitterAction: SameSubmitterActionEnum; // 异常处理-审批人与提交人相同时动作
ccType: ApproverTypeEnum | null; // 抄送人
ccDirection?: ApprovalLevelDirectionEnum;
ccList: string[]; // 抄送人配置列表:成员 ID / 角色 ID / 层级等
ccSelectOptions?: OptionDTO[]; // 抄送人选择项(用于前端回显)
passPostConfig?: ApprovalPostConfig; // 审批通过后配置
rejectPostConfig?: ApprovalPostConfig; // 审批驳回后配置
fieldPermissions?: ApprovalFieldPermission[]; // 字段权限配置列表
}
export type ApprovalProcessStartNode = ApprovalProcessNodeBase<ApprovalNodeTypeEnum.START>;
export type ApprovalProcessEndNode = ApprovalProcessNodeBase<ApprovalNodeTypeEnum.END>;
export interface ApprovalProcessApproverNode
extends ApprovalProcessNodeBase<ApprovalNodeTypeEnum.APPROVER>,
ApprovalNodeParticipantConfig {}
export interface ApprovalProcessConditionNode extends ApprovalProcessNodeBase<ApprovalNodeTypeEnum.CONDITION> {
nodeType: ApprovalNodeTypeEnum.CONDITION;
conditionConfig?: FilterForm;
}
export type ApprovalProcessDefaultNode = ApprovalProcessNodeBase<ApprovalNodeTypeEnum.DEFAULT>;
export type ApprovalProcessNode =
| ApprovalProcessStartNode
| ApprovalProcessEndNode
| ApprovalProcessApproverNode
| ApprovalProcessConditionNode
| ApprovalProcessDefaultNode;
// 审批动作节点(前端审批流图使用)
export interface ApprovalActionNode extends ActionNode, ApprovalNodeParticipantConfig {
approverSelectedList?: SelectedUsersItem[]; // 前端展示用的审批人选中列表
emptyApproverSelectedList?: SelectedUsersItem[]; // 异常处理-前端展示用的
ccSelectedList?: SelectedUsersItem[]; // 前端展示用的抄送选中列表
}
// 审批条件分支(前端审批流图使用)
export interface ApprovalConditionBranch extends ConditionBranch {
conditionConfig?: FilterForm;
}
// 状态权限
export interface StatusPermissions {
approvalStatus: ProcessStatusEnum;
permission: string;
enabled: boolean;
}
// 基本表单参数
export interface BasicFormParams {
name: string;
formType: string;
description: string;
createExecute: boolean; // 创建执行
updateExecute: boolean; // 更新执行
deleteExecute: boolean; // 删除执行
}
// 更多设置参数
export interface MoreSettingsParams {
submitterCanRevoke: boolean;
allowBatchProcess: boolean;
allowWithdraw: boolean;
allowAddSign: boolean;
duplicateApproverRule: string;
requireComment: boolean;
permissions: BaseItem[];
statusPermissions: StatusPermissions[];
}
export interface ApprovalNodeLinkResponse {
id: string;
fromNodeId: string;
toNodeId: string;
}
export interface ApprovalFlowNodeConfig {
nodes: ApprovalProcessNode[];
links: ApprovalNodeLinkResponse[];
}
export interface AddApprovalProcessParams extends BasicFormParams, MoreSettingsParams {
enable: boolean;
createNodeConfig?: ApprovalFlowNodeConfig;
updateNodeConfig?: ApprovalFlowNodeConfig;
deleteNodeConfig?: ApprovalFlowNodeConfig;
}
export interface UpdateApprovalProcessParams extends AddApprovalProcessParams {
id: string;
}
export interface ApprovalProcessDetail extends UpdateApprovalProcessParams {
permissions: PermissionItem[];
id: string;
number: string;
optionMap?: Record<string, any[]>;
}
export interface ApprovalProcessForm {
id: string;
enable: boolean;
createNodeConfig?: ApprovalFlowNodeConfig;
updateNodeConfig?: ApprovalFlowNodeConfig;
deleteNodeConfig?: ApprovalFlowNodeConfig;
basicConfig: BasicFormParams;
moreConfig: MoreSettingsParams;
}
export interface ApproverItem extends Pick<UserInfo, 'id' | 'name' | 'avatar'> {
approveResult: ProcessStatusEnum;
approveReason: string;
}
export interface ApprovalPopoverDetail {
resourceId: string;
approveStatus: ProcessStatusEnum;
approveUserList: ApproverItem[];
}
export interface CommonApprovalActionParams {
resourceId: string;
formKey: string;
}
export interface ApprovalTodoTableParams extends TableQueryParams {
resourceName?: string;
resourceType: ApprovalResourceTypeEnum;
}
export interface ApprovalTodoItem {
approvalTaskId: string;
approvalNodeId: string;
approvalInstanceId: string;
approvalId: string;
approvalFlowId: string;
approvalFlowVersionId: string;
resourceId: string;
resourceName: string;
resourceType: ApprovalResourceTypeEnum;
applicant: string;
submitTime: number;
approvalOperation: ApprovalOperationEnum;
dataResult: ProcessStatusEnum;
}
export interface ApprovalOperationParams {
id: string;
nodeId: string;
instanceId: string;
approverId: string;
comment?: string;
attachmentIds: string[];
module: string;
}
export interface ApprovalBackParams extends ApprovalOperationParams {
returnToNodeId: string;
}
export interface ApprovalAddSignParams extends ApprovalOperationParams {
type: string;
signApprover: string;
}
export interface BatchRejectApprovalParams {
ids: string[];
comment: string;
attachmentIds: string[];
}
export interface BatchApprovalParams {
ids: string[];
comment?: string;
attachmentIds: string[];
}
export interface TodoStatistic {
total: number;
quotation: number;
contract: number;
order: number;
invoice: number;
}
export interface ApprovalDetail {
id: string;
submitterId: string;
submitAvatar: string;
submitter: string;
submitTime: number;
comment: string;
result: string;
approvalStatus: ProcessStatusEnum;
currentNodeId: string;
currentNodeFieldPermissions: string;
nodes: ApprovalNode[];
}
export interface ApprovalNode {
taskId: string;
recordId: string;
nodeId: string;
nodeName: string;
endNode: boolean;
approverId: string;
approver: string;
approvalStatus: ProcessStatusEnum;
approvalTime: number;
comment: string;
attachments: AttachmentInfo[];
ccNodes: CcNode[];
nodeRound: number; // 节点轮次
taskNodes: ApprovalNodeTaskNode[];
multiApproverMode: MultiApproverModeEnum; // 多人审批方式
backNode: boolean; // 是否回退节点
backReason: string; // 回退原因
backAttachments: AttachmentInfo[]; // 回退附件
}
export interface ApprovalNodeTaskNode {
taskId: string;
approverId: string;
approver: string;
approverAvatar: string;
approvalStatus: ProcessStatusEnum;
recordId: string;
comment: string;
attachments: AttachmentInfo[];
approvalTime: number;
sign: boolean; // 是否加签任务
signAction: boolean; // 是否操作加签
signComment: string; // 加签备注
signAttachments: AttachmentInfo[]; // 加签附件
}
export interface CcNode {
ccUserId: string;
ccUserName: string;
ccUserAvatar: string;
}

View File

@@ -0,0 +1,121 @@
import type { DeptNodeTypeEnum } from '../../enums/systemEnum';
import type { TableQueryParams } from '../common';
// 角色关联用户分页列表接口参数
export interface RoleMemberTableQueryParams extends TableQueryParams {
roleId?: string;
}
// 角色关联用户接口参数
export interface RelateRoleMemberParams {
roleId: string;
deptIds?: string[];
roleIds?: string[];
userIds?: string[];
}
export interface PermissionItem {
id: string;
name: string;
enable: boolean;
license: boolean;
}
// 权限树节点
export interface PermissionTreeNode {
id: string;
name: string;
license: boolean;
enable: boolean;
permissions: PermissionItem[];
children: PermissionTreeNode[];
}
export interface RolePermissionItem {
id: string;
enable: boolean;
}
export interface Role {
name: string;
dataScope?: string;
deptIds?: string[];
description?: string;
}
export interface RoleCreateParams extends Role {
permissions: RolePermissionItem[];
}
export interface RoleUpdateParams extends Role {
id: string;
permissions?: RolePermissionItem[];
}
export interface RoleDetail extends Role {
id: string;
deptIds: string[];
permissions: PermissionTreeNode[];
}
// 部门用户树成员
export interface DeptTreeMember {
id: string;
name: string;
parentId: string;
organizationId: string;
}
export type DeptNodeType = DeptNodeTypeEnum;
// 部门用户树节点
export interface DeptUserTreeNode {
id: string;
name: string;
parentId: string;
organizationId: string;
children?: DeptTreeMember[];
nodeType?: DeptNodeType;
enabled?: boolean; // 是否启用
}
// 部门树节点
export interface DeptTreeNode {
id: string;
name: string;
parentId: string;
organizationId: string;
}
// 角色列表项
export interface RoleItem {
id: string;
createUser?: string;
updateUser?: string;
createTime?: number;
updateTime?: number;
name: string;
internal: boolean; // 是否内置
dataScope: string;
description?: string;
organizationId?: string;
createUserName?: string;
updateUserName?: string;
[key: string]: any; // 前端扩展字段
}
export interface RoleMemberRoleItem {
id: string;
name: string;
userId: string;
}
export interface RoleMemberItem {
id: string;
userId: string;
userName: string;
enable: boolean;
departmentId: string;
departmentName: string;
position: string;
createTime: number;
roles: RoleMemberRoleItem[];
}