# AGENTS.md 本文件面向 AI 编码代理,介绍本项目的架构、约定与开发方式。 ## 项目概述 **SHJ_APP**(施工管理 App)是一个基于 **uni-app + Vue 3** 的跨端移动应用,服务于管道施工 / 焊接管理业务(点口管理、试压管理、包装管理、发货管理、预制组件管理、下料抽检、组对抽查、焊接日报、防腐处理等)。主要运行目标是**微信小程序**(`manifest.json` 中已配置 `mp-weixin` appid),同时兼容 H5 和 App(5+App)。 后端接口地址(见 `utils/request.js`): - API:`https://lygcgs.com.cn:8078/shjapi/api/` - 附件/文件:`https://lygcgs.com.cn:8078/shj/` ## 技术栈 - **框架**:uni-app(Vue 3,`manifest.json` 中 `vueVersion: "3"`)+ Vite - **状态管理**:Pinia + `pinia-plugin-persist-uni`(状态持久化到本地存储) - **UI 组件库**:uview-pro(`u-*` 组件通过 easycom 自动引入)。组件用法/props 参考本地文档副本 `docs/uview-pro-llms-full.txt`(原始地址 ,可按 `url:` 分节检索,共 147 个组件/主题文档) - **样式**:SCSS(全局样式在 `App.vue` 中引入;公共变量在 `uni.scss`,如 `$app-primary: #2979ff`) - **条码**:bwip-js(`assets/js/js_sdk/`,微信小程序需要 `main.js` 顶部的 `atob` polyfill) ## 构建与运行 `package.json` 中**没有定义任何 scripts**,也没有 `vite.config.*`。本项目通常通过 **HBuilderX** 开发调试(运行 → 运行到小程序模拟器 → 微信开发者工具),构建产物输出到 `unpackage/`(已 gitignore)。 依赖安装:`pnpm install`(仓库同时存在 `pnpm-lock.yaml` 与 `package-lock.json`,以 pnpm 为主)。 ## 目录结构 ``` pages/ 主包页面:login(登录)、index(首页)、mine(我的)、todo(待办) pipe/ 分包(root: pipe):diankou 点口、pressure 试压、packaging 包装、 deliver 发货、precast 预制组件 scanpages/ 分包(root: scanpages):hj/ 扫码与焊接相关页面(材料详情、下料抽检、 组对抽查、焊接日报、防腐处理、日报审核)、components/nbd-print-prop.vue components/ 全局公共组件,均为 nbd-* 前缀(easycom 自动注册) api/ 接口层:auth.js / user.js / base.js / hj.js,按业务模块划分 store/ Pinia:index.js 入口,modules/ 下 user.js(登录态/项目)、 menu.js(菜单权限/快捷应用)、large.js(焊接首页数据) utils/ request.js(请求封装)、scanUtils.js(扫码解析)、constant.js (常量/默认应用配置)、formatTime.js、bwipjs-polyfill.js assets/ css/(page.scss、components.scss 全局样式)、icon/(nbd-icon 图标)、js/ docs/ 参考文档(uview-pro-llms-full.txt 组件库文档副本) static/ 图片与 tabBar 图标 pages.json 页面路由、分包、tabBar、easycom 配置(修改路由必须改这里) manifest.json 应用配置(appid、微信小程序 appid、Android 权限等) ``` ## 代码约定 - 页面与组件统一使用 **Vue 3 `