ForcePilot/web/src/stores/chatUI.js
Kris e6e24a91de feat(channels): 多渠道网关模块批量功能与样式优化
本次提交完成多渠道网关模块多项核心优化:
1. 新增公共样式库与二维码生成工具,统一列表页交互风格
2. 重构分页、选择、错误处理等通用composable,收敛重复逻辑
3. 调整白名单列表默认分页大小为20,优化数据展示密度
4. 新增目录搜索建议、批量选择与导出能力
5. 优化发件箱与会话统计接口适配,补充趋势数据获取
6. 重构消息列表模块,支持URL状态同步与多维度筛选
7. 修复API错误处理逻辑,补充traceId日志便于排查问题
8. 调整侧边栏导航结构与折叠状态管理
2026-07-07 16:24:35 +08:00

70 lines
1.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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']
}
}
)