| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- // 工时统计模块模型定义
- // 项目阶段类型
- export type ProjectPhase = '建模' | '渲染' | '后期' | '软装' | '对图' | '修改';
- // 项目空间类型
- export type SpaceType = '客餐厅' | '卧室' | '厨房' | '卫生间' | '书房' | '阳台' | '玄关' | '别墅';
- // 项目风格类型
- export type ProjectStyle = '现代简约' | '新中式' | '北欧' | '工业风' | '轻奢' | '美式' | '欧式' | '日式';
- // 绩效等级
- export type PerformanceLevel = 'S' | 'A' | 'B' | 'C';
- // 工时记录状态
- export type WorkHourStatus = '工作中' | '停滞' | '等待' | '完成';
- // 难度系数配置
- export interface DifficultyCoefficient {
- spaceType: SpaceType;
- spaceCoefficient: number; // 空间复杂度系数
- styleType: ProjectStyle;
- styleCoefficient: number; // 风格难度系数
- }
- // 工时记录
- export interface WorkHourRecord {
- id: string;
- projectId: string;
- projectName: string;
- designerId: string;
- designerName: string;
- phase: ProjectPhase;
- startTime: Date;
- endTime?: Date;
- actualHours: number; // 实际工作时间
- status: WorkHourStatus;
- pauseReason?: string; // 停滞原因(如"客户3天未反馈"、"等待渲染1天")
- pauseHours?: number; // 停滞时间
- spaceType: SpaceType;
- projectStyle: ProjectStyle;
- difficultyCoefficient: number; // 综合难度系数
- effectiveHours: number; // 有效工时 = 实际工作时间 × 难度系数
- notes?: string;
- }
- // 月度工时统计
- export interface MonthlyWorkHourStats {
- designerId: string;
- designerName: string;
- month: string; // YYYY-MM格式
- totalActualHours: number; // 总实际工时
- totalEffectiveHours: number; // 总有效工时
- totalPauseHours: number; // 总停滞时间
- completedProjects: number; // 完成项目数
- averageCustomerSatisfaction: number; // 平均客户满意度
- performanceLevel: PerformanceLevel; // 绩效等级
- onTimeCompletionRate: number; // 按时完成率
- excellentWorkRate: number; // 优秀作品率
- records: WorkHourRecord[]; // 详细记录
- }
- // 绩效等级标准
- export interface PerformanceCriteria {
- level: PerformanceLevel;
- timeCompletionRate: number; // 时间完成率阈值(如提前20%以上为S级)
- customerSatisfactionMin: number; // 客户满意度最低要求
- description: string;
- bonusMultiplier: number; // 奖金系数
- }
- // 报价规则配置
- export interface PricingRule {
- spaceType: SpaceType;
- basePrice: number; // 基础价格(元/人天)
- styleType: ProjectStyle;
- styleMultiplier: number; // 风格系数
- finalPrice: number; // 最终价格 = 基础价格 × 风格系数
- serviceIncludes: string[]; // 包含服务内容
- }
- // 报价话术
- export interface PricingScript {
- id: string;
- category: string; // 话术分类(如"高端报价解释"、"价格构成说明")
- title: string;
- content: string;
- applicableScenarios: string[]; // 适用场景
- tags: string[];
- }
- // 自动报价结果
- export interface AutoQuotationResult {
- id: string;
- projectId?: string;
- spaceType: SpaceType;
- projectStyle: ProjectStyle;
- estimatedWorkDays: number; // 预估工作天数
- basePrice: number;
- styleMultiplier: number;
- finalPrice: number;
- serviceIncludes: string[];
- createdAt: Date;
- createdBy: string; // 客服ID
- adjustments?: PriceAdjustment[]; // 价格调整记录
- status: 'draft' | 'sent' | 'approved' | 'rejected';
- }
- // 价格调整记录
- export interface PriceAdjustment {
- id: string;
- originalPrice: number;
- adjustedPrice: number;
- reason: string;
- adjustedBy: string; // 调整人ID
- adjustedAt: Date;
- approvedBy?: string; // 审批人ID
- approvedAt?: Date;
- }
- // 工时统计仪表板数据
- export interface WorkHourDashboardData {
- totalDesigners: number;
- totalProjects: number;
- averageEffectiveHours: number;
- performanceDistribution: {
- S: number;
- A: number;
- B: number;
- C: number;
- };
- monthlyTrends: {
- month: string;
- totalHours: number;
- effectiveHours: number;
- efficiency: number; // 效率 = 有效工时 / 总工时
- }[];
- topPerformers: {
- designerId: string;
- designerName: string;
- effectiveHours: number;
- performanceLevel: PerformanceLevel;
- efficiency: number;
- }[];
- }
- // 默认难度系数配置
- export const DEFAULT_DIFFICULTY_COEFFICIENTS: DifficultyCoefficient[] = [
- // 空间类型系数
- { spaceType: '客餐厅', spaceCoefficient: 1.0, styleType: '现代简约', styleCoefficient: 1.0 },
- { spaceType: '卧室', spaceCoefficient: 0.8, styleType: '现代简约', styleCoefficient: 1.0 },
- { spaceType: '厨房', spaceCoefficient: 0.9, styleType: '现代简约', styleCoefficient: 1.0 },
- { spaceType: '卫生间', spaceCoefficient: 0.7, styleType: '现代简约', styleCoefficient: 1.0 },
- { spaceType: '书房', spaceCoefficient: 0.8, styleType: '现代简约', styleCoefficient: 1.0 },
- { spaceType: '阳台', spaceCoefficient: 0.6, styleType: '现代简约', styleCoefficient: 1.0 },
- { spaceType: '玄关', spaceCoefficient: 0.5, styleType: '现代简约', styleCoefficient: 1.0 },
- { spaceType: '别墅', spaceCoefficient: 1.5, styleType: '现代简约', styleCoefficient: 1.0 },
-
- // 风格类型系数
- { spaceType: '客餐厅', spaceCoefficient: 1.0, styleType: '新中式', styleCoefficient: 1.2 },
- { spaceType: '客餐厅', spaceCoefficient: 1.0, styleType: '北欧', styleCoefficient: 1.0 },
- { spaceType: '客餐厅', spaceCoefficient: 1.0, styleType: '工业风', styleCoefficient: 1.1 },
- { spaceType: '客餐厅', spaceCoefficient: 1.0, styleType: '轻奢', styleCoefficient: 1.3 },
- { spaceType: '客餐厅', spaceCoefficient: 1.0, styleType: '美式', styleCoefficient: 1.2 },
- { spaceType: '客餐厅', spaceCoefficient: 1.0, styleType: '欧式', styleCoefficient: 1.4 },
- { spaceType: '客餐厅', spaceCoefficient: 1.0, styleType: '日式', styleCoefficient: 1.1 }
- ];
- // 默认绩效等级标准
- export const DEFAULT_PERFORMANCE_CRITERIA: PerformanceCriteria[] = [
- {
- level: 'S',
- timeCompletionRate: 120, // 提前20%以上完成
- customerSatisfactionMin: 5.0,
- description: '提前20%以上完成,客户满意度5分',
- bonusMultiplier: 1.5
- },
- {
- level: 'A',
- timeCompletionRate: 100, // 标准时间内完成
- customerSatisfactionMin: 4.0,
- description: '标准时间内完成,客户满意度4-5分',
- bonusMultiplier: 1.2
- },
- {
- level: 'B',
- timeCompletionRate: 80, // 超时但客户满意度达标
- customerSatisfactionMin: 4.0,
- description: '超时但客户满意度4分以上',
- bonusMultiplier: 1.0
- },
- {
- level: 'C',
- timeCompletionRate: 0, // 多次修改且耗时过长
- customerSatisfactionMin: 0,
- description: '多次修改且耗时过长,客户满意度<4分',
- bonusMultiplier: 0.8
- }
- ];
- // 默认报价规则
- export const DEFAULT_PRICING_RULES: PricingRule[] = [
- // 客餐厅
- { spaceType: '客餐厅', basePrice: 600, styleType: '现代简约', styleMultiplier: 1.0, finalPrice: 600, serviceIncludes: ['建模', '渲染', '1次小图修改'] },
- { spaceType: '客餐厅', basePrice: 600, styleType: '新中式', styleMultiplier: 1.2, finalPrice: 720, serviceIncludes: ['建模', '渲染', '1次小图修改'] },
- { spaceType: '客餐厅', basePrice: 600, styleType: '轻奢', styleMultiplier: 1.5, finalPrice: 900, serviceIncludes: ['建模', '渲染', '1次小图修改', '4K高清交付'] },
-
- // 卧室
- { spaceType: '卧室', basePrice: 400, styleType: '现代简约', styleMultiplier: 1.0, finalPrice: 400, serviceIncludes: ['建模', '渲染', '1次小图修改'] },
- { spaceType: '卧室', basePrice: 400, styleType: '新中式', styleMultiplier: 1.2, finalPrice: 480, serviceIncludes: ['建模', '渲染', '1次小图修改'] },
- { spaceType: '卧室', basePrice: 400, styleType: '轻奢', styleMultiplier: 1.5, finalPrice: 600, serviceIncludes: ['建模', '渲染', '1次小图修改', '4K高清交付'] },
-
- // 厨房
- { spaceType: '厨房', basePrice: 500, styleType: '现代简约', styleMultiplier: 1.0, finalPrice: 500, serviceIncludes: ['建模', '渲染', '1次小图修改'] },
- { spaceType: '厨房', basePrice: 500, styleType: '新中式', styleMultiplier: 1.2, finalPrice: 600, serviceIncludes: ['建模', '渲染', '1次小图修改'] },
-
- // 别墅
- { spaceType: '别墅', basePrice: 1200, styleType: '现代简约', styleMultiplier: 1.0, finalPrice: 1200, serviceIncludes: ['建模', '渲染', '2次修改', '全景6K交付'] },
- { spaceType: '别墅', basePrice: 1200, styleType: '新中式', styleMultiplier: 1.5, finalPrice: 1800, serviceIncludes: ['建模', '渲染', '2次修改', '全景6K交付', '专属设计师'] }
- ];
|