feat: 优化管理后台页面UI、修复TS编译错误、新增人生事件模块

- 优化 AI 配置列表页面:重构统计卡片、搜索表单、表格列展示
- 修复 3 处 TypeScript TS6133 编译错误,恢复构建
- 新增管理员修改密码和重置密码功能
- 优化小程序多个页面样式和交互
- 人生事件模块完善

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-10 23:23:09 +08:00
parent 60c63850ee
commit 755059807a
62 changed files with 4661 additions and 3019 deletions
+32
View File
@@ -37,11 +37,30 @@ export const deleteEvent = async (id) => {
return response
}
export const assistEventWriting = async (eventData = {}) => {
return post('/lifeEvent/ai-assist', eventData)
}
export const chatAboutEvent = async (eventData = {}) => {
return post('/lifeEvent/chat-placeholder', eventData)
}
export const shareEvent = async (eventData = {}) => {
return post('/lifeEvent/share-placeholder', eventData)
}
export const favoriteEvent = async ({ id, favorite }) => {
return post('/lifeEvent/favorite-placeholder', { id, favorite })
}
const transformToBackendFormat = (frontendData) => {
const {
id,
title,
time,
timeMode = 'date',
eventDateText,
endTime,
content,
aiFeedback,
eventType = 'daily_log',
@@ -54,6 +73,9 @@ const transformToBackendFormat = (frontendData) => {
id,
title,
eventDate: time,
timeMode,
eventDateText: eventDateText || time,
eventEndDate: timeMode === 'range' ? endTime : null,
content,
aiReply: aiFeedback,
eventType,
@@ -71,6 +93,9 @@ export const transformToFrontendFormat = (backendData) => {
userId,
title,
eventDate,
timeMode,
eventDateText,
eventEndDate,
content,
aiReply,
eventType,
@@ -85,6 +110,9 @@ export const transformToFrontendFormat = (backendData) => {
userId,
title: title || '',
time: eventDate ? eventDate.split('T')[0] : '',
timeMode: timeMode || 'date',
eventDateText: eventDateText || (eventDate ? eventDate.split('T')[0] : ''),
endTime: eventEndDate ? eventEndDate.split('T')[0] : '',
content: content || '',
aiFeedback: aiReply || '',
eventType: eventType || 'daily_log',
@@ -107,6 +135,10 @@ export default {
createEvent,
updateEvent,
deleteEvent,
assistEventWriting,
chatAboutEvent,
shareEvent,
favoriteEvent,
transformToFrontendFormat,
transformListToFrontend
}
+9 -2
View File
@@ -49,11 +49,12 @@ const transformToBackendFormat = (frontendData) => {
title,
description,
content,
steps: inputSteps,
status = 'active',
progress = 0
} = frontendData
let steps = []
let steps = Array.isArray(inputSteps) ? inputSteps : []
if (content) {
const stepMatches = content.match(/(\d+)\.\s*([^:]+)[:]\s*([^\n]+)/g)
if (stepMatches) {
@@ -123,7 +124,13 @@ export const transformToFrontendFormat = (backendData) => {
title: title || '实现路径',
description: description || '',
content,
steps: steps || [],
steps: Array.isArray(steps)
? steps.map((step, index) => ({
...step,
task: step.task || step.phase || `阶段${index + 1}`,
desc: step.desc || step.content || step.action || ''
}))
: [],
status: status || 'active',
progress: progress || 0,
createTime