AGENTS.md 5.37 KB

仓库指南

项目结构与模块组织

源码位于 src/。路由页面放在 src/pages/<page>/,每个页面通常包含 index.vueindex.lessindex.config.js。通用组件放在 src/components/,复用逻辑放在 src/composables/src/hooks/,接口封装放在 src/api/,公共工具放在 src/utils/,全局状态放在 src/stores/。构建配置集中在 config/,应用入口为 src/app.jssrc/app.config.js

构建、调试与开发命令

使用 pnpm install 安装依赖。开发微信小程序时运行 pnpm dev:weapp,调试 H5 时运行 pnpm dev:h5。生产构建常用 pnpm build:weapp,如有多端需求,也可使用 pnpm build:h5pnpm build:alipay 等命令。提交前必须执行 pnpm lint,当前仓库已配置的自动检查主要就是 ESLint。

代码风格与命名约定

项目基于 JavaScript、Vue 3 单文件组件、Less 和 Taro 4。请遵循现有风格:.vue 文件统一使用 2 空格缩进,业务逻辑保持简洁,优先使用组合式写法。可复用组件使用 PascalCase 命名,例如 PosterBuilder;组合式函数和 hooks 使用 useXxx.js 命名,例如 useGo.js;接口方法统一使用 xxxAPI 后缀,例如 getUserInfoAPI。导入路径优先使用 @/utils@/components 等别名,避免过深的相对路径。

测试要求

当前 package.json 中没有独立的单元测试框架,因此默认验证方式为 pnpm lint 加手工联调。修改页面、路由、认证或请求逻辑后,请至少在微信开发者工具中走通相关流程。若变更涉及 src/utils/authRedirect.jssrc/utils/request.jssrc/api/,需要重点检查登录态、页面回跳和接口请求是否正常。后续如新增自动化测试,建议贴近功能放置,并使用 *.spec.js 命名。

授权与支付链路约定

授权逻辑的核心在 src/app.jssrc/utils/authRedirect.jssrc/utils/request.jssrc/pages/auth/index。应用启动时会优先尝试静默授权,sessionid 统一写入 Taro 本地缓存,并由请求拦截器动态注入到请求头;接口返回 401 时,会先尝试 refreshSession 静默续期并重放原请求,失败后再降级跳转授权页。因此除非明确重构整条链路,否则不要随意改动 sessionid 的存取方式、saveCurrentPagePath / returnToOriginalPage 的回跳机制、navigateToAuth 的防重逻辑,也不要跳过 src/pages/auth/index 直接在业务页硬编码授权流程。若修改分享进入、启动授权、401 重试或来源页回填逻辑,需至少手工验证一次“未授权进入页面 -> 自动或手动授权 -> 成功回跳原页面”的完整闭环。

支付链路给业务侧的精简描述可以理解为:map-demo 的 H5 页面先通过项目里的 pages/webview-preview/index 进入小程序 WebView,当 H5 侧需要发起支付时,再把 order_id 传给小程序里的 pages/pay-bridge/index;桥页负责检查授权状态、必要时补做静默授权,然后通过 src/composables/useWechatMiniPay.js 调用 /srv/?a=pay 向后端换取微信支付参数,最后由小程序侧执行 Taro.requestPayment 拉起正式支付。支付完成后,桥页会根据成功、取消、失败三种结果给出状态提示,并自动返回上一页,回到原来的 WebView/H5 场景。

仓库实现上,测试/桥接链路核心在 src/composables/useWechatMiniPay.jssrc/api/index.jssrc/pages/pay-test/index.vuesrc/pages/pay-bridge/index.vue;另一条是通用支付封装,位于 src/utils/wechatPay.jssrc/api/wx/pay.js,通过 pay_id 调用 /srv/?a=icbc_pay_wxamp。修改支付逻辑时务必先确认当前页面接的是哪一条接口链路,不要混用 order_idpay_id,也不要在未拿到后端有效支付参数时直接调用 requestPayment。涉及 H5/WebView 唤起支付时,应优先保持 pages/pay-bridge 的桥接职责与返回参数约定稳定;涉及支付结果处理时,需区分成功、取消、失败三类状态,并至少在微信开发者工具或真机中验证一次“授权状态检查 -> 拉起支付 -> 返回结果展示/回跳”的流程。

提交与合并请求规范

当前 Git 历史以简短中文提交为主,例如 初始化觉林寺小程序项目。后续提交信息也请保持中文、简洁、祈使语气,并聚焦单一改动。提交 PR 时请附上:变更背景与解决方案、关联任务或问题、影响的页面或模块、手工验证步骤;涉及界面改动时,需补充截图或录屏。

文档与描述语言要求

本仓库默认使用中文沟通与书写。今后新增或修改的说明性文字请统一使用中文,包括但不限于文档、注释说明、提交说明、PR 描述、变更摘要和协作备注;如必须保留英文术语,请同时提供中文语义,避免只写英文描述。

安全与配置提示

不要提交真实的 AppID、令牌或生产环境域名。首次接手项目时,请优先检查 src/utils/config.jsproject.config.json。授权与支付测试环境当前会复用既有后端配置,调整域名、client_id、支付接口地址或 WebView 跳转地址前,必须先确认不会影响 openid、会话续期和微信支付参数生成。除非明确要重构认证链路,否则不要随意删除或绕过 src/pages/auth/index 认证页。