Ei kuvausta

yourname 462f6c2f16 💄 style(dashboard): 调整大屏仪表盘用户操作日志文字颜色 7 kuukautta sitten
.gitea d371fbaefa init 8 kuukautta sitten
.roo 19576d2884 ♻️ refactor(api): 优化导入语句格式 7 kuukautta sitten
docs 39677a5091 重新调整个人中心水墨UI 未成功 7 kuukautta sitten
public 6f005f1430 ✨ feat(mobile): 完善移动端功能与用户体验 8 kuukautta sitten
scripts d371fbaefa init 8 kuukautta sitten
src 462f6c2f16 💄 style(dashboard): 调整大屏仪表盘用户操作日志文字颜色 7 kuukautta sitten
test 0e408fdccb 首页 8 kuukautta sitten
.gitignore d371fbaefa init 8 kuukautta sitten
.npmrc d371fbaefa init 8 kuukautta sitten
.rooignore d371fbaefa init 8 kuukautta sitten
Dockerfile.release d371fbaefa init 8 kuukautta sitten
Dockerfile.test d371fbaefa init 8 kuukautta sitten
README.md 166f6a3073 📝 docs: add common error troubleshooting guide 8 kuukautta sitten
USER_PREFERENCE_GUIDE.md f11c414ec8 字体大小 8 kuukautta sitten
docker-compose.yml d371fbaefa init 8 kuukautta sitten
home-icon-management-implementation-plan.md 7c983d7a4b ✨ feat(home-icon): 新增首页图标管理功能 7 kuukautta sitten
package.json b1b444aeac ✨ feat(dashboard): 重构大屏仪表板UI与图标系统 7 kuukautta sitten
pnpm-lock.yaml b1b444aeac ✨ feat(dashboard): 重构大屏仪表板UI与图标系统 7 kuukautta sitten
policy-news-implementation-plan.md 67e04a8919 ✨ feat(policy-news): 实现水墨风格政策资讯移动页面 7 kuukautta sitten
silver-knowledge-admin-code-guide.md 508b8727fe ✨ feat(admin): 新增银龄智库管理后台功能 7 kuukautta sitten
silver-knowledge-admin-implementation-plan.md 508b8727fe ✨ feat(admin): 新增银龄智库管理后台功能 7 kuukautta sitten
silver-knowledge-quick-setup.md 508b8727fe ✨ feat(admin): 新增银龄智库管理后台功能 7 kuukautta sitten
silver-knowledge-upload-plan.md 33ccb18d65 ✨ feat(silver-knowledge): add file upload functionality for silver knowledge management 7 kuukautta sitten
silver-knowledge-upload-usage.md 33ccb18d65 ✨ feat(silver-knowledge): add file upload functionality for silver knowledge management 7 kuukautta sitten
test-home-api.http 0e408fdccb 首页 8 kuukautta sitten
tsconfig.json d371fbaefa init 8 kuukautta sitten
tsconfig.tsbuildinfo 5676743618 增加了轮播 7 kuukautta sitten
vite.config.ts 4ff5244be4 📦 build(vite): update and add vite plugins 7 kuukautta sitten
实体创建字段规范.md c994cf2d2e 银龄库实体 8 kuukautta sitten
测试移动端页面修复.md 6f005f1430 ✨ feat(mobile): 完善移动端功能与用户体验 8 kuukautta sitten
移动端页面加载问题修复方案.md 6f005f1430 ✨ feat(mobile): 完善移动端功能与用户体验 8 kuukautta sitten
银龄平台移动端及平台端-完善版.md 18bcc9cb23 ✨ feat(mobile): 完善移动端个人中心功能模块 8 kuukautta sitten
银龄平台移动端及平台端.md 18bcc9cb23 ✨ feat(mobile): 完善移动端个人中心功能模块 8 kuukautta sitten
银龄平台移动端重构技术方案.md 0029820fe4 ✨ feat(member): add footer component to member page 8 kuukautta sitten
银龄库实体实施指南.md c994cf2d2e 银龄库实体 8 kuukautta sitten
银龄库实体设计方案.md c994cf2d2e 银龄库实体 8 kuukautta sitten
银龄智库实体完善方案.md 36052c4240 知识库实体 8 kuukautta sitten

README.md

常见错误排查指南

前端常见错误

日期组件错误

错误表现:
date4.isValid is not a function
TypeError: date4.isValid is not a function

错误原因:
使用原生Date对象而非dayjs对象初始化日期组件

错误示例:

// 错误示例 - 使用原生Date对象
form.setFieldsValue({
  noteDate: new Date(record.noteDate) // 导致验证失败
});

正确做法:

// 正确示例 - 使用dayjs对象
form.setFieldsValue({
  noteDate: dayjs(record.noteDate) // 正常支持验证方法
});

后端常见错误

OpenAPI路由定义错误

1. 路径参数定义错误

错误表现:
路径参数无法正确解析,接口调用404

错误原因:
使用冒号:定义路径参数而非花括号{}

错误示例:

// 错误方式
path: '/:id'

正确做法:

// 正确方式
path: '/{id}'

2. 参数类型转换错误

错误表现:
数字/布尔型URL参数验证失败,提示类型错误

错误原因:
未使用z.coerce处理URL字符串参数到目标类型的转换

错误示例:

// 错误方式 - 直接使用z.number()
z.number().int().positive() // 无法处理字符串参数

// 错误方式 - 直接使用z.boolean()
z.boolean() // 无法处理字符串参数

正确做法:

// 正确方式 - 使用z.coerce.number()
z.coerce.number().int().positive() // 自动转换字符串参数

// 正确方式 - 使用z.coerce.boolean()
z.coerce.boolean() // 自动转换字符串参数

实体定义错误

1. 创建/更新Schema缺少coerce

错误表现:
日期/数字类型参数验证失败,接口返回400错误

错误原因:
实体的创建/更新Schema中,日期、数字等类型未使用z.coerce进行类型转换

正确做法:

export const UpdateEntityDto = z.object({
  price: z.coerce.number().multipleOf(0.01).optional().openapi({
    description: '价格',
    example: 89.99
  }),
  isActive: z.coerce.boolean().optional().openapi({
    description: '是否激活',
    example: false
  }),
  expireDate: z.coerce.date().optional().openapi({
    description: '过期日期',
    example: '2025-12-31T23:59:59Z'
  })
});

RPC调用错误

InferResponseType使用错误

错误表现:
TypeScript类型推断失败,提示属性不存在

错误原因:
访问带参数的路由类型时未正确使用数组语法

错误示例:

// 错误方式
InferResponseType<typeof zichanClient[':id'].$get, 200>

正确做法:

// 正确方式 - $get要加中括号
InferResponseType<typeof zichanClient[':id']['$get'], 200>

前后端交互错误

表单验证规则不匹配

错误表现:
前端表单提交后后端验证失败,或前端验证通过但后端返回400

错误原因:
前端表单的必填/选填规则与后端实体的create/update schema不一致

正确做法:

  1. 前端表单验证规则必须与后端保持一致
  2. 后端实体schema变更时需同步更新前端表单验证
  3. 创建操作使用CreateXXXDto,更新操作使用UpdateXXXDto