# HC小区物业版 **Repository Path**: xueshss3/PropertyApp ## Basic Information - **Project Name**: HC小区物业版 - **Description**: HC掌上物业是完全开源并免费商用的手机版小区物业管理系统, 包含工单维修,巡检打卡,采购,物品领用,投诉处理,房产管理,通讯录,公告和小区广告等功能, 项目采用uni-app开发一次编码多端运行欢迎加群交流770542020 - **Primary Language**: NodeJS - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: http://www.homecommunity.cn - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1162 - **Created**: 2026-06-09 - **Last Updated**: 2026-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 「小管事」智能厨房助手 APP 开发说明文档 本项目基于 UniApp 框架重构,移除了原有物业系统的全部冗余文件,专为餐饮场景打造,支持在 iOS/Android 双端部署运行。 --- ## 一、项目目录结构 ``` PropertyApp/ ├── api/ # API 接口请求层 │ ├── auth.js # 用户认证相关接口 (登录、刷新 Token、退出、修改密码) │ ├── user.js # 个人信息管理接口 (查询信息、修改用户名/手机号/邮箱) │ ├── product.js # 设备与食材接口 (获取分类、获取客户食材列表) │ └── weight.js # 称重历史记录接口 (获取称重历史记录) ├── components/ # 通用公共组件 ├── lib/ # 第三方依赖与样式库 │ └── colorui/ # 页面基础 UI 样式组件库 ├── pages/ # 业务视图页面层 │ ├── index/ # APP 壳与主导航页面 │ │ ├── index.vue # 底部自定义绿圈 TabBar 与子选项卡分发容器 │ │ └── components/ # 选项卡视图组件 │ │ ├── HomeView.vue # “主页” 视图 │ │ ├── DeviceView.vue # “小管事设备” 视图 │ │ └── MyView.vue # “我的” 个人设置中心视图 │ ├── login/ │ │ └── login.vue # 登录页 (含记住密码、自动登录功能) │ ├── ingredient/ │ │ └── ingredient.vue # 食材管理列表页 (左侧分类栏 + 右侧卡片网格列表) │ └── weigh/ │ └── record.vue # 称重记录历史列表页 ├── store/ # Vuex 状态管理层 │ └── index.js # 用户状态及 Token 的持久化与同步逻辑 ├── static/ # 静态图片资源 (包含高还原度蔬菜图标及小管事小车图标) ├── utils/ # 公共工具类封装 │ └── request.js # 统一请求拦截、无感刷新 Token (401 挂起队列自动重试) 封装 ├── App.vue # 全局生命周期与样式配置 (自动计算并注入 StatusBar 保证全面屏适配) ├── main.js # 全局引导程序入口 ├── pages.json # 路由配置与全局外观定义 └── manifest.json # 应用配置参数 (双端打包配置) ``` --- ## 二、接口与数据对接说明 1. **接口根地址**:`https://api.shxgs.cn:5196` 2. **请求头规范**:网络请求会通过 `utils/request.js` 拦截器,在 `header` 中自动追加 `Authorization: Bearer ` 令牌进行认证。 3. **数据格式规范**: - `/api/auth/refresh-token`、`/api/auth/logout`、`/api/ems/user/by-code` 和 `/api/ems/product/cust_product` 等接收的是**原始数据类型** (Raw String 或 Raw Int) 作为请求体,已在 `request.js` 中使用 `isRaw` 特殊序列化处理。 - `/api/ems/user/update-usernm` 等信息修改接口要求传入的结构是 `pam1` (用户ID) 和 `pam2` (新值),API 层已进行了统一的映射处理。 4. **无感刷新 Token (Silent Refresh)**: - 当请求遭遇 `401 Unauthorized` 报错时,`request.js` 自动启动刷新锁,把后续并发请求压入重试队列。 - 携带本地 `refreshToken` 调用 `/api/auth/refresh-token` 换取新令牌。 - 若刷新成功,自动更新本地存储并串行重试队列中的请求;若刷新失败则强制清空会话并跳转至登录页。 --- ## 三、打包与运行步骤 由于项目基于标准 UniApp 开发,推荐使用官方的 **HBuilderX** 工具完成编译与打包。 ### 1. 本地运行调试 1. 在电脑上下载并打开 **HBuilderX**。 2. 在 HBuilderX 中点击 `文件 -> 导入 -> 从本地目录导入`,选择当前的 `PropertyApp` 文件夹。 3. 连接手机或打开模拟器: - **Android**:手机开启 USB 调试模式,用 USB 线连上电脑。 - **iOS**:电脑连接 iPhone 并在手机上信任此电脑。 4. 运行调试:点击 HBuilderX 顶部菜单 `运行 -> 运行到手机或模拟器 -> [选择您的设备]`。 ### 2. 双端发布打包 (iOS/Android) 1. 在 HBuilderX 中打开项目,双击 `manifest.json` 进行基础配置(如应用名称、图标等)。 2. 打包生成应用: - 点击 HBuilderX 顶部菜单 `发行 -> 原生App-云打包`。 - **Android**:可以使用公共测试证书或使用您企业自签证书,选择打包为 `APK`,点击打包。 - **iOS**:输入 iOS 证书私钥密码、Profile 文件,点击打包(支持打包为 `IPA` 或发布到 TestFlight)。 3. 云打包完成后,HBuilderX 会在底部控制台输出打包好的安装包本地路径,即可下载安装至真机测试。