222 lines
5.3 KiB
TypeScript
222 lines
5.3 KiB
TypeScript
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[];
|
|
}
|