个人中心 · 作品集支持自定义排序

⭐ 产线重点 信息呈现 炎枫 需求 主站-Web 功能新增 SHW-34233

变更日志

交付研发后如有调整将在此记录

一、背景与目标

当前作品集列表按创建时间固定排序,用户无法调整展示顺序,导致无法突出最想展示的内容。支持自定义排序,让用户掌控个人主页的作品集展示位置。

二、产品描述

2.1 需求描述

在个人中心作品集列表页,为作品集所有者提供自定义排序能力:

  • 提供「自定义排序」入口,点击进入排序模式
  • 排序模式下可拖拽卡片调整顺序,也可点击「置顶」快速移至第一位
  • 「全部作品」固定第一位,不参与排序
  • 点击「完成排序」保存并退出;点击「取消」放弃变更退出
  • 排序结果持久化,本人刷新页面和访客访问均按自定义顺序展示
本期范围 仅针对主站 Web 端,不含 H5。

2.2 整体流程

主流程

步骤操作结果
1访问自己的个人主页 → 作品集 Tab作品集列表右上角展示「自定义排序」按钮(作品集 ≥ 2 时)
2点击「自定义排序」进入排序模式:卡片出现置顶按钮,按钮变为「完成排序」+「取消」
3a拖拽卡片 或 点击「置顶」列表顺序实时更新(未保存)
4a点击「完成排序」保存成功后退出排序模式,Toast 提示"排序已保存"
4b点击「取消」不保存,恢复进入排序模式前的顺序,退出排序模式
4c保存失败停留排序模式,Toast 提示"保存失败,请重试"

2.3 全局说明

排序入口显示规则

  • 仅在本人访问自己主页时展示;访客不可见
  • 作品集(不含"全部作品")数量 ≥ 2 时展示排序入口,否则隐藏
  • 排序模式激活时,入口变为「完成排序」+「取消」双按钮状态

全部作品锁定规则

  • 始终固定为列表第一项,不可被拖拽移动
  • 排序模式下无置顶按钮,视觉上区分于其他卡片(如角标"固定")

默认顺序

未设置自定义排序时,按作品集创建时间倒序排列,"全部作品"固定第一位。

排序模式限制

  • 排序模式下,编辑、删除等其他操作入口隐藏或禁用

新增 / 删除作品集对排序的影响

  • 新增作品集:追加到自定义排序末尾
  • 删除作品集:从排序中移除,其余顺序不变

三、功能需求

3.1 排序入口

作为作品集所有者,我希望在自己的个人主页作品集 Tab 看到排序按钮,以便随时管理展示顺序。

普通模式 — 入口位置

普通模式(本人视角)
SeaArt
发现 创作
用户昵称
关注 128 · 粉丝 3.2k
作品
作品集
喜欢
收藏
🖼
全部作品
127件
🎨
二次元精选
32件
🌿
写实风格
18件
🔥
赛博朋克
24件
梦幻场景
11件

「自定义排序」按钮位于作品集列表区域右上角,仅本人可见。

规则说明

  • 作品集(不含"全部作品")数量 ≥ 2 时展示排序按钮,否则隐藏
  • 访客访问他人主页,不展示此按钮

3.2 排序模式

作为作品集所有者,我希望进入排序模式后可以自由调整顺序,完成后一键保存,也能随时取消放弃。
进入排序模式
排序模式激活
作品
作品集
喜欢
🖼
固定
全部作品
127件
🎨
⬆ 置顶
二次元精选
32件
🌿
⬆ 置顶
写实风格
18件
🔥
⬆ 置顶
赛博朋克
24件
⬆ 置顶
梦幻场景
11件
保存成功后退出
普通模式恢复 + Toast
作品
作品集
喜欢
🖼
全部作品
127件
🌿
写实风格
18件
🎨
二次元精选
32件
🔥
赛博朋克
24件
梦幻场景
11件
✓ 排序已保存

左:排序模式下「全部作品」显示"固定"角标且无置顶按钮;其余卡片显示「⬆ 置顶」。右:保存成功后退出排序模式,顺序更新,Toast 提示。

规则说明

  • 进入排序模式:「自定义排序」按钮变为「完成排序」+「取消」双按钮
  • 保存成功:退出排序模式,Toast "排序已保存"
  • 保存失败:停留排序模式,Toast "保存失败,请重试"
  • 点击「取消」:不保存,列表恢复进入排序前的顺序,无弹窗确认
  • 排序模式下编辑、删除等操作入口隐藏

3.3 拖拽 + 置顶排序交互

作为作品集所有者,我希望既能拖拽精细调整顺序,也能一键置顶,不用在网格里费力拖很长距离。

拖拽中状态

拖拽进行中示意
🖼
固定
全部作品
127件
🔥
赛博朋克
🌿
⬆ 置顶
写实风格
18件
🔥
⬆ 置顶
赛博朋克
24件
⬆ 置顶
梦幻场景
11件

蓝色虚线框为拖拽目标位,半透明卡片为正在被拖拽的卡片(opacity 0.5)。

置顶操作示意

点击「置顶」前
操作前
🖼
固定
全部作品
🎨
⬆ 置顶
二次元精选
① 当前第2位
🌿
⬆ 置顶
写实风格
← 即将置顶
🔥
⬆ 置顶
赛博朋克
点击「置顶」后
操作后
🖼
固定
全部作品
🌿
⬆ 置顶
写实风格
✓ 已移至第2位
🎨
⬆ 置顶
二次元精选
顺移至第3位
🔥
⬆ 置顶
赛博朋克

已在第2位的卡片置顶按钮置灰不可点;点击其他卡片置顶后,绿色边框高亮新位置,原第2位卡片顺移。

规则说明

  • 拖拽触发区域:整个卡片
  • 拖拽至"全部作品"之前的位置,卡片自动落到第二位
  • 拖拽至视口边缘时页面自动滚动
  • 点击「置顶」:目标卡片移至第二位,原第二位卡片顺移至第三位
  • 已在第二位时置顶按钮置灰
  • 拖拽和置顶的顺序变更,点击「完成排序」后生效

边界情况

场景处理规则
拖拽至第一位(全部作品位置)卡片弹回至第二位
置顶目标卡片已在第二位按钮置灰,不触发操作
拖拽和置顶混用两种操作均作用于本地顺序,最终统一保存

3.4 排序持久化

作为作品集所有者,我希望排序设置保存后刷新页面或他人访问时仍然有效,而不是每次都要重新设置。

展示顺序

  • 作品集列表按用户自定义顺序展示
  • 若用户从未设置自定义排序,按创建时间倒序展示
  • "全部作品"始终排在第一位

排序数据维护

  • 新增作品集:追加到自定义排序末尾
  • 删除作品集:从排序中移除,其余顺序不变

3.5 访客展示

作为访客,我希望访问他人主页时看到其设定的作品集顺序,以便按对方的意图浏览作品。
访客视角(无排序入口)
他人主页
关注 88 · 粉丝 1.1k
作品
作品集
喜欢
🖼
全部作品
127件
🌿
写实风格
18件
🎨
二次元精选
32件
🔥
赛博朋克
24件
梦幻场景
11件

访客视角:按所有者自定义顺序展示,不显示「自定义排序」按钮

规则说明

  • 按所有者自定义顺序展示,"全部作品"始终第一位
  • 若所有者未设置自定义排序,按创建时间倒序展示
  • 不展示「自定义排序」按钮