Auto-generated from all feature plans. Last updated: 2026-05-15
平台管理前端代码路径:E:\QtwCode\foodie\foodie-admin-vue
商家端管理前端代码路径:E:\QtwCode\foodie\foodie-store
所有前端新功能必须实现多语言,不例外。 平台管理端(foodie-admin-vue)和商家端(foodie-store) 新增的任何面向用户的文字都必须使用 $t() 而非硬编码中文。
商家端(foodie-store)使用 vue-i18n,语言文件在 src/lang/ 下(zh.js、tw.js、en.js、vi.js)。
添加多语言 key 时必须注意:
foots:{}、cuxiao:{}、fenlei:{} 等),使用 $t('foots.XXX') 的 key 必须添加到 foots 对象内部,不能加到文件顶部或其它对象里。text1、text2、text55 等无意义序号。例如:按钮用 orderBtn,标题用 orderDialogTitle,状态用 diningStatus。四个语言文件的 key 名称必须完全一致。曾经犯的错误: 把 AddCategoryFirst 加到了文件第 141 行的公共区域,而 $t('foots.AddCategoryFirst') 是在 foots 对象(第 190+ 行)下查找,导致页面显示原始 key 而非翻译文本。
前端项目(foodie-store、foodie-admin-vue)的文件使用 CRLF 换行符(Windows 风格 \r\n)。使用编辑工具进行字符串替换时,由于换行符不匹配会导致 "String to replace not found" 错误。
正确做法: 编辑前端文件时,使用 Python 脚本(python << 'PYEOF')通过 content.replace() 或行号操作来修改文件内容,避免换行符匹配问题。
所有数据库变更(ALTER TABLE、数据迁移等)不直接执行,必须写入 updatesql/sql.md 文件。由开发者统一到数据库手动执行。SQL 语句需标注日期和用途注释,例如:
-- 2026-05-15 订单状态四字段分离
ALTER TABLE pos_order ADD COLUMN delivery_status BIGINT DEFAULT NULL COMMENT '配送状态';
添加新字段到实体时,必须按顺序更新以下所有层级:
InfoUser.userType 区分不同商家角色,查询订单时必须按类型使用不同字段过滤:
| userType | 角色 | 订单过滤条件 |
|---|---|---|
| 1 | 普通商家 | PosOrder.shId = userId |
| 3 | 夜市商家 | PosOrder.shId = userId |
| 其他 | 摊位商家 | PosOrder.mdId = InfoUser.storeId(从用户表查关联的摊位门店ID) |
关键字段:
InfoUser.userType:0=普通用户, 1=商家, 2=骑手, 3=夜市InfoUser.storeId:摊位商家关联的摊位门店IDPosOrder.shId:商家ID(普通/夜市商家直接等于userId)PosOrder.mdId:门店ID(摊位商家用 InfoUser.storeId 匹配)当用户说"只改 X"时,就只改 X——不要广泛探索、创建任务或为简单的定向修改启动 Agent。从用户提到的具体文件或区域开始,做最小的必要修改。
对于简单的格式化或显示变更(如截断小数、重命名 key、单文件修改),不要创建任务计划或启动 Agent,直接做编辑。
Behavioral guidelines to reduce common LLM coding mistakes. Merge with project-specific instructions as needed.
Tradeoff: These guidelines bias toward caution over speed. For trivial tasks, use judgment.
Don't assume. Don't hide confusion. Surface tradeoffs.
Before implementing:
Minimum code that solves the problem. Nothing speculative.
Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify.
Touch only what you must. Clean up only your own mess.
When editing existing code:
When your changes create orphans:
The test: Every changed line should trace directly to the user's request.
Define success criteria. Loop until verified.
Transform tasks into verifiable goals:
For multi-step tasks, state a brief plan:
1. [Step] → verify: [check]
2. [Step] → verify: [check]
3. [Step] → verify: [check]
Strong success criteria let you loop independently. Weak criteria ("make it work") require constant clarification.
These guidelines are working if: fewer unnecessary changes in diffs, fewer rewrites due to overcomplication, and clarifying questions come before implementation rather than after mistakes.
For additional context about technologies to be used, project structure, shell commands, and other important information, read the current plan