| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- <!DOCTYPE html>
- <html>
- <head>
- <base href="/">
- <meta charset="UTF-8">
- <title>灵越智报 - 智能报表与数据洞察平台</title>
- <meta name="description" content="灵越智报提供智能报表、实时监控与多维分析能力,为企业管理层提供决策洞察。">
- <link rel="manifest" href="manifest.json">
- <!-- Browser meta tags & icons -->
- <meta content="IE=Edge" http-equiv="X-UA-Compatible">
- <meta name="apple-mobile-web-app-capable" content="yes">
- <meta name="apple-mobile-web-app-status-bar-style" content="black">
- <meta name="apple-mobile-web-app-title" content="灵越智报">
- <link rel="apple-touch-icon" href="icons/Icon-192.png">
- <link rel="icon" type="image/png" href="favicon.png" sizes="32x32" />
- <link rel="preconnect" href="https://fonts.googleapis.com">
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
- <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600&display=swap" rel="stylesheet">
- <!-- Renderer specifier -->
- <script>
- let searchParams = new URLSearchParams(window.location.search);
- if (searchParams.has('renderer')) {
- window.flutterWebRenderer = searchParams.get('renderer');
- console.log(searchParams.get('renderer') + ' renderer requested in the URL');
- }
- // The value below is injected by flutter build, do not touch.
- var serviceWorkerVersion = "1";
- </script>
- <script src="flutter.js" defer></script>
- <script>
- function getCookie(name) {
- const value = `; ${document.cookie}`;
- const parts = value.split(`; ${name}=`);
- if (parts.length === 2) return parts.pop().split(';').shift();
- return null;
- }
- window.onload = function () {
- const language = getCookie('language');
- if (language) {
- if (language === 'en') {
- document.title = 'Lingyue Zhibao - Intelligent Reporting & Insights';
- updateMetaDescription('Lingyue Zhibao delivers intelligent business reports, real-time monitoring, and multidimensional analytics to support faster enterprise decisions.');
- } else if (language === 'zh') {
- document.title = '灵越智报 - 智能报表与数据洞察平台';
- updateMetaDescription('灵越智报提供智能报表、实时监控与多维分析能力,为企业管理层提供决策洞察。');
- } else {
- document.title = '灵越智报 - 智能报表与数据洞察平台';
- updateMetaDescription('灵越智报提供智能报表、实时监控与多维分析能力,为企业管理层提供决策洞察。');
- }
- } else {
- document.title = '灵越智报 - 智能报表与数据洞察平台';
- updateMetaDescription('灵越智报提供智能报表、实时监控与多维分析能力,为企业管理层提供决策洞察。');
- }
- };
- function updateMetaDescription(description) {
- let metaDescription = document.querySelector('meta[name="description"]');
- if (metaDescription) {
- metaDescription.setAttribute('content', description);
- } else {
- metaDescription = document.createElement('meta');
- metaDescription.setAttribute('name', 'description');
- metaDescription.setAttribute('content', description);
- document.head.appendChild(metaDescription);
- }
- }
- </script>
- </head>
- <body>
- <style>
- body {
- background-color: #fff;
- }
- </style>
- <!-- Loading indicator -->
- <div id="loading">
- <style>
- body {
- inset: 0;
- overflow: hidden;
- margin: 0;
- padding: 0;
- position: fixed;
- }
- #loading {
- align-items: center;
- display: flex;
- height: 100%;
- justify-content: center;
- width: 100%;
- }
- #loading img {
- animation: 1s ease-in-out 0s infinite alternate breathe;
- opacity: .66;
- transition: opacity .4s;
- }
- #loading.main_done img {
- opacity: 1;
- }
- #loading.init_done img {
- animation: .33s ease-in-out 0s 1 forwards zooooom;
- opacity: .05;
- }
- @keyframes breathe {
- from {
- transform: scale(1)
- }
- to {
- transform: scale(0.95)
- }
- }
- @keyframes zooooom {
- from {
- transform: scale(1)
- }
- to {
- transform: scale(10)
- }
- }
- </style>
- <img src="icons/Icon-192.png" alt="Loading indicator..." />
- </div>
- <script>
- window.addEventListener('load', function () {
- var loading = document.querySelector('#loading');
- _flutter.loader.loadEntrypoint({
- serviceWorker: {
- serviceWorkerVersion: serviceWorkerVersion,
- },
- onEntrypointLoaded: async function(engineInitializer) {
- let appRunner = await engineInitializer.initializeEngine({
- canvasKitBaseUrl: "/assets/canvaskit/"
- });
- await appRunner.runApp();
- }
- }).then(function (engineInitializer) {
- loading.classList.add('main_done');
- return engineInitializer.initializeEngine();
- }).then(function (appRunner) {
- loading.classList.add('init_done');
- return appRunner.runApp();
- }).then(function (app) {
- window.setTimeout(function () {
- loading.remove();
- }, 200);
- });
- });
- </script>
- <!-- App -->
- </body>
- </html>
|