自动化立体仓库 - WMS系统
lty
2026-01-22 35b1b26f1fe16550b4ee2881a26d599456fe59b4
src/main/webapp/views/index.html
@@ -10,9 +10,7 @@
  <link rel="stylesheet" href="../static/layui/css/layui.css" media="all">
  <link rel="stylesheet" href="../static/css/admin.css?v=318" media="all">
  <link rel="stylesheet" href="../static/css/loader.css" media="all">
  <!-- 引入 AutoTranslate 模块 -->
  <script src="https://cdn.jsdelivr.net/gh/Mr-vero/AutoTranslate@v.1.0.1/dist/autoTranslate.js"></script>
  <style>
    .layui-logo img {
      width: 25px;
@@ -45,17 +43,17 @@
    </ul>
    <ul class="layui-nav layui-layout-right">
      <li class="layui-nav-item" lay-unselect>
        <a><i class="layui-icon layui-icon-website"></i> <span id="currentLang">语言</span></a>
        <a><i class="layui-icon layui-icon-website"></i> <span id="currentLang" data-i18n="language">语言</span></a>
        <dl class="layui-nav-child">
          <dd><a href="javascript:;" class="notranslate" onclick="changeLanguage('chinese_simplified', '简体中文')">简体中文</a></dd>
          <dd><a href="javascript:;" class="notranslate" onclick="changeLanguage('zh-cn')">简体中文</a></dd>
<!--          <dd><a href="javascript:;" class="notranslate" onclick="changeLanguage('chinese_traditional', '繁體中文')">繁體中文</a></dd>-->
          <dd><a href="javascript:;" class="notranslate" onclick="changeLanguage('english', 'English')">English</a></dd>
          <dd><a href="javascript:;" class="notranslate" onclick="changeLanguage('en')">English</a></dd>
<!--          <dd><a href="javascript:;" class="notranslate" onclick="changeLanguage('japanese', '日本語')">日本語</a></dd>-->
<!--          <dd><a href="javascript:;" class="notranslate" onclick="changeLanguage('korean', '한국어')">한국어</a></dd>-->
        </dl>
      </li>
      <li class="layui-nav-item" lay-unselect id="licenseShow" style="display: none;user-select: none;">
        <div style="color: red;">临时许可证有效期:<span id="licenseDays">29</span>天</div>
        <div style="color: red;"><span data-i18n="license_validity_prefix">临时许可证有效期:</span><span id="licenseDays">29</span><span data-i18n="license_validity_suffix">天</span></div>
      </li>
      <li class="layui-nav-item layui-hide-xs" lay-unselect>
        <a ew-event="fullScreen" title="全屏"><i class="layui-icon layui-icon-screen-full"></i></a>
@@ -65,13 +63,13 @@
          <cite id="username" style="margin-right: 5px">管理员</cite>
        </a>
        <dl class="layui-nav-child">
          <dd lay-unselect><a ew-href="detail.html?resourceId=8">基本资料</a></dd>
          <dd lay-unselect><a ew-href="detail.html?resourceId=8" data-i18n="basic_info">基本资料</a></dd>
          <hr>
          <dd lay-unselect><a id="logout">退出</a></dd>
          <dd lay-unselect><a id="logout" data-i18n="logout">退出</a></dd>
        </dl>
      </li>
      <li class="layui-nav-item" lay-unselect>
        <a ew-event="theme" title="主题"><i class="layui-icon layui-icon-more-vertical"></i></a>
        <a ew-event="theme" title="主题" data-i18n="主题" data-i18n-attr="title"><i class="layui-icon layui-icon-more-vertical"></i></a>
      </li>
    </ul>
  </div>
@@ -103,6 +101,7 @@
<script type="text/javascript" src="../static/layui/layui.js"></script>
<script type="text/javascript" src="../static/js/handlebars/handlebars-v4.5.3.js"></script>
<script type="text/javascript" src="../static/js/common.js"></script>
<script type="text/javascript" src="../static/js/i18n/i18n-helper.js"></script>
<script>
  console.log('%c 中扬立库平台 %c 1.0.0','background-color:rgb(53,73,94);color: #fff;border-radius:2px 0 0 2px;padding:2px 4px;','background-color:rgb(25,190,107);color: #fff;border-radius:0 2px 2px 0;padding:2px 4px;font: 9pt "Apercu Regular", Georgia, "Times New Roman", Times, serif;');
  $(function () {
@@ -123,6 +122,13 @@
    var admin = layui.admin;
    var notice = layui.notice;
    // Register Handlebars helper for i18n
    if (typeof Handlebars !== 'undefined' && typeof I18n !== 'undefined') {
        Handlebars.registerHelper('t', function(key) {
            return I18n.t(key);
        });
    }
    var easywebIframeMsg = localStorage.getItem("easyweb-iframe");
    if (!isEmpty(easywebIframeMsg)) {
      var easywebIframeObj = JSON.parse(easywebIframeMsg);
@@ -140,11 +146,21 @@
        // 关闭加载动画
        $('.layuimini-loader').fadeOut();
        if (res.code === 200) {
          // Register Handlebars helper for i18n
          Handlebars.registerHelper('t', function(key) {
              return I18n.t(key);
          });
          var tpl = $('#menuTpl').html();
          var template = Handlebars.compile(tpl);
          var html = template(res);
          $("#menu-main").html(html);
          element.init();
          // 默认加载主页 (Move here to ensure menu is loaded for tab title translation)
          index.loadHome({
            menuPath: baseUrl+'/views/home/navigation.html',
            menuName: '<i class="layui-icon layui-icon-home"></i>'
          });
        } else if (res.code === 403) {
          top.location.href = baseUrl + "/login";
        } else {
@@ -163,7 +179,7 @@
          if (days <= 30) {
            $("#licenseShow").show()
            $("#licenseDays").html(days)
            alert("临时许可有效期:" + days + "天")
            alert(I18n.t('license_validity_prefix') + days + I18n.t('license_validity_suffix'))
          }
        }else {
          top.location.href = baseUrl + "/login";
@@ -171,11 +187,11 @@
      }
    });
    // 默认加载主页
    index.loadHome({
      menuPath: baseUrl+'/views/home/navigation.html',
      menuName: '<i class="layui-icon layui-icon-home"></i>'
    });
    // 默认加载主页 (Moved to menu auth success callback)
    // index.loadHome({
    //   menuPath: baseUrl+'/views/home/navigation.html',
    //   menuName: '<i class="layui-icon layui-icon-home"></i>'
    // });
    $('#username').text(localStorage.getItem('username'));
@@ -196,32 +212,48 @@
<script type="text/html" id="menuTpl">
  {{#each data}}
  <li class="layui-nav-item">
    <a><i class="layui-icon {{this.menuIcon}}"></i>&emsp;<cite>{{this.menu}}</cite></a>
    <a><i class="layui-icon {{this.menuIcon}}"></i>&emsp;<cite data-i18n="{{this.menu}}">{{t this.menu}}</cite></a>
    <dl class="layui-nav-child">
      {{#each this.subMenu}}
      <dd><a lay-href="{{this.code}}?resourceId={{this.id}}">{{this.name}}</a></dd>
      <dd><a lay-href="{{this.code}}?resourceId={{this.id}}" data-i18n-key="{{this.name}}"><span data-i18n="{{this.name}}">{{t this.name}}</span></a></dd>
      {{/each}}
    </dl>
  </li>
  {{/each}}
</script>
<script src="../static/js/translate.js"></script>
<!--chinese_simplified-->
<!-- 引入 layui 的 translate.js AI翻译模块,自行下载这个js放到你自己项目里。 js下载地址:  https://raw.githubusercontent.com/xnx3/translate/refs/heads/master/extend/layui/layui_exts/translate/translate.js  -->
<script>
  translate.language.setLocal('chinese_simplified');    //设置本地语种,如果不设置会自动识别 http://translate.zvo.cn/4066.html
  translate.service.use('client.edge');    //设置翻译通道 http://translate.zvo.cn/4081.html
  translate.visual.webPageLoadTranslateBeforeHiddenText();    //网页打开时自动隐藏文字,翻译完成后显示译文。 参考文档 http://translate.zvo.cn/549731.html
  translate.progress.api.startUITip();    //启用翻译中的遮罩层 参考文档 http://translate.zvo.cn/407105.html
  translate.selectLanguageTag.show = false; //不出现的select的选择语言
  translate.ignore.class.push('notranslate'); //添加 notranslate 类到忽略列表,使语言下拉框不参与翻译
  window.onload = function () {    //当页面DOM加载完后执行翻译操作
    translate.execute();    //进行翻译的执行
  };
  // Initialize language display
  var currentLang = I18n.getLanguage();
  if (currentLang === 'en') {
      $('#currentLang').text('English');
  } else {
      $('#currentLang').text('简体中文');
  }
  // 切换语言函数
  function changeLanguage(lang, displayName) {
    translate.changeLanguage(lang);
  // Language switching function
  function changeLanguage(lang) {
      if (lang === I18n.getLanguage()) return;
      // Update parent page
      I18n.setLanguage(lang);
      // Update display text
      if (lang === 'en') {
          $('#currentLang').text('English');
      } else {
          $('#currentLang').text('简体中文');
      }
      // Notify all iframes
      $('iframe').each(function() {
          try {
              if (this.contentWindow && this.contentWindow.I18n) {
                  this.contentWindow.I18n.setLanguage(lang);
              }
          } catch (e) {
              console.error('Cannot access iframe:', e);
          }
      });
  }
</script>
</body>