import '@tabler/core/dist/css/tabler.css'; import '@tabler/core/dist/js/tabler.min'; import '@tabler/icons-webfont/dist/tabler-icons.min.css'; import './app.css'; import {Exit, GetConfig, SaveConfig} from '../wailsjs/go/main/App'; import {config} from '../wailsjs/go/models'; function getServers($form: HTMLFormElement) { const formData = new FormData($form); const entries = Object.fromEntries(formData.entries()); let servers = new Array; for (const key in entries) { const address = entries[key] as string; if (address) { servers.push(address); } } return servers } // 显示渲染异常 function showPanicError() { document.body.innerHTML = `Panic Error`; } // 显示引导设置完毕界面 function showBootstrapDone($container: Element) { $container.innerHTML = `

完成配置

所有配置均已完成,客户端需要重新启动后才可正常使用。点击下方退出按钮继续

退出后请在桌面找到客户端图标重新打开即可

` const $exitBtn = document.getElementById('app-exit') as HTMLElement; $exitBtn?.addEventListener('click', (_e) => { Exit().then() }) } // 显示引导设置界面 function showBootstrapView($container: Element) { $container.innerHTML = `
index

快速开始

欢迎使用山东西曼克技术有限公司 ( SIMANC ) 开发的穿梭车立体仓库调度系统 ( WCS )

设置
http://
请输入 WCS 部署在内网的服务器 IP 地址
http://
25% Complete
` const $form = $container.querySelector('#serverForm') as HTMLFormElement; const $formNext = $container.querySelector('#formNext'); $formNext?.addEventListener('click', (_e) => { if (!$form.reportValidity()) { console.log('校验失败'); return; } const servers = getServers($form); SaveConfig({ servers }).then(() => { showBootstrapDone($container) }) }) } // 加载服务器时的 Loading function showServerLoading($container: Element) { $container.innerHTML = `
正在加载
` } function setURL(server: string) { document.location.replace(`http://${server}`) } // main 函数 document.addEventListener('DOMContentLoaded', () => { const $container = document.querySelector('.container'); if (!$container) { showPanicError(); return; } // 先尝试获取配置文件, 如果配置文件不存在, 则表明为首次加载 GetConfig().then((config: config.Config) => { console.log(config); showServerLoading($container) // TODO 需要选取服务器地址后再设定 setURL(config.servers[0]) }).catch((error: Error) => { // 显示引导 console.log(`首次启动: ${error}`); showBootstrapView($container) }) })