liuchanglan 4 years ago
parent
commit
34a5f403a7
24 changed files with 434 additions and 84 deletions
  1. 2 0
      Dockerfile
  2. 3 0
      README.md
  3. 6 2
      src/main/java/com/gz/controller/archive/ArchiveController.java
  4. 5 0
      src/main/java/com/gz/controller/system/AuthController.java
  5. 5 1
      src/main/java/com/gz/mapper/system/ArchivesTreeMapper.java
  6. 8 1
      src/main/java/com/gz/service/archive/ArchiveService.java
  7. 38 11
      src/main/java/com/gz/service/archive/impl/ArchiveServiceImpl.java
  8. 1 1
      src/main/java/com/gz/service/system/impl/ArchivesTreeServiceImpl.java
  9. 2 0
      src/main/java/com/gz/vo/statistics/StatisticsVO.java
  10. 13 0
      src/main/resources/mapper/archivesTreeMapper.xml
  11. 3 0
      src/main/resources/mapper/selectStatisticsMapper.xml
  12. 22 22
      src/main/resources/static/css/layuimini.css
  13. 2 2
      src/main/resources/static/css/themes/default.css
  14. 57 20
      src/main/resources/static/index.html
  15. 14 14
      src/main/resources/static/page/archive/advancedSearch.html
  16. 201 0
      src/main/resources/static/page/archive/import.html
  17. 21 2
      src/main/resources/static/page/archive/list.html
  18. 1 1
      src/main/resources/static/page/auditList/list.html
  19. 2 2
      src/main/resources/static/page/borrow/list.html
  20. 1 1
      src/main/resources/static/page/borrow/reserve.html
  21. 1 1
      src/main/resources/static/page/myBorrow/list.html
  22. 7 0
      src/main/resources/static/page/statistics/archiveStatistics.html
  23. 7 0
      src/main/resources/static/page/statistics/archiveYearStatistics.html
  24. 12 3
      src/main/resources/static/page/statistics/borrowStatistics.html

+ 2 - 0
Dockerfile

@@ -8,7 +8,9 @@
 #CMD ["java","-version"]
 #CMD ["java","-version"]
 
 
 # 构建项目
 # 构建项目
+#使用官方提供java8环境镜像
 #FROM openjdk:8-jdk-alpine
 #FROM openjdk:8-jdk-alpine
+#使用自己构建的java8环境镜像
 FROM java:1.8
 FROM java:1.8
 ENTRYPOINT 8473136@qq.com
 ENTRYPOINT 8473136@qq.com
 COPY ./SansSerif.ttf  /usr/share/fonts/
 COPY ./SansSerif.ttf  /usr/share/fonts/

+ 3 - 0
README.md

@@ -29,6 +29,8 @@ upload-file: #上传文件配置
 ```
 ```
 
 
 ## 4.部署命令:
 ## 4.部署命令:
+
+#### docker镜像:
 ```shell
 ```shell
 # 打包
 # 打包
 docker build -t registry.cn-hangzhou.aliyuncs.com/8473136_guozhi/guihua_archive:20210314 .  
 docker build -t registry.cn-hangzhou.aliyuncs.com/8473136_guozhi/guihua_archive:20210314 .  
@@ -39,4 +41,5 @@ docker run -d --name guihua_archive \
 -v /home/file:/home/file \
 -v /home/file:/home/file \
 registry.cn-hangzhou.aliyuncs.com/8473136_guozhi/guihua_archive:20210314  
 registry.cn-hangzhou.aliyuncs.com/8473136_guozhi/guihua_archive:20210314  
 ```
 ```
+#### 其他
   
   

+ 6 - 2
src/main/java/com/gz/controller/archive/ArchiveController.java

@@ -66,12 +66,16 @@ public class ArchiveController {
     }
     }
 
 
     @PostMapping("import")
     @PostMapping("import")
-    Integer importExcel(@RequestBody MultipartFile file) throws IOException {
+    List<ArchiveDTO> importExcel(@RequestBody MultipartFile file) throws IOException {
         return service.importExcel(file);
         return service.importExcel(file);
     }
     }
-
     @GetMapping("selectByPrimaryKeyText")
     @GetMapping("selectByPrimaryKeyText")
     ArchiveRVO selectByPrimaryKeyText(Integer id){
     ArchiveRVO selectByPrimaryKeyText(Integer id){
         return service.selectByPrimaryKeyText(id);
         return service.selectByPrimaryKeyText(id);
     }
     }
+
+    @GetMapping("confirmImport")
+    Integer confirmImport(){
+        return service.confirmImport();
+    }
 }
 }

+ 5 - 0
src/main/java/com/gz/controller/system/AuthController.java

@@ -34,6 +34,11 @@ public class AuthController {
         return authService.login(loginVO);
         return authService.login(loginVO);
     }
     }
 
 
+    @GetMapping("logout")
+    public void logout(String refreshToken) {
+        authService.logout(refreshToken);
+    }
+
     @GetMapping("refreshToken")
     @GetMapping("refreshToken")
     public LoginRVO refreshToken(@RequestParam String refreshToken){
     public LoginRVO refreshToken(@RequestParam String refreshToken){
         return authService.refreshToken(refreshToken);
         return authService.refreshToken(refreshToken);

+ 5 - 1
src/main/java/com/gz/mapper/system/ArchivesTreeMapper.java

@@ -3,11 +3,15 @@ package com.gz.mapper.system;
 import com.gz.dto.system.ArchivesTreeDTO;
 import com.gz.dto.system.ArchivesTreeDTO;
 import tk.mybatis.mapper.common.Mapper;
 import tk.mybatis.mapper.common.Mapper;
 
 
+import java.util.List;
+
 /**
 /**
- * @description 档案树Mapper
  * @author LiuChangLan
  * @author LiuChangLan
+ * @description 档案树Mapper
  * @since 2021/2/23 15:49
  * @since 2021/2/23 15:49
  */
  */
 public interface ArchivesTreeMapper extends Mapper<ArchivesTreeDTO> {
 public interface ArchivesTreeMapper extends Mapper<ArchivesTreeDTO> {
     ArchivesTreeDTO selectParentByCode(String code);
     ArchivesTreeDTO selectParentByCode(String code);
+
+    List<ArchivesTreeDTO> selectAllByRole(Integer roleId);
 }
 }

+ 8 - 1
src/main/java/com/gz/service/archive/ArchiveService.java

@@ -84,7 +84,7 @@ public interface ArchiveService {
      * @author LiuChangLan
      * @author LiuChangLan
      * @since 2021/3/4 14:44
      * @since 2021/3/4 14:44
      */
      */
-    Integer importExcel(MultipartFile file) throws IOException;
+    List<ArchiveDTO> importExcel(MultipartFile file) throws IOException;
 
 
     /**
     /**
      * @description 根据主键查询
      * @description 根据主键查询
@@ -92,4 +92,11 @@ public interface ArchiveService {
      * @since 2021/3/13 11:16
      * @since 2021/3/13 11:16
      */
      */
     ArchiveRVO selectByPrimaryKeyText(Integer id);
     ArchiveRVO selectByPrimaryKeyText(Integer id);
+
+    /**
+     * @description 确定导入
+     * @author LiuChangLan
+     * @since 2021/3/15 13:59
+     */
+    Integer confirmImport();
 }
 }

+ 38 - 11
src/main/java/com/gz/service/archive/impl/ArchiveServiceImpl.java

@@ -33,6 +33,7 @@ import org.apache.ibatis.mapping.BoundSql;
 import org.apache.ibatis.mapping.ParameterMapping;
 import org.apache.ibatis.mapping.ParameterMapping;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -43,8 +44,10 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 import javax.servlet.http.HttpSession;
 import java.io.IOException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 
 /**
 /**
  * @author LiuchangLan
  * @author LiuchangLan
@@ -66,6 +69,9 @@ public class ArchiveServiceImpl implements ArchiveService {
     @Autowired
     @Autowired
     private SqlSessionFactory sqlSessionFactory;
     private SqlSessionFactory sqlSessionFactory;
 
 
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
 
 
     @Override
     @Override
     public Integer insert(InsertArchiveVO vo) throws Exception {
     public Integer insert(InsertArchiveVO vo) throws Exception {
@@ -98,15 +104,18 @@ public class ArchiveServiceImpl implements ArchiveService {
         if (params != null) {
         if (params != null) {
             if (StrUtil.isNotEmpty(String.valueOf(params.get("time")))) {
             if (StrUtil.isNotEmpty(String.valueOf(params.get("time")))) {
                 String[] times = String.valueOf(params.get("time")).split(" - ");
                 String[] times = String.valueOf(params.get("time")).split(" - ");
-                sql += "AND (a.create_time BETWEEN '" + times[0] +"'" + " AND '" + times[1] +"')";
+                sql += "AND (a.create_time BETWEEN '" + times[0] + "'" + " AND '" + times[1] + "')";
             }
             }
-            for (int i = 1; i <= params.keySet().size() / 3; i++) {
-                if(i == 1){
+            for (int i = 1; i <= 10; i++) {
+                if (params.get("field_" + i) == null) {
+                    continue;
+                }
+                if (i == 1) {
                     sql += "and ";
                     sql += "and ";
-                }else {
+                } else {
                     sql += params.get("join_" + i) + " ";
                     sql += params.get("join_" + i) + " ";
                 }
                 }
-                sql +=  params.get("field_" + i);
+                sql += params.get("field_" + i);
                 if ("like".equals(params.get("condition_" + i))) {
                 if ("like".equals(params.get("condition_" + i))) {
                     sql += " like" + " '%" + params.get("variable_" + i) + "%'";
                     sql += " like" + " '%" + params.get("variable_" + i) + "%'";
                 } else {
                 } else {
@@ -242,12 +251,11 @@ public class ArchiveServiceImpl implements ArchiveService {
     }
     }
 
 
     @Override
     @Override
-    @Transactional
-    public Integer importExcel(MultipartFile file) throws IOException {
+    public List<ArchiveDTO> importExcel(MultipartFile file) throws IOException {
         InputStream inputStream = file.getInputStream();
         InputStream inputStream = file.getInputStream();
-        Integer count = 0;
         ExcelReader reader = ExcelUtil.getReader(inputStream, 0);
         ExcelReader reader = ExcelUtil.getReader(inputStream, 0);
         List<List<Object>> rows = reader.read();
         List<List<Object>> rows = reader.read();
+        List<ArchiveDTO> result = new ArrayList<>();
         for (int i = 1; i < rows.size(); i++) {
         for (int i = 1; i < rows.size(); i++) {
             try {
             try {
                 List<Object> row = rows.get(i);
                 List<Object> row = rows.get(i);
@@ -293,17 +301,36 @@ public class ArchiveServiceImpl implements ArchiveService {
                 dto.setFlh(ExcelUtils.getExcelCellStringValue(row, 25));
                 dto.setFlh(ExcelUtils.getExcelCellStringValue(row, 25));
                 dto.setZtc(ExcelUtils.getExcelCellStringValue(row, 26));
                 dto.setZtc(ExcelUtils.getExcelCellStringValue(row, 26));
                 dto.setQwbs(ExcelUtils.getExcelCellStringValue(row, 27));
                 dto.setQwbs(ExcelUtils.getExcelCellStringValue(row, 27));
-                count += mapper.insertSelective(dto);
+                dto.setMj("NABU");
+                result.add(dto);
             } catch (Exception e) {
             } catch (Exception e) {
                 new BusinessException(500, String.format("导入出错,错误位置:{}行,错误原因{}", (i + 1), e.getMessage()));
                 new BusinessException(500, String.format("导入出错,错误位置:{}行,错误原因{}", (i + 1), e.getMessage()));
             }
             }
         }
         }
-        log.info("成功添加{}行数据", count);
-        return count;
+        stringRedisTemplate.opsForValue().set(request.getSession().getId(), JSONObject.toJSONString(result), 1L, TimeUnit.HOURS);
+        log.info("成功解析:[{}],共有{}条数据", file.getOriginalFilename(), result.size());
+        return result;
     }
     }
 
 
     @Override
     @Override
     public ArchiveRVO selectByPrimaryKeyText(Integer id) {
     public ArchiveRVO selectByPrimaryKeyText(Integer id) {
         return mapper.selectByPrimaryKeyText(id);
         return mapper.selectByPrimaryKeyText(id);
     }
     }
+
+    @Override
+    @Transactional
+    public Integer confirmImport() {
+        Integer count = 0;
+        String s = stringRedisTemplate.opsForValue().get(request.getSession().getId());
+        if (StrUtil.isEmpty(s)){
+            throw new BusinessException(500,"请先上传文件");
+        }
+        List<ArchiveDTO> archiveDTOS = JSONObject.parseArray(s, ArchiveDTO.class);
+        for (ArchiveDTO archiveDTO : archiveDTOS) {
+            count += mapper.insertSelective(archiveDTO);
+        }
+        log.info("确定导入{}条数据",count);
+        stringRedisTemplate.delete(request.getSession().getId());
+        return count;
+    }
 }
 }

+ 1 - 1
src/main/java/com/gz/service/system/impl/ArchivesTreeServiceImpl.java

@@ -69,7 +69,7 @@ public class ArchivesTreeServiceImpl implements ArchivesTreeService {
 
 
     @Override
     @Override
     public List<Tree<String>> selectTree() {
     public List<Tree<String>> selectTree() {
-        List<ArchivesTreeDTO> menuDTOS = selectByOrder();
+        List<ArchivesTreeDTO> menuDTOS = mapper.selectAllByRole(JwtUtils.getCurrentUserJwtPayload().getRoleId());
         //配置
         //配置
         TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
         TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
         // 自定义属性名 都要默认值的
         // 自定义属性名 都要默认值的

+ 2 - 0
src/main/java/com/gz/vo/statistics/StatisticsVO.java

@@ -21,4 +21,6 @@ public class StatisticsVO {
     private String endTime;
     private String endTime;
     // 门类code
     // 门类code
     private List<String> mlCodes;
     private List<String> mlCodes;
+    // 关键字
+    private String gjz;
 }
 }

+ 13 - 0
src/main/resources/mapper/archivesTreeMapper.xml

@@ -6,4 +6,17 @@
             parameterType="string">
             parameterType="string">
         select * from tab_archives_tree where id = (select parent_id from tab_archives_tree where code = #{code})
         select * from tab_archives_tree where id = (select parent_id from tab_archives_tree where code = #{code})
     </select>
     </select>
+
+    <select id="selectAllByRole" resultType="com.gz.dto.system.ArchivesTreeDTO">
+        SELECT
+            tat.*
+        FROM
+            tab_menu_role mr
+                Left Join tab_archives_tree tat on mr.menu_id = tat.id
+        WHERE
+            mr.role_type = 1
+          AND mr.role_id = #{roleId}
+        group by tat.code
+        order by tat.sort
+    </select>
 </mapper>
 </mapper>

+ 3 - 0
src/main/resources/mapper/selectStatisticsMapper.xml

@@ -86,6 +86,9 @@
         WHERE ab.deleted = 0
         WHERE ab.deleted = 0
           AND a.deleted = 0
           AND a.deleted = 0
           AND ata.deleted = 0
           AND ata.deleted = 0
+          <if test="gjz != null and gjz != ''">
+              and (a.dh like concat(concat('%',#{gjz}),'%') or a.tm like concat(concat('%',#{gjz}),'%'))
+          </if>
           <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
           <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
               AND ab.create_time BETWEEN #{startTime} AND #{endTime}
               AND ab.create_time BETWEEN #{startTime} AND #{endTime}
           </if>
           </if>

+ 22 - 22
src/main/resources/static/css/layuimini.css

@@ -379,12 +379,12 @@
 .layui-layout-body .layui-nav-itemed .layui-nav-child a, .layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child a {}
 .layui-layout-body .layui-nav-itemed .layui-nav-child a, .layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child a {}
 
 
 
 
-/*.layui-layout-admin .layui-body {*/
-/*    overflow: hidden;*/
-/*    bottom: 0px !important;*/
-/*    top: 80px !important;*/
-/*    transition: all .2s;*/
-/*}*/
+.layui-layout-admin .layui-body {
+    overflow: hidden;
+    bottom: 0px !important;
+    top: 80px !important;
+    transition: all .2s;
+}
 
 
 /*!**选择配色方案 *!*/
 /*!**选择配色方案 *!*/
 /*.layuimini-color .color-title {*/
 /*.layuimini-color .color-title {*/
@@ -768,10 +768,10 @@
 /*        padding-right: 0px !important;*/
 /*        padding-right: 0px !important;*/
 /*    }*/
 /*    }*/
 
 
-/*    !**内容主体(缩放) *!*/
-/*    .layuimini-mini .layui-layout-admin .layui-body {*/
-/*        left: 0px !important;*/
-/*    }*/
+    /**内容主体(缩放) */
+    .layuimini-mini .layui-layout-admin .layui-body {
+        left: 0px !important;
+    }
 
 
 /*    .layuimini-mini .layuimini-tool {*/
 /*    .layuimini-mini .layuimini-tool {*/
 /*        left: 95px !important;*/
 /*        left: 95px !important;*/
@@ -820,9 +820,9 @@
 /*        left: 0;*/
 /*        left: 0;*/
 /*    }*/
 /*    }*/
 
 
-/*    .layui-layout-admin .layui-body .layui-tab-item.layui-show {*/
-/*        border-top: 1px solid #e2e2e2;*/
-/*    }*/
+    .layui-layout-admin .layui-body .layui-tab-item.layui-show {
+        border-top: 1px solid #e2e2e2;
+    }
 
 
 /*    .layuimini-all .layui-layout-left.layuimini-header-menu {*/
 /*    .layuimini-all .layui-layout-left.layuimini-header-menu {*/
 /*        left: 15px !important*/
 /*        left: 15px !important*/
@@ -840,9 +840,9 @@
 /*        padding: 0 15px;*/
 /*        padding: 0 15px;*/
 /*    }*/
 /*    }*/
 
 
-/*    .layuimini-all .layui-layout-admin .layui-body {*/
-/*        left: 0px !important;*/
-/*    }*/
+    .layuimini-all .layui-layout-admin .layui-body {
+        left: 0px !important;
+    }
 
 
 /*    .layuimini-mini .layui-layout-admin .layuimini-menu-left, .layuimini-mini .layui-header .layuimini-logo {*/
 /*    .layuimini-mini .layui-layout-admin .layuimini-menu-left, .layuimini-mini .layui-header .layuimini-logo {*/
 /*        left: 0;*/
 /*        left: 0;*/
@@ -857,12 +857,12 @@
 /*        z-index: 1002;*/
 /*        z-index: 1002;*/
 /*    }*/
 /*    }*/
 
 
-/*    .layuimini-mini .layui-layout-admin .layui-body {*/
-/*        left: 0!important;*/
-/*        transition: left .2s;*/
-/*        top: 0px;*/
-/*        z-index: 998;*/
-/*    }*/
+    .layuimini-mini .layui-layout-admin .layui-body {
+        left: 0!important;
+        transition: left .2s;
+        top: 0px;
+        z-index: 998;
+    }
 
 
 /*    .layuimini-mini .layuimini-make {*/
 /*    .layuimini-mini .layuimini-make {*/
 /*        display: block;*/
 /*        display: block;*/

+ 2 - 2
src/main/resources/static/css/themes/default.css

@@ -13,8 +13,8 @@
 /*头部右侧字体颜色 headerRightColor */
 /*头部右侧字体颜色 headerRightColor */
 .layui-layout-admin .layui-header .layui-nav .layui-nav-item a {
 .layui-layout-admin .layui-header .layui-nav .layui-nav-item a {
     color: rgba(107, 107, 107, 0.7);
     color: rgba(107, 107, 107, 0.7);
-    height: 0px !important;
-	    margin-top: 20px !important;
+    height: 0px;
+    margin-top: 20px;
 }
 }
 
 
 /**头部右侧下拉字体颜色 headerRightChildColor */
 /**头部右侧下拉字体颜色 headerRightChildColor */

+ 57 - 20
src/main/resources/static/index.html

@@ -37,6 +37,36 @@
             top: 10px;
             top: 10px;
         }
         }
 
 
+        .layui-layout-right li{
+            height: 100%;
+        }
+
+        .layui-layout-right li>a{
+            margin: 0 !important;
+            height: 100% !important;
+            width: auto !important;
+            line-height: 80px !important;
+        }
+
+        .layui-layout-right li dl{
+            padding: 0 !important;
+            margin: 0 !important;
+            height: auto !important;
+            left: -40px;
+        }
+
+
+        .layui-layout-right li dl dd{
+            height: auto !important;
+        }
+
+        .layui-layout-right li dl a{
+            /*line-height: 80px;*/
+            line-height: 36px;
+            margin-top: 0 !important;
+            height: auto !important;
+        }
+
     </style>
     </style>
     <style id="layuimini-bg-color">
     <style id="layuimini-bg-color">
     </style>
     </style>
@@ -81,7 +111,7 @@
 
 
             </div>
             </div>
 
 
-            <ul class="layui-nav layui-layout-right">
+            <ul class="layui-nav layui-layout-right" style="height: 100%;top: 0">
                 <li class="layui-nav-item" lay-unselect>
                 <li class="layui-nav-item" lay-unselect>
                     <a href="javascript:" data-refresh="刷新"><i class="fa fa-refresh"></i></a>
                     <a href="javascript:" data-refresh="刷新"><i class="fa fa-refresh"></i></a>
                 </li>
                 </li>
@@ -89,19 +119,23 @@
                 <li class="layui-nav-item mobile layui-hide-xs" lay-unselect>
                 <li class="layui-nav-item mobile layui-hide-xs" lay-unselect>
                     <a href="javascript:" data-check-screen="full"><i class="fa fa-arrows-alt"></i></a>
                     <a href="javascript:" data-check-screen="full"><i class="fa fa-arrows-alt"></i></a>
                 </li>
                 </li>
-                <li class="layui-nav-item" lay-unselect>
-                    <a href="javascript:" data-refresh="消息"><i class="fa  fa-bell-o"></i>
-                        <span class="layui-badge" style="    top: 17px;
-				 font-size: 10px !important;
-				 border-radius: 15px;    margin: 14px -10px 0;">6</span></a>
-                </li>
                 <li class="layui-nav-item mobile layui-hide-xs" lay-unselect>
                 <li class="layui-nav-item mobile layui-hide-xs" lay-unselect>
-                    <a id="account"></a>
-                </li>
-                <li class="layui-nav-item layuimini-setting">
-                    <a href="javascript:" class="login-out">退出系统</a>
+                    <!--                    <a id="">aaaa<span class="layui-nav-more"></span></a>-->
+                    <a href="javascript:" id="account"></a>
+                    <dl class="layui-nav-child">
+                        <dd><a href="javascript:" layuimini-content-href="updatePassword.html" data-title="修改密码">修改密码</a></dd>
+                        <dd><a href="javascript:" class="login-out">退出登录</a></dd>
+                    </dl>
                 </li>
                 </li>
-
+<!--                <li class="layui-nav-item" lay-unselect>-->
+<!--                    <a href="javascript:" data-refresh="消息"><i class="fa  fa-bell-o"></i>-->
+<!--                        <span class="layui-badge" style="    top: 17px;-->
+<!--				 font-size: 10px !important;-->
+<!--				 border-radius: 15px;    margin: 14px -10px 0;">6</span></a>-->
+<!--                </li>-->
+<!--                <li class="layui-nav-item layuimini-setting">-->
+<!--                    <a href="javascript:" class="login-out">退出系统</a>-->
+<!--                </li>-->
             </ul>
             </ul>
         </div>
         </div>
     </div>
     </div>
@@ -123,7 +157,6 @@
     <div class="layuimini-site-mobile"><i class="layui-icon"></i></div>
     <div class="layuimini-site-mobile"><i class="layui-icon"></i></div>
 
 
     <div class="layui-body">
     <div class="layui-body">
-
         <div class="layuimini-tab layui-tab-rollTool layui-tab" lay-filter="layuiminiTab" lay-allowclose="true">
         <div class="layuimini-tab layui-tab-rollTool layui-tab" lay-filter="layuiminiTab" lay-allowclose="true">
             <ul class="layui-tab-title">
             <ul class="layui-tab-title">
                 <li class="layui-this" id="layuiminiHomeTabId" lay-id=""></li>
                 <li class="layui-this" id="layuiminiHomeTabId" lay-id=""></li>
@@ -168,7 +201,7 @@
         // 加载用户名
         // 加载用户名
         let getLoginUserName = function () {
         let getLoginUserName = function () {
             http.get('system/auth/getLoginUserName', null, false, function (res) {
             http.get('system/auth/getLoginUserName', null, false, function (res) {
-                $("#account").text(res.data.adminName)
+                $("#account").html(res.data.adminName + '<span class="layui-nav-more"></span>')
                 websocket = new WebSocket("ws://" + http.host + "/webSocket/" + res.data.id);
                 websocket = new WebSocket("ws://" + http.host + "/webSocket/" + res.data.id);
             })
             })
         }
         }
@@ -189,13 +222,17 @@
 
 
         // 退出登录
         // 退出登录
         $('.login-out').on("click", function () {
         $('.login-out').on("click", function () {
-            layui.data('accessToken', {
-                key: 'accessToken',
-                value: ''
+            http.get('system/auth/logout',{
+                refreshToken: (layui.data('auth').data ? layui.data('auth').data.refreshToken : null) || null
+            },false,res => {
+                layui.data('auth', {
+                    key: 'data',
+                    value: {}
+                })
+                layer.msg('退出登录成功', function () {
+                    window.location = 'login.html';
+                });
             })
             })
-            layer.msg('退出登录成功', function () {
-                window.location = 'login.html';
-            });
         });
         });
 
 
         // 获取参数
         // 获取参数

+ 14 - 14
src/main/resources/static/page/archive/advancedSearch.html

@@ -24,15 +24,15 @@
 </head>
 </head>
 <body>
 <body>
 <div class="layui-form layuimini-form" lay-filter="addDict" id="add" style="text-aglin:center">
 <div class="layui-form layuimini-form" lay-filter="addDict" id="add" style="text-aglin:center">
-    <div class="layui-form-item" style="width: 849px">
-        <label class="layui-form-label required">时间:</label>
+    <div class="layui-form-item" style="width: 671px">
+        <label class="layui-form-label required">存档时间:</label>
         <div class="layui-input-block">
         <div class="layui-input-block">
             <input class="layui-input" name="time" id="time" readonly>
             <input class="layui-input" name="time" id="time" readonly>
         </div>
         </div>
     </div>
     </div>
     <div class="layui-form-item" id="1">
     <div class="layui-form-item" id="1">
         <label class="layui-form-label required">条件1:</label>
         <label class="layui-form-label required">条件1:</label>
-        <div class="layui-input-inline">
+        <div class="layui-input-inline" style="width: 135px;">
             <select class="layui-select" name="field_1" id="field_1" lay-verify="required" lay-reqtext="条件1字段不能未空">
             <select class="layui-select" name="field_1" id="field_1" lay-verify="required" lay-reqtext="条件1字段不能未空">
                 <option value="">请选择字段</option>
                 <option value="">请选择字段</option>
                 <option value="tm" selected>题名</option>
                 <option value="tm" selected>题名</option>
@@ -47,14 +47,14 @@
                 <option value="ztc">关键词</option>
                 <option value="ztc">关键词</option>
             </select>
             </select>
         </div>
         </div>
-        <div class="layui-input-inline">
+        <div class="layui-input-inline" style="width: 72px">
             <select class="layui-select" name="condition_1" id="condition_1" lay-verify="required"
             <select class="layui-select" name="condition_1" id="condition_1" lay-verify="required"
                     lay-reqtext="条件1条件不能未空">
                     lay-reqtext="条件1条件不能未空">
                 <option value="=">精确</option>
                 <option value="=">精确</option>
                 <option value="like">模糊</option>
                 <option value="like">模糊</option>
             </select>
             </select>
         </div>
         </div>
-        <div class="layui-input-inline">
+        <div class="layui-input-inline" style="width: 275px;">
             <input class="layui-input" type="text" name="variable_1" id="variable_1" placeholder="请输入值"
             <input class="layui-input" type="text" name="variable_1" id="variable_1" placeholder="请输入值"
                    lay-verify="required" lay-reqtext="条件1值不能未空">
                    lay-verify="required" lay-reqtext="条件1值不能未空">
         </div>
         </div>
@@ -65,7 +65,7 @@
     </div>
     </div>
     <div class="layui-form-item" id="2">
     <div class="layui-form-item" id="2">
         <label class="layui-form-label required">条件2:</label>
         <label class="layui-form-label required">条件2:</label>
-        <div class="layui-input-inline" style="width: 100px;">
+        <div class="layui-input-inline" style="width: 75px;">
             <!--            <input type="radio" name="join2" class="layui-input" value="OR" title="OR">-->
             <!--            <input type="radio" name="join2" class="layui-input" value="OR" title="OR">-->
             <!--            <input type="radio" name="join2" class="layui-input" value="AND" title="AND">-->
             <!--            <input type="radio" name="join2" class="layui-input" value="AND" title="AND">-->
             <select name="join_2" class="layui-select" id="join_2">
             <select name="join_2" class="layui-select" id="join_2">
@@ -74,7 +74,7 @@
                 <option value="NOT">NOT</option>
                 <option value="NOT">NOT</option>
             </select>
             </select>
         </div>
         </div>
-        <div class="layui-input-inline">
+        <div class="layui-input-inline" style="width: 135px;">
             <select class="layui-select" name="field_2" id="field_2" lay-verify="required" lay-reqtext="条件1字段不能未空">
             <select class="layui-select" name="field_2" id="field_2" lay-verify="required" lay-reqtext="条件1字段不能未空">
                 <option value="">请选择字段</option>
                 <option value="">请选择字段</option>
                 <option value="tm">题名</option>
                 <option value="tm">题名</option>
@@ -89,7 +89,7 @@
                 <option value="ztc">关键词</option>
                 <option value="ztc">关键词</option>
             </select>
             </select>
         </div>
         </div>
-        <div class="layui-input-inline">
+        <div class="layui-input-inline" style="width: 72px">
             <select class="layui-select" name="condition_2" id="condition_2" lay-verify="required"
             <select class="layui-select" name="condition_2" id="condition_2" lay-verify="required"
                     lay-reqtext="条件2条件不能未空">
                     lay-reqtext="条件2条件不能未空">
                 <option value="=">精确</option>
                 <option value="=">精确</option>
@@ -107,14 +107,14 @@
     </div>
     </div>
     <div class="layui-form-item" id="3">
     <div class="layui-form-item" id="3">
         <label class="layui-form-label required">条件3:</label>
         <label class="layui-form-label required">条件3:</label>
-        <div class="layui-input-inline" style="width: 100px;">
+        <div class="layui-input-inline" style="width: 75px;">
             <select name="join_3" class="layui-select" id="join_3">
             <select name="join_3" class="layui-select" id="join_3">
                 <option value="AND">AND</option>
                 <option value="AND">AND</option>
                 <option value="OR">OR</option>
                 <option value="OR">OR</option>
                 <option value="NOT">NOT</option>
                 <option value="NOT">NOT</option>
             </select>
             </select>
         </div>
         </div>
-        <div class="layui-input-inline">
+        <div class="layui-input-inline" style="width: 135px;">
             <select class="layui-select" name="field_3" id="field_3" lay-verify="required" lay-reqtext="条件1字段不能未空">
             <select class="layui-select" name="field_3" id="field_3" lay-verify="required" lay-reqtext="条件1字段不能未空">
                 <option value="tm">题名</option>
                 <option value="tm">题名</option>
                 <option value="dh">档号</option>
                 <option value="dh">档号</option>
@@ -128,7 +128,7 @@
                 <option value="ztc">关键词</option>
                 <option value="ztc">关键词</option>
             </select>
             </select>
         </div>
         </div>
-        <div class="layui-input-inline">
+        <div class="layui-input-inline" style="width: 72px;">
             <select class="layui-select" name="condition_3" id="condition_3" lay-verify="required"
             <select class="layui-select" name="condition_3" id="condition_3" lay-verify="required"
                     lay-reqtext="条件3条件不能未空">
                     lay-reqtext="条件3条件不能未空">
                 <option value="=">精确</option>
                 <option value="=">精确</option>
@@ -187,14 +187,14 @@
             index++;
             index++;
             $("#add").append('<div class="layui-form-item"  id="' + index + '">\n' +
             $("#add").append('<div class="layui-form-item"  id="' + index + '">\n' +
                 '            <label class="layui-form-label required">条件' + index + ':</label>\n' +
                 '            <label class="layui-form-label required">条件' + index + ':</label>\n' +
-                '    <div class="layui-input-inline" style="width: 100px;">\n' +
+                '    <div class="layui-input-inline" style="width: 75px;">\n' +
                 '            <select name="join_' + index + '" class="layui-select" id="join_' + index + '">\n' +
                 '            <select name="join_' + index + '" class="layui-select" id="join_' + index + '">\n' +
                 '                <option value="AND">AND</option>\n' +
                 '                <option value="AND">AND</option>\n' +
                 '                <option value="OR">OR</option>\n' +
                 '                <option value="OR">OR</option>\n' +
                 '                <option value="NOT">NOT</option>\n' +
                 '                <option value="NOT">NOT</option>\n' +
                 '            </select>\n' +
                 '            </select>\n' +
                 '        </div>' +
                 '        </div>' +
-                '            <div class="layui-input-inline">\n' +
+                '            <div class="layui-input-inline" style="width: 135px">\n' +
                 '                <select class="layui-select" name="field_' + index + '" id="field_' + index + '" lay-verify="required" lay-reqtext="条件' + index + '字段不能未空">\n' +
                 '                <select class="layui-select" name="field_' + index + '" id="field_' + index + '" lay-verify="required" lay-reqtext="条件' + index + '字段不能未空">\n' +
                 '                    <option value="tm">题名</option>\n' +
                 '                    <option value="tm">题名</option>\n' +
                 '                    <option value="dh">档号</option>\n' +
                 '                    <option value="dh">档号</option>\n' +
@@ -208,7 +208,7 @@
                 '                    <option value="ztc">关键词</option>\n' +
                 '                    <option value="ztc">关键词</option>\n' +
                 '                </select>\n' +
                 '                </select>\n' +
                 '            </div>\n' +
                 '            </div>\n' +
-                '            <div class="layui-input-inline">\n' +
+                '            <div class="layui-input-inline" style="width: 72px">\n' +
                 '                <select class="layui-select" name="condition_' + index + '" id="condition_' + index + '" lay-verify="required" lay-reqtext="条件' + index + '条件不能未空">\n' +
                 '                <select class="layui-select" name="condition_' + index + '" id="condition_' + index + '" lay-verify="required" lay-reqtext="条件' + index + '条件不能未空">\n' +
                 '                    <option value="=">精确</option>\n' +
                 '                    <option value="=">精确</option>\n' +
                 '                    <option value="like">模糊</option>\n' +
                 '                    <option value="like">模糊</option>\n' +

+ 201 - 0
src/main/resources/static/page/archive/import.html

@@ -0,0 +1,201 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>分步表单</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <link rel="stylesheet" href="../../lib/layui-v2.5.5/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../css/public.css" media="all">
+    <link rel="stylesheet" href="../../js/lay-module/step-lay/step.css" media="all">
+</head>
+<body>
+<div class="layuimini-container">
+    <div class="layuimini-main">
+
+        <div class="layui-fluid">
+            <div class="layui-card">
+                <div class="layui-card-body" style="padding-top: 40px;">
+                    <div class="layui-carousel" id="stepForm" lay-filter="stepForm" style="margin: 0 auto;">
+                        <div carousel-item>
+                            <div>
+                                <form class="layui-form" style="margin: 0 auto;max-width: 460px;padding-top: 40px;">
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label">模板下载:</label>
+                                        <div class="layui-input-block">
+                                            <button class="layui-btn layui-icon layui-icon-download-circle" lay-submit
+                                                    lay-filter="downExcelTemplate">
+                                                &emsp;点击下载模板
+                                            </button>
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label">题目上传:</label>
+                                        <div class="layui-input-block">
+                                            <div class="layui-upload">
+                                                <button type="button" class="layui-btn layui-btn-normal"
+                                                        id="selectFile">选择文件
+                                                </button>
+                                                <button style="display: none" type="button" class="layui-btn"
+                                                        id="startUpload">开始上传
+                                                </button>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <div class="layui-input-block">
+                                            <button class="layui-btn" lay-submit lay-filter="formStep">
+                                                &emsp;解析&emsp;
+                                            </button>
+                                        </div>
+                                    </div>
+                                </form>
+                            </div>
+                            <div>
+                                <table class="layui-hide" id="questionList"></table>
+                                <div style="margin: 0 auto;width: 120px">
+                                    <button class="layui-btn" id="startImport">确定导入</button>
+                                </div>
+                            </div>
+                            <div>
+                                <div style="text-align: center;margin-top: 90px;">
+                                    <i class="layui-icon layui-circle"
+                                       style="color: white;font-size:30px;font-weight:bold;background: #52C41A;padding: 20px;line-height: 80px;">&#xe605;</i>
+                                    <div style="font-size: 24px;color: #333;font-weight: 500;margin-top: 30px;">
+                                        导入成功
+                                    </div>
+<!--                                    <div style="font-size: 14px;color: #666;margin-top: 20px;">预计两小时到账</div>-->
+                                </div>
+                                <div style="text-align: center;margin-top: 50px;">
+                                    <button class="layui-btn" onclick="location.reload()">再次导入</button>
+                                    <button class="layui-btn layui-btn-primary" id="close">关闭</button>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <hr>
+                    <div id="sm" style="color: #666;margin-top: 30px;margin-bottom: 40px;padding-left: 30px;">
+                        <h3>说明</h3><br>
+                        <h4>上传文件格式</h4>
+                        <p>上传文件支持.xlsx</p>
+                        <br><h4>上传须知</h4>
+                        <p>下载模板,把题目滕到模板中,完成后删除末尾多余空格,<i style="color: red">尽量不要让单元格只有空格</i></p>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+    </div>
+</div>
+<script src="../../lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
+<script src="../../js/lay-config.js?v=1.0.4" charset="utf-8"></script>
+<script>
+    layui.use(['form', 'step', 'upload', 'table', 'http'], function () {
+        /**变-------------------------------量-------------------------------定-------------------------------义*/
+        var $ = layui.$,
+            form = layui.form,
+            upload = layui.upload,
+            http = layui.http,
+            table = layui.table,
+            isParsing = false,
+            step = layui.step,
+            uuid = '';
+
+        /**方-------------------------------法-------------------------------定-------------------------------义*/
+
+            // 初始化步骤
+        let initStep = function () {
+                step.render({
+                    elem: '#stepForm',
+                    filter: 'stepForm',
+                    width: '100%', //设置容器宽度
+                    stepWidth: '750px',
+                    height: '800px',
+                    stepItems: [{
+                        title: '上传文件'
+                    }, {
+                        title: '档案预览'
+                    }, {
+                        title: '完成'
+                    }]
+                });
+            }
+
+        // 初始化上传文件
+        let initUpload = function () {
+            upload.render({
+                elem: '#selectFile'
+                , url: http.requestUrl + 'archive/archive/import' //改成您自己的上传接口
+                , headers: {
+                    accessToken: (layui.data('auth').data ? layui.data('auth').data.accessToken : '') || ''
+                }
+                , acceptMime: '.xls,.xlsx'
+                , accept: 'file' //普通文件
+                , auto: false
+                , multiple: false
+                , bindAction: '#startUpload'
+                , done: function (res) {
+                    if (res.code == 200) {
+                        layer.msg('上传成功');
+                        table.render({
+                            elem: '#questionList'
+                            , data: res.data
+                            ,limit: 10
+                            ,page: true
+                            , cols: [[
+                                {field: 'dh', title: '档号', width: 240}
+                                , {field: 'tm', title: '题名'}
+                                , {field: 'wjbh', title: '文号'}
+                                , {field: 'zrz', title: '责任者', width: 120}
+                            ]]
+                        });
+                    }
+                }
+            });
+        }
+
+        /**事-------------------------------件-------------------------------绑-------------------------------定*/
+        initStep()
+        initUpload()
+
+        // 解析
+        form.on('submit(formStep)', function (data) {
+            $("#startUpload").click()
+            if (isParsing) {
+                step.next('#stepForm');
+            } else {
+                layer.msg('请先上传文件')
+            }
+            return false;
+        });
+
+        // 开始上传
+        $("#startUpload").click(function () {
+            $("#sm").hide()
+            isParsing = true;
+        })
+
+        // 开始导入
+        $("#startImport").click(function () {
+            http.get('/archive/archive/confirmImport', {}, false, function (res) {
+                if (res.code == 200) {
+                    step.next('#stepForm');
+                }
+            })
+        })
+
+        $("#close").click(function () {
+            let iframeIndex = parent.layer.getFrameIndex(window.name);
+            parent.layer.close(iframeIndex);
+        })
+
+        // 下载模板
+        form.on('submit(downExcelTemplate)', function () {
+            window.open("/template/导入模板.xlsx", "_blank")
+            return false;
+        })
+    })
+</script>
+</body>
+</html>

+ 21 - 2
src/main/resources/static/page/archive/list.html

@@ -315,7 +315,7 @@
                 shade: 0.2,
                 shade: 0.2,
                 maxmin: true,
                 maxmin: true,
                 shadeClose: true,
                 shadeClose: true,
-                area: ['55%', '80%'],
+                area: ['900px', '600px'],
                 content: './advancedSearch.html',
                 content: './advancedSearch.html',
                 success: function (layero, index) {
                 success: function (layero, index) {
                     var body = layer.getChildFrame('body', index);
                     var body = layer.getChildFrame('body', index);
@@ -460,6 +460,24 @@
             }
             }
         }
         }
 
 
+        let importExcel = function (){
+            var index = layer.open({
+                title: '高级检索',
+                type: 2,
+                shade: 0.2,
+                maxmin: true,
+                shadeClose: true,
+                area: ['100%', '100%'],
+                content: './import.html',
+                success: function (layero, index) {
+                    var body = layer.getChildFrame('body', index);
+                },
+                end: function () {
+                    renderTable()
+                }
+            });
+        }
+
         let join = function (id) {
         let join = function (id) {
             layer.open({
             layer.open({
                 title: '监督对象',
                 title: '监督对象',
@@ -562,7 +580,8 @@
                     batchDel();
                     batchDel();
                     break;
                     break;
                 case 'import':
                 case 'import':
-                    $("#import").click();
+                    // $("#import").click();
+                    importExcel()
                     break;
                     break;
                 case 'advancedSearch':
                 case 'advancedSearch':
                     advancedSearch();
                     advancedSearch();

+ 1 - 1
src/main/resources/static/page/auditList/list.html

@@ -173,7 +173,7 @@
                                 if (rv.auditStatus == 2) {
                                 if (rv.auditStatus == 2) {
                                     return rv.returnStatus == 0 ? '<span class="layui-badge layui-bg-orange">未归还</span>' : '<span class="layui-badge layui-bg-green">已归还</span>'
                                     return rv.returnStatus == 0 ? '<span class="layui-badge layui-bg-orange">未归还</span>' : '<span class="layui-badge layui-bg-green">已归还</span>'
                                 } else {
                                 } else {
-                                    return '<span class="layui-badge layui-bg-green">———</span>'
+                                    return '<span class="layui-badge layui-bg-green">———</span>'
                                 }
                                 }
                             } else {
                             } else {
                                 return '<span class="layui-badge layui-bg-green">无需归还</span>'
                                 return '<span class="layui-badge layui-bg-green">无需归还</span>'

+ 2 - 2
src/main/resources/static/page/borrow/list.html

@@ -315,8 +315,8 @@
                 shade: 0.2,
                 shade: 0.2,
                 maxmin: true,
                 maxmin: true,
                 shadeClose: true,
                 shadeClose: true,
-                area: ['55%', '80%'],
-                content: './advancedSearch.html',
+                area: ['900px', '600px'],
+                content: '../archive/advancedSearch.html',
                 success: function (layero, index) {
                 success: function (layero, index) {
                     var body = layer.getChildFrame('body', index);
                     var body = layer.getChildFrame('body', index);
                 },
                 },

+ 1 - 1
src/main/resources/static/page/borrow/reserve.html

@@ -201,7 +201,7 @@
         let initData = function () {
         let initData = function () {
             laydate.render({
             laydate.render({
                 elem: '#estimateReturnTime',
                 elem: '#estimateReturnTime',
-                type: 'datetime',
+                type: 'date',
                 trigger: 'click',
                 trigger: 'click',
                 min: minDate()
                 min: minDate()
             });
             });

+ 1 - 1
src/main/resources/static/page/myBorrow/list.html

@@ -147,7 +147,7 @@
                                     if (rv.auditStatus == 2) {
                                     if (rv.auditStatus == 2) {
                                         return rv.returnStatus == 0 ? '<span class="layui-badge layui-bg-orange">未归还</span>' : '<span class="layui-badge layui-bg-green">已归还</span>'
                                         return rv.returnStatus == 0 ? '<span class="layui-badge layui-bg-orange">未归还</span>' : '<span class="layui-badge layui-bg-green">已归还</span>'
                                     } else {
                                     } else {
-                                        return '<span class="layui-badge layui-bg-green">无需归还</span>'
+                                        return '<span class="layui-badge layui-bg-green">————</span>'
                                     }
                                     }
                                 } else {
                                 } else {
                                     return '<span class="layui-badge layui-bg-green">无需归还</span>'
                                     return '<span class="layui-badge layui-bg-green">无需归还</span>'

+ 7 - 0
src/main/resources/static/page/statistics/archiveStatistics.html

@@ -97,6 +97,13 @@
                 done: function () {
                 done: function () {
                     // $('th').css({'background-color': '#1aa094', 'color': '#fff','font-weight':'bold'})
                     // $('th').css({'background-color': '#1aa094', 'color': '#fff','font-weight':'bold'})
                     layer.closeAll('loading');
                     layer.closeAll('loading');
+                    var divArr = layui.$(".layui-table-total div.layui-table-cell");
+                    layui.$.each(divArr,function (index,item) {
+                        var _div = layui.$(item);
+                        var content = _div.html();
+                        content = content.replace(".00","");
+                        _div.html(content);
+                    });
                 }
                 }
             });
             });
         }
         }

+ 7 - 0
src/main/resources/static/page/statistics/archiveYearStatistics.html

@@ -102,6 +102,13 @@
                 },
                 },
                 done: function (res, curr, count) {
                 done: function (res, curr, count) {
                     // $('th').css({'background-color': '#1aa094', 'color': '#fff','font-weight':'bold'})
                     // $('th').css({'background-color': '#1aa094', 'color': '#fff','font-weight':'bold'})
+                    var divArr = layui.$(".layui-table-total div.layui-table-cell");
+                    layui.$.each(divArr,function (index,item) {
+                        var _div = layui.$(item);
+                        var content = _div.html();
+                        content = content.replace(".00","");
+                        _div.html(content);
+                    });
                 },
                 },
                 cols: [[
                 cols: [[
                     {type: 'numbers'},
                     {type: 'numbers'},

+ 12 - 3
src/main/resources/static/page/statistics/borrowStatistics.html

@@ -15,12 +15,15 @@
             <div class="layui-form toolbar">
             <div class="layui-form toolbar">
                 <div class="layui-form-item">
                 <div class="layui-form-item">
                     <div class="layui-form-item">
                     <div class="layui-form-item">
-                        <div class="layui-inline" style="width: 300px;">
-                            <input name="time" id="time" class="layui-input" placeholder="请选择统计时间段" readonly>
+                        <div class="layui-inline">
+                            <input type="text" name="gjz" lay-filter="gjz" id="gjz" class="layui-input" placeholder="请输入档号或题名">
                         </div>
                         </div>
                         <div class="layui-inline">
                         <div class="layui-inline">
                             <input type="text" name="ml" lay-filter="ml" id="ml" class="layui-input">
                             <input type="text" name="ml" lay-filter="ml" id="ml" class="layui-input">
                         </div>
                         </div>
+                        <div class="layui-inline" style="width: 300px;">
+                            <input name="time" id="time" class="layui-input" placeholder="请选择统计时间段" readonly>
+                        </div>
                         <div class="layui-inline">
                         <div class="layui-inline">
                             <button id="btnSearch" lay-submit lay-filter="search" class="layui-btn icon-btn"><i
                             <button id="btnSearch" lay-submit lay-filter="search" class="layui-btn icon-btn"><i
                                     class="layui-icon"></i>搜索
                                     class="layui-icon"></i>搜索
@@ -102,12 +105,18 @@
                 },
                 },
                 done: function (res, curr, count) {
                 done: function (res, curr, count) {
                     // $('th').css({'background-color': '#1aa094', 'color': '#fff','font-weight':'bold'})
                     // $('th').css({'background-color': '#1aa094', 'color': '#fff','font-weight':'bold'})
+                    var divArr = layui.$(".layui-table-total div.layui-table-cell");
+                    layui.$.each(divArr,function (index,item) {
+                        var _div = layui.$(item);
+                        var content = _div.html();
+                        content = content.replace(".00","");
+                        _div.html(content);
+                    });
                 },
                 },
                 cols: [[
                 cols: [[
                     {type: 'numbers'},
                     {type: 'numbers'},
                     {field: 'dh', title: '档号', totalRowText: '合计'},
                     {field: 'dh', title: '档号', totalRowText: '合计'},
                     {field: 'tm', title: '题名'},
                     {field: 'tm', title: '题名'},
-                    {field: 'tm', title: '题名'},
                     {field: 'ml', title: '门类/属类'},
                     {field: 'ml', title: '门类/属类'},
                     // {field: 'createTime', title: '最后借阅时间'},
                     // {field: 'createTime', title: '最后借阅时间'},
                     // {field: 'estimateReturnTime',  title: '预计归还时间'},
                     // {field: 'estimateReturnTime',  title: '预计归还时间'},