chore: initial commit
This commit is contained in:
221
frontend/packages/lib-shared/models/opportunity.ts
Normal file
221
frontend/packages/lib-shared/models/opportunity.ts
Normal file
@@ -0,0 +1,221 @@
|
||||
import type { ModuleField, TableQueryParams } from './common';
|
||||
import type { FormDesignConfigDetailParams } from '@lib/shared/models/system/module';
|
||||
import { ProcessStatusEnum } from '@lib/shared/enums/process';
|
||||
import type { CirculationTypeEnum, CirculationValueTypeEnum } from '@lib/shared/enums/opportunityEnum';
|
||||
import type { FormCreateField } from '@cordys/web/src/components/business/crm-form-create/types';
|
||||
|
||||
export interface OpportunityItem {
|
||||
id: string; // 商机ID
|
||||
name: string;
|
||||
status: string;
|
||||
opportunityName: string; // 商机名称
|
||||
customerId: string;
|
||||
customerName: string; // 客户名称
|
||||
createUser: string; // 创建人ID
|
||||
updateUser: string; // 更新人ID
|
||||
createTime: number; // 创建时间
|
||||
updateTime: number; // 更新时间
|
||||
createUserName: string; // 创建人名称
|
||||
updateUserName: string; // 更新人名称
|
||||
reservedDays: number; // 归属天数
|
||||
stage: string;
|
||||
stageName: string;
|
||||
lastStage: string;
|
||||
inCustomerPool: boolean;
|
||||
poolId?: string;
|
||||
failureReason: string;
|
||||
hasPermission?: boolean;
|
||||
moduleFields: ModuleField[]; // 自定义字段
|
||||
amount: number; // 金额
|
||||
}
|
||||
|
||||
export interface SaveOpportunityParams {
|
||||
name: string;
|
||||
customerId: string; // 客户id
|
||||
amount: number; // 金额
|
||||
products: string[]; // 意向产品
|
||||
possible: number; // 可能性
|
||||
contactId: string; // 联系人ID
|
||||
owner: string; // 负责人
|
||||
moduleFields: ModuleField[]; // 自定义字段
|
||||
}
|
||||
|
||||
export interface UpdateOpportunityParams extends SaveOpportunityParams {
|
||||
id: string;
|
||||
}
|
||||
|
||||
export interface OpportunityDetail extends OpportunityItem {
|
||||
id: string;
|
||||
name: string;
|
||||
amount: number;
|
||||
possible: number;
|
||||
products: string[];
|
||||
contactId: string;
|
||||
contactName: string;
|
||||
stage: string; // 当前阶段
|
||||
status: string;
|
||||
owner: string;
|
||||
ownerName: string;
|
||||
lastStage: string; // 上一个阶段
|
||||
}
|
||||
|
||||
export interface UpdateStageParams {
|
||||
id: string;
|
||||
stage: string;
|
||||
// expectedEndTime?: number; // 预计结束时间
|
||||
failureReason?: string | null; // 失败原因
|
||||
voidReason?: string;
|
||||
fields?: ModuleField[];
|
||||
}
|
||||
|
||||
export interface StageBoardPageQueryParams extends TableQueryParams {
|
||||
board?: boolean; // 是否是看板模式
|
||||
}
|
||||
|
||||
export interface StageBoardDraggedParams {
|
||||
dragNodeId: string;
|
||||
dropNodeId: string;
|
||||
dropPosition: number;
|
||||
stage: string;
|
||||
}
|
||||
|
||||
export interface UpdateStageBaseParams {
|
||||
id: string;
|
||||
name: string;
|
||||
}
|
||||
|
||||
export interface UpdateOpportunityStageParams {
|
||||
rate: string;
|
||||
}
|
||||
|
||||
export interface UpdateOpportunityStageRollbackParams {
|
||||
afootRollBack: boolean;
|
||||
endRollBack: boolean;
|
||||
}
|
||||
|
||||
export interface StageBaseParams {
|
||||
name: string;
|
||||
type: 'AFOOT' | 'END';
|
||||
dropPosition: number;
|
||||
targetId: string;
|
||||
}
|
||||
|
||||
export interface AddOpportunityStageParams extends StageBaseParams {
|
||||
rate: string;
|
||||
}
|
||||
|
||||
export interface StageConfigBaseItem {
|
||||
id: string;
|
||||
createUser: string;
|
||||
updateUser: string;
|
||||
createTime: number;
|
||||
updateTime: number;
|
||||
name: string;
|
||||
type: 'AFOOT' | 'END';
|
||||
afootRollBack: boolean;
|
||||
endRollBack: boolean;
|
||||
pos: number;
|
||||
organizationId: string;
|
||||
}
|
||||
|
||||
export interface StageConfigItem extends StageConfigBaseItem {
|
||||
rate: string;
|
||||
}
|
||||
|
||||
export interface OpportunityStageConfig {
|
||||
stageConfigList: StageConfigItem[];
|
||||
afootRollBack: boolean;
|
||||
endRollBack: boolean;
|
||||
stageHasData: boolean;
|
||||
circulationType: CirculationTypeEnum;
|
||||
advancedConfigs: CirculationSetting[];
|
||||
}
|
||||
|
||||
export interface QuotationQueryParams extends TableQueryParams {
|
||||
board?: boolean; // 是否是看板模式
|
||||
}
|
||||
|
||||
export interface QuotationItem {
|
||||
id: string;
|
||||
name: string;
|
||||
approved?: boolean;
|
||||
approvalStatus: ProcessStatusEnum;
|
||||
invalid: boolean;
|
||||
opportunityId: string;
|
||||
opportunityName: string;
|
||||
amount: number;
|
||||
createUser: string;
|
||||
updateUser: string;
|
||||
createTime: number;
|
||||
updateTime: number;
|
||||
createUserName: string;
|
||||
updateUserName: string;
|
||||
moduleFields: ModuleField[];
|
||||
products?: any[];
|
||||
}
|
||||
|
||||
export interface SaveQuotationParams {
|
||||
name: string;
|
||||
opportunityId: string;
|
||||
amount: number;
|
||||
moduleFields: ModuleField[]; // 自定义字段
|
||||
moduleFormConfigDTO?: FormDesignConfigDetailParams;
|
||||
}
|
||||
|
||||
export interface UpdateQuotationParams extends SaveQuotationParams {
|
||||
id: string;
|
||||
approvalStatus: ProcessStatusEnum;
|
||||
}
|
||||
|
||||
export interface ApproveQuotation {
|
||||
id: string;
|
||||
name: string;
|
||||
opportunityId: string;
|
||||
approvalStatus: ProcessStatusEnum;
|
||||
moduleFormConfigDTO?: FormDesignConfigDetailParams;
|
||||
moduleFields: ModuleField[];
|
||||
products: any[];
|
||||
}
|
||||
|
||||
export interface BatchUpdateQuotationStatusParams {
|
||||
ids: (string | number)[];
|
||||
approvalStatus: ProcessStatusEnum;
|
||||
}
|
||||
|
||||
export interface BatchVoidQuotationStatusParams {
|
||||
ids: (string | number)[];
|
||||
}
|
||||
|
||||
export interface BatchOperationResult {
|
||||
success: number;
|
||||
fail: number;
|
||||
skip?: number;
|
||||
errorMessages?: string;
|
||||
}
|
||||
|
||||
export interface CirculationFieldValueItem {
|
||||
fieldId?: string;
|
||||
fieldValue: any;
|
||||
required: boolean;
|
||||
valueType: CirculationValueTypeEnum;
|
||||
// 前端渲染使用
|
||||
fieldProps?: FormCreateField;
|
||||
}
|
||||
export interface CirculationFieldTargetItem {
|
||||
targetId: string;
|
||||
enable: boolean;
|
||||
circulationFieldValues: CirculationFieldValueItem[];
|
||||
}
|
||||
export interface CirculationSetting {
|
||||
originId: string;
|
||||
targets: CirculationFieldTargetItem[];
|
||||
moduleType: string;
|
||||
// 前端渲染使用
|
||||
name?: string;
|
||||
type?: 'AFOOT' | 'END' | string;
|
||||
}
|
||||
|
||||
export interface SaveCirculationConfigParams {
|
||||
circulationType: CirculationTypeEnum;
|
||||
circulationSettings: CirculationSetting[];
|
||||
}
|
||||
Reference in New Issue
Block a user