From a4f07b2a0ddb6c210e05afbbb491feeb466203e7 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 09 三月 2026 19:15:50 +0800
Subject: [PATCH] #V3重大更新,升级JDK17,升级SpirngBoot3.5.1

---
 src/main/webapp/views/login.html |   65 ++++++++++++++++++++++++++------
 1 files changed, 52 insertions(+), 13 deletions(-)

diff --git a/src/main/webapp/views/login.html b/src/main/webapp/views/login.html
index 5094c39..640e406 100644
--- a/src/main/webapp/views/login.html
+++ b/src/main/webapp/views/login.html
@@ -7,7 +7,7 @@
     <link rel="icon" type="image/x-icon" href="../static/images/wcs_logo.png" />
     <link rel="stylesheet" href="../static/css/animate.min.css">
     <script type="text/javascript" src="../static/layui/layui.js"></script>
-    <script type="text/javascript" src="../static/js/common.js"></script>
+    <script type="text/javascript" src="../static/js/common.js?v=20260309_i18n_fix1"></script>
     <style>
         html{
             height: 100%;
@@ -81,43 +81,62 @@
             border-radius: 4px;
             height: 52px;
         }
+        .login-lang {
+            position: fixed;
+            top: 20px;
+            right: 24px;
+            z-index: 2;
+        }
+        .login-lang select {
+            min-width: 140px;
+            height: 34px;
+            padding: 0 10px;
+            border: 1px solid #d6dbe6;
+            border-radius: 17px;
+            background: rgba(255, 255, 255, 0.92);
+            color: #3b4a5a;
+            outline: none;
+        }
     </style>
 </head>
 <body class="login-bg animsition">
 
+<div class="login-lang">
+    <select id="lang-switch" aria-label="Language"></select>
+</div>
 <div id="login-wrapper" class="animate__animated animate__bounceInDown">
     <header>
-        <h2 id="login-title" style="cursor: pointer; user-select: none;">WCS绯荤粺V3.0</h2>
+        <h2 id="login-title" data-i18n-key="login.title" style="cursor: pointer; user-select: none;">WCS绯荤粺V3.0</h2>
     </header>
     <div class="layui-form layadmin-user-login-body">
         <div class="layui-form-item">
             <label class="layui-icon layui-icon-cellphone layadmin-user-login-icon"></label>
-            <input id="mobile" class="layui-input" type="text" name="mobile" lay-verify="mobile" placeholder="璐﹀彿">
+            <input id="mobile" class="layui-input" type="text" name="mobile" lay-verify="mobile" data-i18n-placeholder-key="login.username" placeholder="璐﹀彿">
         </div>
         <div class="layui-form-item">
             <label class="layui-icon layui-icon-password layadmin-user-login-icon"></label>
-            <input id="password" class="layui-input" type="password" name="password" lay-verify="password" placeholder="瀵嗙爜">
+            <input id="password" class="layui-input" type="password" name="password" lay-verify="password" data-i18n-placeholder-key="login.password" placeholder="瀵嗙爜">
         </div>
     </div>
     <div class="layui-form-item login-submit">
-        <button id="login-button" class="layui-btn layui-btn-fluid layui-btn-normal" lay-submit="" lay-filter="login">鐧� &nbsp  &nbsp 褰�</button>
+        <button id="login-button" data-i18n-key="login.submit" class="layui-btn layui-btn-fluid layui-btn-normal" lay-submit="" lay-filter="login">鐧� &nbsp  &nbsp 褰�</button>
     </div>
 </div>
 <div id="system-tools-panel" style="display: none; padding: 20px;">
     <div style="margin-bottom: 18px;">
-        <div style="margin-bottom: 10px; color: #666; font-weight: 600;">鎺ㄨ崘鎿嶄綔</div>
+        <div data-i18n-key="login.tools.recommended" style="margin-bottom: 10px; color: #666; font-weight: 600;">鎺ㄨ崘鎿嶄綔</div>
         <div style="display: flex; flex-wrap: wrap; gap: 12px;">
-            <button class="layui-btn layui-btn-normal layui-btn-sm" id="btn-request-code">鑾峰彇璇锋眰鐮�</button>
-            <button class="layui-btn layui-btn-normal layui-btn-sm" id="btn-activate">涓�閿縺娲�</button>
+            <button data-i18n-key="login.tools.requestCode" class="layui-btn layui-btn-normal layui-btn-sm" id="btn-request-code">鑾峰彇璇锋眰鐮�</button>
+            <button data-i18n-key="login.tools.activate" class="layui-btn layui-btn-normal layui-btn-sm" id="btn-activate">涓�閿縺娲�</button>
         </div>
-        <div style="margin-top: 8px; color: #999; font-size: 12px;">浼樺厛浣跨敤鈥滆幏鍙栬姹傜爜鈥濆拰鈥滀竴閿縺娲烩�濆畬鎴愯鍙瘉鐢宠涓庢縺娲汇��</div>
+        <div data-i18n-key="login.tools.recommendedDesc" style="margin-top: 8px; color: #999; font-size: 12px;">浼樺厛浣跨敤鈥滆幏鍙栬姹傜爜鈥濆拰鈥滀竴閿縺娲烩�濆畬鎴愯鍙瘉鐢宠涓庢縺娲汇��</div>
     </div>
     <div>
-        <div style="margin-bottom: 10px; color: #666; font-weight: 600;">鍏朵粬宸ュ叿</div>
+        <div data-i18n-key="login.tools.others" style="margin-bottom: 10px; color: #666; font-weight: 600;">鍏朵粬宸ュ叿</div>
         <div style="display: flex; flex-wrap: wrap; gap: 12px;">
-            <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-project-name">鑾峰彇椤圭洰鍚嶇О</button>
-            <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-server-info">鑾峰彇绯荤粺閰嶇疆</button>
-            <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-upload-license">褰曞叆璁稿彲璇�</button>
+            <button data-i18n-key="login.tools.projectName" class="layui-btn layui-btn-primary layui-btn-sm" id="btn-project-name">鑾峰彇椤圭洰鍚嶇О</button>
+            <button data-i18n-key="login.tools.serverInfo" class="layui-btn layui-btn-primary layui-btn-sm" id="btn-server-info">鑾峰彇绯荤粺閰嶇疆</button>
+            <button data-i18n-key="login.tools.uploadLicense" class="layui-btn layui-btn-primary layui-btn-sm" id="btn-upload-license">褰曞叆璁稿彲璇�</button>
         </div>
     </div>
 </div>
@@ -132,6 +151,26 @@
             layer = layui.layer,
             $ = layui.jquery;
 
+        function initLanguageSwitch() {
+            WCS_I18N.onReady(function (i18n) {
+                var select = document.getElementById('lang-switch');
+                var options = i18n.getLocaleOptions();
+                var current = i18n.getLocale();
+                var html = '';
+                var i;
+                for (i = 0; i < options.length; i++) {
+                    html += '<option value="' + options[i].tag + '"' + (options[i].tag === current ? ' selected' : '') + '>' + options[i].label + '</option>';
+                }
+                select.innerHTML = html;
+                select.onchange = function () {
+                    i18n.setLocale(this.value);
+                };
+                document.title = i18n.t('login.title');
+            });
+        }
+
+        initLanguageSwitch();
+
         // 杩炵画鐐瑰嚮涓夋鏍囬鏄剧ず闅愯棌鍔熻兘
         var titleClickCount = 0;
         var titleClickTimer = null;

--
Gitblit v1.9.1