# 数智匠心工程云开发 **Repository Path**: liu_chung_chi/SmartCraftsmanEngineering ## Basic Information - **Project Name**: 数智匠心工程云开发 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-30 - **Last Updated**: 2025-07-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数智匠心工程 - 智能工程服务管理平台 [![Powered by CloudBase](https://7463-tcb-advanced-a656fc-1257967285.tcb.qcloud.la/mcp/powered-by-cloudbase-badge.svg)](https://github.com/TencentCloudBase/CloudBase-AI-ToolKit) > 基于微信小程序 + 腾讯云开发的专业工程服务管理平台,通过AI提示词和 MCP 协议实现智能化全栈开发,支持从需求分析到项目交付的完整业务闭环。 ## ✨ 核心特性 ### 🎯 **业务功能** - **8步闭环管理**: 预约服务 → 现场查勘 → 方案设计 → 报价确认 → 项目实施 → 质量验收 → 项目交付 → 售后服务 - **智能订单系统**: 自动状态流转、实时进度跟踪、智能提醒通知 - **施工队伍管理**: 队伍注册审核、接单管理、订单分配、状态跟踪 🆕 - **项目管理**: 里程碑管理、进度可视化、团队协作 - **数据统计分析**: 完成率统计、趋势分析、业务报表 - **消息通知系统**: 实时状态更新、模板消息推送、系统通知 - **智能客服系统**: 微信客服对话框、多渠道客服支持、智能客服引导 ### 🚀 **技术特性** - **云原生架构**: 基于腾讯云开发,免服务器运维 - **数据安全**: 云端存储、权限控制、数据加密 - **高性能**: 云函数自动扩缩容、CDN加速 - **智能降级**: 云函数异常时自动降级到本地存储 - **响应式设计**: 适配各种屏幕尺寸,流畅用户体验 - **智能客服**: 直接打开微信客服对话框,多渠道客服支持 - **智能头像同步**: 自动检测临时头像文件并上传到云存储,确保跨设备头像一致性 🆕 ### 👷 **施工队伍接单系统** 🆕 - **队伍注册**: 个人师傅和施工公司注册申请 - **审核管理**: 管理员审核队伍资质和能力 - **订单接取**: 施工队伍查看并接取适合的订单 - **状态管理**: 实时更新订单状态和施工进度 - **智能匹配**: 根据专业类别和地区智能推荐订单 - **评价体系**: 完成项目数量、评分统计、信誉管理 ## 📱 功能模块 ### **核心页面** ``` ├── 🏠 首页 (index) - 服务展示、数据统计、快速导航 ├── 📋 订单管理 (orders) - 订单跟踪、状态管理、客户沟通 ├── 🏗️ 项目管理 (projects) - 项目进度、里程碑管理、团队协作 ├── 👤 个人中心 (profile) - 用户信息、系统设置、数据导出 ├── 🎯 服务预约 (booking) - 在线预约、需求收集、智能匹配 ├── 🛍️ 服务分类 (service-category) - 服务分类详情、轮播展示、项目列表 ├── 📦 服务详情 (product-detail) - 服务详细信息、案例展示、用户评价 ├── 👷 施工队伍 (construction-team) - 队伍展示、注册申请、专业筛选 🆕 └── 📋 队伍订单 (team-orders) - 可接订单、已接订单、状态管理 🆕 ``` ### **施工队伍管理页面** 🆕 ``` ├── 📝 队伍注册 (team-registration) - 个人/公司注册申请 ├── 📋 订单管理 (team-orders) - 可接订单列表、已接订单管理 ├── 🔍 审核管理 (audit-management) - 管理员审核队伍申请 ├── 📊 注册状态 (registration-status) - 查看申请状态和审核结果 └── 🔔 消息通知 (notifications) - 审核通知、订单通知 ``` ### **业务流程页面** ``` ├── 📋 现场查勘 (survey) - 现场评估、需求确认、风险识别 ├── 📐 方案设计 (proposal) - 技术方案、设计图纸、成本预算 ├── 💰 报价管理 (quotation) - 价格计算、合同条款、商务谈判 ├── 🔧 项目实施 (implementation) - 施工管理、质量控制、进度监控 └── ✅ 质量验收 (acceptance) - 测试验证、文档交付、客户确认 ``` ### **服务流程优化 (v1.3.2)** ``` 首页服务 → 分类详情 → 服务详情 → 立即预约 ↓ ↓ ↓ ↓ 服务展示 分类介绍 详细信息 需求收集 轮播推广 项目列表 案例展示 智能匹配 快速导航 推荐服务 用户评价 在线预约 首页商品 → 商品详情 → 立即预约 ↓ ↓ ↓ 商品展示 详细信息 需求收集 价格展示 特色介绍 在线预约 快速导航 用户评价 智能匹配 ``` ### **施工队伍接单流程** 🆕 ``` 队伍注册 → 审核通过 → 查看订单 → 接单确认 → 状态更新 → 完成项目 ↓ ↓ ↓ ↓ ↓ ↓ 提交申请 管理审核 筛选订单 预估报价 实时跟踪 评价统计 资质认证 能力评估 智能匹配 接单确认 客户沟通 信誉累积 ``` **详情页面支持双模式:** - **服务详情模式**:从服务分类页面跳转,展示服务优势、案例、评价 - **商品详情模式**:从首页商品卡片跳转,展示商品图片、特色、评价 ## 🏗️ 技术架构 ### **前端架构** ``` 微信小程序 (原生开发) ├── 页面层 - WXML/WXSS/JS ├── 组件层 - 自定义组件 ├── 数据层 - 状态管理 └── 服务层 - API调用/本地存储 ``` ### **后端架构 (云开发)** ``` 腾讯云开发 CloudBase ├── 云函数 (Serverless) │ ├── businessManager - 核心业务逻辑 │ ├── userManager - 用户管理 │ ├── messageManager - 消息通知 │ ├── serviceManager - 服务项管理 + 关联查询 🔗 │ ├── categoryManager - 服务分类管理 🆕 │ ├── teamOrderManager - 施工队伍订单管理 🆕 │ ├── submitTeamRegistration - 施工队伍注册申请 🆕 │ ├── auditTeamRegistration - 施工队伍审核管理 🆕 │ ├── getPendingTeams - 获取待审核队伍 🆕 │ ├── locationService - 地理位置服务 │ └── initDatabase - 数据库初始化 ├── 云数据库 (MongoDB) │ ├── users - 用户信息 │ ├── orders - 订单数据 (新增施工队伍字段) 🔄 │ ├── projects - 项目数据 │ ├── notifications - 消息通知 │ ├── services - 服务项目数据 │ ├── service_categories - 服务分类数据 🆕 │ ├── construction_teams - 施工队伍数据 🆕 │ └── user_notifications - 用户通知数据 🆕 └── 云存储 (COS) ├── 用户头像 ├── 项目文档 └── 系统资源 ``` ### **数据模型设计** #### 用户模型 (users) ```javascript { numericId: String, // 9位数字ID (格式: 1XXXXXXXX,用于用户界面显示) userId: String, // 系统分配的唯一用户ID (USER_xxxxx,用于内部系统) userNumber: Number, // 递增用户编号 (从1001开始,用于统计) displayId: String, // 用户显示编号 (#1001,用于管理后台) openid: String, // 微信用户标识 unionid: String, // 微信开放平台标识 nickName: String, // 用户昵称 avatarUrl: String, // 头像地址 gender: Number, // 性别 country: String, // 国家 province: String, // 省份 city: String, // 城市 level: String, // 用户等级 (normal/vip/premium) points: Number, // 用户积分 createTime: Date, // 注册时间 lastLoginTime: Date, // 最后登录时间 loginCount: Number // 登录次数 } ``` #### 订单模型 (orders) ```javascript { id: String, // 订单ID (ORD+时间戳) openid: String, // 用户标识 userId: String, // 关联用户ID userDisplayId: String, // 关联用户显示编号 customerName: String, // 客户姓名 phone: String, // 联系电话 company: String, // 公司名称 serviceId: String, // 关联的服务ID(外键,关联services集合) serviceType: String, // 服务类型 serviceProject: String, // 服务项目 description: String, // 需求描述 address: String, // 服务地址 preferredDate: String, // 期望日期 preferredTime: String, // 期望时间 urgency: String, // 紧急程度 status: String, // 订单状态 createTime: Date, // 创建时间 updateTime: Date, // 更新时间 statusHistory: Array, // 状态变更历史 // 施工队伍接单相关字段 🆕 teamId: String, // 接单施工队伍ID teamOpenid: String, // 接单施工队伍openid teamName: String, // 施工队伍名称 teamType: String, // 队伍类型 (individual/company) teamTypeName: String, // 队伍类型名称 teamCategory: String, // 队伍专业类别 teamCategoryName: String,// 队伍专业类别名称 teamPhone: String, // 队伍联系电话 teamAvatar: String, // 队伍头像 teamRating: Number, // 队伍评分 acceptTime: Date, // 接单时间 estimatedPrice: String, // 预估价格 estimatedDays: String, // 预估工期 teamNotes: String // 队伍备注 } ``` **外键关联说明:** - `serviceId` 字段关联 `services` 集合中的服务记录 - 云函数在查询订单详情时会自动填充 `service` 字段,包含完整的服务信息 - 前端在创建订单时会自动从选择的服务中提取 `serviceId` #### 项目模型 (projects) ```javascript { id: String, // 项目ID (PRJ+订单号后缀) orderId: String, // 关联订单ID openid: String, // 用户标识 userId: String, // 关联用户ID userDisplayId: String, // 关联用户显示编号 name: String, // 项目名称 status: String, // 项目状态 progress: Number, // 完成进度 (0-100) milestones: Array, // 里程碑列表 clientInfo: Object, // 客户信息 createTime: Date, // 创建时间 updateTime: Date // 更新时间 } ``` #### 通知模型 (notifications) ```javascript { openid: String, // 用户标识 type: String, // 通知类型 (order/project/system) title: String, // 通知标题 content: String, // 通知内容 isRead: Boolean, // 是否已读 priority: String, // 优先级 (normal/high) createTime: Date, // 创建时间 readTime: Date // 阅读时间 } ``` #### 服务项模型 (services) ```javascript { id: String, // 服务项ID category: String, // 服务分类代码 (sme_market/info_integration等) title: String, // 服务标题 description: String, // 服务描述 price: Number, // 价格 unit: String, // 单位 (次/㎡/套) rating: Number, // 评分 (1-5) tags: Array, // 标签列表 image: String, // 服务图片URL badge: String, // 徽章 (热门/推荐/新品) sort: Number, // 排序权重 advantages: Array, // 服务优势 cases: Array, // 案例展示 status: String, // 状态 (active/inactive/deleted) createTime: Date, // 创建时间 updateTime: Date // 更新时间 } ``` #### 服务分类模型 (service_categories) 🆕 ```javascript { code: String, // 分类代码 (info_integration/engineering等) name: String, // 分类名称 (信息化集成/工程施工等) icon: String, // 分类图标 (💻/🏗️等) description: String, // 分类描述 color: String, // 主题颜色 (#667eea等) sortOrder: Number, // 显示顺序 (1-10) status: String, // 状态 (active/deleted) createTime: Date, // 创建时间 updateTime: Date // 更新时间 } ``` #### 施工队伍模型 (construction_teams) 🆕 ```javascript { id: String, // 队伍ID (TEAM_+时间戳) openid: String, // 队伍负责人openid name: String, // 队伍名称 type: String, // 队伍类型 (individual/company) typeName: String, // 队伍类型名称 (个人师傅/施工公司) category: String, // 专业类别 (electrical/plumbing/network等) categoryName: String, // 专业类别名称 avatar: String, // 队伍头像 phone: String, // 联系电话 location: String, // 所在地区 experience: String, // 从业经验 description: String, // 队伍描述 specialties: Array, // 专业技能列表 certifications: Array, // 资质证书列表 serviceRegions: Array, // 服务地区列表 // 个人师傅特有字段 realName: String, // 真实姓名 idCard: String, // 身份证号 // 施工公司特有字段 companyName: String, // 公司名称 businessLicense: String, // 营业执照 legalRepresentative: String, // 法定代表人 registeredCapital: String, // 注册资本 companyAddress: String, // 公司地址 // 审核相关字段 auditStatus: String, // 审核状态 (pending/approved/rejected) canReceiveOrders: Boolean, // 是否可以接单 auditTime: Date, // 审核时间 auditReason: String, // 审核备注 auditBy: String, // 审核人 // 业务相关字段 rating: Number, // 评分 (0-5) completedProjects: Number, // 完成项目数 status: String, // 工作状态 (available/busy) currentOrderId: String, // 当前订单ID joinDate: String, // 加入日期 tags: Array, // 标签列表 priceRange: String, // 价格范围 submitTime: Date, // 申请提交时间 createTime: Date, // 创建时间 updateTime: Date // 更新时间 } ``` #### 用户通知模型 (user_notifications) 🆕 ```javascript { openid: String, // 用户标识 type: String, // 通知类型 (order/project/system) title: String, // 通知标题 content: String, // 通知内容 isRead: Boolean, // 是否已读 priority: String, // 优先级 (normal/high) createTime: Date, // 创建时间 readTime: Date // 阅读时间 } ``` ## 🚀 快速开始 ### 📋 环境要求 - **微信开发者工具** 最新版本 - **Node.js** 16.13.0+ - **微信小程序账号** 已认证 - **腾讯云开发环境** 已开通 ### ⚙️ 部署步骤 #### 1. 克隆项目 ```bash git clone cd SmartCraftsmanEngineering ``` #### 2. 配置云开发环境 ```bash # 访问腾讯云控制台 https://console.cloud.tencent.com/tcb # 创建云开发环境,记录环境ID ENV_ID=cloud1-8gge1454b08b1f51 ``` #### 3. 配置小程序 修改 `miniprogram/app.js`: ```javascript wx.cloud.init({ env: 'cloud1-8gge1454b08b1f51', // 替换为你的环境ID traceUser: true, }); ``` #### 4. 部署云函数 ```bash # 方法1: 使用MCP工具 (推荐) npm run deploy:functions # 方法2: 使用微信开发者工具 # 右键每个云函数文件夹 → "上传并部署:云端安装依赖" ``` #### 5. 初始化数据库 由于云开发数据库的特殊性,我们提供了多种数据库初始化方式: **方式一:小程序内初始化(推荐)** - 在小程序首页,长按底部的"长按此处进行数据库初始化"区域 - 选择"初始化数据库" - 选择"初始化分类数据" - 创建9个服务分类 - 选择"初始化服务数据" - 创建18条服务项目(每个分类2条) - 等待初始化完成,可选择保留或清理测试数据 **方式二:云函数初始化** ```javascript // 在微信开发者工具中调用 wx.cloud.callFunction({ name: 'initDatabase', success: res => console.log('数据库初始化成功', res.result) }) ``` **方式三:手动脚本初始化** - 复制项目根目录下的 `init-database.js` 内容 - 修改环境ID为您的实际环境ID - 在微信开发者工具控制台中粘贴并运行 **⚠️ 注意事项:** - 如果遇到权限问题,请检查数据库安全规则设置 - 建议先保留测试数据,确认集合创建成功后再清理 - 初始化会创建6个集合:users、orders、projects、notifications、service_categories、services - 服务数据包含:9个分类 + 18条服务项目(每个分类2条) - 如果某个集合创建失败,可以单独重试 **🆔 现有用户ID更新:** 如果您已有用户数据,需要为现有用户添加9位数字ID: ```javascript // 在微信开发者工具控制台中运行 // 复制 update-user-ids.js 文件内容并运行 updateExistingUsers() ``` ## 📊 功能亮点 ### **🏠 首页功能** - ✅ **服务分类导航**: 点击服务分类进入详细页面,不直接跳转预约 - ✅ **轮播横幅**: 展示核心服务和最新动态 - ✅ **热门服务**: 推荐优质服务项目 - ✅ **数据统计**: 实时业务数据展示 - ✅ **快捷操作**: 一键新建订单、查看项目等 ### **🗂️ 服务分类页面** - ✅ **分类详情**: 展示每个服务分类的详细介绍和描述 - ✅ **服务项目列表**: 分类下的具体服务项目,包含价格、评分、标签 - ✅ **项目详情**: 服务项目的详细信息和操作按钮 - ✅ **立即预约**: 直接跳转到预约页面并预填服务信息 - ✅ **推荐服务**: 横向滚动的相关服务推荐 - ✅ **分类统计**: 该分类的服务数量、订单量、满意度等数据 - 🆕 **数据库驱动**: 服务项数据从云数据库动态获取,支持实时更新 ### **🛠️ 服务管理后台** - 🆕 **服务列表管理**: 查看所有服务项,支持分类筛选 - 🆕 **添加服务**: 通过表单添加新的服务项目 - 🆕 **编辑服务**: 修改现有服务的信息、价格、图片等 - 🆕 **删除服务**: 软删除服务项,保留历史数据 - 🆕 **数据统计**: 显示总服务数、活跃服务数等统计信息 - 🆕 **初始化数据**: 一键初始化示例服务数据 - 🆕 **实时同步**: 后台修改立即同步到前端展示 ### **📂 分类管理系统** 🆕 - 🆕 **分类独立管理**: 10个服务分类单独数据库管理,包含图标和颜色 - 🆕 **动态服务网格**: 首页服务网格从分类数据库动态加载 - 🆕 **分类管理后台**: 支持添加、编辑、删除服务分类 - 🆕 **图标颜色配置**: 每个分类支持自定义图标和主题色 - 🆕 **排序权重**: 可调整分类在首页的显示顺序 - 🆕 **数据初始化**: 一键初始化10个默认分类数据 - 🆕 **管理员菜单**: 个人中心长按头像显示管理员功能入口 ### **智能业务流程** - ✅ **自动状态流转**: 订单状态自动更新,项目进度同步 - ✅ **智能提醒**: 关键节点自动通知,避免遗漏 - ✅ **数据联动**: 订单、项目、通知数据实时同步 - ✅ **异常处理**: 云函数异常时自动降级到本地存储 - 🆔 **用户ID管理**: 自动分配唯一用户ID和编号,支持数据关联追踪 ### **用户体验优化** - 🎨 **现代化UI**: Material Design风格,动画效果丰富 - 📱 **响应式设计**: 适配各种屏幕尺寸 - ⚡ **性能优化**: 懒加载、分页加载、缓存策略 - 🔄 **离线支持**: 网络异常时仍可查看本地数据 - 🆔 **匠心号系统**: 类似酷狗音乐的用户ID显示,支持一键复制和分享 ### **管理功能完善** - 📈 **数据统计**: 订单完成率、项目进度、业务趋势 - 🔍 **搜索筛选**: 多维度搜索,快速定位信息 - 📤 **数据导出**: 支持订单数据导出,便于分析 - 🔔 **消息中心**: 统一消息管理,重要通知不遗漏 ## 🛠️ 开发指南 ### **本地开发** ```bash # 启动MCP服务 npm run start:mcp # 微信开发者工具导入项目 # 选择 miniprogram 目录作为小程序根目录 ``` ### **云函数开发** ```bash # 创建新云函数 mkdir cloudfunctions/newFunction cd cloudfunctions/newFunction npm init -y npm install wx-server-sdk # 部署云函数 npm run deploy:function newFunction ``` ### **数据库操作** ```javascript // 小程序端调用云函数 const result = await wx.cloud.callFunction({ name: 'businessManager', data: { action: 'getOrders', data: { status: 'pending' } } }) ``` ## 🔧 配置说明 ### **环境变量** ```bash ENV_ID=cloud1-8gge1454b08b1f51 # 云开发环境ID APPID=wxf989b75875d3cd2a # 小程序AppID ``` ### **云函数配置** ```json { "businessManager": { "timeout": 60, "memorySize": 512, "runtime": "Nodejs16.13" }, "userManager": { "timeout": 60, "memorySize": 256, "runtime": "Nodejs16.13" }, "messageManager": { "timeout": 30, "memorySize": 256, "runtime": "Nodejs16.13" } } ``` ## 🎯 业务价值 ### **对客户** - 📱 **便捷服务**: 手机端随时预约,实时跟踪进度 - 👁️ **透明流程**: 8步闭环全程可视,质量有保障 - 🚀 **快速响应**: 24小时内响应,专业团队服务 - 📊 **数据洞察**: 项目数据统计,决策更科学 ### **对服务商** - 🎯 **标准化管理**: 统一业务流程,提升服务质量 - 📈 **效率提升**: 自动化流转,减少人工干预 - 💡 **智能分析**: 数据驱动决策,优化资源配置 - 🔗 **客户粘性**: 全程服务跟踪,提升客户满意度 ### **对平台** - 🏗️ **数字化转型**: 传统工程服务数字化升级 - 📊 **数据资产**: 积累行业数据,形成竞争优势 - 🌟 **品牌价值**: 专业服务品牌,市场差异化 - 🚀 **规模化**: 标准化流程支持业务快速扩张 ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request 来改进项目! ### **开发规范** - 遵循 ESLint 代码规范 - 提交前运行测试用例 - 编写清晰的提交信息 - 更新相关文档 ### **问题反馈** - [GitHub Issues](https://github.com/your-repo/issues) - 邮箱: support@smartcraftsman.com - 微信群: 扫码加入开发者群 ## 📋 更新日志 ### v1.5.0 (2024-12-22) **🗄️ 订单服务关联数据库结构优化** - ✅ **外键关联设计**: 建立orders集合与services集合的外键关联 - ✅ **数据结构升级**: 添加serviceId和serviceCategoryCode字段 - ✅ **智能数据迁移**: 自动匹配历史订单到具体服务项 - ✅ **向后兼容性**: 保留原有字段,确保现有功能不受影响 - ✅ **统计分析增强**: 支持精确到具体服务的统计分析 - ✅ **服务信息关联**: 可获取服务价格、评分、标签等详细信息 - ✅ **数据完整性**: 分离服务信息和用户需求描述 **技术实现:** - 🔧 新增upgradeOrdersSchema云函数处理数据库升级 - 🔧 更新businessManager云函数支持新字段结构 - 🔧 实现渐进式升级策略,降低风险 - 🔧 添加智能服务匹配算法 - 🔧 创建数据库索引优化查询性能 - 🔧 提供完整的升级、验证、回滚功能 **数据模型优化:** - 📊 orders.serviceId → services._id (主要外键) - 📊 orders.serviceCategoryCode → service_categories.code (备用关联) - 📊 保留serviceType/serviceTypeLabel字段用于兼容 - 📊 支持通过外键获取完整服务信息和分类信息 ### v1.4.3 (2024-12-22) **🔧 订单页面登录逻辑优化** - ✅ **登录检查简化**: 移除过于严格的云端验证,减少网络依赖 - ✅ **响应速度提升**: 简化登录状态检查逻辑,提高页面加载速度 - ✅ **稳定性增强**: 降低因网络异常导致的登录失败概率 - ✅ **用户体验优化**: 改进页面状态显示,避免误判登录状态 - ✅ **代码质量**: 移除重复的登录检查方法,统一验证逻辑 - ✅ **错误处理**: 优化错误提示和降级处理机制 **技术改进:** - �� 将严格的三层验证简化为轻量级本地验证 - 🔧 保留微信session检查但不阻塞主流程 - 🔧 优化WXML模板的条件渲染逻辑 - 🔧 添加加载状态显示,提升用户体验 - 🔧 创建测试脚本验证修复效果 ### v1.4.2 (2024-12-22) **🎯 服务分类导航功能** - ✅ **服务分类导航**: 点击首页服务分类可查看该分类下的所有服务项目 - ✅ 完善从首页到分类详情页的完整导航流程 - ✅ 服务分类页面自动加载对应分类的服务项目数据 - ✅ 优化云函数 `getServicesByCategory` 方法,支持按分类获取服务 - ✅ 降级处理机制:数据库无数据时自动显示默认数据 - ✅ 完整的用户体验:加载状态、错误提示、空状态处理 - ✅ 页面标题动态显示分类名称,提升用户体验 - ✅ 数据库驱动:支持从云数据库动态获取和展示服务项目 **技术改进:** - 🔧 修复服务分类页面参数传递和数据加载逻辑 - 🔧 完善 serviceManager 云函数的 `getServicesByCategory` 方法 - 🔧 优化分类信息展示和页面导航体验 - 🔧 新增测试脚本验证功能完整性 ### v1.4.1 (2024-12-22) **🔗 数据关联与统计功能** - ✅ 完善`service_categories`和`services`数据关联 - ✅ 新增获取服务项与分类关联信息功能 - ✅ 新增获取指定分类及其服务项详情功能 - ✅ 新增服务统计分析功能:总体概览、分类统计、热门服务排行 - ✅ 新增服务搜索功能:支持关键词搜索和分类过滤 - ✅ 服务管理后台增加统计查看功能 - ✅ 支持导出统计报告,便于数据分析 - ✅ 数据完整性验证:添加/编辑服务时验证分类有效性 - ✅ 优化云函数架构,提升数据查询性能 ### v1.4.0 (2024-12-22) **🛠️ 实用工具模块上线** - ✅ 新增实用工具页面 (`tools`),提供三大核心工具 - ✅ 二维码生成器:支持文本转二维码、保存图片功能 - ✅ 单位转换器:支持面积和长度单位互转(㎡、公顷、亩、km²等) - ✅ 价格计算器:含税费、折扣计算,适用工程报价场景 - ✅ 现代化UI设计:渐变背景、卡片式布局、动效反馈 - ✅ 一键复制结果:支持计算结果快速复制到剪贴板 - ✅ 响应式适配:完美适配各种屏幕尺寸 - ✅ 多入口访问:首页快捷操作 + 个人中心菜单 - ✅ 完善的交互体验:重置功能、错误提示、加载状态 ### v1.3.3 (2024-12-28) **🔐 预约服务登录验证强化 + 智能状态恢复 + 死循环修复** - ✅ **强制登录验证**: 未登录用户无法访问预约页面,确保数据安全 - ✅ **多重登录检查**: 页面加载、显示、提交时三重验证登录状态 - ✅ **友好登录引导**: 未登录时显示友好提示,引导用户前往登录 - ✅ **智能页面跳转**: 支持返回上一页或跳转到首页的智能导航 - ✅ **实时状态监控**: 页面显示时重新检查登录状态,防止状态过期 - ✅ **预约状态保存**: 未登录时自动保存用户填写的预约信息到本地存储 - ✅ **登录后状态恢复**: 登录成功后自动跳转回预约页面并恢复之前的填写内容 - ✅ **智能过期机制**: 预约状态30分钟内有效,过期自动清除避免数据冗余 - ✅ **完整用户体验**: 登录成功后显示"已恢复预约信息"提示,用户体验流畅 - ✅ **登录死循环修复**: 采用宽松验证策略,微信session过期不清除本地登录状态 - ✅ **智能容错机制**: 云端验证失败时使用本地用户信息,网络问题不影响使用 - ✅ **友好过期提示**: session过期时显示提示但不阻止继续使用 ### v1.3.2 (2024-12-28) **🤖 智能头像同步功能** - ✅ **自动检测临时头像**: 登录成功后自动检测是否为临时文件路径 - ✅ **智能上传云存储**: 发现临时头像自动上传到云存储,获得永久访问地址 - ✅ **跨设备头像一致性**: 解决换设备后头像丢失的问题 - ✅ **多格式支持**: 支持 `wxfile://`、`blob:`、`data:image/` 等多种临时文件格式 - ✅ **后台同步**: 不影响用户登录体验,后台智能同步头像 - ✅ **数据库自动更新**: 同步完成后自动更新用户头像URL - ✅ **本地存储同步**: 同时更新本地缓存和页面显示 - ✅ **容错机制**: 上传失败不影响正常使用,提供友好的错误处理 - ✅ **参数修复**: 修正了云函数参数传递问题,确保功能正常工作 **技术实现:** ```javascript // 检测临时头像URL isTempAvatarUrl(avatarUrl) { const tempPatterns = [ /^wxfile:\/\/tmp_/, // 微信临时文件 /^wxfile:\/\/tmp\//, // 微信临时目录 /^data:image\//, // base64图片数据 /^blob:/ // blob URL ] return tempPatterns.some(pattern => pattern.test(avatarUrl)) } // 自动上传到云存储 async uploadTempAvatarToCloud(tempAvatarUrl) { // 1. 检查文件可访问性 // 2. 上传到云存储 // 3. 更新数据库 // 4. 同步本地存储 // 5. 更新页面显示 } ``` **用户体验优化:** - 🔄 **无感知同步**: 用户无需任何操作,系统自动处理 - ⚡ **不阻塞登录**: 头像同步在后台进行,不影响登录速度 - 💾 **数据安全**: 头像永久保存在云存储,不会丢失 - 🎯 **智能提示**: 同步完成后显示友好提示信息 - 🛡️ **错误处理**: 同步失败不影响正常使用,静默处理错误 ### v1.3.1 (2024-12-19) **🎨 服务分类页面UI优化** - ✅ 页面标题动态显示对应的分类名称 - ✅ 添加与首页一致的轮播图展示 - ✅ 每个分类配置专属的轮播图内容 - ✅ 优化页面布局:轮播图 + 分类介绍 + 服务列表 - ✅ 调整页面头部样式,与轮播图搭配更协调 - ✅ 轮播图支持点击跳转到相关页面 ### v1.3.0 (2024-12-19) **🗂️ 服务分类页面优化** - ✅ 新增服务分类详情页面 (`service-category`) - ✅ 优化首页服务流程:分类 → 分类详情 → 具体服务 → 预约 - ✅ 分类页面展示该分类下的具体服务项目 - ✅ 服务项目包含详细信息:价格、评分、标签、描述 - ✅ 支持查看详情和立即预约两种操作 - ✅ 预约页面自动预填选中的服务信息 - ✅ 添加推荐服务横向滚动展示 - ✅ 展示分类统计数据:服务数量、订单量、满意度等 - ✅ 完善所有服务分类的数据内容 ### v1.2.0 (2024-12-19) **🔧 客服联系方式优化** - ✅ 将客服联系方式从电话改为微信客服 - ✅ 使用 `