feat: 官网代码全量更新 (2026-04-18)

这个提交包含在:
wx
2026-04-18 15:13:28 +08:00
父节点 fcac8f88db
当前提交 f91ecbb093
共修改 135 个文件,包含 10307 行新增和 3349 行删除
+5 -1
查看文件
@@ -8,5 +8,9 @@ export default defineEventHandler(async (event) => {
const db = useDB()
const item = db.select().from(schema.reviews).where(eq(schema.reviews.id, id)).get()
if (!item) throw createError({ statusCode: 404, message: '评价不存在' })
return item
return {
...item,
scenes: (() => { try { return JSON.parse(item.scenes || '[]') } catch { return [] } })(),
concerns: (() => { try { return JSON.parse(item.concerns || '[]') } catch { return [] } })(),
}
})
+3
查看文件
@@ -15,6 +15,9 @@ export default defineEventHandler(async (event) => {
if (body.title !== undefined) updateData.title = body.title
if (body.content !== undefined) updateData.content = body.content
if (body.date !== undefined) updateData.date = body.date
if (body.screenshot !== undefined) updateData.screenshot = body.screenshot
if (body.scenes !== undefined) updateData.scenes = Array.isArray(body.scenes) ? JSON.stringify(body.scenes) : body.scenes
if (body.concerns !== undefined) updateData.concerns = Array.isArray(body.concerns) ? JSON.stringify(body.concerns) : body.concerns
if (body.verified !== undefined) updateData.verified = body.verified ? 1 : 0
if (body.published !== undefined) updateData.published = body.published ? 1 : 0
if (body.sortOrder !== undefined) updateData.sortOrder = body.sortOrder
+31
查看文件
@@ -0,0 +1,31 @@
import { inArray } from 'drizzle-orm'
import { useDB, schema } from '../../../utils/db.js'
import { requireAdmin } from '../../../utils/auth.js'
/**
* 批量操作:{ action: 'publish'|'unpublish'|'delete', ids: number[] }
*/
export default defineEventHandler(async (event) => {
requireAdmin(event)
const { action, ids } = await readBody(event)
if (!Array.isArray(ids) || ids.length === 0) {
throw createError({ statusCode: 422, message: 'ids 不能为空' })
}
const db = useDB()
switch (action) {
case 'publish':
db.update(schema.reviews).set({ published: true }).where(inArray(schema.reviews.id, ids)).run()
break
case 'unpublish':
db.update(schema.reviews).set({ published: false }).where(inArray(schema.reviews.id, ids)).run()
break
case 'delete':
db.delete(schema.reviews).where(inArray(schema.reviews.id, ids)).run()
break
default:
throw createError({ statusCode: 422, message: '未知 action' })
}
return { success: true, affected: ids.length }
})