123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- // 需求项目接口
- export interface RequirementItem {
- id: string;
- description: string;
- status: string;
- priority: 'high' | 'medium' | 'low';
- }
- // 客户信息接口
- export interface CustomerInfo {
- colorPreference?: string;
- spaceRequirements?: string;
- materialPreference?: string;
- }
- // 项目模型
- export interface Project {
- id: string;
- name: string;
- customerName: string;
- customerPhone?: string;
- customerWechat?: string;
- customerType?: string;
- customerSource?: string;
- customerRemark?: string;
- customerInfo?: CustomerInfo;
- customerTags: CustomerTag[];
- highPriorityNeeds: string[];
- requirements?: RequirementItem[];
- status: ProjectStatus;
- currentStage: ProjectStage;
- stage: ProjectStage; // 添加stage属性,与currentStage保持一致
- createdAt: Date;
- deadline: Date;
- assigneeId: string;
- assigneeName: string;
- skillsRequired: string[];
- finalPaymentAmount?: number; // 添加尾款金额属性
- customerReviewCompleted?: boolean; // 客户评价是否完成
- customerReviewCompletedAt?: Date; // 客户评价完成时间
- }
- // 客户标签
- export interface CustomerTag {
- source: '朋友圈' | '信息流';
- needType: '硬装' | '软装';
- preference: '现代' | '宋式' | '欧式';
- colorAtmosphere: string;
- }
- // 项目状态
- export type ProjectStatus = '进行中' | '已完成' | '已暂停' | '已延期';
- // 项目阶段
- export type ProjectStage = '订单创建' | '需求沟通' | '方案确认' | '建模' | '软装' | '渲染' | '后期' | '尾款结算' | '客户评价' | '投诉处理';
- // 任务模型
- // 修复 Task 接口,将 completedAt 改为 completedDate(与实际代码保持一致)
- export interface Task {
- priority: any;
- assignee: any;
- description: any;
- id: string;
- projectId: string;
- projectName: string;
- title: string;
- stage: ProjectStage;
- deadline: Date;
- isOverdue: boolean;
- isCompleted: boolean;
- completedDate?: Date; // 修正为 completedDate
- }
- // 添加 Milestone 接口定义
- export interface Milestone {
- id: string;
- title: string;
- description: string;
- dueDate: Date;
- completedDate?: Date | null;
- isCompleted: boolean;
- }
- // 添加 Message 接口定义
- export interface Message {
- id: string;
- sender: string;
- content: string;
- timestamp: Date;
- isRead: boolean;
- type: 'text' | 'image' | 'file';
- }
- // 添加 FileItem 接口定义
- export interface FileItem {
- id: string;
- name: string;
- type: 'document' | 'image' | 'spreadsheet' | 'other';
- size: string;
- url: string;
- uploadedBy: string;
- uploadedAt: Date;
- downloadCount: number;
- }
- // 渲染进度
- export interface RenderProgress {
- id: string;
- projectId: string;
- completionRate: number; // 百分比
- estimatedTimeRemaining: number; // 小时
- status: '进行中' | '已完成' | '已失败';
- stage?: string; // 添加渲染阶段属性
- updatedAt: Date;
- }
- // 模型误差检查项
- export interface ModelCheckItem {
- id: string;
- name: string;
- isPassed: boolean;
- notes?: string;
- }
- // 客户反馈
- export interface CustomerFeedback {
- id: string;
- projectId: string;
- content: string;
- isSatisfied: boolean;
- problemLocation?: string;
- expectedEffect?: string;
- referenceCase?: string;
- status: '待处理' | '处理中' | '已解决';
- createdAt: Date;
- updatedAt?: Date;
- tag?: string;
- // 添加模板中使用的属性
- customerName?: string;
- rating?: number;
- response?: string;
- }
- // 设计师变更记录
- export interface DesignerChange {
- id: string;
- projectId: string;
- oldDesignerId: string;
- oldDesignerName: string;
- newDesignerId: string;
- newDesignerName: string;
- changeTime: Date;
- acceptanceTime?: Date;
- historicalAchievements: string[];
- completedWorkload: number; // 百分比
- reason?: string; // 添加变更原因属性
- }
- // 结算记录
- export interface Settlement {
- id: string;
- projectId: string;
- stage?: ProjectStage;
- type?: 'deposit' | 'progress' | 'final_payment';
- amount: number;
- percentage?: number;
- status: '待结算' | '已结算' | '逾期' | 'pending' | 'completed';
- createdAt: Date;
- settledAt?: Date;
- completionTime?: Date;
- projectName?: string;
- dueDate?: Date;
- initiatedBy?: string;
- initiatedAt?: Date;
- notifiedCustomerService?: boolean;
- paymentReceived?: boolean;
- paymentReceivedAt?: Date;
- imagesUnlocked?: boolean;
- imagesUnlockedAt?: Date;
- }
- // 技能标签
- export interface SkillTag {
- id: string;
- name: string;
- level: number; // 1-5
- count: number; // 完成项目数量
- }
- // 绩效数据
- export interface PerformanceData {
- month: string;
- projectCompletionRate: number;
- customerSatisfaction: number;
- deliveryOnTimeRate: number;
- }
- // 匹配订单
- export interface MatchingOrder {
- id: string;
- projectName: string;
- requiredSkills: string[];
- matchRate: number;
- customerLevel: '优质' | '普通';
- }
- // 全景合成相关接口
- // 空间图像
- export interface SpaceImage {
- id: string;
- name: string;
- url: string;
- thumbnailUrl: string;
- type: 'living_room' | 'bedroom' | 'kitchen' | 'bathroom' | 'dining_room' | 'study' | 'balcony';
- size: number;
- width: number;
- height: number;
- format: 'jpg' | 'png' | 'webp';
- uploadDate: Date;
- isPrimary: boolean;
- }
- // 全景空间
- export interface PanoramicSpace {
- id: string;
- name: string;
- type: 'living_room' | 'bedroom' | 'kitchen' | 'bathroom' | 'dining_room' | 'study' | 'balcony';
- images: SpaceImage[];
- thumbnailUrl: string;
- createdAt: Date;
- updatedAt: Date;
- status: 'pending' | 'processing' | 'completed' | 'failed';
- progress?: number;
- }
- // 全景合成空间类型
- export type PanoramicSpaceType = 'living_room' | 'bedroom' | 'kitchen' | 'bathroom' | 'dining_room' | 'study' | 'balcony';
- // 全景合成
- export interface PanoramicSynthesis {
- id: string;
- projectId: string;
- projectName: string;
- spaces: Array<{
- id: string;
- name: string;
- type: PanoramicSpaceType;
- imageCount: number;
- viewAngle?: string;
- }>;
- status: 'draft' | 'processing' | 'completed' | 'published';
- createdAt: Date;
- updatedAt: Date;
- completedAt?: Date;
- previewUrl?: string;
- downloadUrl?: string;
- shareLink?: string;
- quality: 'standard' | 'high' | 'ultra';
- renderTime?: number;
- fileSize?: number;
- progress?: number;
- }
|