Vue3 UniApp项目开发规范总结: ## 页面类型规范 1. **系统原生导航栏页面**:使用 layout: 'default' + 自定义导航栏配置(如income.vue) 2. **自定义导航栏页面**:使用 navigationStyle: 'custom' + 手动处理安全区域(如referEarn.vue) ## 代码书写习惯 1. **UnoCSS样式**:完全使用UnoCSS原子类,避免传统CSS,优先使用内联样式避免动态类名问题 2. **组件库**:wot-design-uni (wd-前缀组件),包括wd-form、wd-input、wd-button等 3. **分页组件**:z-paging统一处理列表和滚动,配合useZPaging hook 4. **TypeScript**:严格类型定义,defineOptions命名规范 ## 项目结构规范 1. **路由配置**:使用json5格式的route块,自动生成pages.json 2. **生命周期**:必须导入页面生命周期(即使未直接使用) 3. **插件配置**:自定义vite插件处理构建逻辑 4. **组件结构**:route配置 → script setup → template → style ## 具体编码规范 1. **安全区域**:自定义导航栏页面必须处理safeAreaInsets 2. **组件命名**:defineOptions中明确name属性 3. **表单处理**:使用wd-form + wd-input + 验证规则 4. **样式写法**:优先UnoCSS原子类,必要时使用:deep()修改组件样式 5. **背景图片**:统一使用/static/login-bg.png作为登录相关页面背景 #最佳实践 PromptX配置信息总结: ## 项目环境配置 - 项目路径:/Users/liangan/Documents/work_files/code/BandhuBuyUniBest - IDE类型:cursor - MCP实例:mcp-4121 - PromptX版本:v0.2.0 (dpml-prompt@0.2.0, Node.js v24.4.0) ## 配置文件结构 - 主配置:.promptx/pouch.json(记录状态历史和当前状态) - 资源注册表:.promptx/resource/project.registry.json(项目级资源管理) - 记忆存储:.promptx/memory/noface/declarative.dpml(角色记忆文件) - 备份目录:.promptx/backup/(配置备份) ## 当前状态 - 系统状态:service_discovery - 可用角色:assistant, luban, noface, nuwa, sean(5个系统角色) - 项目资源:当前为空,可在domain目录下创建角色资源 - 支持多项目环境,项目间完全隔离 #其他 addressBookOperate.vue 多语言配置分析: ## 文件多语言使用情况 该文件大量使用了多语言配置,通过 `t()` 函数调用多语言键值。 ## 页面标题配置 - route配置中:`navigationBarTitleText: '%addressBook.title%'` - 动态设置:编辑模式使用 `t('addressBook.operate.title.edit')`,新增模式使用 `t('addressBook.operate.title.add')` ## 主要多语言键值使用 ### 表单字段 - `t('addressBook.operate.form.fullName')` - 姓名 - `t('addressBook.operate.form.phone')` - 手机号码 - `t('addressBook.operate.form.district')` - 省/区 - `t('addressBook.operate.form.street')` - 楼层/单元/街道 - `t('addressBook.operate.form.postcode')` - 邮编 - `t('addressBook.operate.form.default')` - 默认 ### 占位符文本 - `t('addressBook.operate.form.phone.placeholder')` - "+88" - `t('addressBook.operate.form.district.placeholder')` - "请选择" - `t('addressBook.operate.form.street.placeholder')` - "详细地址" - `t('addressBook.operate.form.postcode.placeholder')` - "请输入邮编" ### 按钮文本 - `t('addressBook.operate.button.save')` - 保存 - `t('addressBook.operate.button.update')` - 更新 ### 状态提示 - `t('addressBook.operate.loading')` - 加载中... - `t('addressBook.operate.saving')` - 保存中... - `t('addressBook.operate.success.save')` - 地址保存成功 - `t('addressBook.operate.success.update')` - 地址更新成功 ### 错误提示 - `t('addressBook.operate.error.emptyName')` - 请输入姓名 - `t('addressBook.operate.error.emptyPhone')` - 请输入手机号码 - `t('addressBook.operate.error.emptyDistrict')` - 请选择省/区 - `t('addressBook.operate.error.emptyStreet')` - 请输入详细地址 - `t('addressBook.operate.error.emptyPostcode')` - 请输入邮编 - `t('addressBook.operate.error.loadFailed')` - 加载地址详情失败 - `t('addressBook.operate.error.saveFailed')` - 保存失败,请重试 ## 项目多语言配置 - 支持语言:英语(en)、简体中文(zh-Hans)、孟加拉语(bn) - 默认语言:根据系统语言,fallback为英语 - 配置文件位置:src/locale/目录下 - 使用vue-i18n进行国际化管理 #其他 Vue3 UniApp多语言转换工作总结: ## 完成的转换工作 1. **语言包扩展**:在 en.json、zh-Hans.json、bn.json 中添加了60+个新的多语言键值对 2. **用户认证页面**:完成 login.vue、register.vue 的硬编码转换 3. **钱包相关页面**:转换 myWallet.vue 等钱包页面的标题和内容 4. **其他功能页面**:转换 missionCenter.vue、vipMembership.vue 等页面标题 5. **通知页面**:转换 notifications.vue 页面标题 ## 新增的多语言键值类别 - **认证相关**:auth.login.*, auth.register.*, auth.forgotPassword.* - **通用文本**:common.loading, common.saving, common.success 等 - **钱包相关**:wallet.balance, wallet.recharge, wallet.withdraw 等 - **页面标题**:各功能页面的标题多语言化 ## 转换模式 - 使用 t() 函数替换硬编码文本 - 页面标题使用 %key% 格式进行多语言配置 - 保持原有的UnoCSS样式和组件结构不变 - 遵循项目现有的多语言命名规范 ## 支持的语言 - 英语 (en):完整支持 - 简体中文 (zh-Hans):完整支持 - 孟加拉语 (bn):完整支持 ## 技术要点 - 导入 t 函数:import { t } from '@/locale' - 模板中使用:{{ t('key') }} - 页面标题:navigationBarTitleText: '%key%' - 占位符绑定::placeholder="t('key')" #其他 Vue3 UniApp多语言转换补充完善工作: ## 发现并修复的遗漏页面 1. **forgotPassword.vue**:完成了所有验证错误提示、表单占位符、按钮文本的多语言转换 2. **vipMembership.vue**:转换了VIP等级表格标题、统计信息、邀请进度提示等 3. **referEarn.vue**:转换了邀请赚钱页面的所有硬编码文本,包括步骤说明、标题等 4. **checkOut.vue**:完成了结账页面的订单摘要、支付方式、对话框提示等多语言转换 5. **missionCenter.vue**:转换了签到和每日任务相关的文本 6. **notifications.vue**:转换了通知页面的标签页和通知内容 ## 新增的多语言键值分类 - **忘记密码相关**:auth.forgotPassword.error.*, auth.forgotPassword.success.* - **VIP会员相关**:vipMembership.*, vipMembership.table.* - **推荐赚钱相关**:referEarn.* - **结账相关**:checkout.*, checkout.dialog.*, checkout.toast.* - **任务中心相关**:missionCenter.* - **通知相关**:notifications.* ## 技术实现要点 - 所有对话框提示都使用了多语言 - 表单验证错误信息完全多语言化 - 保持了原有的参数插值功能(如 {0}, {1}) - 维持了原有的样式和交互逻辑 ## 质量保证 - 三种语言(英语、中文、孟加拉语)完整支持 - 所有硬编码文本都已转换为多语言键值 - 保持了代码的可维护性和一致性 #流程管理 Vue3 UniApp多语言转换最终补充工作: ## 最后发现并修复的遗漏页面 1. **bestSellers.vue**:转换了"Best Sellers"标题和"Successfully grouped over"提示文本 2. **productDetail.vue**:完成了产品详情页的全面多语言转换,包括价格、已售、选择规格、拼团规则、进行中的拼团、详情、首页、收藏、开团、参团、数量等所有硬编码文本 3. **topChampions.vue**:转换了冠军榜页面的标题、TOP标识、统计信息标签等 4. **recharge.vue**:转换了充值页面的优惠提示、获得、优惠、提交等文本 5. **register.vue**:修复了遗漏的错误提示信息 6. **webLink.vue**:转换了默认标题 ## 新增的多语言键值分类 - **热销榜相关**:bestSellers.* - **产品详情相关**:productDetail.*(包含价格、销量、规格、拼团等) - **冠军榜相关**:topChampions.* - **充值相关**:wallet.recharge.* - **注册错误**:auth.register.error.registrationFailed ## 完整性验证 经过系统性检查,现在所有pages目录下的页面(除了myOrders目录)都已经完成多语言转换: - ✅ 认证页面:login, register, forgotPassword - ✅ 首页相关:index, search, bestSellers, topChampions - ✅ 个人中心:mine目录下所有页面 - ✅ 钱包相关:wallet目录下所有页面 - ✅ 功能页面:missionCenter, referEarn, vipMembership, income - ✅ 产品相关:productDetail, checkOut - ✅ 通知页面:notifications - ✅ 其他页面:webLink ## 技术质量 - 所有硬编码文本都已转换为t()函数调用 - 保持了参数插值功能(如{0}, {1}) - 三种语言完整支持(英语、中文、孟加拉语) - 保持了原有的样式和交互逻辑 - 修复了重复键值的问题 #最佳实践 Vue3 UniApp多语言显示问题修复: ## 问题描述 用户反馈mine.vue页面在切换到孟加拉语(bn)后没有文案显示 ## 问题根因 孟加拉语文件(bn.json)中完全缺少了所有mine.*相关的多语言键值,导致页面切换到孟加拉语后显示空白 ## 解决方案 在bn.json文件中补充了所有缺失的mine相关键值: ### 添加的键值分类 1. **认证相关**:mine.auth.register, mine.auth.login 2. **钱包相关**:mine.wallet.title, mine.wallet.balance, mine.wallet.recharge, mine.wallet.discount 3. **群组相关**:mine.group.title, mine.group.all, mine.group.toPay, mine.group.success, mine.group.failed, mine.group.reward 4. **菜单相关**:mine.menu.profile, mine.menu.address, mine.menu.share, mine.menu.favorite, mine.menu.chat, mine.menu.activity 5. **页面相关**:mine.pages.share.*, mine.pages.myFavorite.* ### 修复结果 - 总计添加了26个mine相关的多语言键值 - 现在三种语言的mine键值数量完全一致 - 孟加拉语用户可以正常看到mine页面的所有文案 ## 技术要点 - 保持了键值的层级结构和命名规范 - 提供了准确的孟加拉语翻译 - 确保了多语言文件的一致性 #其他