czt
2025-11-27 1f455e5cda9016054c531bbae6b1639fe646628f
框架调整,及库区切换
已修改15个文件
已添加2个文件
883 ■■■■■ 文件已修改
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Depot.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/CompanyRepository.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DepotRepository.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DeptRepository.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreCompanyService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreDeptService.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DepotService.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/ContextUtil.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/CompanyPR.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/DeptPR.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/SelectDept.view.xml 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/SelectDeptPR.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/SysIndexController.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/static/axui/loginAndRegister.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/static/ruoyi/login.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/index-topnav.html 552 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Depot.java
@@ -97,11 +97,11 @@
    @TableField("bulk_weight")
    private Double bulkWeight;
    @Column(name = "store_keeper", columnDefinition = "varchar(4) COMMENT '保管员'")
    @Column(name = "store_keeper", columnDefinition = "varchar(40) COMMENT '保管员'")
    @TableField("store_keeper")
    private String storeKeeper;
    @Column(name = "store_keeper_name", columnDefinition = "varchar(4) COMMENT '保管员'")
    @Column(name = "store_keeper_name", columnDefinition = "varchar(40) COMMENT '保管员'")
    @TableField("store_keeper_name")
    private String storeKeeperName;
fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/CompanyRepository.java
@@ -17,6 +17,25 @@
public interface CompanyRepository extends JpaRepository<Company, String> {
    /**
     * æ ¹æ®id获取信息
     *
     * @param id
     * @return
     */
    @Query("from Company where id =:id order by id")
    List<Company> getDataById(@Param("id") String id);
    /**
     * æ ¹æ®companyId获取信息
     *
     * @param parentId
     * @return
     */
    @Query("from Company where id like:parentId order by id")
    List<Company> getDataByParentId(@Param("parentId") String parentId);
    /**
     * æ ¹æ®companyId获取信息
     *
     * @param companyId
fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DepotRepository.java
@@ -75,4 +75,13 @@
    @Modifying
    @Query("update Depot set storageReal =:weight where id =:depotId")
    void updateDepotStorage(@Param("weight") Double weight, @Param("depotId") String depotId);
    /**
     * èŽ·å–åº“åŒºä¸‹æœ€å¤§ä»“åº“ç¼–ç 
     *
     * @param deptId
     * @return
     */
    @Query("from Depot where deptId =:deptId order by id")
    List<Depot> getDepotMaxId(@Param("deptId") String deptId);
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DeptRepository.java
@@ -19,11 +19,20 @@
    /**
     * æ ¹æ®id获取信息
     *
     * @param id
     * @param parentId
     * @return
     */
    @Query("from Dept where id like:parentId order by id")
    List<Dept> getDataByParentId(@Param("parentId") String parentId);
    /**
     * æ ¹æ®companyId获取信息
     *
     * @param companyId
     * @return
     */
    @Query("from Dept where id =:id order by id")
    Dept getDataById(@Param("id") String id);
    List<Dept> getDataById(@Param("id") String id);
    /**
     * æ ¹æ®companyId获取信息
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreCompanyService.java
@@ -4,6 +4,7 @@
import com.fzzy.igds.repository.CompanyRepository;
import com.fzzy.igds.utils.ContextUtil;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -23,7 +24,16 @@
    /**
     * jpa查询公司信息
     * @param companyId
     * @param id
     * @return
     */
    public List<Company> getDataById(String id) {
        return companyRepository.getDataById(id);
    }
    /**
     * jpa查询公司信息
     * @return
     */
    public List<Company> getAllData(String companyId) {
@@ -35,6 +45,16 @@
    }
    /**
     * jpa查询公司信息
     * @return
     */
    public List<Company> getDataByParentId() {
        SysUser user = ContextUtil.getLoginUser();
        return companyRepository.getDataByParentId(user.getDeptId() + "%");
    }
    /**
     * jpa新增公司信息
     * @param sysDept
     * @return
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreDeptService.java
@@ -1,10 +1,13 @@
package com.fzzy.igds.service;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.domain.Dept;
import com.fzzy.igds.repository.DeptRepository;
import com.fzzy.igds.utils.ContextUtil;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.service.ISysDeptService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
@@ -19,19 +22,33 @@
public class CoreDeptService {
    @Resource
    private ISysDeptService iSysDeptService;
    @Resource
    private DeptRepository deptRepository;
    /**
     * jpa查询信息
     * @param companyId
     * @param parentId
     * @return
     */
    public List<Dept> getAllData(String companyId) {
    public List<Dept> getDataByParentId(String parentId) {
        return deptRepository.getDataByParentId(parentId + "%");
    }
        if (StringUtils.isEmpty(companyId)) {
            companyId = ContextUtil.getCompanyId();
    /**
     * jpa查询信息
     * @return
     */
    public List<Dept> getDeptData() {
        SysUser user = ContextUtil.getLoginUser();
        SysDept userDept = iSysDeptService.selectDeptById(user.getDeptId());
        if (Constant.DEPT_TYPE_20.equals(userDept.getType())) {
            return deptRepository.getDataById(ContextUtil.subDeptId(user));
        }else {
            return deptRepository.getDataByParentId(user.getDeptId() + "%");
        }
        return deptRepository.getAllData(companyId);
    }
    /**
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DepotService.java
@@ -26,11 +26,6 @@
    private DepotRepository depotRepository;
    @Resource
    private RedisCache redisCache;
    @Resource
    private SysDeptMapper deptMapper;
    @Resource
    private DepotStoreService depotStoreService;
    /**
     * jpa查询仓库列表
@@ -72,14 +67,37 @@
        if (StringUtils.isEmpty(depot.getDeptId())) {
            depot.setDeptId(ContextUtil.subDeptId(null));
        }
        //主键ID
        if (StringUtils.isEmpty(depot.getId())) {
            depot.setId(getStrId(depot.getDeptId()));
            depot.setCreateBy(ContextUtil.getLoginUserName());
            depot.setCreateTime(new Date());
        }
        //默认顺序号
        if(null == depot.getOrderNum()){
            depot.setOrderNum(1);
        }
        depot.setUpdateBy(ContextUtil.getLoginUserName());
        depot.setUpdateTime(new Date());
        depotRepository.save(depot);
        flushCache(depot.getCompanyId());
    }
    /**
     * èŽ·å–ä¸»é”®ID
     * @param deptId
     * @param deptId
     */
    public String getStrId(String deptId) {
        List<Depot> depots = depotRepository.getDepotMaxId(deptId);
        String oldOrderId = null;
        if(null != depots && depots.size() > 0){
            oldOrderId = depots.get(0).getId().substring(deptId.length());
        }
        return deptId + ContextUtil.getOrderId(oldOrderId, 3);
    }
    /**
     * jpa更新仓库状态
     * @param depotId
     * @param status
fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/ContextUtil.java
@@ -3,8 +3,8 @@
import com.ruoyi.common.config.FrameworkConfig;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.common.utils.StringUtils;
import org.apache.commons.lang3.RandomUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import java.time.LocalDateTime;
@@ -95,4 +95,31 @@
        if (null == deptId) return;
        contextUserDept.put(userId, deptId);
    }
    /**
     * èŽ·å–é¡ºåºå·
     * @param oldOrderId åŽŸæœ‰é¡ºåºå·
     * @param num ä½æ•°
     * @return
     */
    public static String getOrderId(String oldOrderId, Integer num) {
        Integer index3 = 1001;
        Integer index4 = 10001;
        Integer index5 = 100001;
        Integer index = 0;
        String orderId = "001";
        if(StringUtils.isNotEmpty(oldOrderId)){
            index = Integer.valueOf(oldOrderId);
        }
        if(3 == num){
            orderId = ((index3 + index) + "").substring(1);
        }
        if(4 == num){
            orderId = ((index4 + index) + "").substring(1);
        }
        if(5 == num){
            orderId = ((index5 + index) + "").substring(1);
        }
        return orderId;
    }
}
fzzy-igdss-view/src/main/java/com/fzzy/igds/CompanyPR.java
@@ -30,7 +30,7 @@
    @DataProvider
    public List<Company> getData() {
        return coreCompanyService.getAllData(null);
        return coreCompanyService.getDataByParentId();
    }
fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java
@@ -46,7 +46,6 @@
        Depot depot = new Depot();
        BeanUtils.copyProperties(data, depot);
        depotService.saveDepot(depot);
        depotService.flushCache(null);
        return null;
    }
fzzy-igdss-view/src/main/java/com/fzzy/igds/DeptPR.java
@@ -4,6 +4,10 @@
import com.bstek.dorado.annotation.DataResolver;
import com.fzzy.igds.domain.Dept;
import com.fzzy.igds.service.CoreDeptService;
import com.fzzy.igds.utils.ContextUtil;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.service.ISysDeptService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@@ -20,6 +24,7 @@
    @Resource
    private CoreDeptService coreDeptService;
    /**
     * æŸ¥è¯¢è®¾å¤‡,将操作信息调整为空,默认包括分库参数
     *
@@ -30,7 +35,7 @@
    @DataProvider
    public List<Dept> getData() {
        return coreDeptService.getAllData(null);
        return coreDeptService.getDeptData();
    }
    /**
fzzy-igdss-view/src/main/java/com/fzzy/igds/SelectDept.view.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<ViewConfig>
  <Arguments/>
  <Context/>
  <Model>
    <DataType name="dtCompany">
      <Property name="creationType">com.fzzy.igds.domain.Company</Property>
      <PropertyDef name="id">
        <Property></Property>
        <Property name="label">公司编码</Property>
      </PropertyDef>
      <PropertyDef name="dwmc">
        <Property></Property>
        <Property name="label">单位名称</Property>
      </PropertyDef>
      <Reference name="listArea">
        <Property name="dataType">[dtArea]</Property>
        <Property name="parameter">$${this.id}</Property>
        <Property name="dataProvider">selectDeptPR#listArea</Property>
      </Reference>
    </DataType>
    <DataType name="dtArea">
      <Property name="creationType">com.fzzy.igds.domain.Dept</Property>
      <PropertyDef name="id">
        <Property></Property>
        <Property name="label">库区代码</Property>
      </PropertyDef>
      <PropertyDef name="kqmc">
        <Property></Property>
        <Property name="label">库区名称</Property>
      </PropertyDef>
    </DataType>
  </Model>
  <View>
    <Property name="packages">font-awesome</Property>
    <DataSet id="dsCompany">
      <Property name="dataType">[dtCompany]</Property>
      <Property name="dataProvider">selectDeptPR#listCompany</Property>
    </DataSet>
    <DataTree>
      <ClientEvent name="onDataRowDoubleClick">var curNode = self.get(&quot;currentNode&quot;);&#xD;
if(curNode.get(&quot;hasChild&quot;)){&#xD;
    curNode.expand();&#xD;
    $notify(&quot;请选择库区……&quot;);&#xD;
}else{&#xD;
    var curData = self.get(&quot;currentEntity&quot;);&#xD;
    window.parent.onDeptAreaChange(curData.get(&quot;id&quot;));&#xD;
}</ClientEvent>
      <Property name="dataSet">dsCompany</Property>
      <Property name="highlightCurrentRow">false</Property>
      <BindingConfigs>
        <BindingConfig>
          <Property name="name">dwmc</Property>
          <Property name="hasChild">true</Property>
          <Property name="labelProperty">dwmc</Property>
          <Property name="iconClass">fa fa-university</Property>
          <BindingConfig>
            <Property name="name">name</Property>
            <Property name="childrenProperty">listArea</Property>
            <Property name="labelProperty">kqmc</Property>
            <Property name="iconClass">fa fa-home</Property>
          </BindingConfig>
        </BindingConfig>
      </BindingConfigs>
    </DataTree>
  </View>
</ViewConfig>
fzzy-igdss-view/src/main/java/com/fzzy/igds/SelectDeptPR.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
package com.fzzy.igds;
import com.bstek.dorado.annotation.DataProvider;
import com.fzzy.igds.domain.Company;
import com.fzzy.igds.domain.Dept;
import com.fzzy.igds.service.CoreCompanyService;
import com.fzzy.igds.service.CoreDeptService;
import com.fzzy.igds.utils.ContextUtil;
import com.ruoyi.common.config.FrameworkConfig;
import com.ruoyi.common.core.domain.entity.SysUser;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
/**
 * @Description åº“区切换
 * @Author CZT
 * @Date 2025/11/27 16:46
 */
@Component
public class SelectDeptPR {
    @Resource
    private CoreCompanyService companyService;
    @Resource
    private CoreDeptService deptService;
    /**
     * selectDeptPR#listCompany
     * æ ¹æ®è¡Œæ”¿åŒºåˆ’代码获取 ä¼ä¸šä¿¡æ¯åˆ—表
     * @param id
     * @return
     */
    @DataProvider
    public List<Company> listCompany(String id){
        //获取当前登录人
        SysUser user = ContextUtil.getLoginUser();
        if(FrameworkConfig.getCompanyId().equals(user.getCompanyId())){
            //系统监管账号
            return companyService.getAllData(user.getCompanyId());
        }else {
            //收储公司账号
            return companyService.getDataById(user.getCompanyId());
        }
    }
    /**
     * èŽ·å–å…¬å¸ä¸‹å±žåº“åŒºåˆ—è¡¨
     * selectDeptPR#listArea
     * @param id
     * @return
     */
    @DataProvider
    public List<Dept> listArea(String id){
        return deptService.getDataByParentId(id);
    }
}
fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/SysIndexController.java
@@ -1,9 +1,12 @@
package com.fzzy.sys.controller;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.utils.ContextUtil;
import com.ruoyi.common.config.FrameworkConfig;
import com.ruoyi.common.constant.ShiroConstants;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysMenu;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.text.Convert;
@@ -13,6 +16,7 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.shiro.service.SysPasswordService;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysMenuService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
@@ -37,16 +41,50 @@
    private ISysConfigService configService;
    @Resource
    private SysPasswordService passwordService;
    @Resource
    private ISysDeptService iSysDeptService;
    /**
     * é¡µé¢è·¯ç”±
     *
     * @param mmap
     * @return
     */
    @GetMapping("/index-gateway")
    public String indexGateway(ModelMap mmap) {
        //获取登录人信息
        SysUser user = getSysUser();
        //单库区主页
        return "redirect:index?deptId=" + user.getDeptId();
    }
    // ç³»ç»Ÿé¦–页
    @GetMapping("/index")
    public String index(@RequestParam(value = "bizType", required = false) String bizType,
    public String index(@RequestParam(value = "deptId", required = true) String deptId,
                        ModelMap mmap) {
        // å–身份信息
        SysUser user = getSysUser();
        mmap.put("user", user);
        mmap.put("sysName", FrameworkConfig.getName());
        //判断是否显示库区选择弹窗
        String showDeptList = "Y";
        SysDept userDept = iSysDeptService.selectDeptById(user.getDeptId());
        if (Constant.DEPT_TYPE_20.equals(userDept.getType())) {
            showDeptList = "N";
        }
        mmap.put("showDeptList", showDeptList);
        ContextUtil.updateSubDept(user.getLoginName(), deptId);
        SysDept dept = iSysDeptService.selectDeptById(Long.valueOf(deptId));
        mmap.put("dept", dept);
        mmap.put("deptId", deptId);
        //后台默认页面
        String welcomeUrl = "/group/gis";
        mmap.put("welcomeUrl", welcomeUrl);
        // æ ¹æ®ç”¨æˆ·id取出菜单
        List<SysMenu> menus = menuService.selectMenusByUser(user);
        mmap.put("menus", menus);
fzzy-igdss-web/src/main/resources/static/axui/loginAndRegister.js
@@ -39,7 +39,7 @@
        },
        success: function(r) {
            if (r.code == web_status.SUCCESS) {
                location.href = ctx + 'index';
                location.href = ctx + 'index-gateway';
            } else {
                $('.imgcode').click();
                $(".code").val("");
fzzy-igdss-web/src/main/resources/static/ruoyi/login.js
@@ -31,7 +31,7 @@
        },
        success: function(r) {
            if (r.code == web_status.SUCCESS) {
                location.href = ctx + 'index';
                location.href = ctx + 'index-gateway';
            } else {
                $('.imgcode').click();
                $(".code").val("");
fzzy-igdss-web/src/main/resources/templates/index-topnav.html
@@ -1,12 +1,12 @@
<!DOCTYPE html>
<html  lang="zh" xmlns:th="http://www.thymeleaf.org">
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="renderer" content="webkit">
    <title th:text="${sysName}">智慧粮库管理系统</title>
    <title th:text="${sysName}">智慧粮库管理系统</title>
    <!-- é¿å…IE使用兼容模式 -->
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <link th:href="@{favicon.ico}" rel="shortcut icon"/>
    <link th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
    <link th:href="@{/css/jquery.contextMenu.min.css}" rel="stylesheet"/>
@@ -15,9 +15,12 @@
    <link th:href="@{/css/style.min.css}" rel="stylesheet"/>
    <link th:href="@{/css/skins.css?v=20200902}" rel="stylesheet"/>
    <link th:href="@{/ruoyi/css/ry-ui.css?v=4.7.8}" rel="stylesheet"/>
    <style type="text/css">.fixed-sidebar .nav:not(.navbar-toolbar)>li.active{border-left:0px!important;}</style>
    <style type="text/css">.fixed-sidebar .nav:not(.navbar-toolbar) > li.active {
        border-left: 0px !important;
    }</style>
</head>
<body class="fixed-sidebar full-height-layout skin-zcl" th:classappend="${isMobile} ? 'canvas-menu'" style="overflow: hidden">
<body class="fixed-sidebar full-height-layout skin-zcl" th:classappend="${isMobile} ? 'canvas-menu'"
      style="overflow: hidden">
<div id="wrapper">
    <!--左侧导航开始-->
@@ -25,183 +28,200 @@
        <div class="nav-close">
            <i class="fa fa-times-circle"></i>
        </div>
        <a th:href="@{/index}">
        <a onclick="onDeptChange()" href="javascript:;">
            <li class="logo hidden-xs">
                <span class="logo-lg" th:text="${sysName}">智慧粮库管理系统</span>
            </li>
         </a>
        </a>
        <div class="sidebar-collapse tab-content" id="side-menu">
            <div class="user-panel">
                <a class="menuItem noactive" title="个人中心" th:href="@{/system/user/profile}">
                    <div class="hide" th:text="个人中心"></div>
                    <div class="pull-left image">
                        <img th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/profile.jpg} : @{${user.avatar}}" th:onerror="this.src='img/profile.jpg'" class="img-circle" alt="User Image">
                    </div>
                </a>
                <div class="pull-left info">
                  <p>[[${user.loginName}]]</p>
                  <a href="javascript:;"><i class="fa fa-circle text-success"></i> åœ¨çº¿</a>
                  <a th:href="@{logout}" style="padding-left:5px;"><i class="fa fa-sign-out text-danger"></i> æ³¨é”€</a>
                </div>
            </div>
            <div class="user-panel">
                <a class="menuItem noactive" title="个人中心" th:href="@{/system/user/profile}">
                    <div class="hide" th:text="个人中心"></div>
                    <div class="pull-left image">
                        <img th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/profile.jpg} : @{${user.avatar}}"
                             th:onerror="this.src='img/profile.jpg'" class="img-circle" alt="User Image">
                    </div>
                </a>
                <div class="pull-left info">
                    <p>[[${user.loginName}]]</p>
                    <a href="javascript:;"><i class="fa fa-circle text-success"></i> åœ¨çº¿</a>
                    <a th:href="@{logout}" style="padding-left:5px;"><i class="fa fa-sign-out text-danger"></i> æ³¨é”€</a>
                </div>
            </div>
            <!-- å·¦ä¾§èœå• -->
            <th:block th:each="menu : ${menus}">
            <div class="tab-pane fade height-full" th:id="|menu_${menu.menuId}|">
              <ul class="nav">
                <li th:each="cmenu : ${menu.children}">
                  <a class="menu-content" th:if="${#lists.isEmpty(cmenu.children)}" th:href="@{${cmenu.url}}" th:classappend="${#strings.isEmpty(cmenu.target)} ? |menuItem| : ${cmenu.target}" th:data-refresh="${cmenu.isRefresh == '0'}">
                    <i th:class="${cmenu.icon} + ' fa-fw'"></i> <span class="nav-label">[[${cmenu.menuName}]]</span>
                  </a>
                  <a class="menu-content" th:if="${not #lists.isEmpty(cmenu.children)}" href="javascript:;">
                    <i th:class="${cmenu.icon} + ' fa-fw'"></i>
                    <span class="nav-label">[[${cmenu.menuName}]]</span>
                    <span class="fa arrow"></span>
                  </a>
                  <ul th:if="${not #lists.isEmpty(cmenu.children)}" class="nav nav-second-level collapse">
                    <li th:each="emenu : ${cmenu.children}">
                      <a th:if="${#lists.isEmpty(emenu.children)}" th:href="@{${emenu.url}}" th:class="${#strings.isEmpty(emenu.target)} ? |menuItem| : ${emenu.target}" th:data-refresh="${emenu.isRefresh == '0'}">
                        <i th:class="${emenu.icon} + ' fa-fw'"></i>
                        [[${emenu.menuName}]]
                      </a>
                      <a th:if="${not #lists.isEmpty(emenu.children)}" href="javascript:;">
                        <i th:class="${emenu.icon} + ' fa-fw'"></i>
                        [[${emenu.menuName}]]
                        <span class="fa arrow"></span>
                      </a>
                      <ul th:if="${not #lists.isEmpty(emenu.children)}" class="nav nav-third-level collapse">
                        <li th:each="fmenu : ${emenu.children}"><a th:if="${#lists.isEmpty(fmenu.children)}" th:class="${#strings.isEmpty(fmenu.target)} ? |menuItem| : ${fmenu.target}" th:href="@{${fmenu.url}}" th:data-refresh="${fmenu.isRefresh == '0'}">[[${fmenu.menuName}]]</a></li>
                      </ul>
                    </li>
                  </ul>
                </li>
              </ul>
            </div>
            </th:block>
            <!-- é¦–页菜单 -->
            <div class="tab-pane fade height-full" id="index">
              <ul class="nav">
                <li>
                  <a class="menuItem" th:href="@{/archive/index}">
                  <i class="fa fa-home"></i> <span class="nav-label">首页</span></a>
                </li>
              </ul>
            </div>
            <th:block th:each="menu : ${menus}">
                <div class="tab-pane fade height-full" th:id="|menu_${menu.menuId}|">
                    <ul class="nav">
                        <li th:each="cmenu : ${menu.children}">
                            <a class="menu-content" th:if="${#lists.isEmpty(cmenu.children)}" th:href="@{${cmenu.url}}"
                               th:classappend="${#strings.isEmpty(cmenu.target)} ? |menuItem| : ${cmenu.target}"
                               th:data-refresh="${cmenu.isRefresh == '0'}">
                                <i th:class="${cmenu.icon} + ' fa-fw'"></i> <span class="nav-label">[[${cmenu.menuName}]]</span>
                            </a>
                            <a class="menu-content" th:if="${not #lists.isEmpty(cmenu.children)}" href="javascript:;">
                                <i th:class="${cmenu.icon} + ' fa-fw'"></i>
                                <span class="nav-label">[[${cmenu.menuName}]]</span>
                                <span class="fa arrow"></span>
                            </a>
                            <ul th:if="${not #lists.isEmpty(cmenu.children)}" class="nav nav-second-level collapse">
                                <li th:each="emenu : ${cmenu.children}">
                                    <a th:if="${#lists.isEmpty(emenu.children)}" th:href="@{${emenu.url}}"
                                       th:class="${#strings.isEmpty(emenu.target)} ? |menuItem| : ${emenu.target}"
                                       th:data-refresh="${emenu.isRefresh == '0'}">
                                        <i th:class="${emenu.icon} + ' fa-fw'"></i>
                                        [[${emenu.menuName}]]
                                    </a>
                                    <a th:if="${not #lists.isEmpty(emenu.children)}" href="javascript:;">
                                        <i th:class="${emenu.icon} + ' fa-fw'"></i>
                                        [[${emenu.menuName}]]
                                        <span class="fa arrow"></span>
                                    </a>
                                    <ul th:if="${not #lists.isEmpty(emenu.children)}"
                                        class="nav nav-third-level collapse">
                                        <li th:each="fmenu : ${emenu.children}"><a
                                                th:if="${#lists.isEmpty(fmenu.children)}"
                                                th:class="${#strings.isEmpty(fmenu.target)} ? |menuItem| : ${fmenu.target}"
                                                th:href="@{${fmenu.url}}" th:data-refresh="${fmenu.isRefresh == '0'}">[[${fmenu.menuName}]]</a>
                                        </li>
                                    </ul>
                                </li>
                            </ul>
                        </li>
                    </ul>
                </div>
            </th:block>
            <!-- é¦–页菜单 -->
            <div class="tab-pane fade height-full" id="index">
                <ul class="nav">
                    <li>
                        <a class="menuItem" th:href="@{/index}">
                            <i class="fa fa-home"></i> <span class="nav-label">首页</span></a>
                    </li>
                </ul>
            </div>
            <!-- å®žä¾‹æ¼”示菜单 -->
            <div class="tab-pane fade height-full" id="demo" th:if="${demoEnabled}">
              <ul class="nav">
                <li>
                  <a href="javascript:;"><i class="fa fa-edit"></i> <span class="nav-label">表单</span><span class="fa arrow"></span></a>
                  <ul class="nav nav-second-level collapse">
                    <li><a class="menuItem" th:href="@{/demo/form/button}">按钮</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/grid}">栅格</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/select}">下拉框</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/timeline}">时间轴</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/progress_bars}">进度条</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/basic}">基本表单</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/cards}">卡片列表</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/jasny}">功能扩展</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/sortable}">拖动排序</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/invoice}">单据打印</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/labels_tips}">标签 & æç¤º</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/tabs_panels}">选项卡 & é¢æ¿</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/validate}">表单校验</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/wizard}">表单向导</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/upload}">文件上传</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/datetime}">日期和时间</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/summernote}">富文本编辑器</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/duallistbox}">左右互选组件</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/autocomplete}">搜索自动补全</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/cxselect}">多级联动下拉</a></li>
                    <li><a class="menuItem" th:href="@{/demo/form/localrefresh}">Ajax局部刷新</a></li>
                  </ul>
                </li>
                <li>
                  <a href="javascript:;"><i class="fa fa-table"></i> <span class="nav-label">表格</span><span class="fa arrow"></span></a>
                  <ul class="nav nav-second-level collapse">
                    <li><a class="menuItem" th:href="@{/demo/table/search}">查询条件</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/footer}">数据汇总</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/groupHeader}">组合表头</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/export}">表格导出</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/exportSelected}">导出选择列</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/remember}">翻页记住选择</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/pageGo}">跳转至指定页</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/params}">自定义查询参数</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/multi}">初始多表格</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/button}">点击按钮加载表格</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/data}">直接加载表格数据</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/fixedColumns}">表格冻结列</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/event}">自定义触发事件</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/headerStyle}">表格标题格式化</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/detail}">表格细节视图</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/child}">表格父子视图</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/image}">表格图片预览</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/curd}">动态增删改查</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/reorderRows}">表格行拖拽操作</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/reorderColumns}">表格列拖拽操作</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/resizable}">表格列宽拖动</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/editable}">表格行内编辑</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/subdata}">主子表提交</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/refresh}">表格自动刷新</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/print}">表格打印配置</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/dynamicColumns}">表格动态列</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/customView}">自定义视图分页</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/asynTree}">异步加载表格树</a></li>
                    <li><a class="menuItem" th:href="@{/demo/table/other}">表格其他操作</a></li>
                  </ul>
                </li>
                <li>
                  <a href="javascript:;"><i class="fa fa-flask"></i> <span class="nav-label">弹框</span><span class="fa arrow"></span></a>
                  <ul class="nav nav-second-level collapse">
                    <li><a class="menuItem" th:href="@{/demo/modal/dialog}">模态窗口</a></li>
                    <li><a class="menuItem" th:href="@{/demo/modal/layer}">弹层组件</a></li>
                    <li><a class="menuItem" th:href="@{/demo/modal/table}">弹层表格</a></li>
                  </ul>
                </li>
                <li>
                  <a href="javascript:;"><i class="fa fa-wpforms"></i> <span class="nav-label">操作</span><span class="fa arrow"></span></a>
                  <ul class="nav nav-second-level collapse">
                    <li><a class="menuItem" th:href="@{/demo/operate/table}">表格</a></li>
                    <li><a class="menuItem" th:href="@{/demo/operate/other}">其他</a></li>
                  </ul>
                </li>
                <li>
                  <a href="javascript:;"><i class="fa fa-bar-chart-o"></i> <span class="nav-label">报表</span><span class="fa arrow"></span></a>
                  <ul class="nav nav-second-level collapse">
                    <li><a class="menuItem" th:href="@{/demo/report/echarts}">百度ECharts</a></li>
                    <li><a class="menuItem" th:href="@{/demo/report/peity}">peity</a></li>
                    <li><a class="menuItem" th:href="@{/demo/report/sparkline}">sparkline</a></li>
                    <li><a class="menuItem" th:href="@{/demo/report/metrics}">图表组合</a></li>
                  </ul>
                </li>
                <li>
                  <a href="javascript:;"><i class="fa fa-book"></i> <span class="nav-label">图标</span><span class="fa arrow"></span></a>
                  <ul class="nav nav-second-level collapse">
                    <li><a class="menuItem" th:href="@{/demo/icon/fontawesome}">Font Awesome</a></li>
                    <li><a class="menuItem" th:href="@{/demo/icon/glyphicons}">Glyphicons</a></li>
                  </ul>
                </li>
                <li>
                  <a href="javascript:;"><i class="fa fa-navicon"></i> <span class="nav-label">四层菜单</span><span class="fa arrow"></span></a>
                  <ul class="nav nav-second-level collapse">
                    <li>
                        <a href="javascript:;" id="damian">三级菜单1<span class="fa arrow"></span></a>
                        <ul class="nav nav-third-level collapse">
                            <li>
                                <a href="javascript:;">四级菜单1</a>
                            </li>
                            <li>
                                <a href="javascript:;">四级菜单2</a>
                            </li>
                        </ul>
                    </li>
                    <li><a href="javascript:;">三级菜单2</a></li>
                  </ul>
                </li>
              </ul>
            </div>
            <div class="tab-pane fade height-full" id="demo" th:if="${demoEnabled}">
                <ul class="nav">
                    <li>
                        <a href="javascript:;"><i class="fa fa-edit"></i> <span class="nav-label">表单</span><span
                                class="fa arrow"></span></a>
                        <ul class="nav nav-second-level collapse">
                            <li><a class="menuItem" th:href="@{/demo/form/button}">按钮</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/grid}">栅格</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/select}">下拉框</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/timeline}">时间轴</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/progress_bars}">进度条</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/basic}">基本表单</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/cards}">卡片列表</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/jasny}">功能扩展</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/sortable}">拖动排序</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/invoice}">单据打印</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/labels_tips}">标签 & æç¤º</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/tabs_panels}">选项卡 & é¢æ¿</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/validate}">表单校验</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/wizard}">表单向导</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/upload}">文件上传</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/datetime}">日期和时间</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/summernote}">富文本编辑器</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/duallistbox}">左右互选组件</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/autocomplete}">搜索自动补全</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/cxselect}">多级联动下拉</a></li>
                            <li><a class="menuItem" th:href="@{/demo/form/localrefresh}">Ajax局部刷新</a></li>
                        </ul>
                    </li>
                    <li>
                        <a href="javascript:;"><i class="fa fa-table"></i> <span class="nav-label">表格</span><span
                                class="fa arrow"></span></a>
                        <ul class="nav nav-second-level collapse">
                            <li><a class="menuItem" th:href="@{/demo/table/search}">查询条件</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/footer}">数据汇总</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/groupHeader}">组合表头</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/export}">表格导出</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/exportSelected}">导出选择列</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/remember}">翻页记住选择</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/pageGo}">跳转至指定页</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/params}">自定义查询参数</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/multi}">初始多表格</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/button}">点击按钮加载表格</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/data}">直接加载表格数据</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/fixedColumns}">表格冻结列</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/event}">自定义触发事件</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/headerStyle}">表格标题格式化</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/detail}">表格细节视图</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/child}">表格父子视图</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/image}">表格图片预览</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/curd}">动态增删改查</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/reorderRows}">表格行拖拽操作</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/reorderColumns}">表格列拖拽操作</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/resizable}">表格列宽拖动</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/editable}">表格行内编辑</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/subdata}">主子表提交</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/refresh}">表格自动刷新</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/print}">表格打印配置</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/dynamicColumns}">表格动态列</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/customView}">自定义视图分页</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/asynTree}">异步加载表格树</a></li>
                            <li><a class="menuItem" th:href="@{/demo/table/other}">表格其他操作</a></li>
                        </ul>
                    </li>
                    <li>
                        <a href="javascript:;"><i class="fa fa-flask"></i> <span class="nav-label">弹框</span><span
                                class="fa arrow"></span></a>
                        <ul class="nav nav-second-level collapse">
                            <li><a class="menuItem" th:href="@{/demo/modal/dialog}">模态窗口</a></li>
                            <li><a class="menuItem" th:href="@{/demo/modal/layer}">弹层组件</a></li>
                            <li><a class="menuItem" th:href="@{/demo/modal/table}">弹层表格</a></li>
                        </ul>
                    </li>
                    <li>
                        <a href="javascript:;"><i class="fa fa-wpforms"></i> <span class="nav-label">操作</span><span
                                class="fa arrow"></span></a>
                        <ul class="nav nav-second-level collapse">
                            <li><a class="menuItem" th:href="@{/demo/operate/table}">表格</a></li>
                            <li><a class="menuItem" th:href="@{/demo/operate/other}">其他</a></li>
                        </ul>
                    </li>
                    <li>
                        <a href="javascript:;"><i class="fa fa-bar-chart-o"></i> <span
                                class="nav-label">报表</span><span class="fa arrow"></span></a>
                        <ul class="nav nav-second-level collapse">
                            <li><a class="menuItem" th:href="@{/demo/report/echarts}">百度ECharts</a></li>
                            <li><a class="menuItem" th:href="@{/demo/report/peity}">peity</a></li>
                            <li><a class="menuItem" th:href="@{/demo/report/sparkline}">sparkline</a></li>
                            <li><a class="menuItem" th:href="@{/demo/report/metrics}">图表组合</a></li>
                        </ul>
                    </li>
                    <li>
                        <a href="javascript:;"><i class="fa fa-book"></i> <span class="nav-label">图标</span><span
                                class="fa arrow"></span></a>
                        <ul class="nav nav-second-level collapse">
                            <li><a class="menuItem" th:href="@{/demo/icon/fontawesome}">Font Awesome</a></li>
                            <li><a class="menuItem" th:href="@{/demo/icon/glyphicons}">Glyphicons</a></li>
                        </ul>
                    </li>
                    <li>
                        <a href="javascript:;"><i class="fa fa-navicon"></i> <span
                                class="nav-label">四层菜单</span><span class="fa arrow"></span></a>
                        <ul class="nav nav-second-level collapse">
                            <li>
                                <a href="javascript:;" id="damian">三级菜单1<span class="fa arrow"></span></a>
                                <ul class="nav nav-third-level collapse">
                                    <li>
                                        <a href="javascript:;">四级菜单1</a>
                                    </li>
                                    <li>
                                        <a href="javascript:;">四级菜单2</a>
                                    </li>
                                </ul>
                            </li>
                            <li><a href="javascript:;">三级菜单2</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
    <!--左侧导航结束-->
@@ -211,74 +231,87 @@
        <div class="row border-bottom">
            <nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
                <div class="navbar-header">
                    <a class="navbar-minimalize minimalize-styl-2" style="color:#FFF;" href="javascript:;" title="收起菜单">
                        <i class="fa fa-bars"></i>
                    <a class="navbar-minimalize minimalize-styl-2" style="color:#FFF;" href="javascript:;"
                       title="收起菜单">
                        <i class="fa fa-bars"></i>
                    </a>
                </div>
                <!-- é¡¶éƒ¨æ  -->
                <div id="navMenu">
                  <ul class="nav navbar-toolbar nav-tabs navbar-left hidden-xs">
                    <!-- é¡¶éƒ¨èœå•列表 -->
                    <th:block th:each="menu : ${menus}">
                       <li role="presentation" th:id="|tab_${menu.menuId}|">
                           <a th:if="${#lists.isEmpty(menu.children)}" data-toggle="tab" th:class="@{${!#strings.isEmpty(menu.target) && menu.target == 'menuBlank'} ? 'menuBlank' : 'menuItem noactive'}" th:href="@{${menu.url}}">
                            <i th:class="${menu.icon}"></i> <span>[[${menu.menuName}]]</span>
                        </a>
                        <a th:if="${not #lists.isEmpty(menu.children)}" data-toggle="tab" th:class="@{${!#strings.isEmpty(menu.target) && menu.target == 'menuBlank'} ? 'menuBlank'}" th:href="@{${!#strings.isEmpty(menu.target) && menu.target == 'menuBlank'} ? @{${menu.url}} : |#menu_${menu.menuId}|}">
                            <i th:class="${menu.icon}"></i> <span>[[${menu.menuName}]]</span>
                        </a>
                    </li>
                    </th:block>
<!--                    <li role="presentation" id="tab_index">-->
<!--                      <a data-toggle="tab" href="#index">-->
<!--                        <i class="fa fa-area-chart"></i> <span>统计报表</span>-->
<!--                      </a>-->
<!--                    </li>-->
<!--                    <li role="presentation" id="tab_demo" th:if="${demoEnabled}">-->
<!--                      <a data-toggle="tab" href="#demo">-->
<!--                        <i class="fa fa-desktop"></i> <span>实例演示</span>-->
<!--                      </a>-->
<!--                    </li>-->
                  </ul>
                </div>
                    <ul class="nav navbar-toolbar nav-tabs navbar-left hidden-xs">
                        <!-- é¡¶éƒ¨èœå•列表 -->
                        <th:block th:each="menu : ${menus}">
                            <li role="presentation" th:id="|tab_${menu.menuId}|">
                                <a th:if="${#lists.isEmpty(menu.children)}" data-toggle="tab"
                                   th:class="@{${!#strings.isEmpty(menu.target) && menu.target == 'menuBlank'} ? 'menuBlank' : 'menuItem noactive'}"
                                   th:href="@{${menu.url}}">
                                    <i th:class="${menu.icon}"></i> <span>[[${menu.menuName}]]</span>
                                </a>
                                <a th:if="${not #lists.isEmpty(menu.children)}" data-toggle="tab"
                                   th:class="@{${!#strings.isEmpty(menu.target) && menu.target == 'menuBlank'} ? 'menuBlank'}"
                                   th:href="@{${!#strings.isEmpty(menu.target) && menu.target == 'menuBlank'} ? @{${menu.url}} : |#menu_${menu.menuId}|}">
                                    <i th:class="${menu.icon}"></i> <span>[[${menu.menuName}]]</span>
                                </a>
                            </li>
                        </th:block>
                        <!--                    <li role="presentation" id="tab_index">-->
                        <!--                      <a data-toggle="tab" href="#index">-->
                        <!--                        <i class="fa fa-area-chart"></i> <span>统计报表</span>-->
                        <!--                      </a>-->
                        <!--                    </li>-->
                        <!--                    <li role="presentation" id="tab_demo" th:if="${demoEnabled}">-->
                        <!--                      <a data-toggle="tab" href="#demo">-->
                        <!--                        <i class="fa fa-desktop"></i> <span>实例演示</span>-->
                        <!--                      </a>-->
                        <!--                    </li>-->
                    </ul>
                </div>
                <!-- å³ä¾§æ  -->
                <ul class="nav navbar-top-links navbar-right welcome-message">
                    <li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="开发文档" href="https://fzzygf-company.feishu.cn/wiki/ZgS5wQuyMi2uDKk9xN6cx8jlnuf" target="_blank"><i class="fa fa-question-circle"></i> æ–‡æ¡£</a></li>
                    <li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="锁定屏幕" href="javascript:;" id="lockScreen"><i class="fa fa-lock"></i> é”å±</a></li>
                    <li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="全屏显示" href="javascript:;" id="fullScreen"><i class="fa fa-arrows-alt"></i> å…¨å±</a></li>
                    <li style="background-color: #03703a;"><a onclick="showDepotAreaSelect()" data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="库区选择"
                           href="javascript:;"><i class="fa fa-refresh"></i> [[${#strings.defaultString(dept.deptName,
                        '-')}]]</a></li>
                    <li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="开发文档"
                           href="https://fzzygf-company.feishu.cn/wiki/ZgS5wQuyMi2uDKk9xN6cx8jlnuf" target="_blank"><i
                            class="fa fa-question-circle"></i> æ–‡æ¡£</a></li>
                    <li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="锁定屏幕"
                           href="javascript:;" id="lockScreen"><i class="fa fa-lock"></i> é”å±</a></li>
                    <li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="全屏显示"
                           href="javascript:;" id="fullScreen"><i class="fa fa-arrows-alt"></i> å…¨å±</a></li>
                    <li class="dropdown user-menu">
                        <a href="javascript:void(0)" class="dropdown-toggle" data-hover="dropdown">
                            <img th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/profile.jpg} : @{${user.avatar}}" th:onerror="this.src='img/profile.jpg'" class="user-image">
                            <span class="hidden-xs">[[${#strings.defaultString(user.userName, '-')}]]</span>
                        </a>
                        <ul class="dropdown-menu">
                            <li class="mt5">
                                <a th:href="@{/system/user/profile}" class="menuItem noactive">
                                <i class="fa fa-user"></i> ä¸ªäººä¸­å¿ƒ</a>
                            </li>
                            <li>
                                <a onclick="resetPwd()">
                                <i class="fa fa-key"></i> ä¿®æ”¹å¯†ç </a>
                            </li>
                            <li>
                                <a onclick="switchSkin()">
                                <i class="fa fa-dashboard"></i> åˆ‡æ¢ä¸»é¢˜</a>
                            </li>
                            <li>
                                <a onclick="toggleMenu()">
                                <i class="fa fa-toggle-off"></i> å·¦ä¾§èœå•</a>
                            </li>
                            <li class="divider"></li>
                            <li>
                                <a th:href="@{logout}">
                                <i class="fa fa-sign-out"></i> é€€å‡ºç™»å½•</a>
                            </li>
                        </ul>
                    </li>
                        <a href="javascript:void(0)" class="dropdown-toggle" data-hover="dropdown">
                            <img th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/profile.jpg} : @{${user.avatar}}"
                                 th:onerror="this.src='img/profile.jpg'" class="user-image">
                            <span class="hidden-xs">[[${#strings.defaultString(user.userName, '-')}]]</span>
                        </a>
                        <ul class="dropdown-menu">
                            <li class="mt5">
                                <a th:href="@{/system/user/profile}" class="menuItem noactive">
                                    <i class="fa fa-user"></i> ä¸ªäººä¸­å¿ƒ</a>
                            </li>
                            <li>
                                <a onclick="resetPwd()">
                                    <i class="fa fa-key"></i> ä¿®æ”¹å¯†ç </a>
                            </li>
                            <li>
                                <a onclick="switchSkin()">
                                    <i class="fa fa-dashboard"></i> åˆ‡æ¢ä¸»é¢˜</a>
                            </li>
                            <li>
                                <a onclick="toggleMenu()">
                                    <i class="fa fa-toggle-off"></i> å·¦ä¾§èœå•</a>
                            </li>
                            <li class="divider"></li>
                            <li>
                                <a th:href="@{logout}">
                                    <i class="fa fa-sign-out"></i> é€€å‡ºç™»å½•</a>
                            </li>
                        </ul>
                    </li>
                </ul>
            </nav>
        </div>
@@ -288,7 +321,7 @@
            </button>
            <nav class="page-tabs menuTabs">
                <div class="page-tabs-content">
                    <a href="javascript:;" class="active menuTab" th:data-id="@{/eoms/index}">首页</a>
                    <a href="javascript:;" class="active menuTab" th:data-id="${welcomeUrl}">欢迎</a>
                </div>
            </nav>
            <button class="roll-nav roll-right tabRight">
@@ -297,15 +330,16 @@
            <a href="javascript:void(0);" class="roll-nav roll-right tabReload"><i class="fa fa-refresh"></i> åˆ·æ–°</a>
        </div>
        <a id="ax_close_max" class="ax_close_max" href="javascript:;" title="关闭全屏"> <i class="fa fa-times-circle-o"></i> </a>
        <a id="ax_close_max" class="ax_close_max" href="javascript:;" title="关闭全屏"> <i
                class="fa fa-times-circle-o"></i> </a>
        <div class="row mainContent" id="content-main" th:classappend="${mainClass}">
            <iframe class="RuoYi_iframe" name="iframe0" width="100%" height="100%" th:data-id="@{/eoms/index}"
                th:src="@{/eoms/index}" frameborder="0" seamless></iframe>
            <iframe class="RuoYi_iframe" name="iframe0" width="100%" height="100%" th:data-id="${welcomeUrl}"
                    th:src="${welcomeUrl}" frameborder="0" seamless></iframe>
        </div>
        <div th:if="${footer}" class="footer">
            <div class="pull-right">© [[${copyrightYear}]] RuoYi Copyright </div>
            <div class="pull-right">© [[${copyrightYear}]] RuoYi Copyright</div>
        </div>
    </div>
    <!--右侧部分结束-->
@@ -327,6 +361,9 @@
window.history.forward(1);
var ctx = [[@{/}]]; 
var lockscreen = [[${session.lockscreen}]]; 
var dept = [[${dept}]];
var deptId = [[${deptId}]];
var showDeptList = [[${showDeptList}]];
if(lockscreen){window.top.location=ctx+"lockscreen";}
// çš®è‚¤ç¼“å­˜
var skin = storage.get("skin");
@@ -364,6 +401,35 @@
    })
}
/**
 * å¼¹å‡ºåˆ‡æ¢åº“区列表
 */
function showDepotAreaSelect() {
    if(showDeptList === "N"){
        return false;
    }
    layer.open({
        type: 2,
        title: '选择库区',
        area: ['400px', '650px'],
        offset: ['50px', '1350px'],
        shade: 0,
        content: "com.fzzy.igds.SelectDept.d",
        closeBtn: 1
    });
}
/**
 * é‡æ–°åˆ‡æ¢é¡µé¢
 */
function onDeptChange() {
    onDeptAreaChange(deptId);
}
function onDeptAreaChange(id) {
    window.location.href = "./index?deptId=" + id;
    return true;
}
/* åˆ‡æ¢èœå• */
function toggleMenu() {
    $.modal.confirm("确认要切换成左侧菜单吗?", function() {