20260819173221

This commit is contained in:
oneao committed 2026-08-19 17:32:25 +08:00
1 parent 1ffc8e1ac9
commit a0a4273f4c
326 files changed
+301646 -2314

No files matched your search

@@ -1,5 +1,5 @@
<script setup>
import { computed, onMounted, ref } from 'vue'
import { computed, ref } from 'vue'
import {
AudioWaveform,
Check,
@@ -91,11 +91,6 @@ function toNavItem(node) {
return item
}
onMounted(() => {
// 加载失败时静默:菜单退化为仅"工作台",不影响页面使用
permissionStore.load().catch(() => {})
})
</script>
<template>
@@ -54,12 +54,18 @@ let resizeObserver = null
onMounted(() => {
resizeObserver = new ResizeObserver(updateScrollState)
if (trackRef.value) resizeObserver.observe(trackRef.value)
if (trackRef.value) {
resizeObserver.observe(trackRef.value)
// wheel 需要 preventDefault 阻止页面跟随滚动,显式声明 passive: false
// (隐式注册才会触发 Chrome 的 non-passive wheel 警告)
trackRef.value.addEventListener('wheel', handleWheel, { passive: false })
}
})
onBeforeUnmount(() => {
resizeObserver?.disconnect()
resizeObserver = null
trackRef.value?.removeEventListener('wheel', handleWheel)
})
function changeTab(key) {
@@ -199,7 +205,6 @@ function refreshTab(key) {
class="fms-tabs-track"
role="tablist"
@scroll.passive="updateScrollState"
@wheel="handleWheel"
>
<Dropdown
v-for="tab in tabs"
@@ -41,8 +41,8 @@ function pickColor(color) {
}
const user = computed(() => ({
name: authStore.user?.name ?? '用户',
account: authStore.user?.account ?? '',
name: authStore.loginInfo.user?.name ?? '用户',
account: authStore.loginInfo.user?.account ?? '',
}))
async function logout() {
@@ -52,7 +52,7 @@ async function logout() {
}
/* 用户下拉菜单:使用组件库标准 items 渲染(图标/危险色/分隔线/键盘导航均由库负责) */
const userOrg = computed(() => user.value.account || authStore.orgId || '')
const userOrg = computed(() => user.value.account || authStore.userInfo.orgId || '')
const userMenuItems = computed(() => [
{ key: 'profile', icon: BadgeCheck, label: '账号信息' },
{ key: 'billing', icon: CreditCard, label: '账单' },