本次提交完成多渠道网关模块多项核心优化: 1. 新增公共样式库与二维码生成工具,统一列表页交互风格 2. 重构分页、选择、错误处理等通用composable,收敛重复逻辑 3. 调整白名单列表默认分页大小为20,优化数据展示密度 4. 新增目录搜索建议、批量选择与导出能力 5. 优化发件箱与会话统计接口适配,补充趋势数据获取 6. 重构消息列表模块,支持URL状态同步与多维度筛选 7. 修复API错误处理逻辑,补充traceId日志便于排查问题 8. 调整侧边栏导航结构与折叠状态管理
70 lines
1.5 KiB
JavaScript
70 lines
1.5 KiB
JavaScript
import { defineStore } from 'pinia'
|
||
import { ref } from 'vue'
|
||
|
||
export const useChatUIStore = defineStore(
|
||
'chatUI',
|
||
() => {
|
||
// ==================== 聊天界面 UI 状态 ====================
|
||
// 加载状态
|
||
const isLoadingMessages = ref(false)
|
||
|
||
// 应用侧边栏折叠态
|
||
const sidebarCollapsed = ref(false)
|
||
|
||
// 多渠道网关侧边栏折叠态(L2,独立于 L1)
|
||
const channelsNavCollapsed = ref(false)
|
||
|
||
// 更多菜单
|
||
const moreMenuOpen = ref(false)
|
||
const moreMenuPosition = ref({ x: 0, y: 0 })
|
||
|
||
// ==================== 方法 ====================
|
||
/**
|
||
* 打开更多菜单
|
||
* @param {number} x - X 坐标
|
||
* @param {number} y - Y 坐标
|
||
*/
|
||
function openMoreMenu(x, y) {
|
||
moreMenuPosition.value = { x, y }
|
||
moreMenuOpen.value = true
|
||
}
|
||
|
||
/**
|
||
* 关闭更多菜单
|
||
*/
|
||
function closeMoreMenu() {
|
||
moreMenuOpen.value = false
|
||
}
|
||
|
||
/**
|
||
* 重置所有 UI 状态(不包括持久化状态)
|
||
*/
|
||
function reset() {
|
||
isLoadingMessages.value = false
|
||
moreMenuOpen.value = false
|
||
moreMenuPosition.value = { x: 0, y: 0 }
|
||
}
|
||
|
||
return {
|
||
// 状态
|
||
isLoadingMessages,
|
||
sidebarCollapsed,
|
||
channelsNavCollapsed,
|
||
moreMenuOpen,
|
||
moreMenuPosition,
|
||
|
||
// 方法
|
||
openMoreMenu,
|
||
closeMoreMenu,
|
||
reset
|
||
}
|
||
},
|
||
{
|
||
persist: {
|
||
key: 'chat-ui-store',
|
||
storage: localStorage,
|
||
pick: ['sidebarCollapsed', 'channelsNavCollapsed']
|
||
}
|
||
}
|
||
)
|