xto-fronted 0.4.40 → 0.4.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .sidebar[data-v-bd32db7f]{height:100%;display:flex;flex-direction:column;background-color:var(--bg-color);border-right:1px solid var(--color-border-lighter)}.sidebar--collapsed .sidebar__logo[data-v-bd32db7f]{justify-content:center;padding:0}.sidebar__logo[data-v-bd32db7f]{height:50px;display:flex;align-items:center;padding:0 20px;gap:10px;border-bottom:1px solid var(--color-border-lighter)}.sidebar__logo-img[data-v-bd32db7f]{width:32px;height:32px}.sidebar__logo-text[data-v-bd32db7f]{font-size:16px;font-weight:600;color:var(--color-primary)}.sidebar__menu[data-v-bd32db7f]{flex:1;border-right:none;overflow-y:auto}.sidebar__menu-content[data-v-bd32db7f]{display:inline-flex;align-items:center;line-height:1}.sidebar__menu-text[data-v-bd32db7f]{flex:1;line-height:1}.sidebar__menu-icon[data-v-bd32db7f]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0}.sidebar__menu-char[data-v-bd32db7f]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;font-weight:600;color:var(--color-primary);background-color:var(--color-primary-light-8);border-radius:4px}.sidebar__user[data-v-bd32db7f]{padding:10px;border-top:1px solid var(--color-border-lighter);display:flex;align-items:center;justify-content:space-between}.sidebar__user-info[data-v-bd32db7f]{display:flex;flex-direction:column;gap:2px}.sidebar__user-name[data-v-bd32db7f]{font-size:14px;font-weight:500}.sidebar__user-role[data-v-bd32db7f]{font-size:12px;color:var(--color-text-secondary)}.header[data-v-702ab2d7]{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:100%;background-color:var(--bg-color);border-bottom:1px solid var(--color-border-lighter)}.header__left[data-v-702ab2d7]{display:flex;align-items:center;gap:15px}.header__collapse[data-v-702ab2d7]{width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-regular);transition:color .2s}.header__collapse[data-v-702ab2d7]:hover{color:var(--color-primary)}.header__breadcrumb[data-v-702ab2d7]{font-size:14px;color:var(--color-text-secondary)}.header__breadcrumb .breadcrumb-separator[data-v-702ab2d7]{margin:0 8px;color:var(--color-text-placeholder)}.header__breadcrumb .is-current[data-v-702ab2d7]{color:var(--color-text-primary);font-weight:500}.header__right[data-v-702ab2d7]{display:flex;align-items:center;gap:8px}.header__action[data-v-702ab2d7]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--border-radius-base);color:var(--color-text-regular);transition:all .2s}.header__action[data-v-702ab2d7]:hover{background-color:var(--color-fill);color:var(--color-primary)}.header__user[data-v-702ab2d7]{position:relative;margin-left:8px}.header__user-trigger[data-v-702ab2d7]{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:var(--border-radius-base);transition:background-color .2s}.header__user-trigger[data-v-702ab2d7]:hover{background-color:var(--color-fill)}.header__user-name[data-v-702ab2d7]{font-size:14px;color:var(--color-text-primary);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header__user-arrow[data-v-702ab2d7]{font-size:10px;color:var(--color-text-secondary);transition:transform .2s}.header__user-arrow.is-active[data-v-702ab2d7]{transform:rotate(180deg)}.header__avatar[data-v-702ab2d7]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:500}.header__dropdown[data-v-702ab2d7]{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background-color:var(--bg-color);border-radius:var(--border-radius-base);box-shadow:var(--box-shadow);overflow:hidden;z-index:100}.header__dropdown-header[data-v-702ab2d7]{display:flex;align-items:center;gap:12px;padding:16px}.header__dropdown-avatar[data-v-702ab2d7]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:500}.header__dropdown-info[data-v-702ab2d7]{flex:1}.header__dropdown-name[data-v-702ab2d7]{font-size:14px;font-weight:500;color:var(--color-text-primary)}.header__dropdown-role[data-v-702ab2d7]{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.header__dropdown-divider[data-v-702ab2d7]{height:1px;background-color:var(--color-border-lighter)}.header__dropdown-menu[data-v-702ab2d7]{padding:8px 0}.header__dropdown-item[data-v-702ab2d7]{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;font-size:14px;color:var(--color-text-regular);transition:all .2s}.header__dropdown-item[data-v-702ab2d7]:hover{background-color:var(--color-fill);color:var(--color-text-primary)}.header__dropdown-item--danger[data-v-702ab2d7]{color:var(--color-danger)}.header__dropdown-item--danger[data-v-702ab2d7]:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.header__search-modal[data-v-702ab2d7]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:flex-start;justify-content:center;padding-top:100px;z-index:200}.search-container[data-v-702ab2d7]{width:600px;max-width:90vw;background-color:var(--bg-color);border-radius:var(--border-radius-large);box-shadow:var(--box-shadow-dark);overflow:hidden}.search-input-wrapper[data-v-702ab2d7]{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border-lighter)}.search-input-wrapper .search-icon[data-v-702ab2d7]{color:var(--color-text-secondary);margin-right:12px}.search-input-wrapper .search-input[data-v-702ab2d7]{flex:1;font-size:16px;color:var(--color-text-primary);background:transparent;border:none;outline:none}.search-input-wrapper .search-input[data-v-702ab2d7]::placeholder{color:var(--color-text-placeholder)}.search-input-wrapper .search-shortcut[data-v-702ab2d7]{font-size:12px;color:var(--color-text-secondary);padding:4px 8px;background-color:var(--color-fill);border-radius:var(--border-radius-base)}.search-results[data-v-702ab2d7]{max-height:400px;overflow-y:auto;padding:8px 0}.search-result-item[data-v-702ab2d7]{display:flex;align-items:center;gap:12px;padding:12px 20px;cursor:pointer;transition:background-color .2s}.search-result-item[data-v-702ab2d7]:hover{background-color:var(--color-fill)}.search-result-item.is-first[data-v-702ab2d7]{background-color:var(--color-primary-light-9)}.search-result-item .search-result-icon[data-v-702ab2d7]{color:var(--color-text-secondary)}.search-result-item .search-result-info[data-v-702ab2d7]{flex:1;display:flex;flex-direction:column;gap:2px}.search-result-item .search-result-title[data-v-702ab2d7]{font-size:14px;color:var(--color-text-primary)}.search-result-item .search-result-parent[data-v-702ab2d7]{font-size:12px;color:var(--color-text-secondary)}.search-empty[data-v-702ab2d7]{padding:40px 20px;text-align:center;color:var(--color-text-secondary);font-size:14px}.settings-drawer .settings-section[data-v-702ab2d7]{margin-bottom:24px}.settings-drawer .settings-title[data-v-702ab2d7]{font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:12px}.settings-drawer .settings-layout-options[data-v-702ab2d7]{display:flex;gap:12px}.settings-drawer .layout-option[data-v-702ab2d7]{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:var(--border-radius-base);cursor:pointer;transition:all .2s}.settings-drawer .layout-option[data-v-702ab2d7]:hover{border-color:var(--color-primary-light-5)}.settings-drawer .layout-option.is-active[data-v-702ab2d7]{border-color:var(--color-primary);background-color:var(--color-primary-light-9)}.settings-drawer .layout-option__preview[data-v-702ab2d7]{width:48px;height:36px;border:1px solid var(--color-border-light);border-radius:2px;overflow:hidden}.settings-drawer .layout-option__label[data-v-702ab2d7]{font-size:12px;color:var(--color-text-regular)}.settings-drawer .layout-preview-sidebar[data-v-702ab2d7]{display:flex;height:100%}.settings-drawer .layout-preview-sidebar .preview-aside[data-v-702ab2d7]{width:25%;height:100%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-sidebar .preview-main[data-v-702ab2d7]{flex:1;display:flex;flex-direction:column}.settings-drawer .layout-preview-sidebar .preview-main .preview-header[data-v-702ab2d7]{height:20%;background-color:var(--color-border-light)}.settings-drawer .layout-preview-sidebar .preview-main .preview-content[data-v-702ab2d7]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-top[data-v-702ab2d7]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-top .preview-header-full[data-v-702ab2d7]{height:25%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-top .preview-content-full[data-v-702ab2d7]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-mix[data-v-702ab2d7]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-mix .preview-header-mix[data-v-702ab2d7]{height:25%;background-color:var(--color-primary-light-7);display:flex}.settings-drawer .layout-preview-mix .preview-header-mix .preview-mix-left[data-v-702ab2d7]{width:30%;background-color:var(--color-primary)}.settings-drawer .layout-preview-mix .preview-mix-body[data-v-702ab2d7]{flex:1;display:flex}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-aside[data-v-702ab2d7]{width:25%;background-color:var(--color-primary-light-8)}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-content[data-v-702ab2d7]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .settings-color-options[data-v-702ab2d7]{display:flex;gap:12px}.settings-drawer .color-option[data-v-702ab2d7]{width:24px;height:24px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s}.settings-drawer .color-option[data-v-702ab2d7]:hover{transform:scale(1.1)}.settings-drawer .color-option.is-active[data-v-702ab2d7]{box-shadow:0 0 0 2px var(--bg-color),0 0 0 4px var(--color-primary)}.settings-drawer .settings-switch-list[data-v-702ab2d7]{display:flex;flex-direction:column;gap:12px}.settings-drawer .settings-switch-item[data-v-702ab2d7]{display:flex;align-items:center;justify-content:space-between}.settings-drawer .settings-switch-item span[data-v-702ab2d7]{font-size:14px;color:var(--color-text-regular)}.settings-drawer .switch-wrapper[data-v-702ab2d7]{width:44px;height:22px;display:flex;align-items:center;cursor:pointer}.settings-drawer .switch-wrapper .switch-core[data-v-702ab2d7]{width:100%;height:100%;border-radius:11px;background-color:var(--color-border);position:relative;transition:background-color .2s}.settings-drawer .switch-wrapper .switch-core[data-v-702ab2d7]:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background-color:#fff;border-radius:50%;transition:left .2s}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-702ab2d7]{background-color:var(--color-primary)}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-702ab2d7]:after{left:24px}.dropdown-enter-active[data-v-702ab2d7],.dropdown-leave-active[data-v-702ab2d7]{transition:all .2s ease}.dropdown-enter-from[data-v-702ab2d7],.dropdown-leave-to[data-v-702ab2d7]{opacity:0;transform:translateY(-10px)}.search-enter-active[data-v-702ab2d7],.search-leave-active[data-v-702ab2d7]{transition:all .2s ease}.search-enter-from[data-v-702ab2d7],.search-leave-to[data-v-702ab2d7]{opacity:0}.top-menu[data-v-94be9db4]{width:100%;height:100%;display:flex;align-items:center;padding:0 20px}.top-menu__logo[data-v-94be9db4]{display:flex;align-items:center;gap:10px;margin-right:20px}.top-menu__logo-img[data-v-94be9db4]{width:32px;height:32px}.top-menu__logo-text[data-v-94be9db4]{font-size:16px;font-weight:600;color:var(--color-primary)}.top-menu__menu[data-v-94be9db4]{flex:1;border-bottom:none;height:100%}.top-menu__menu-content[data-v-94be9db4]{display:inline-flex;align-items:center;line-height:1}.top-menu__menu-text[data-v-94be9db4]{flex:1;line-height:1}.top-menu__menu-icon[data-v-94be9db4]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0}.top-menu__menu-char[data-v-94be9db4]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;font-weight:600;color:var(--color-primary);background-color:var(--color-primary-light-8);border-radius:4px}.top-menu__actions[data-v-94be9db4]{display:flex;align-items:center;gap:8px}.top-menu__action[data-v-94be9db4]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--border-radius-base);color:var(--color-text-regular);transition:all .2s}.top-menu__action[data-v-94be9db4]:hover{background-color:var(--color-fill);color:var(--color-primary)}.top-menu__user[data-v-94be9db4]{position:relative;margin-left:8px}.top-menu__user-trigger[data-v-94be9db4]{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:var(--border-radius-base);transition:background-color .2s}.top-menu__user-trigger[data-v-94be9db4]:hover{background-color:var(--color-fill)}.top-menu__user-name[data-v-94be9db4]{font-size:14px;color:var(--color-text-primary);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-menu__user-arrow[data-v-94be9db4]{font-size:10px;color:var(--color-text-secondary);transition:transform .2s}.top-menu__user-arrow.is-active[data-v-94be9db4]{transform:rotate(180deg)}.top-menu__avatar[data-v-94be9db4]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:500}.top-menu__dropdown[data-v-94be9db4]{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background-color:var(--bg-color);border-radius:var(--border-radius-base);box-shadow:var(--box-shadow);overflow:hidden;z-index:100}.top-menu__dropdown-header[data-v-94be9db4]{display:flex;align-items:center;gap:12px;padding:16px}.top-menu__dropdown-avatar[data-v-94be9db4]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:500}.top-menu__dropdown-info[data-v-94be9db4]{flex:1}.top-menu__dropdown-name[data-v-94be9db4]{font-size:14px;font-weight:500;color:var(--color-text-primary)}.top-menu__dropdown-role[data-v-94be9db4]{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.top-menu__dropdown-divider[data-v-94be9db4]{height:1px;background-color:var(--color-border-lighter)}.top-menu__dropdown-menu[data-v-94be9db4]{padding:8px 0}.top-menu__dropdown-item[data-v-94be9db4]{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;font-size:14px;color:var(--color-text-regular);transition:all .2s}.top-menu__dropdown-item[data-v-94be9db4]:hover{background-color:var(--color-fill);color:var(--color-text-primary)}.top-menu__dropdown-item--danger[data-v-94be9db4]{color:var(--color-danger)}.top-menu__dropdown-item--danger[data-v-94be9db4]:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.settings-drawer .settings-section[data-v-94be9db4]{margin-bottom:24px}.settings-drawer .settings-title[data-v-94be9db4]{font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:12px}.settings-drawer .settings-layout-options[data-v-94be9db4]{display:flex;gap:12px}.settings-drawer .layout-option[data-v-94be9db4]{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:var(--border-radius-base);cursor:pointer;transition:all .2s}.settings-drawer .layout-option[data-v-94be9db4]:hover{border-color:var(--color-primary-light-5)}.settings-drawer .layout-option.is-active[data-v-94be9db4]{border-color:var(--color-primary);background-color:var(--color-primary-light-9)}.settings-drawer .layout-option__preview[data-v-94be9db4]{width:48px;height:36px;border:1px solid var(--color-border-light);border-radius:2px;overflow:hidden}.settings-drawer .layout-option__label[data-v-94be9db4]{font-size:12px;color:var(--color-text-regular)}.settings-drawer .layout-preview-sidebar[data-v-94be9db4]{display:flex;height:100%}.settings-drawer .layout-preview-sidebar .preview-aside[data-v-94be9db4]{width:25%;height:100%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-sidebar .preview-main[data-v-94be9db4]{flex:1;display:flex;flex-direction:column}.settings-drawer .layout-preview-sidebar .preview-main .preview-header[data-v-94be9db4]{height:20%;background-color:var(--color-border-light)}.settings-drawer .layout-preview-sidebar .preview-main .preview-content[data-v-94be9db4]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-top[data-v-94be9db4]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-top .preview-header-full[data-v-94be9db4]{height:25%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-top .preview-content-full[data-v-94be9db4]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-mix[data-v-94be9db4]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-mix .preview-header-mix[data-v-94be9db4]{height:25%;background-color:var(--color-primary-light-7);display:flex}.settings-drawer .layout-preview-mix .preview-header-mix .preview-mix-left[data-v-94be9db4]{width:30%;background-color:var(--color-primary)}.settings-drawer .layout-preview-mix .preview-mix-body[data-v-94be9db4]{flex:1;display:flex}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-aside[data-v-94be9db4]{width:25%;background-color:var(--color-primary-light-8)}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-content[data-v-94be9db4]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .settings-color-options[data-v-94be9db4]{display:flex;gap:12px}.settings-drawer .color-option[data-v-94be9db4]{width:24px;height:24px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s}.settings-drawer .color-option[data-v-94be9db4]:hover{transform:scale(1.1)}.settings-drawer .color-option.is-active[data-v-94be9db4]{box-shadow:0 0 0 2px var(--bg-color),0 0 0 4px var(--color-primary)}.settings-drawer .settings-switch-list[data-v-94be9db4]{display:flex;flex-direction:column;gap:12px}.settings-drawer .settings-switch-item[data-v-94be9db4]{display:flex;align-items:center;justify-content:space-between}.settings-drawer .settings-switch-item span[data-v-94be9db4]{font-size:14px;color:var(--color-text-regular)}.settings-drawer .switch-wrapper[data-v-94be9db4]{width:44px;height:22px;display:flex;align-items:center;cursor:pointer}.settings-drawer .switch-wrapper .switch-core[data-v-94be9db4]{width:100%;height:100%;border-radius:11px;background-color:var(--color-border);position:relative;transition:background-color .2s}.settings-drawer .switch-wrapper .switch-core[data-v-94be9db4]:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background-color:#fff;border-radius:50%;transition:left .2s}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-94be9db4]{background-color:var(--color-primary)}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-94be9db4]:after{left:24px}.dropdown-enter-active[data-v-94be9db4],.dropdown-leave-active[data-v-94be9db4]{transition:all .2s ease}.dropdown-enter-from[data-v-94be9db4],.dropdown-leave-to[data-v-94be9db4]{opacity:0;transform:translateY(-10px)}.mix-top-menu[data-v-51076075]{width:100%;height:100%;display:flex;align-items:center;padding:0 20px}.mix-top-menu__logo[data-v-51076075]{display:flex;align-items:center;gap:10px;margin-right:20px}.mix-top-menu__logo-img[data-v-51076075]{width:32px;height:32px}.mix-top-menu__logo-text[data-v-51076075]{font-size:16px;font-weight:600;color:var(--color-primary)}.mix-top-menu__menu[data-v-51076075]{flex:1;border-bottom:none;height:100%}.mix-top-menu__menu-content[data-v-51076075]{display:inline-flex;align-items:center;line-height:1}.mix-top-menu__menu-text[data-v-51076075]{flex:1;line-height:1}.mix-top-menu__menu-icon[data-v-51076075]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0}.mix-top-menu__menu-char[data-v-51076075]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;font-weight:600;color:var(--color-primary);background-color:var(--color-primary-light-8);border-radius:4px}.mix-top-menu__actions[data-v-51076075]{display:flex;align-items:center;gap:8px}.mix-top-menu__action[data-v-51076075]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--border-radius-base);color:var(--color-text-regular);transition:all .2s}.mix-top-menu__action[data-v-51076075]:hover{background-color:var(--color-fill);color:var(--color-primary)}.mix-top-menu__user[data-v-51076075]{position:relative;margin-left:8px}.mix-top-menu__user-trigger[data-v-51076075]{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:var(--border-radius-base);transition:background-color .2s}.mix-top-menu__user-trigger[data-v-51076075]:hover{background-color:var(--color-fill)}.mix-top-menu__user-name[data-v-51076075]{font-size:14px;color:var(--color-text-primary);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mix-top-menu__user-arrow[data-v-51076075]{font-size:10px;color:var(--color-text-secondary);transition:transform .2s}.mix-top-menu__user-arrow.is-active[data-v-51076075]{transform:rotate(180deg)}.mix-top-menu__avatar[data-v-51076075]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:500}.mix-top-menu__dropdown[data-v-51076075]{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background-color:var(--bg-color);border-radius:var(--border-radius-base);box-shadow:var(--box-shadow);overflow:hidden;z-index:100}.mix-top-menu__dropdown-header[data-v-51076075]{display:flex;align-items:center;gap:12px;padding:16px}.mix-top-menu__dropdown-avatar[data-v-51076075]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:500}.mix-top-menu__dropdown-info[data-v-51076075]{flex:1}.mix-top-menu__dropdown-name[data-v-51076075]{font-size:14px;font-weight:500;color:var(--color-text-primary)}.mix-top-menu__dropdown-role[data-v-51076075]{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.mix-top-menu__dropdown-divider[data-v-51076075]{height:1px;background-color:var(--color-border-lighter)}.mix-top-menu__dropdown-menu[data-v-51076075]{padding:8px 0}.mix-top-menu__dropdown-item[data-v-51076075]{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;font-size:14px;color:var(--color-text-regular);transition:all .2s}.mix-top-menu__dropdown-item[data-v-51076075]:hover{background-color:var(--color-fill);color:var(--color-text-primary)}.mix-top-menu__dropdown-item--danger[data-v-51076075]{color:var(--color-danger)}.mix-top-menu__dropdown-item--danger[data-v-51076075]:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.settings-drawer .settings-section[data-v-51076075]{margin-bottom:24px}.settings-drawer .settings-title[data-v-51076075]{font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:12px}.settings-drawer .settings-layout-options[data-v-51076075]{display:flex;gap:12px}.settings-drawer .layout-option[data-v-51076075]{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:var(--border-radius-base);cursor:pointer;transition:all .2s}.settings-drawer .layout-option[data-v-51076075]:hover{border-color:var(--color-primary-light-5)}.settings-drawer .layout-option.is-active[data-v-51076075]{border-color:var(--color-primary);background-color:var(--color-primary-light-9)}.settings-drawer .layout-option__preview[data-v-51076075]{width:48px;height:36px;border:1px solid var(--color-border-light);border-radius:2px;overflow:hidden}.settings-drawer .layout-option__label[data-v-51076075]{font-size:12px;color:var(--color-text-regular)}.settings-drawer .layout-preview-sidebar[data-v-51076075]{display:flex;height:100%}.settings-drawer .layout-preview-sidebar .preview-aside[data-v-51076075]{width:25%;height:100%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-sidebar .preview-main[data-v-51076075]{flex:1;display:flex;flex-direction:column}.settings-drawer .layout-preview-sidebar .preview-main .preview-header[data-v-51076075]{height:20%;background-color:var(--color-border-light)}.settings-drawer .layout-preview-sidebar .preview-main .preview-content[data-v-51076075]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-top[data-v-51076075]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-top .preview-header-full[data-v-51076075]{height:25%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-top .preview-content-full[data-v-51076075]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-mix[data-v-51076075]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-mix .preview-header-mix[data-v-51076075]{height:25%;background-color:var(--color-primary-light-7);display:flex}.settings-drawer .layout-preview-mix .preview-header-mix .preview-mix-left[data-v-51076075]{width:30%;background-color:var(--color-primary)}.settings-drawer .layout-preview-mix .preview-mix-body[data-v-51076075]{flex:1;display:flex}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-aside[data-v-51076075]{width:25%;background-color:var(--color-primary-light-8)}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-content[data-v-51076075]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .settings-color-options[data-v-51076075]{display:flex;gap:12px}.settings-drawer .color-option[data-v-51076075]{width:24px;height:24px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s}.settings-drawer .color-option[data-v-51076075]:hover{transform:scale(1.1)}.settings-drawer .color-option.is-active[data-v-51076075]{box-shadow:0 0 0 2px var(--bg-color),0 0 0 4px var(--color-primary)}.settings-drawer .settings-switch-list[data-v-51076075]{display:flex;flex-direction:column;gap:12px}.settings-drawer .settings-switch-item[data-v-51076075]{display:flex;align-items:center;justify-content:space-between}.settings-drawer .settings-switch-item span[data-v-51076075]{font-size:14px;color:var(--color-text-regular)}.settings-drawer .switch-wrapper[data-v-51076075]{width:44px;height:22px;display:flex;align-items:center;cursor:pointer}.settings-drawer .switch-wrapper .switch-core[data-v-51076075]{width:100%;height:100%;border-radius:11px;background-color:var(--color-border);position:relative;transition:background-color .2s}.settings-drawer .switch-wrapper .switch-core[data-v-51076075]:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background-color:#fff;border-radius:50%;transition:left .2s}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-51076075]{background-color:var(--color-primary)}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-51076075]:after{left:24px}.dropdown-enter-active[data-v-51076075],.dropdown-leave-active[data-v-51076075]{transition:all .2s ease}.dropdown-enter-from[data-v-51076075],.dropdown-leave-to[data-v-51076075]{opacity:0;transform:translateY(-10px)}.layout[data-v-eea82169]{display:flex;width:100%;height:100%}.layout--sidebar[data-v-eea82169]{flex-direction:row}.layout--top[data-v-eea82169]{flex-direction:column}.layout--top .layout__aside[data-v-eea82169]{display:none}.layout--top .layout__main[data-v-eea82169]{flex:1}.layout--mix[data-v-eea82169]{flex-direction:column}.layout--mix .layout__main[data-v-eea82169]{display:flex;flex-direction:row;flex:1}.layout--mix .layout__content[data-v-eea82169]{flex:1;display:flex;flex-direction:column}.layout__aside[data-v-eea82169]{transition:width .3s;overflow:hidden;flex-shrink:0;height:100%}.layout__top-menu[data-v-eea82169],.layout__mix-top-menu[data-v-eea82169]{width:100%;height:50px;background-color:var(--bg-color);border-bottom:1px solid var(--color-border-lighter);flex-shrink:0}.layout__main[data-v-eea82169]{flex:1;display:flex;flex-direction:column;overflow:hidden;height:100%}.layout__header[data-v-eea82169]{height:50px;background-color:var(--bg-color);border-bottom:1px solid var(--color-border-lighter);flex-shrink:0}.layout__content[data-v-eea82169]{flex:1;overflow:auto;background-color:var(--bg-color-page)}.tabs-wrapper[data-v-9156d8cd]{width:100%;height:100%;padding:0 10px}.tabs-wrapper[data-v-9156d8cd] .t-tabs{height:100%}.tabs-wrapper[data-v-9156d8cd] .t-tabs__header{margin:0;border-bottom:none}.tabs-wrapper[data-v-9156d8cd] .t-tabs__nav{border:none}.tabs-wrapper[data-v-9156d8cd] .t-tabs__item{height:32px;line-height:32px;border:1px solid var(--color-border-lighter);margin-right:5px;border-radius:var(--border-radius-base);padding:0 15px}.tabs-wrapper[data-v-9156d8cd] .t-tabs__item.is-active{background-color:var(--color-primary-light-9);border-color:var(--color-primary)}.tab-label[data-v-9156d8cd]{display:flex;align-items:center;gap:5px}.tab-close[data-v-9156d8cd]{width:14px;height:14px;display:flex;align-items:center;justify-content:center;font-size:10px;border-radius:50%}.tab-close[data-v-9156d8cd]:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.footer[data-v-4852826a]{width:100%;text-align:center;font-size:12px;color:var(--color-text-secondary)}.login[data-v-f3e724b6]{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:flex-end;padding-right:15%;background:linear-gradient(135deg,var(--color-primary-light-9) 0%,var(--color-primary-light-7) 100%)}.login__container[data-v-f3e724b6]{width:400px;padding:40px;background-color:var(--bg-color);border-radius:var(--border-radius-large);box-shadow:var(--box-shadow-dark)}.login__header[data-v-f3e724b6]{text-align:center;margin-bottom:30px}.login__logo[data-v-f3e724b6]{width:60px;height:60px}.login__title[data-v-f3e724b6]{font-size:28px;font-weight:600;color:var(--color-primary);margin:15px 0 5px}.login__subtitle[data-v-f3e724b6]{font-size:14px;color:var(--color-text-secondary)}.login__form[data-v-f3e724b6] .x-form-item{margin-bottom:20px}.login__form[data-v-f3e724b6] .x-input__prefix{margin-right:8px}.login__submit[data-v-f3e724b6]{width:100%}.login__footer[data-v-f3e724b6]{text-align:center;margin-top:20px;font-size:12px;color:var(--color-text-placeholder)}.error-page[data-v-c3c12c24]{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-color-page)}.error-page__content[data-v-c3c12c24]{text-align:center}.error-page__code[data-v-c3c12c24]{font-size:120px;font-weight:600;color:var(--color-primary);line-height:1;margin-bottom:20px}.error-page__title[data-v-c3c12c24]{font-size:24px;font-weight:500;color:var(--color-text-primary);margin-bottom:10px}.error-page__desc[data-v-c3c12c24]{font-size:14px;color:var(--color-text-secondary);margin-bottom:30px}.error-page[data-v-dd5f2795]{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-color-page)}.error-page__content[data-v-dd5f2795]{text-align:center}.error-page__code[data-v-dd5f2795]{font-size:120px;font-weight:600;color:var(--color-warning);line-height:1;margin-bottom:20px}.error-page__title[data-v-dd5f2795]{font-size:24px;font-weight:500;color:var(--color-text-primary);margin-bottom:10px}.error-page__desc[data-v-dd5f2795]{font-size:14px;color:var(--color-text-secondary);margin-bottom:30px}.dashboard[data-v-44648cb1]{padding:20px}.dashboard__stats[data-v-44648cb1]{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:20px}@media (max-width: 1200px){.dashboard__stats[data-v-44648cb1]{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.dashboard__stats[data-v-44648cb1]{grid-template-columns:1fr}}.dashboard__main[data-v-44648cb1]{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:20px}@media (max-width: 992px){.dashboard__main[data-v-44648cb1]{grid-template-columns:1fr}}.dashboard__quick[data-v-44648cb1],.dashboard__activity[data-v-44648cb1]{min-height:300px}.card-title[data-v-44648cb1]{font-size:16px;font-weight:500}.stat-card__content[data-v-44648cb1]{display:flex;align-items:center;gap:15px}.stat-card__icon[data-v-44648cb1]{width:50px;height:50px;display:flex;align-items:center;justify-content:center;font-size:24px;border-radius:var(--border-radius-base)}.stat-card__info[data-v-44648cb1]{flex:1}.stat-card__title[data-v-44648cb1]{font-size:14px;color:var(--color-text-secondary);margin-bottom:5px}.stat-card__value[data-v-44648cb1]{font-size:24px;font-weight:600}.quick-links[data-v-44648cb1]{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}@media (max-width: 768px){.quick-links[data-v-44648cb1]{grid-template-columns:repeat(2,1fr)}}.quick-link[data-v-44648cb1]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;border-radius:var(--border-radius-base);background-color:var(--color-fill);text-decoration:none;transition:all var(--transition-duration-fast)}.quick-link[data-v-44648cb1]:hover{background-color:var(--color-primary-light-9);transform:translateY(-2px)}.quick-link__icon[data-v-44648cb1]{font-size:28px;margin-bottom:10px}.quick-link__title[data-v-44648cb1]{font-size:14px;color:var(--color-text-primary)}.activity-list[data-v-44648cb1]{display:flex;flex-direction:column;gap:15px}.activity-item[data-v-44648cb1]{display:flex;align-items:center;gap:10px;padding-bottom:15px;border-bottom:1px solid var(--color-border-lighter)}.activity-item[data-v-44648cb1]:last-child{border-bottom:none;padding-bottom:0}.activity-item__action[data-v-44648cb1]{flex:1;font-size:14px;color:var(--color-text-regular)}.activity-item__time[data-v-44648cb1]{font-size:12px;color:var(--color-text-placeholder)}.system-info[data-v-44648cb1]{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}@media (max-width: 768px){.system-info[data-v-44648cb1]{grid-template-columns:1fr}}.system-info__item[data-v-44648cb1]{display:flex;align-items:center;gap:10px}.system-info__label[data-v-44648cb1]{font-size:14px;color:var(--color-text-secondary);min-width:80px}.system-info__value[data-v-44648cb1]{font-size:14px;color:var(--color-text-primary)}.user-page[data-v-d2491ae0]{padding:20px}.user-page .search-card[data-v-d2491ae0]{margin-bottom:20px}.user-page .toolbar[data-v-d2491ae0]{margin-bottom:15px}.data-table[data-v-d2491ae0]{width:100%;border-collapse:collapse}.data-table th[data-v-d2491ae0],.data-table td[data-v-d2491ae0]{padding:12px;text-align:left;border-bottom:1px solid var(--color-border-lighter)}.data-table th[data-v-d2491ae0]{font-weight:500;color:var(--color-text-regular);background-color:var(--color-fill-light)}.data-table .loading-cell[data-v-d2491ae0],.data-table .empty-cell[data-v-d2491ae0]{text-align:center;color:var(--color-text-secondary);padding:40px}.pagination-wrapper[data-v-d2491ae0]{display:flex;justify-content:flex-end;margin-top:20px}.role-page[data-v-8ad30bc6]{padding:20px}.role-page .search-card[data-v-8ad30bc6]{margin-bottom:20px}.role-page .toolbar[data-v-8ad30bc6]{margin-bottom:15px}.data-table[data-v-8ad30bc6]{width:100%;border-collapse:collapse}.data-table th[data-v-8ad30bc6],.data-table td[data-v-8ad30bc6]{padding:12px;text-align:left;border-bottom:1px solid var(--color-border-lighter)}.data-table th[data-v-8ad30bc6]{font-weight:500;color:var(--color-text-regular);background-color:var(--color-fill-light)}.data-table .loading-cell[data-v-8ad30bc6],.data-table .empty-cell[data-v-8ad30bc6]{text-align:center;color:var(--color-text-secondary);padding:40px}.pagination-wrapper[data-v-8ad30bc6]{display:flex;justify-content:flex-end;margin-top:20px}.menu-page[data-v-2a272a68]{padding:20px}.menu-page .toolbar[data-v-2a272a68]{margin-bottom:15px}.tree-table[data-v-2a272a68]{width:100%;border-collapse:collapse}.tree-table th[data-v-2a272a68],.tree-table td[data-v-2a272a68]{padding:12px;text-align:left;border-bottom:1px solid var(--color-border-lighter)}.tree-table th[data-v-2a272a68]{font-weight:500;color:var(--color-text-regular);background-color:var(--color-fill-light)}.tree-table .tree-row--level-1 td[data-v-2a272a68]:first-child{padding-left:30px}.tree-indent[data-v-2a272a68]{display:inline-block;width:20px}.menu-name[data-v-2a272a68]{cursor:pointer;color:var(--color-primary)}.menu-name[data-v-2a272a68]:hover{text-decoration:underline}
1
+ .sidebar[data-v-bd32db7f]{height:100%;display:flex;flex-direction:column;background-color:var(--bg-color);border-right:1px solid var(--color-border-lighter)}.sidebar--collapsed .sidebar__logo[data-v-bd32db7f]{justify-content:center;padding:0}.sidebar__logo[data-v-bd32db7f]{height:50px;display:flex;align-items:center;padding:0 20px;gap:10px;border-bottom:1px solid var(--color-border-lighter)}.sidebar__logo-img[data-v-bd32db7f]{width:32px;height:32px}.sidebar__logo-text[data-v-bd32db7f]{font-size:16px;font-weight:600;color:var(--color-primary)}.sidebar__menu[data-v-bd32db7f]{flex:1;border-right:none;overflow-y:auto}.sidebar__menu-content[data-v-bd32db7f]{display:inline-flex;align-items:center;line-height:1}.sidebar__menu-text[data-v-bd32db7f]{flex:1;line-height:1}.sidebar__menu-icon[data-v-bd32db7f]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0}.sidebar__menu-char[data-v-bd32db7f]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;font-weight:600;color:var(--color-primary);background-color:var(--color-primary-light-8);border-radius:4px}.sidebar__user[data-v-bd32db7f]{padding:10px;border-top:1px solid var(--color-border-lighter);display:flex;align-items:center;justify-content:space-between}.sidebar__user-info[data-v-bd32db7f]{display:flex;flex-direction:column;gap:2px}.sidebar__user-name[data-v-bd32db7f]{font-size:14px;font-weight:500}.sidebar__user-role[data-v-bd32db7f]{font-size:12px;color:var(--color-text-secondary)}.header[data-v-702ab2d7]{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:100%;background-color:var(--bg-color);border-bottom:1px solid var(--color-border-lighter)}.header__left[data-v-702ab2d7]{display:flex;align-items:center;gap:15px}.header__collapse[data-v-702ab2d7]{width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-regular);transition:color .2s}.header__collapse[data-v-702ab2d7]:hover{color:var(--color-primary)}.header__breadcrumb[data-v-702ab2d7]{font-size:14px;color:var(--color-text-secondary)}.header__breadcrumb .breadcrumb-separator[data-v-702ab2d7]{margin:0 8px;color:var(--color-text-placeholder)}.header__breadcrumb .is-current[data-v-702ab2d7]{color:var(--color-text-primary);font-weight:500}.header__right[data-v-702ab2d7]{display:flex;align-items:center;gap:8px}.header__action[data-v-702ab2d7]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--border-radius-base);color:var(--color-text-regular);transition:all .2s}.header__action[data-v-702ab2d7]:hover{background-color:var(--color-fill);color:var(--color-primary)}.header__user[data-v-702ab2d7]{position:relative;margin-left:8px}.header__user-trigger[data-v-702ab2d7]{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:var(--border-radius-base);transition:background-color .2s}.header__user-trigger[data-v-702ab2d7]:hover{background-color:var(--color-fill)}.header__user-name[data-v-702ab2d7]{font-size:14px;color:var(--color-text-primary);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header__user-arrow[data-v-702ab2d7]{font-size:10px;color:var(--color-text-secondary);transition:transform .2s}.header__user-arrow.is-active[data-v-702ab2d7]{transform:rotate(180deg)}.header__avatar[data-v-702ab2d7]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:500}.header__dropdown[data-v-702ab2d7]{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background-color:var(--bg-color);border-radius:var(--border-radius-base);box-shadow:var(--box-shadow);overflow:hidden;z-index:100}.header__dropdown-header[data-v-702ab2d7]{display:flex;align-items:center;gap:12px;padding:16px}.header__dropdown-avatar[data-v-702ab2d7]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:500}.header__dropdown-info[data-v-702ab2d7]{flex:1}.header__dropdown-name[data-v-702ab2d7]{font-size:14px;font-weight:500;color:var(--color-text-primary)}.header__dropdown-role[data-v-702ab2d7]{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.header__dropdown-divider[data-v-702ab2d7]{height:1px;background-color:var(--color-border-lighter)}.header__dropdown-menu[data-v-702ab2d7]{padding:8px 0}.header__dropdown-item[data-v-702ab2d7]{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;font-size:14px;color:var(--color-text-regular);transition:all .2s}.header__dropdown-item[data-v-702ab2d7]:hover{background-color:var(--color-fill);color:var(--color-text-primary)}.header__dropdown-item--danger[data-v-702ab2d7]{color:var(--color-danger)}.header__dropdown-item--danger[data-v-702ab2d7]:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.header__search-modal[data-v-702ab2d7]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:flex-start;justify-content:center;padding-top:100px;z-index:200}.search-container[data-v-702ab2d7]{width:600px;max-width:90vw;background-color:var(--bg-color);border-radius:var(--border-radius-large);box-shadow:var(--box-shadow-dark);overflow:hidden}.search-input-wrapper[data-v-702ab2d7]{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border-lighter)}.search-input-wrapper .search-icon[data-v-702ab2d7]{color:var(--color-text-secondary);margin-right:12px}.search-input-wrapper .search-input[data-v-702ab2d7]{flex:1;font-size:16px;color:var(--color-text-primary);background:transparent;border:none;outline:none}.search-input-wrapper .search-input[data-v-702ab2d7]::placeholder{color:var(--color-text-placeholder)}.search-input-wrapper .search-shortcut[data-v-702ab2d7]{font-size:12px;color:var(--color-text-secondary);padding:4px 8px;background-color:var(--color-fill);border-radius:var(--border-radius-base)}.search-results[data-v-702ab2d7]{max-height:400px;overflow-y:auto;padding:8px 0}.search-result-item[data-v-702ab2d7]{display:flex;align-items:center;gap:12px;padding:12px 20px;cursor:pointer;transition:background-color .2s}.search-result-item[data-v-702ab2d7]:hover{background-color:var(--color-fill)}.search-result-item.is-first[data-v-702ab2d7]{background-color:var(--color-primary-light-9)}.search-result-item .search-result-icon[data-v-702ab2d7]{color:var(--color-text-secondary)}.search-result-item .search-result-info[data-v-702ab2d7]{flex:1;display:flex;flex-direction:column;gap:2px}.search-result-item .search-result-title[data-v-702ab2d7]{font-size:14px;color:var(--color-text-primary)}.search-result-item .search-result-parent[data-v-702ab2d7]{font-size:12px;color:var(--color-text-secondary)}.search-empty[data-v-702ab2d7]{padding:40px 20px;text-align:center;color:var(--color-text-secondary);font-size:14px}.settings-drawer .settings-section[data-v-702ab2d7]{margin-bottom:24px}.settings-drawer .settings-title[data-v-702ab2d7]{font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:12px}.settings-drawer .settings-layout-options[data-v-702ab2d7]{display:flex;gap:12px}.settings-drawer .layout-option[data-v-702ab2d7]{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:var(--border-radius-base);cursor:pointer;transition:all .2s}.settings-drawer .layout-option[data-v-702ab2d7]:hover{border-color:var(--color-primary-light-5)}.settings-drawer .layout-option.is-active[data-v-702ab2d7]{border-color:var(--color-primary);background-color:var(--color-primary-light-9)}.settings-drawer .layout-option__preview[data-v-702ab2d7]{width:48px;height:36px;border:1px solid var(--color-border-light);border-radius:2px;overflow:hidden}.settings-drawer .layout-option__label[data-v-702ab2d7]{font-size:12px;color:var(--color-text-regular)}.settings-drawer .layout-preview-sidebar[data-v-702ab2d7]{display:flex;height:100%}.settings-drawer .layout-preview-sidebar .preview-aside[data-v-702ab2d7]{width:25%;height:100%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-sidebar .preview-main[data-v-702ab2d7]{flex:1;display:flex;flex-direction:column}.settings-drawer .layout-preview-sidebar .preview-main .preview-header[data-v-702ab2d7]{height:20%;background-color:var(--color-border-light)}.settings-drawer .layout-preview-sidebar .preview-main .preview-content[data-v-702ab2d7]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-top[data-v-702ab2d7]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-top .preview-header-full[data-v-702ab2d7]{height:25%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-top .preview-content-full[data-v-702ab2d7]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-mix[data-v-702ab2d7]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-mix .preview-header-mix[data-v-702ab2d7]{height:25%;background-color:var(--color-primary-light-7);display:flex}.settings-drawer .layout-preview-mix .preview-header-mix .preview-mix-left[data-v-702ab2d7]{width:30%;background-color:var(--color-primary)}.settings-drawer .layout-preview-mix .preview-mix-body[data-v-702ab2d7]{flex:1;display:flex}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-aside[data-v-702ab2d7]{width:25%;background-color:var(--color-primary-light-8)}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-content[data-v-702ab2d7]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .settings-color-options[data-v-702ab2d7]{display:flex;gap:12px}.settings-drawer .color-option[data-v-702ab2d7]{width:24px;height:24px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s}.settings-drawer .color-option[data-v-702ab2d7]:hover{transform:scale(1.1)}.settings-drawer .color-option.is-active[data-v-702ab2d7]{box-shadow:0 0 0 2px var(--bg-color),0 0 0 4px var(--color-primary)}.settings-drawer .settings-switch-list[data-v-702ab2d7]{display:flex;flex-direction:column;gap:12px}.settings-drawer .settings-switch-item[data-v-702ab2d7]{display:flex;align-items:center;justify-content:space-between}.settings-drawer .settings-switch-item span[data-v-702ab2d7]{font-size:14px;color:var(--color-text-regular)}.settings-drawer .switch-wrapper[data-v-702ab2d7]{width:44px;height:22px;display:flex;align-items:center;cursor:pointer}.settings-drawer .switch-wrapper .switch-core[data-v-702ab2d7]{width:100%;height:100%;border-radius:11px;background-color:var(--color-border);position:relative;transition:background-color .2s}.settings-drawer .switch-wrapper .switch-core[data-v-702ab2d7]:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background-color:#fff;border-radius:50%;transition:left .2s}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-702ab2d7]{background-color:var(--color-primary)}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-702ab2d7]:after{left:24px}.dropdown-enter-active[data-v-702ab2d7],.dropdown-leave-active[data-v-702ab2d7]{transition:all .2s ease}.dropdown-enter-from[data-v-702ab2d7],.dropdown-leave-to[data-v-702ab2d7]{opacity:0;transform:translateY(-10px)}.search-enter-active[data-v-702ab2d7],.search-leave-active[data-v-702ab2d7]{transition:all .2s ease}.search-enter-from[data-v-702ab2d7],.search-leave-to[data-v-702ab2d7]{opacity:0}.top-menu[data-v-94be9db4]{width:100%;height:100%;display:flex;align-items:center;padding:0 20px}.top-menu__logo[data-v-94be9db4]{display:flex;align-items:center;gap:10px;margin-right:20px}.top-menu__logo-img[data-v-94be9db4]{width:32px;height:32px}.top-menu__logo-text[data-v-94be9db4]{font-size:16px;font-weight:600;color:var(--color-primary)}.top-menu__menu[data-v-94be9db4]{flex:1;border-bottom:none;height:100%}.top-menu__menu-content[data-v-94be9db4]{display:inline-flex;align-items:center;line-height:1}.top-menu__menu-text[data-v-94be9db4]{flex:1;line-height:1}.top-menu__menu-icon[data-v-94be9db4]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0}.top-menu__menu-char[data-v-94be9db4]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;font-weight:600;color:var(--color-primary);background-color:var(--color-primary-light-8);border-radius:4px}.top-menu__actions[data-v-94be9db4]{display:flex;align-items:center;gap:8px}.top-menu__action[data-v-94be9db4]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--border-radius-base);color:var(--color-text-regular);transition:all .2s}.top-menu__action[data-v-94be9db4]:hover{background-color:var(--color-fill);color:var(--color-primary)}.top-menu__user[data-v-94be9db4]{position:relative;margin-left:8px}.top-menu__user-trigger[data-v-94be9db4]{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:var(--border-radius-base);transition:background-color .2s}.top-menu__user-trigger[data-v-94be9db4]:hover{background-color:var(--color-fill)}.top-menu__user-name[data-v-94be9db4]{font-size:14px;color:var(--color-text-primary);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-menu__user-arrow[data-v-94be9db4]{font-size:10px;color:var(--color-text-secondary);transition:transform .2s}.top-menu__user-arrow.is-active[data-v-94be9db4]{transform:rotate(180deg)}.top-menu__avatar[data-v-94be9db4]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:500}.top-menu__dropdown[data-v-94be9db4]{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background-color:var(--bg-color);border-radius:var(--border-radius-base);box-shadow:var(--box-shadow);overflow:hidden;z-index:100}.top-menu__dropdown-header[data-v-94be9db4]{display:flex;align-items:center;gap:12px;padding:16px}.top-menu__dropdown-avatar[data-v-94be9db4]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:500}.top-menu__dropdown-info[data-v-94be9db4]{flex:1}.top-menu__dropdown-name[data-v-94be9db4]{font-size:14px;font-weight:500;color:var(--color-text-primary)}.top-menu__dropdown-role[data-v-94be9db4]{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.top-menu__dropdown-divider[data-v-94be9db4]{height:1px;background-color:var(--color-border-lighter)}.top-menu__dropdown-menu[data-v-94be9db4]{padding:8px 0}.top-menu__dropdown-item[data-v-94be9db4]{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;font-size:14px;color:var(--color-text-regular);transition:all .2s}.top-menu__dropdown-item[data-v-94be9db4]:hover{background-color:var(--color-fill);color:var(--color-text-primary)}.top-menu__dropdown-item--danger[data-v-94be9db4]{color:var(--color-danger)}.top-menu__dropdown-item--danger[data-v-94be9db4]:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.settings-drawer .settings-section[data-v-94be9db4]{margin-bottom:24px}.settings-drawer .settings-title[data-v-94be9db4]{font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:12px}.settings-drawer .settings-layout-options[data-v-94be9db4]{display:flex;gap:12px}.settings-drawer .layout-option[data-v-94be9db4]{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:var(--border-radius-base);cursor:pointer;transition:all .2s}.settings-drawer .layout-option[data-v-94be9db4]:hover{border-color:var(--color-primary-light-5)}.settings-drawer .layout-option.is-active[data-v-94be9db4]{border-color:var(--color-primary);background-color:var(--color-primary-light-9)}.settings-drawer .layout-option__preview[data-v-94be9db4]{width:48px;height:36px;border:1px solid var(--color-border-light);border-radius:2px;overflow:hidden}.settings-drawer .layout-option__label[data-v-94be9db4]{font-size:12px;color:var(--color-text-regular)}.settings-drawer .layout-preview-sidebar[data-v-94be9db4]{display:flex;height:100%}.settings-drawer .layout-preview-sidebar .preview-aside[data-v-94be9db4]{width:25%;height:100%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-sidebar .preview-main[data-v-94be9db4]{flex:1;display:flex;flex-direction:column}.settings-drawer .layout-preview-sidebar .preview-main .preview-header[data-v-94be9db4]{height:20%;background-color:var(--color-border-light)}.settings-drawer .layout-preview-sidebar .preview-main .preview-content[data-v-94be9db4]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-top[data-v-94be9db4]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-top .preview-header-full[data-v-94be9db4]{height:25%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-top .preview-content-full[data-v-94be9db4]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-mix[data-v-94be9db4]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-mix .preview-header-mix[data-v-94be9db4]{height:25%;background-color:var(--color-primary-light-7);display:flex}.settings-drawer .layout-preview-mix .preview-header-mix .preview-mix-left[data-v-94be9db4]{width:30%;background-color:var(--color-primary)}.settings-drawer .layout-preview-mix .preview-mix-body[data-v-94be9db4]{flex:1;display:flex}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-aside[data-v-94be9db4]{width:25%;background-color:var(--color-primary-light-8)}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-content[data-v-94be9db4]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .settings-color-options[data-v-94be9db4]{display:flex;gap:12px}.settings-drawer .color-option[data-v-94be9db4]{width:24px;height:24px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s}.settings-drawer .color-option[data-v-94be9db4]:hover{transform:scale(1.1)}.settings-drawer .color-option.is-active[data-v-94be9db4]{box-shadow:0 0 0 2px var(--bg-color),0 0 0 4px var(--color-primary)}.settings-drawer .settings-switch-list[data-v-94be9db4]{display:flex;flex-direction:column;gap:12px}.settings-drawer .settings-switch-item[data-v-94be9db4]{display:flex;align-items:center;justify-content:space-between}.settings-drawer .settings-switch-item span[data-v-94be9db4]{font-size:14px;color:var(--color-text-regular)}.settings-drawer .switch-wrapper[data-v-94be9db4]{width:44px;height:22px;display:flex;align-items:center;cursor:pointer}.settings-drawer .switch-wrapper .switch-core[data-v-94be9db4]{width:100%;height:100%;border-radius:11px;background-color:var(--color-border);position:relative;transition:background-color .2s}.settings-drawer .switch-wrapper .switch-core[data-v-94be9db4]:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background-color:#fff;border-radius:50%;transition:left .2s}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-94be9db4]{background-color:var(--color-primary)}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-94be9db4]:after{left:24px}.dropdown-enter-active[data-v-94be9db4],.dropdown-leave-active[data-v-94be9db4]{transition:all .2s ease}.dropdown-enter-from[data-v-94be9db4],.dropdown-leave-to[data-v-94be9db4]{opacity:0;transform:translateY(-10px)}.mix-top-menu[data-v-826bbae6]{width:100%;height:100%;display:flex;align-items:center;padding:0 20px}.mix-top-menu__logo[data-v-826bbae6]{display:flex;align-items:center;gap:10px;margin-right:20px}.mix-top-menu__logo-img[data-v-826bbae6]{width:32px;height:32px}.mix-top-menu__logo-text[data-v-826bbae6]{font-size:16px;font-weight:600;color:var(--color-primary)}.mix-top-menu__menu[data-v-826bbae6]{flex:1;border-bottom:none;height:100%}.mix-top-menu__menu-content[data-v-826bbae6]{display:inline-flex;align-items:center;line-height:1}.mix-top-menu__menu-text[data-v-826bbae6]{flex:1;line-height:1}.mix-top-menu__menu-icon[data-v-826bbae6]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0}.mix-top-menu__menu-char[data-v-826bbae6]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;font-weight:600;color:var(--color-primary);background-color:var(--color-primary-light-8);border-radius:4px}.mix-top-menu__actions[data-v-826bbae6]{display:flex;align-items:center;gap:8px}.mix-top-menu__action[data-v-826bbae6]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--border-radius-base);color:var(--color-text-regular);transition:all .2s}.mix-top-menu__action[data-v-826bbae6]:hover{background-color:var(--color-fill);color:var(--color-primary)}.mix-top-menu__user[data-v-826bbae6]{position:relative;margin-left:8px}.mix-top-menu__user-trigger[data-v-826bbae6]{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:var(--border-radius-base);transition:background-color .2s}.mix-top-menu__user-trigger[data-v-826bbae6]:hover{background-color:var(--color-fill)}.mix-top-menu__user-name[data-v-826bbae6]{font-size:14px;color:var(--color-text-primary);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mix-top-menu__user-arrow[data-v-826bbae6]{font-size:10px;color:var(--color-text-secondary);transition:transform .2s}.mix-top-menu__user-arrow.is-active[data-v-826bbae6]{transform:rotate(180deg)}.mix-top-menu__avatar[data-v-826bbae6]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:500}.mix-top-menu__dropdown[data-v-826bbae6]{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background-color:var(--bg-color);border-radius:var(--border-radius-base);box-shadow:var(--box-shadow);overflow:hidden;z-index:100}.mix-top-menu__dropdown-header[data-v-826bbae6]{display:flex;align-items:center;gap:12px;padding:16px}.mix-top-menu__dropdown-avatar[data-v-826bbae6]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:500}.mix-top-menu__dropdown-info[data-v-826bbae6]{flex:1}.mix-top-menu__dropdown-name[data-v-826bbae6]{font-size:14px;font-weight:500;color:var(--color-text-primary)}.mix-top-menu__dropdown-role[data-v-826bbae6]{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.mix-top-menu__dropdown-divider[data-v-826bbae6]{height:1px;background-color:var(--color-border-lighter)}.mix-top-menu__dropdown-menu[data-v-826bbae6]{padding:8px 0}.mix-top-menu__dropdown-item[data-v-826bbae6]{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;font-size:14px;color:var(--color-text-regular);transition:all .2s}.mix-top-menu__dropdown-item[data-v-826bbae6]:hover{background-color:var(--color-fill);color:var(--color-text-primary)}.mix-top-menu__dropdown-item--danger[data-v-826bbae6]{color:var(--color-danger)}.mix-top-menu__dropdown-item--danger[data-v-826bbae6]:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.settings-drawer .settings-section[data-v-826bbae6]{margin-bottom:24px}.settings-drawer .settings-title[data-v-826bbae6]{font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:12px}.settings-drawer .settings-layout-options[data-v-826bbae6]{display:flex;gap:12px}.settings-drawer .layout-option[data-v-826bbae6]{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:var(--border-radius-base);cursor:pointer;transition:all .2s}.settings-drawer .layout-option[data-v-826bbae6]:hover{border-color:var(--color-primary-light-5)}.settings-drawer .layout-option.is-active[data-v-826bbae6]{border-color:var(--color-primary);background-color:var(--color-primary-light-9)}.settings-drawer .layout-option__preview[data-v-826bbae6]{width:48px;height:36px;border:1px solid var(--color-border-light);border-radius:2px;overflow:hidden}.settings-drawer .layout-option__label[data-v-826bbae6]{font-size:12px;color:var(--color-text-regular)}.settings-drawer .layout-preview-sidebar[data-v-826bbae6]{display:flex;height:100%}.settings-drawer .layout-preview-sidebar .preview-aside[data-v-826bbae6]{width:25%;height:100%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-sidebar .preview-main[data-v-826bbae6]{flex:1;display:flex;flex-direction:column}.settings-drawer .layout-preview-sidebar .preview-main .preview-header[data-v-826bbae6]{height:20%;background-color:var(--color-border-light)}.settings-drawer .layout-preview-sidebar .preview-main .preview-content[data-v-826bbae6]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-top[data-v-826bbae6]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-top .preview-header-full[data-v-826bbae6]{height:25%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-top .preview-content-full[data-v-826bbae6]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-mix[data-v-826bbae6]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-mix .preview-header-mix[data-v-826bbae6]{height:25%;background-color:var(--color-primary-light-7);display:flex}.settings-drawer .layout-preview-mix .preview-header-mix .preview-mix-left[data-v-826bbae6]{width:30%;background-color:var(--color-primary)}.settings-drawer .layout-preview-mix .preview-mix-body[data-v-826bbae6]{flex:1;display:flex}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-aside[data-v-826bbae6]{width:25%;background-color:var(--color-primary-light-8)}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-content[data-v-826bbae6]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .settings-color-options[data-v-826bbae6]{display:flex;gap:12px}.settings-drawer .color-option[data-v-826bbae6]{width:24px;height:24px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s}.settings-drawer .color-option[data-v-826bbae6]:hover{transform:scale(1.1)}.settings-drawer .color-option.is-active[data-v-826bbae6]{box-shadow:0 0 0 2px var(--bg-color),0 0 0 4px var(--color-primary)}.settings-drawer .settings-switch-list[data-v-826bbae6]{display:flex;flex-direction:column;gap:12px}.settings-drawer .settings-switch-item[data-v-826bbae6]{display:flex;align-items:center;justify-content:space-between}.settings-drawer .settings-switch-item span[data-v-826bbae6]{font-size:14px;color:var(--color-text-regular)}.settings-drawer .switch-wrapper[data-v-826bbae6]{width:44px;height:22px;display:flex;align-items:center;cursor:pointer}.settings-drawer .switch-wrapper .switch-core[data-v-826bbae6]{width:100%;height:100%;border-radius:11px;background-color:var(--color-border);position:relative;transition:background-color .2s}.settings-drawer .switch-wrapper .switch-core[data-v-826bbae6]:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background-color:#fff;border-radius:50%;transition:left .2s}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-826bbae6]{background-color:var(--color-primary)}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-826bbae6]:after{left:24px}.dropdown-enter-active[data-v-826bbae6],.dropdown-leave-active[data-v-826bbae6]{transition:all .2s ease}.dropdown-enter-from[data-v-826bbae6],.dropdown-leave-to[data-v-826bbae6]{opacity:0;transform:translateY(-10px)}.layout[data-v-1181a070]{display:flex;width:100%;height:100%}.layout--sidebar[data-v-1181a070]{flex-direction:row}.layout--sidebar .layout__aside[data-v-1181a070]{height:100%}.layout--sidebar .layout__main[data-v-1181a070]{flex:1;display:flex;flex-direction:column;height:100%}.layout--top[data-v-1181a070]{flex-direction:column}.layout--top .layout__main[data-v-1181a070]{flex:1;display:flex;flex-direction:column;height:calc(100% - 50px)}.layout--top .layout__content[data-v-1181a070]{flex:1}.layout--mix[data-v-1181a070]{flex-direction:column}.layout--mix .layout__mix-top-menu[data-v-1181a070]{width:100%;height:50px;background-color:var(--bg-color);border-bottom:1px solid var(--color-border-lighter);flex-shrink:0}.layout--mix .layout__mix-body[data-v-1181a070]{flex:1;display:flex;flex-direction:row;height:calc(100% - 50px)}.layout__aside[data-v-1181a070]{transition:width .3s;overflow:hidden;flex-shrink:0;height:100%}.layout__top-menu[data-v-1181a070]{width:100%;height:50px;background-color:var(--bg-color);border-bottom:1px solid var(--color-border-lighter);flex-shrink:0}.layout__mix-top-menu[data-v-1181a070]{width:100%;height:50px;flex-shrink:0}.layout__main[data-v-1181a070]{flex:1;display:flex;flex-direction:column;overflow:hidden;height:100%}.layout__header[data-v-1181a070]{height:50px;background-color:var(--bg-color);border-bottom:1px solid var(--color-border-lighter);flex-shrink:0}.layout__content[data-v-1181a070]{flex:1;overflow:auto;background-color:var(--bg-color-page)}.tabs-wrapper[data-v-9156d8cd]{width:100%;height:100%;padding:0 10px}.tabs-wrapper[data-v-9156d8cd] .t-tabs{height:100%}.tabs-wrapper[data-v-9156d8cd] .t-tabs__header{margin:0;border-bottom:none}.tabs-wrapper[data-v-9156d8cd] .t-tabs__nav{border:none}.tabs-wrapper[data-v-9156d8cd] .t-tabs__item{height:32px;line-height:32px;border:1px solid var(--color-border-lighter);margin-right:5px;border-radius:var(--border-radius-base);padding:0 15px}.tabs-wrapper[data-v-9156d8cd] .t-tabs__item.is-active{background-color:var(--color-primary-light-9);border-color:var(--color-primary)}.tab-label[data-v-9156d8cd]{display:flex;align-items:center;gap:5px}.tab-close[data-v-9156d8cd]{width:14px;height:14px;display:flex;align-items:center;justify-content:center;font-size:10px;border-radius:50%}.tab-close[data-v-9156d8cd]:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.footer[data-v-4852826a]{width:100%;text-align:center;font-size:12px;color:var(--color-text-secondary)}.login[data-v-f3e724b6]{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:flex-end;padding-right:15%;background:linear-gradient(135deg,var(--color-primary-light-9) 0%,var(--color-primary-light-7) 100%)}.login__container[data-v-f3e724b6]{width:400px;padding:40px;background-color:var(--bg-color);border-radius:var(--border-radius-large);box-shadow:var(--box-shadow-dark)}.login__header[data-v-f3e724b6]{text-align:center;margin-bottom:30px}.login__logo[data-v-f3e724b6]{width:60px;height:60px}.login__title[data-v-f3e724b6]{font-size:28px;font-weight:600;color:var(--color-primary);margin:15px 0 5px}.login__subtitle[data-v-f3e724b6]{font-size:14px;color:var(--color-text-secondary)}.login__form[data-v-f3e724b6] .x-form-item{margin-bottom:20px}.login__form[data-v-f3e724b6] .x-input__prefix{margin-right:8px}.login__submit[data-v-f3e724b6]{width:100%}.login__footer[data-v-f3e724b6]{text-align:center;margin-top:20px;font-size:12px;color:var(--color-text-placeholder)}.error-page[data-v-c3c12c24]{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-color-page)}.error-page__content[data-v-c3c12c24]{text-align:center}.error-page__code[data-v-c3c12c24]{font-size:120px;font-weight:600;color:var(--color-primary);line-height:1;margin-bottom:20px}.error-page__title[data-v-c3c12c24]{font-size:24px;font-weight:500;color:var(--color-text-primary);margin-bottom:10px}.error-page__desc[data-v-c3c12c24]{font-size:14px;color:var(--color-text-secondary);margin-bottom:30px}.error-page[data-v-dd5f2795]{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-color-page)}.error-page__content[data-v-dd5f2795]{text-align:center}.error-page__code[data-v-dd5f2795]{font-size:120px;font-weight:600;color:var(--color-warning);line-height:1;margin-bottom:20px}.error-page__title[data-v-dd5f2795]{font-size:24px;font-weight:500;color:var(--color-text-primary);margin-bottom:10px}.error-page__desc[data-v-dd5f2795]{font-size:14px;color:var(--color-text-secondary);margin-bottom:30px}.dashboard[data-v-44648cb1]{padding:20px}.dashboard__stats[data-v-44648cb1]{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:20px}@media (max-width: 1200px){.dashboard__stats[data-v-44648cb1]{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.dashboard__stats[data-v-44648cb1]{grid-template-columns:1fr}}.dashboard__main[data-v-44648cb1]{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:20px}@media (max-width: 992px){.dashboard__main[data-v-44648cb1]{grid-template-columns:1fr}}.dashboard__quick[data-v-44648cb1],.dashboard__activity[data-v-44648cb1]{min-height:300px}.card-title[data-v-44648cb1]{font-size:16px;font-weight:500}.stat-card__content[data-v-44648cb1]{display:flex;align-items:center;gap:15px}.stat-card__icon[data-v-44648cb1]{width:50px;height:50px;display:flex;align-items:center;justify-content:center;font-size:24px;border-radius:var(--border-radius-base)}.stat-card__info[data-v-44648cb1]{flex:1}.stat-card__title[data-v-44648cb1]{font-size:14px;color:var(--color-text-secondary);margin-bottom:5px}.stat-card__value[data-v-44648cb1]{font-size:24px;font-weight:600}.quick-links[data-v-44648cb1]{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}@media (max-width: 768px){.quick-links[data-v-44648cb1]{grid-template-columns:repeat(2,1fr)}}.quick-link[data-v-44648cb1]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;border-radius:var(--border-radius-base);background-color:var(--color-fill);text-decoration:none;transition:all var(--transition-duration-fast)}.quick-link[data-v-44648cb1]:hover{background-color:var(--color-primary-light-9);transform:translateY(-2px)}.quick-link__icon[data-v-44648cb1]{font-size:28px;margin-bottom:10px}.quick-link__title[data-v-44648cb1]{font-size:14px;color:var(--color-text-primary)}.activity-list[data-v-44648cb1]{display:flex;flex-direction:column;gap:15px}.activity-item[data-v-44648cb1]{display:flex;align-items:center;gap:10px;padding-bottom:15px;border-bottom:1px solid var(--color-border-lighter)}.activity-item[data-v-44648cb1]:last-child{border-bottom:none;padding-bottom:0}.activity-item__action[data-v-44648cb1]{flex:1;font-size:14px;color:var(--color-text-regular)}.activity-item__time[data-v-44648cb1]{font-size:12px;color:var(--color-text-placeholder)}.system-info[data-v-44648cb1]{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}@media (max-width: 768px){.system-info[data-v-44648cb1]{grid-template-columns:1fr}}.system-info__item[data-v-44648cb1]{display:flex;align-items:center;gap:10px}.system-info__label[data-v-44648cb1]{font-size:14px;color:var(--color-text-secondary);min-width:80px}.system-info__value[data-v-44648cb1]{font-size:14px;color:var(--color-text-primary)}.user-page[data-v-d2491ae0]{padding:20px}.user-page .search-card[data-v-d2491ae0]{margin-bottom:20px}.user-page .toolbar[data-v-d2491ae0]{margin-bottom:15px}.data-table[data-v-d2491ae0]{width:100%;border-collapse:collapse}.data-table th[data-v-d2491ae0],.data-table td[data-v-d2491ae0]{padding:12px;text-align:left;border-bottom:1px solid var(--color-border-lighter)}.data-table th[data-v-d2491ae0]{font-weight:500;color:var(--color-text-regular);background-color:var(--color-fill-light)}.data-table .loading-cell[data-v-d2491ae0],.data-table .empty-cell[data-v-d2491ae0]{text-align:center;color:var(--color-text-secondary);padding:40px}.pagination-wrapper[data-v-d2491ae0]{display:flex;justify-content:flex-end;margin-top:20px}.role-page[data-v-8ad30bc6]{padding:20px}.role-page .search-card[data-v-8ad30bc6]{margin-bottom:20px}.role-page .toolbar[data-v-8ad30bc6]{margin-bottom:15px}.data-table[data-v-8ad30bc6]{width:100%;border-collapse:collapse}.data-table th[data-v-8ad30bc6],.data-table td[data-v-8ad30bc6]{padding:12px;text-align:left;border-bottom:1px solid var(--color-border-lighter)}.data-table th[data-v-8ad30bc6]{font-weight:500;color:var(--color-text-regular);background-color:var(--color-fill-light)}.data-table .loading-cell[data-v-8ad30bc6],.data-table .empty-cell[data-v-8ad30bc6]{text-align:center;color:var(--color-text-secondary);padding:40px}.pagination-wrapper[data-v-8ad30bc6]{display:flex;justify-content:flex-end;margin-top:20px}.menu-page[data-v-2a272a68]{padding:20px}.menu-page .toolbar[data-v-2a272a68]{margin-bottom:15px}.tree-table[data-v-2a272a68]{width:100%;border-collapse:collapse}.tree-table th[data-v-2a272a68],.tree-table td[data-v-2a272a68]{padding:12px;text-align:left;border-bottom:1px solid var(--color-border-lighter)}.tree-table th[data-v-2a272a68]{font-weight:500;color:var(--color-text-regular);background-color:var(--color-fill-light)}.tree-table .tree-row--level-1 td[data-v-2a272a68]:first-child{padding-left:30px}.tree-indent[data-v-2a272a68]{display:inline-block;width:20px}.menu-name[data-v-2a272a68]{cursor:pointer;color:var(--color-primary)}.menu-name[data-v-2a272a68]:hover{text-decoration:underline}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xto-fronted",
3
- "version": "0.4.40",
3
+ "version": "0.4.41",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "XTO 前端应用框架",
@@ -19,72 +19,46 @@ const authStore = useAuthStore()
19
19
  // 当前激活的一级菜单路径
20
20
  const activeTopMenuPath = ref<string>('')
21
21
 
22
- // 计算当前激活的一级菜单
22
+ // 获取当前选中一级菜单的子菜单
23
+ const currentSubMenuList = computed(() => {
24
+ const topMenu = menuStore.menuList.find(menu => menu.menuUrl === activeTopMenuPath.value)
25
+ return topMenu?.children || []
26
+ })
27
+
28
+ // 计算当前激活的一级菜单(根据当前路由)
23
29
  const currentTopMenu = computed(() => {
24
30
  return menuStore.menuList.find(menu => {
25
31
  // 检查当前路由是否属于该一级菜单
26
- if (route.path.startsWith(menu.menuUrl)) return true
32
+ if (route.path === menu.menuUrl) return true
27
33
  if (menu.children && menu.children.some(child => route.path.startsWith(child.menuUrl) || route.path === child.menuUrl)) return true
28
34
  return false
29
35
  })
30
36
  })
31
37
 
32
- // 初始化激活的一级菜单
38
+ // 初始化激活的一级菜单并更新子菜单
33
39
  const initActiveTopMenu = () => {
40
+ // 先根据当前路由找到对应的一级菜单
34
41
  if (currentTopMenu.value) {
35
42
  activeTopMenuPath.value = currentTopMenu.value.menuUrl
36
43
  } else if (menuStore.menuList.length > 0) {
44
+ // 默认选择第一个一级菜单
37
45
  activeTopMenuPath.value = menuStore.menuList[0].menuUrl
38
46
  }
39
47
  }
40
48
 
41
- // 监听路由变化,更新激活的一级菜单
42
- watch(() => route.path, () => {
43
- initActiveTopMenu()
44
- }, { immediate: true })
45
-
46
- // 监听菜单列表变化
47
- watch(() => menuStore.menuList, () => {
48
- initActiveTopMenu()
49
- }, { immediate: true })
50
-
51
- // 获取当前选中一级菜单的子菜单
52
- const currentSubMenuList = computed(() => {
53
- const topMenu = menuStore.menuList.find(menu => menu.menuUrl === activeTopMenuPath.value)
54
- return topMenu?.children || []
55
- })
56
-
57
- // 更新 appStore 中的当前子菜单列表
58
- watch(currentSubMenuList, (list) => {
59
- appStore.setMixSubMenus(list)
60
- }, { immediate: true })
61
-
62
- // 菜单主题相关
63
- const menuBgColor = computed(() => appStore.isDark ? '#1d1e1f' : '#fff')
64
- const menuTextColor = computed(() => appStore.isDark ? '#cfd3dc' : '#303133')
65
- const menuActiveTextColor = computed(() => '#409eff')
66
-
67
- // 下拉菜单
68
- const dropdownVisible = ref(false)
69
- const dropdownRef = ref<HTMLElement | null>(null)
70
- const isFullscreen = ref(false)
71
- const drawerVisible = ref(false)
72
- const greyMode = ref(false)
73
-
74
49
  // 一级菜单选择处理
75
50
  const handleTopMenuSelect = (index: string) => {
76
51
  activeTopMenuPath.value = index
77
52
  const topMenu = menuStore.menuList.find(menu => menu.menuUrl === index)
78
53
 
79
54
  if (topMenu) {
80
- // 如果有子菜单,导航到第一个子菜单或保持当前位置
55
+ // 如果有子菜单,导航到第一个子菜单
81
56
  if (topMenu.children && topMenu.children.length > 0) {
82
57
  // 检查当前路由是否已经在该一级菜单的子菜单下
83
58
  const isInSubMenus = topMenu.children.some(child =>
84
59
  route.path.startsWith(child.menuUrl) || route.path === child.menuUrl
85
60
  )
86
61
  if (!isInSubMenus) {
87
- // 导航到第一个子菜单
88
62
  router.push(topMenu.children[0].menuUrl)
89
63
  }
90
64
  } else {
@@ -96,6 +70,32 @@ const handleTopMenuSelect = (index: string) => {
96
70
  }
97
71
  }
98
72
 
73
+ // 菜单主题相关
74
+ const menuBgColor = computed(() => appStore.isDark ? '#1d1e1f' : '#fff')
75
+ const menuTextColor = computed(() => appStore.isDark ? '#cfd3dc' : '#303133')
76
+ const menuActiveTextColor = computed(() => '#409eff')
77
+
78
+ // 下拉菜单
79
+ const dropdownVisible = ref(false)
80
+ const dropdownRef = ref<HTMLElement | null>(null)
81
+ const isFullscreen = ref(false)
82
+ const drawerVisible = ref(false)
83
+ const greyMode = ref(false)
84
+
85
+ // 监听路由变化,更新激活的一级菜单
86
+ watch(() => route.path, () => {
87
+ initActiveTopMenu()
88
+ appStore.setMixSubMenus(currentSubMenuList.value)
89
+ })
90
+
91
+ // 监听菜单列表变化
92
+ watch(() => menuStore.menuList, (list) => {
93
+ if (list && list.length > 0) {
94
+ initActiveTopMenu()
95
+ appStore.setMixSubMenus(currentSubMenuList.value)
96
+ }
97
+ }, { immediate: true })
98
+
99
99
  // 已知的图标名称列表
100
100
  const knownIcons = new Set([
101
101
  'arrow-up', 'arrow-down', 'arrow-left', 'arrow-right',
@@ -17,19 +17,12 @@ const sidebarWidth = computed(() =>
17
17
  // 布局模式
18
18
  const layoutMode = computed(() => appStore.layout)
19
19
 
20
- // 是否显示左侧菜单(sidebar模式和mix模式都显示)
21
- const showSidebar = computed(() => layoutMode.value === 'sidebar' || layoutMode.value === 'mix')
22
-
23
- // 是否显示顶部菜单(top模式)
24
- const showTopMenu = computed(() => layoutMode.value === 'top')
25
-
26
- // 是否显示混合顶部菜单(mix模式)
27
- const showMixTopMenu = computed(() => layoutMode.value === 'mix')
28
-
29
- // 是否显示Header(仅在sidebar模式下显示)
30
- const showHeader = computed(() => layoutMode.value === 'sidebar')
20
+ // 是否显示混合模式(mix模式)
21
+ const isMixMode = computed(() => layoutMode.value === 'mix')
31
22
 
32
23
  // 左侧菜单数据
24
+ // sidebar模式:显示全部菜单
25
+ // mix模式:显示当前选中一级菜单的子菜单
33
26
  const sidebarMenuList = computed(() => {
34
27
  if (layoutMode.value === 'sidebar') {
35
28
  return menuStore.menuList
@@ -40,35 +33,52 @@ const sidebarMenuList = computed(() => {
40
33
  return []
41
34
  })
42
35
 
43
- // 是否显示左侧菜单(mix模式下只有在有子菜单时才显示)
36
+ // mix模式下是否显示左侧菜单(有子菜单时才显示)
44
37
  const showMixSidebar = computed(() => {
45
- if (layoutMode.value !== 'mix') return showSidebar.value
46
- return appStore.mixSubMenus.length > 0
38
+ if (!isMixMode.value) return false
39
+ return sidebarMenuList.value.length > 0
47
40
  })
48
41
  </script>
49
42
 
50
43
  <template>
51
- <div class="layout" :class="`layout--${layoutMode}`">
52
- <!-- 左侧菜单布局 -->
53
- <aside v-if="showMixSidebar" class="layout__aside" :style="{ width: sidebarWidth }">
54
- <Sidebar :menu-list="sidebarMenuList" :show-logo="layoutMode !== 'mix'" :show-user="layoutMode !== 'mix'" />
44
+ <!-- sidebar模式:左侧菜单 + 顶部Header + 主内容 -->
45
+ <div v-if="layoutMode === 'sidebar'" class="layout layout--sidebar">
46
+ <aside class="layout__aside" :style="{ width: sidebarWidth }">
47
+ <Sidebar :menu-list="sidebarMenuList" :show-logo="true" :show-user="true" />
55
48
  </aside>
49
+ <div class="layout__main">
50
+ <header class="layout__header">
51
+ <Header />
52
+ </header>
53
+ <main class="layout__content">
54
+ <router-view />
55
+ </main>
56
+ </div>
57
+ </div>
56
58
 
57
- <!-- 顶部菜单布局(top模式) -->
58
- <div v-if="showTopMenu" class="layout__top-menu">
59
+ <!-- top模式:顶部菜单 + 主内容 -->
60
+ <div v-if="layoutMode === 'top'" class="layout layout--top">
61
+ <div class="layout__top-menu">
59
62
  <TopMenu />
60
63
  </div>
64
+ <div class="layout__main">
65
+ <main class="layout__content">
66
+ <router-view />
67
+ </main>
68
+ </div>
69
+ </div>
61
70
 
62
- <!-- 混合顶部菜单布局(mix模式) -->
63
- <div v-if="showMixTopMenu" class="layout__mix-top-menu">
71
+ <!-- mix模式:顶部一级菜单 + (左侧子菜单 + 主内容) -->
72
+ <div v-if="layoutMode === 'mix'" class="layout layout--mix">
73
+ <!-- 顶部一级菜单 -->
74
+ <div class="layout__mix-top-menu">
64
75
  <MixTopMenu />
65
76
  </div>
66
-
67
- <div class="layout__main">
68
- <!-- Header仅在sidebar模式下显示 -->
69
- <header v-if="showHeader" class="layout__header">
70
- <Header />
71
- </header>
77
+ <!-- 下方:左侧子菜单 + 主内容 -->
78
+ <div class="layout__mix-body">
79
+ <aside v-if="showMixSidebar" class="layout__aside" :style="{ width: sidebarWidth }">
80
+ <Sidebar :menu-list="sidebarMenuList" :show-logo="false" :show-user="false" />
81
+ </aside>
72
82
  <main class="layout__content">
73
83
  <router-view />
74
84
  </main>
@@ -85,17 +95,31 @@ const showMixSidebar = computed(() => {
85
95
  // 左侧菜单模式
86
96
  &--sidebar {
87
97
  flex-direction: row;
98
+
99
+ .layout__aside {
100
+ height: 100%;
101
+ }
102
+
103
+ .layout__main {
104
+ flex: 1;
105
+ display: flex;
106
+ flex-direction: column;
107
+ height: 100%;
108
+ }
88
109
  }
89
110
 
90
111
  // 顶部菜单模式
91
112
  &--top {
92
113
  flex-direction: column;
93
114
 
94
- .layout__aside {
95
- display: none;
115
+ .layout__main {
116
+ flex: 1;
117
+ display: flex;
118
+ flex-direction: column;
119
+ height: calc(100% - 50px);
96
120
  }
97
121
 
98
- .layout__main {
122
+ .layout__content {
99
123
  flex: 1;
100
124
  }
101
125
  }
@@ -104,16 +128,19 @@ const showMixSidebar = computed(() => {
104
128
  &--mix {
105
129
  flex-direction: column;
106
130
 
107
- .layout__main {
108
- display: flex;
109
- flex-direction: row;
110
- flex: 1;
131
+ .layout__mix-top-menu {
132
+ width: 100%;
133
+ height: 50px;
134
+ background-color: var(--bg-color);
135
+ border-bottom: 1px solid var(--color-border-lighter);
136
+ flex-shrink: 0;
111
137
  }
112
138
 
113
- .layout__content {
139
+ .layout__mix-body {
114
140
  flex: 1;
115
141
  display: flex;
116
- flex-direction: column;
142
+ flex-direction: row;
143
+ height: calc(100% - 50px);
117
144
  }
118
145
  }
119
146
 
@@ -135,8 +162,6 @@ const showMixSidebar = computed(() => {
135
162
  &__mix-top-menu {
136
163
  width: 100%;
137
164
  height: 50px;
138
- background-color: var(--bg-color);
139
- border-bottom: 1px solid var(--color-border-lighter);
140
165
  flex-shrink: 0;
141
166
  }
142
167