# 优匠优服(YJYF)同城服务平台 ## 一、项目架构概述 本项目采用 **前后端分离的全栈工程架构**: - **移动/小程序客户端**:位于 `yjyf-app/`,基于 **uni-app (Vue) + SCSS**,适配微信小程序、H5、App 等。 - **服务端接口与后台**:位于 `server/`,基于 **FastAdmin / ThinkPHP 5.x**,提供 RESTful API 与 RBAC 运营管理后台。 - **数据库**:位于 `db/`,MySQL 5.7+ / 8.0(utf8mb4 字符集),提供完整的阶段演进建表 SQL。 --- ## 二、标准项目目录结构 ```text yjyf/ ├── yjyf-app/ # 小程序/移动客户端源码(uni-app 前端工程) │ ├── pages/ # 业务页面目录 │ │ ├── index/ # 平台主页(pages/index/index) │ │ ├── service/ # 服务分类列表、服务详情、价格测算 │ │ ├── order/ # 订单模块(快速下单、确认订单、订单详情、评价) │ │ ├── master/ # 师傅端(资质入驻、接单大厅、工作台、报价管理、钱包、信用) │ │ ├── merchant/ # 商户端(商家入驻、商家工作台、批量下单、企业订单、发票) │ │ ├── address/ # 用户服务地址管理 │ │ ├── coupon/ # 领券中心与我的优惠券 │ │ ├── message/ # 消息通知中心 │ │ ├── mine/ # 个人中心(角色切换、设置) │ │ └── login/ # 统一登录与微信静默/授权登录 │ ├── static/ # 静态资源(保留 logo.png 与 icons/ 服务图标库) │ │ └── icons/ # 扁平双色矢量服务类目图标 │ ├── utils/ # 前端核心工具库 │ │ ├── api.js # 接口清单(与后端 api 控制器一一映射) │ │ ├── request.js # 网络请求封装(Token 鉴权、响应拦截、统一异常提示) │ │ ├── role.js # 角色上下文状态管理(user / master / merchant) │ │ └── wxlogin.js # 微信静默授权登录 │ ├── App.vue # uni-app 入口组件 │ ├── main.js # Vue 初始化入口 │ ├── pages.json # 页面路由与窗口配置 │ ├── manifest.json # 跨端发行与 AppID 配置 │ └── uni.scss # 全局主题样式变量 ├── server/ # 后端服务端源码(FastAdmin / ThinkPHP) │ ├── application/ # 业务应用模块 │ │ ├── admin/ # 后台管理控制器与视图(订单、师傅、商户、结算、提现等) │ │ ├── api/ # 客户端 RESTful API 控制器(Home, Order, Master, Merchant 等) │ │ └── common/ # 公共模型、类库、业务枚举(如 OrderStatus) │ ├── public/ # Web 入口目录(admin.php, index.php) │ ├── addons/ # FastAdmin 插件扩展 │ ├── composer.json # 后端依赖配置 │ └── think # ThinkPHP 命令行脚手架 ├── db/ # 数据库架构与演进脚本 │ ├── schema_phase1.sql ~ schema_phase10_admin_config_zh.sql │ └── README_phase5.md # 数据同源与后台模块部署规范 ├── tests/ # 接口与业务闭环自动化测试套件 └── scripts/ # 运维补丁与部署脚本 ``` --- ## 三、开发与运行指引 ### 1. 小程序端开发(HBuilderX) - 在 **HBuilderX** 中打开 `yjyf-app/` 文件夹(或在命令行通过相关 CLI 启动构建); - 配置 `yjyf-app/manifest.json` 中的微信小程序 AppID; - 点击「运行」→「运行到小程序模拟器」→「微信开发者工具」。 ### 2. 路由与多角色规范 - 所有页面统一存放于 `yjyf-app/pages/{模块名}/{页面名}.vue`; - 启动页统一为 `pages/index/index`; - 系统支持 `user`(个人业主)、`master`(维修师傅)、`merchant`(合作商户)三种身份,前端调用 `/api/auth/switchRole` 实现安全角色切换。