- 后端新增聚合用户偏好 paginationPrefs(每页条数候选列表与默认每页条数),提供 GET/PUT /api/setting/pagination-prefs,默认候选 [10,20,50,100]、默认每页 20,非法值自动过滤并回退 - 后端新增 /category/page、/tag/page、/channel/page、/email-bill/configs/page、/email-bill/sender-rules/page 分页接口,原全量接口保持不变以免影响下拉、筛选、AI 与导出 - 前端新增共享 composables/usePageSizeOptions.ts 与 useTablePageSize.ts,所有表格统一取用候选列表并记住各自上次选择的每页条数,优先级为表格记忆 > 全局默认 > 20 - 各表格上次选择以聚合偏好 finance.pagination.tablePageSizes 存于本机 localStorage,收支记录页旧的 filterPrefs.pageSize 自动迁移 - 设置页外观设置新增「表格每页条数选项」分组,可增删候选值并配置默认每页条数,保存后全局即时生效 - 路由守卫在已登录时预加载分页偏好,保证表格页首次渲染即使用配置值 - 前端分类、标签、渠道、邮箱配置、发件人规则表格接入后端分页 - 补充中文、英文、日文三语文案
78 lines
2.5 KiB
Java
78 lines
2.5 KiB
Java
package cn.rosercode.finance.service;
|
|
|
|
import java.util.Map;
|
|
|
|
import cn.rosercode.finance.vo.PaginationPrefsVO;
|
|
|
|
/**
|
|
* 用户偏好服务接口,提供按用户存储的偏好配置读写。
|
|
*
|
|
* @date 2026-09-21 10:14:12
|
|
*/
|
|
public interface UserPreferenceService {
|
|
|
|
/**
|
|
* 获取当前用户按账单来源的「计入统计」默认值,未配置的来源回退系统默认。
|
|
*
|
|
* @param userId 用户ID
|
|
* @return 账单来源编码到是否计入统计的映射,包含全部支持的来源
|
|
*/
|
|
Map<String, Boolean> getBillSourceIncludeInStats(Long userId);
|
|
|
|
/**
|
|
* 保存当前用户按账单来源的「计入统计」默认值,仅保留系统支持的来源。
|
|
*
|
|
* @param userId 用户ID
|
|
* @param defaults 账单来源编码到是否计入统计的映射
|
|
*/
|
|
void saveBillSourceIncludeInStats(Long userId, Map<String, Boolean> defaults);
|
|
|
|
/**
|
|
* 获取当前用户「不计入统计」记录的展示样式,未配置或非法时回退默认值。
|
|
*
|
|
* @param userId 用户ID
|
|
* @return 展示样式:strikethrough-删除线、muted-灰色标签
|
|
*/
|
|
String getExcludedDisplayStyle(Long userId);
|
|
|
|
/**
|
|
* 保存当前用户「不计入统计」记录的展示样式,非法取值回退默认值。
|
|
*
|
|
* @param userId 用户ID
|
|
* @param style 展示样式
|
|
*/
|
|
void saveExcludedDisplayStyle(Long userId, String style);
|
|
|
|
/**
|
|
* 获取当前用户是否在收支记录列表与导出中显示已隐藏备注的记录,未配置时回退默认值(不显示)。
|
|
*
|
|
* @param userId 用户ID
|
|
* @return true-显示,false-不显示
|
|
*/
|
|
boolean getShowHiddenData(Long userId);
|
|
|
|
/**
|
|
* 保存当前用户是否在收支记录列表与导出中显示已隐藏备注的记录。
|
|
*
|
|
* @param userId 用户ID
|
|
* @param show 是否显示
|
|
*/
|
|
void saveShowHiddenData(Long userId, boolean show);
|
|
|
|
/**
|
|
* 获取当前用户配置的表格分页偏好(每页条数候选列表与默认每页条数),未配置或非法时回退默认值。
|
|
*
|
|
* @param userId 用户ID
|
|
* @return 分页偏好
|
|
*/
|
|
PaginationPrefsVO getPaginationPrefs(Long userId);
|
|
|
|
/**
|
|
* 保存当前用户配置的表格分页偏好,空或非法时回退默认值。
|
|
*
|
|
* @param userId 用户ID
|
|
* @param prefs 分页偏好
|
|
*/
|
|
void savePaginationPrefs(Long userId, PaginationPrefsVO prefs);
|
|
}
|