# member-mobile **Repository Path**: pgs/member-mobile ## Basic Information - **Project Name**: member-mobile - **Description**: 会员成长系统移动端 - 头马俱乐部会员管理 H5 (Vue3 + Vant4 + 云数据库) - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-11-04 - **Last Updated**: 2026-11-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 会员成长系统 · 移动端 头马(Toastmasters)俱乐部会员管理系统的手机端应用。由原 Spring Boot + layui 的 PC 端系统改造而来,保留全部业务能力,界面按移动优先重做。 ## 技术栈 - **Vue 3** + **Vue Router 4**(SPA,路由级登录守卫) - **Vant 4**(移动端组件库,底部抽屉表单、日期滚动选择、下拉刷新、上拉加载) - **Vite 5**(开发与构建) - **WorkBuddy 云服务**(PostgREST 数据接口 + 托管身份认证,前端直连,无自建后端) ## 功能 | 模块 | 说明 | |---|---| | 首页看板 | 会员/会议/参会/荣誉总数,近期会议,活跃榜,快捷入口 | | 会员管理 | 列表搜索筛选、详情、新建、编辑、删除,含积分账户(累计/可用/已用) | | 会议管理 | 例会列表、新建、编辑、详情、按会议查看参会记录 | | 参会积分 | 角色录入(选角色自动带积分)、标记最佳、连续录入 | | 荣誉墙 | 荣誉记录增删、按会员/会议关联 | | 导师 | 导师档案、师徒结对关系、容量与状态管理 | | 数据分析 | 角色分布、近 6 月参会趋势、俱乐部活跃榜、最佳角色统计 | | 我的 | 账号信息、退出登录 | ## 本地开发 ```bash npm install npm run dev # 开发服务器,局域网内手机可直接访问 npm run build # 生产构建,产物在 dist/ npm run preview # 预览构建产物 ``` ## 目录结构 ``` src/ ├── main.js # 入口,注册 Vant 与全局样式 ├── App.vue # 根组件,TabBar 与页面过渡 ├── router.js # 路由表与登录守卫 ├── cloud.js # 云服务 SDK 初始化(数据接口 + 认证) ├── api.js # 数据访问层,全部表操作集中在此 ├── store.js # 轻量全局状态(登录态、用户信息) ├── utils.js # 日期、积分、枚举映射等工具函数 ├── styles.css # 设计变量与全局样式 ├── components/ │ └── TabBar.vue # 底部 5 个 Tab └── views/ # 12 个页面 ``` ## 数据说明 数据存放在云端 PostgreSQL,共 7 张表: `members`(会员)、`meetings`(会议)、`attendance`(参会积分)、`honors`(荣誉)、`mentors`(导师)、`member_mentors`(师徒关系)、`point_items`(积分项字典) 行级安全策略(RLS)已开启,登录用户可读写全表,未登录请求被拒绝。 ## 与原系统的差异 1. **登录方式**:原系统为用户名 + 密码(JWT + Redis 单点校验)。云端身份体系不支持密码登录,改为手机号 + 短信验证码,以及微信一键登录,首次登录自动建号。 2. **后端**:原 Java 后端未迁移。云数据库为 PostgREST 架构,服务端强制校验请求 Origin,中间层无法安全持有密钥,因此由前端直连数据接口,登录态与权限由云服务托管。 3. **权限**:原系统按 `clubId` 做俱乐部级数据隔离,当前实现为俱乐部内共享——任何登录用户可读写全部数据。若需区分管理员与普通会员,需补充角色字段与行级策略。 ## 部署 构建产物发布到 WorkBuddy 静态托管,域名需与云服务的 Origin 白名单一致,否则数据接口会被拒绝。