1
0
mirror of https://github.com/ialley-workshop-open/uni-halo.git synced 2026-09-13 00:50:40 +08:00

feat: 重构评论交互与请求错误处理,新增搜索页

- 请求层:非 200 响应统一抛 UniHaloError,Halo 来源响应归一化
- 评论弹窗:新增 allowNotification、验证码错误自动刷新与错误详情提示
- 评论回复结构调整为分页结果(replies.items)
- 首页:快捷导航改 5 列、最新列表跳转搜索页,移除旧文章列表页
- 图库:分类切换改用 wd-tabs/wd-tab 组件
- 新增搜索页、uh-data-loading 组件、useDataLoadingStatus 与 exception 工具

Co-Authored-By: AtomCode (deepseek-v4-flash) <noreply@atomgit.com>
This commit is contained in:
小莫唐尼
2026-09-02 00:51:43 +08:00
parent 067f3ed98a
commit 254d0b924b
19 changed files with 737 additions and 623 deletions
+13 -11
View File
@@ -51,7 +51,8 @@ async function handleGetCategory() {
}
try {
const res = await getPhotoGroupList({ page: 1, size: 0 })
category.value.list = (res.data.items || [])
console.log('分类数据',res.data)
category.value.list = (res.data || [])
.map(item => ({
name: item.metadata.name,
displayName: item.spec.displayName,
@@ -134,10 +135,11 @@ function handleGetDataByCategory(index: number) {
handleGetData(true)
}
function handleOnCategoryChange(e: { detail: { current: number } }) {
function handleOnCategoryChange(e:{index:number,name:number}) {
console.log('切换分类', e)
if (lock.value)
return
handleGetDataByCategory(e.detail.current)
handleGetDataByCategory(e.index)
}
/* ---------------- 图片预览 ---------------- */
@@ -207,17 +209,17 @@ onReachBottom(() => {
/>
<template v-else>
<!-- 顶部切换 -->
<view v-if="category.list.length > 0" class="category-tabs fixed inset-x-0 top-0 z-6 bg-white">
<wd-tabs
<wd-tabs
v-if="category.list.length > 0"
v-model="category.activeIndex"
:tabs="category.list.map(item => ({ title: item.displayName }))"
align="left"
sticky
:offset-top="0"
@change="handleOnCategoryChange"
/>
</view>
<!-- 占位区域 -->
<view v-if="category.list.length > 0" class="h-[90rpx] w-screen" />
>
<wd-tab v-for="cate in category.list" :key="cate.displayName" :title="cate.displayName"></wd-tab>
</wd-tabs>
<!-- 骨架屏 -->
<view v-if="loading === 'loading'" class="loading-wrap box-border p-3">
<wd-skeleton :row="4" :animated="true" />