初始化2
This commit is contained in:
41
app/pages/developer/.workbuddy/memory/2026-03-30.md
Normal file
41
app/pages/developer/.workbuddy/memory/2026-03-30.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# 2026-03-30
|
||||
|
||||
## 应用配置页面修复
|
||||
|
||||
### 问题1: 页面内容贴边
|
||||
- **现象**: 应用配置页面内容紧贴浏览器边缘
|
||||
- **解决**: 给 `.app-config-page` 容器添加了 `padding: 24px`
|
||||
|
||||
### 问题2: 数据库加密错误
|
||||
- **现象**: `InvalidKeyOrParametersException: Key length not 128/192/256 bits`
|
||||
- **原因**: 后端 Hutool 加密库在处理敏感字段时出错
|
||||
- **解决**:
|
||||
- 移除了所有配置字段的 `secret: true` 标记
|
||||
- 保存时设置 `isEncrypted` 和 `isSecret` 为 0
|
||||
- 移除了"敏感信息,已加密存储"的 UI 提示
|
||||
- **注意**: 后端加密密钥 `WLgNsWJ8rPjRtnjzX/Gx2RGS80Kwnm/ZeLbvIL+NrBs=` 长度为 32字节,符合要求,问题可能是 Base64 解码处理不当
|
||||
|
||||
### 问题3: 刷新页面 404
|
||||
- **现象**: 访问 `/developer/config?websiteId=6268` 刷新后显示 "Page not found"
|
||||
- **尝试的方案**:
|
||||
1. 添加 `ssr: false` - 未解决
|
||||
2. 使用 `ClientOnly` 包裹 - 未解决
|
||||
3. 添加参数验证和自动跳转 - 未解决
|
||||
4. 添加 `mounted` 标志延迟渲染 - 未解决
|
||||
- **最终解决方案**:
|
||||
- 将查询参数改为路由参数: `/developer/config?websiteId=6268` → `/developer/config/6268`
|
||||
- 创建正确的文件结构: `/app/pages/developer/config/[id].vue`
|
||||
- 修改参数读取逻辑: 支持 `route.params.id` 和 `route.query.websiteId` 两种方式
|
||||
- 更新 AppDetail.vue 中的跳转链接
|
||||
- **注意**: 修改文件结构后需要重启开发服务器
|
||||
- **状态**: 已解决
|
||||
|
||||
### 问题4: 唯一键冲突错误
|
||||
- **现象**: `Duplicate entry '6268-api.baseUrl-1' for key 'app_config.uk_website_key'`
|
||||
- **原因**: 后端批量保存时先执行 `DELETE WHERE website_id = ?`,但数据库唯一键 `uk_website_key` 包含 `website_id` 和 `config_key`,软删除的记录 (deleted=1) 仍会导致唯一键冲突
|
||||
- **解决**:
|
||||
- 先加载配置列表建立 `configKey -> configId` 映射
|
||||
- 保存时判断: 有 configId 则用 `updateAppConfig`,无则用 `saveAppConfig`
|
||||
- 避免后端批量删除逻辑导致的唯一键冲突
|
||||
- **状态**: 已解决
|
||||
|
||||
Reference in New Issue
Block a user