import { w2layout, w2ui } from "../../vendor/w2ui"; import { getCurrentUser, clearSession } from "../../services/authState"; import { loadFolders } from "./modules/folders"; import { bindModelActions } from "./modules/models"; import { renderLogin } from "../login/login"; import "./app.css"; import "./dialogs.css"; export async function renderApp() { const currentUser = getCurrentUser(); const isAdmin = currentUser?.role === "admin"; const isFixedLogin = document.body.dataset.authMode === "fixed"; document.querySelector("#app")!.innerHTML = `
DMT 模型库 未选择目录
${currentUser?.username ?? ""} ${isFixedLogin ? "" : ``}
`; renderWorkspaceLayout(); document.querySelector("#logoutBtn")?.addEventListener("click", () => { clearSession(); renderLogin(renderApp); }); bindModelActions(); await loadFolders(); } function renderWorkspaceLayout() { const workspace = document.querySelector("#workspaceLayout")!; const treeTemplate = document.querySelector("#treePanelTemplate")!; const modelTemplate = document.querySelector("#modelPanelTemplate")!; const existingLayout = w2ui.modelLibraryLayout; if (existingLayout?.destroy) { existingLayout.destroy(); } const layout = new w2layout({ name: "modelLibraryLayout", padding: 0, panels: [ { type: "left", size: 180, minSize: 150, resizable: true, overflow: "hidden", html: treeTemplate.innerHTML }, { type: "main", overflow: "hidden", html: modelTemplate.innerHTML } ] }); layout.render(workspace); }