#
Junjie
2024-06-27 e0d5c5bd964a2608e1d8e6314537476d2c4ef893
#
15个文件已修改
761个文件已删除
79个文件已添加
127 文件已重命名
92867 ■■■■■ 已修改文件
pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-framework/src/main/resources/templates/react/Controller.txt 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-framework/src/main/resources/templates/react/Entity.txt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/.gitignore 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/pom.xml 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/WcsBoot.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/annotation/OperationLog.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/aspect/OperationLogAspect.java 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/config/BeanConfig.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/config/ConfigProperties.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/config/MybatisPlusConfig.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/config/WebConfig.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/constant/Constants.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/BaseParam.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/KeyValVo.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageParam.java 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageResult.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtAuthenticationFilter.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtSubject.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/SecurityConfig.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/SecurityExceptionHandler.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/AuthController.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/BaseController.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/DeptController.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/HostController.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/MenuController.java 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/OperationRecordController.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/RoleController.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/UserController.java 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/UserLoginController.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/param/LoginParam.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/param/ResetPwdParam.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/param/RoleScopeParam.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/param/UpdatePasswordParam.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/result/LoginResult.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/Dept.java 270 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/Host.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/Menu.java 301 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/OperationRecord.java 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/Role.java 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/RoleMenu.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/User.java 360 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/UserLogin.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/UserRole.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/DeptMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/HostMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/MenuMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/OperationRecordMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/RoleMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/RoleMenuMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/UserLoginMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/UserMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/UserRoleMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/DeptService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/HostService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/MenuService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/OperationRecordService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/RoleMenuService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/RoleService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/UserLoginService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/UserRoleService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/UserService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/DeptServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/HostServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/MenuServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/OperationRecordServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/RoleMenuServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/RoleServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/UserLoginServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/UserRoleServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/UserServiceImpl.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/CodeBuilder.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/ExcelUtil.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/HttpUtils.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/JwtUtil.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/NodeUtils.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/Utils.java 307 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/resources/application.yml 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/resources/mapper/system/DeptMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/resources/mapper/system/HostMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/resources/mapper/system/MenuMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/resources/mapper/system/OperationRecordMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/resources/mapper/system/RoleMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/resources/mapper/system/RoleMenuMapper.xml 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/resources/mapper/system/UserLoginMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/resources/mapper/system/UserMapper.xml 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/resources/mapper/system/UserRoleMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/css/common.css 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/css/index.css 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/js/common.js 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/js/cool.js 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/js/echarts/echarts.min.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/js/echarts/highcharts.js 422 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/js/handlebars/handlebars-v4.5.3.js 5010 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/js/jquery/jquery-3.3.1.min.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/js/tools/md5.js 213 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/css/layui.css 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/css/layui.mobile.css 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/code.css 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/laydate/default/laydate.css 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/layer/default/icon-ext.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/layer/default/icon.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/layer/default/layer.css 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/layer/default/loading-0.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/layer/default/loading-1.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/layer/default/loading-2.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/font/iconfont.eot 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/font/iconfont.svg 485 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/font/iconfont.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/font/iconfont.woff 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/font/iconfont.woff2 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/0.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/1.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/10.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/11.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/12.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/13.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/14.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/15.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/16.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/17.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/18.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/19.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/2.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/20.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/21.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/22.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/23.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/24.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/25.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/26.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/27.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/28.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/29.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/3.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/30.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/31.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/32.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/33.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/34.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/35.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/36.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/37.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/38.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/39.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/4.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/40.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/41.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/42.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/43.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/44.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/45.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/46.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/47.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/48.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/49.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/5.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/50.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/51.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/52.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/53.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/54.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/55.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/56.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/57.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/58.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/59.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/6.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/60.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/61.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/62.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/63.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/64.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/65.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/66.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/67.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/68.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/69.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/7.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/70.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/71.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/8.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/images/face/9.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/carousel.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/code.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/colorpicker.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/dropdown/dropdown.css 618 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/dropdown/dropdown.js 250 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/element.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/flow.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/form.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/jquery.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/laydate.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/layedit.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/layer.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/laypage.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/laytpl.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/mobile.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/rate.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/slider.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/table.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/transfer.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/tree.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/upload.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/util.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/layui.all.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/static/layui/layui.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/views/index.html 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/webapp/views/login.html 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/pom.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/WmsBoot.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/annotation/OperationLog.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/aspect/OperationLogAspect.java 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/config/BeanConfig.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/config/ConfigProperties.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/config/MybatisPlusConfig.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/config/WebConfig.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/constant/Constants.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/domain/BaseParam.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/domain/KeyValVo.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/domain/PageParam.java 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/domain/PageResult.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/JwtAuthenticationFilter.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/JwtSubject.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/SecurityConfig.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/SecurityExceptionHandler.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/config/AdminInterceptor.java 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/config/BeanConfig.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/config/MybatisPlusConfig.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/config/WebConfig.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/AdjDetlController.java 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/BasBarcodeController.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/BasDevpController.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/BasLocStsController.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/BasWhsController.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/BasWrkIotypeController.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/BasWrkStatusController.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/CstmrController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/DocTypeController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/ItemController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocMastController.java 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocRuleController.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MapController.java 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatCodeController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java 269 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/NodeController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java 355 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlLogController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderLogController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderSettleController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/PriorController.java 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/ReportQueryController.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/RouterController.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/RowLastnoController.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/StaDescController.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TagController.java 212 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WaitPakinController.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WaitPakinLogController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WcsController.java 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkDetlController.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkDetlLogController.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkLastnoController.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkMastController.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkMastLogController.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/AuthController.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/BaseController.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/DeptController.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/HostController.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/MenuController.java 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/OperationRecordController.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/RoleController.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/UserController.java 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/UserLoginController.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/param/LoginParam.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/param/ResetPwdParam.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/param/RoleScopeParam.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/param/UpdatePasswordParam.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/result/LoginResult.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/Dept.java 270 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/Host.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/Menu.java 301 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/OperationRecord.java 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/Role.java 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/RoleMenu.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/User.java 360 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/UserLogin.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/UserRole.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/DeptMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/HostMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/MenuMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/OperationRecordMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/RoleMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/RoleMenuMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/UserLoginMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/UserMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/UserRoleMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/DeptService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/HostService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/MenuService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/OperationRecordService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/RoleMenuService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/RoleService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/UserLoginService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/UserRoleService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/UserService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/DeptServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/HostServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/MenuServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/OperationRecordServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/RoleMenuServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/RoleServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/UserLoginServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/UserRoleServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/UserServiceImpl.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/AbstractHandler.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/WorkLogScheduler.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/WorkMastScheduler.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/core/ReturnT.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkMastHandler.java 342 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/CodeBuilder.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/ExcelUtil.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/HttpUtils.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/JwtUtil.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/NodeUtils.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/Utils.java 307 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/resources/application.yml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/resources/mapper/system/DeptMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/resources/mapper/system/HostMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/resources/mapper/system/MenuMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/resources/mapper/system/OperationRecordMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/resources/mapper/system/RoleMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/resources/mapper/system/RoleMenuMapper.xml 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/resources/mapper/system/UserLoginMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/resources/mapper/system/UserMapper.xml 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/resources/mapper/system/UserRoleMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/admin.css 445 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/animate.min.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/animsition.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/bg.css 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/common.css 254 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/console.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/console_vue.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/cool.css 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/crn.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/element.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/css/font-awesome.css 2337 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/css/font-awesome.min.css 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/fonts/FontAwesome.otf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/fonts/fontawesome-webfont.eot 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/fonts/fontawesome-webfont.svg 2671 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/fonts/fontawesome-webfont.woff 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/animated.less 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/bordered-pulled.less 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/core.less 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/fixed-width.less 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/font-awesome.less 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/icons.less 789 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/larger.less 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/list.less 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/mixins.less 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/path.less 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/rotated-flipped.less 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/screen-reader.less 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/stacked.less 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/variables.less 800 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_animated.scss 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_bordered-pulled.scss 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_core.scss 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_fixed-width.scss 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_icons.scss 789 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_larger.scss 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_list.scss 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_mixins.scss 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_path.scss 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_rotated-flipped.scss 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_screen-reader.scss 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_stacked.scss 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_variables.scss 800 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/font-awesome.scss 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-Black.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-BlackItalic.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-Bold.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-BoldItalic.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-ExtraBold.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-ExtraBoldItalic.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-ExtraLight.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-ExtraLightItalic.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-Italic.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-Light.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-LightItalic.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-Medium.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-MediumItalic.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-Regular.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-SemiBold.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-SemiBoldItalic.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-Thin.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-ThinItalic.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/OFL.txt 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/fonts/element-icons.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/fonts/element-icons.woff 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/index-0.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/index.css 201 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/layx.min.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/lift.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/loader.css 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/login.css 473 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/main.min.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/normalize.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/optimize.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/originTable.css 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/pda.css 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/pipeline.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/print.css 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/render.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/road.css 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/shuttle.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/ste.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/toggle-switch.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/css/tree.css 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/Excel.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/banner.mp4 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/bg.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/bg1.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/favicon.ico 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/instancing/cubemap_nx.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/instancing/cubemap_ny.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/instancing/cubemap_nz.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/instancing/cubemap_px.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/instancing/cubemap_py.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/instancing/cubemap_pz.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/login_bg.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/nav/bg_1.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/nav/fn_1.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/nav/fn_1_h.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/nav/fn_2.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/nav/fn_2_h.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/nav/fn_3.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/nav/fn_3_h.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/nav/icon.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/image/weixin_qrcode.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/Crane_auto.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/Crane_error.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/Crane_hptoohp.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/Crane_loctoloc.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/Crane_manual.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/Crane_manual1.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/Crane_retrieve.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/Crane_stntostn.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/Crane_store.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/Popup-green.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/Popup-yellow.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/barcode.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/bg.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/bscanner.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/cancellation.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/favicon.ico 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/fork_l.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/fork_r.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/line.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/login.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/loginBg.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/siteclose.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/stacker.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/start48.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/status_bar_1.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/status_bar_2.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/ste/1@1x.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/ste/2@1x.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/ste/3@1x.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/ste/4@1x.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/ste/5@1x.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/ste/6@1x.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/ste/7@1x.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/ste/8@1x.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/stop48.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/sxcar.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/wcs_logo.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/images/zy-logo.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/adjDetl/adjDetl.js 397 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/basBarcode/basBarcode.js 348 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/basDevp/basDevp.js 603 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/basLocSts/basLocSts.js 324 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/basWhs/basWhs.js 324 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/basWrkIotype/basWrkIotype.js 324 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/basWrkStatus/basWrkStatus.js 322 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/common.js 179 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/config/config.js 345 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/console.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/console.map.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/cool.js 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/cstmr/cstmr.js 359 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/docType/docType.js 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/element.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/errorWrkMast/errorWrkMast.js 497 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/handWrkMast/handWrkMast.js 493 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/host/host.js 353 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/hostTable.js 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/item/item.js 373 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/jquery/jQuery.print.js 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/jquery/jquery.animsition.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/layer/layer.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/layer/mobile/layer.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/layer/mobile/need/layer.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/layer/theme/default/icon-ext.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/layer/theme/default/icon.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/layer/theme/default/layer.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/layer/theme/default/loading-0.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/layer/theme/default/loading-1.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/layer/theme/default/loading-2.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/locDetl/locDetl.js 497 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/locDetlStatis/locDetlStatis.js 256 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/locDirection/locDirection.js 284 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/locMast/locMast.js 619 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/locRule/locRule.js 278 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/mat/mat.js 480 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/matCode/matCode.js 361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/node/node.js 394 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/operateLog/operateLog.js 292 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/order/order.js 610 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/order/out.js 372 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/orderDetl/orderDetl.js 415 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/orderDetlLog/orderDetlLog.js 397 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/orderLog/orderLog.js 504 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/orderSettle/orderSettle.js 256 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/orderTable.js 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/pakStore/emptyIn.js 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/pakStore/emptyOut.js 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/pakStore/locCheckOut.js 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/pakStore/locMove.js 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/pakStore/pakStore.js 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/pakStore/stockAdjust.js 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/pakStore/stockOut.js 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/pakStore/stockOut2.js 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/pakStore/turnOver.js 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/particles.min.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/pixi-legacy.min.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/prior/prior.js 363 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/report/inOut.js 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/report/locMap.js 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/report/reportStockUse.js 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/report/stayTime.js 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/report/workCountIn.js 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/report/workCountOut.js 220 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/report/workIn.js 236 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/report/workOut.js 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/resource/resource.js 382 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/role/role.js 410 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/role/rolePower.js 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/rowLastno/rowLastno.js 330 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/safeSto/safeSto.js 313 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/staDesc/staDesc.js 618 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/stoMan/stoQue.js 342 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/tag/tag.js 352 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/tagTree.js 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/tools/anime.min.js 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/tools/layx.min.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/tools/main.min.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/user/user.js 240 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/userLogin/userLogin.js 369 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/vue.min.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/waitPakin/waitPakin.js 512 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/waitPakinLog/waitPakinLog.js 482 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/wrkDetl/wrkDetl.js 486 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/wrkDetlLog/wrkDetlLog.js 523 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/wrkLastno/wrkLastno.js 327 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/wrkMast/wrkMast.js 687 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js 534 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layer/layer.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layer/mobile/layer.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layer/mobile/need/layer.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layer/theme/default/icon-ext.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layer/theme/default/icon.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layer/theme/default/layer.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layer/theme/default/loading-0.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layer/theme/default/loading-1.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layer/theme/default/loading-2.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/css/layui.css 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/admin.js 1667 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/carousel.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/contextMenu.js 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/index.js 302 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/1.wav 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/2.wav 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/3.wav 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/4.wav 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/5.wav 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/6.wav 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/notice.css 1929 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/notice.js 1241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/tableMerge.js 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/tableX.js 645 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/treeTable.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/xmSelect.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/layer_mobile/layer.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layui/layer_mobile/need/layer.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/config.js 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/console/prograss.js 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/console/top-card.js 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/console/top-search.js 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/content/comment.js 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/content/list.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/content/tags.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/forum/list.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/forum/replys.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/layer/photos.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/layim/getList.js 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/layim/getMembers.js 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/mall/order.js 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/menu.js 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/menu1.js 271 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/message/all.js 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/message/detail.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/message/direct.js 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/message/new.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/message/notice.js 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/table/demo.js 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/table/demo2.js 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/table/user.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/table/user30.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/upload/demo.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/user/forget.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/user/login.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/user/logout.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/user/reg.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/user/resetpass.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/user/session.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/user/sms.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/useradmin/mangadmin.js 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/useradmin/role.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/useradmin/webuser.js 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/workorder/demo.js 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/说明.txt 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/layui.css 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/layui.mobile.css 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/code.css 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/laydate/default/font.css 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/laydate/default/laydate.css 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layer/default/icon-ext.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layer/default/icon.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layer/default/layer.css 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layer/default/loading-0.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layer/default/loading-1.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layer/default/loading-2.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/html/chatlog.html 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/html/find.html 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/html/getmsg.json 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/html/msgbox.html 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/layim.css 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/mobile/layim.css 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/skin/1.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/skin/2.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/skin/3.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/skin/4.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/skin/5.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/skin/logo.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/voice/default.mp3 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/font/iconfont.eot 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/font/iconfont.svg 468 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/font/iconfont.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/font/iconfont.woff 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/0.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/1.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/10.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/11.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/12.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/13.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/14.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/15.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/16.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/17.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/18.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/19.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/2.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/20.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/21.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/22.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/23.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/24.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/25.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/26.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/27.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/28.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/29.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/3.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/30.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/31.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/32.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/33.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/34.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/35.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/36.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/37.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/38.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/39.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/4.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/40.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/41.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/42.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/43.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/44.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/45.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/46.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/47.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/48.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/49.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/5.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/50.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/51.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/52.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/53.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/54.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/55.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/56.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/57.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/58.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/59.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/6.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/60.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/61.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/62.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/63.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/64.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/65.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/66.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/67.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/68.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/69.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/7.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/70.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/71.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/8.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/9.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/all-mobile.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/all.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/carousel.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/code.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/element.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/flow.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/form.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/jquery.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/laydate.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/layedit.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/layer.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/layim.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/laypage.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/laytpl.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/mobile.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/mobile/layer-mobile.js 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/mobile/layim-mobile-open.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/mobile/layim-mobile.js 1167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/mobile/upload-mobile.js 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/mobile/zepto.js 1646 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/rate.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/table.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/tree.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/upload.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/util.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/layui.all.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/layui.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/lib/admin.js 866 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/lib/extend/echarts.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/lib/extend/echartsTheme.js 267 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/lib/index.js 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/lib/view.js 355 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/common.js 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/console.js 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/contlist.js 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/forum.js 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/im.js 418 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/message.js 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/sample.js 299 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/senior.js 1166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/set.js 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/user.js 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/useradmin.js 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/workorder.js 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/admin.css 535 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/login.css 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/res/bg-none.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/res/layui-logo.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/res/logo-black.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/res/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/res/template/character.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/res/template/huge.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/res/template/portrait.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/template.css 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/tpl/layim/demo.html 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/tpl/system/about.html 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/tpl/system/get.html 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/tpl/system/more.html 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/tpl/system/theme.html 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/tpl/system/说明.txt 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/layuiadmin/tpl/说明.txt 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/404.html 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/adjDetl/adjDetl.html 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/adjDetl/adjDetl_detail.html 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/basBarcode/basBarcode.html 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/basDevp/basDevp.html 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/basDevp/basDevp_detail.html 265 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/basLocSts/basLocSts.html 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/basWhs/basWhs.html 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/basWrkIotype/basWrkIotype.html 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/basWrkStatus/basWrkStatus.html 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/car_vue.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/config/config.html 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/config/config_detail.html 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/console.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/console2.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/control.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/crn.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/cstmr/cstmr.html 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/detail.html 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/docType/docType.html 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/errorWrkMast/errorWrkMast.html 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/handWrkMast/handWrkMast.html 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/handWrkMast/wrkDetlLog.html 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/home/console.html 333 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/home/css/app.7cc7872b.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/home/js/app.e3dc6995.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/home/js/app.e3dc6995.js.map 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/home/js/chunk-vendors.9ed0ec45.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/home/js/chunk-vendors.9ed0ec45.js.map 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/home/map.html 1207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/home/map_edit.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/home/navigation.html 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/host/host.html 251 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/index.html 354 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/item/item.html 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/led.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/lift.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/locDetl/locDetl.html 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/locDetl/locDetl_detail.html 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/locDetlStatis/locDetlStatis.html 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/locDirection/locDirection.html 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/locMast/locMast.html 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/locMast/locMast_detail.html 238 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/locRule/locRule.html 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/login.html 563 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/login2.html 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/mat/mat.html 465 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/matCode/matCode.html 321 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/css/Pacifico.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/css/lunbo.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/css/monitor.css 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/data/map.json 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/echarts.js.map 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/a.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/a1.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/a2.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/b.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/b1.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/b2.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/background.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/banner/banner1.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/banner/banner2.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/banner/banner3.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/banner/banner4.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/banner/banner5.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/banner/test1.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/banner/test2.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/banner/test3.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/c.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/c1.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/c2.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/d.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/d1.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/d2.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/e.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/e1.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/e2.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/f.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/f1.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/f2.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/g.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/g1.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/g2.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/left.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/right.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/img/wxCode.jpg 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/js/echarts/echarts.min.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/js/jquery-3.3.1.min.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/js/jquery.countup.min.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/js/jquery.waypoints.min.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/js/md5.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/js/monitor.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/js/vincent.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/monitor.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/monitor/monitor0.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/news.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/node/node.html 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/operateLog/operateLog.html 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/order/order.html 311 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/order/out.html 314 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/orderDetl/orderDetl.html 366 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/orderDetlLog/orderDetlLog.html 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/orderLog/orderLog.html 351 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/orderSettle/orderSettle.html 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pakStore/emptyIn.html 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pakStore/emptyOut.html 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pakStore/locCheckOut.html 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pakStore/locDetlCheckQuery.html 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pakStore/locDetlQuery.html 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pakStore/locDetlQuery2.html 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pakStore/locMove.html 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pakStore/matQuery.html 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pakStore/pakStore.html 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pakStore/stockAdjust.html 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pakStore/stockOut.html 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pakStore/stockOut2.html 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pakStore/turnOver.html 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pakStore/turnOverQuery.html 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/password.html 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/pipeline.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/prior/prior.html 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/report/locDetl.html 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/report/viewInOut.html 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/report/viewLocMap.html 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/report/viewStayTime.html 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/report/viewStockUse.html 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/report/viewWorkCountIn.html 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/report/viewWorkCountOut.html 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/report/viewWorkIn.html 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/report/viewWorkOut.html 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/resource/resource.html 316 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/role/role.html 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/role/role_detail.html 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/role/role_power_detail.html 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/rowLastno/rowLastno.html 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/safeSto/safeSto.html 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/shuttle.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/shuttle2.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/shuttle_zs.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/staDesc/staDesc.html 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/staDesc/staDesc_detail.html 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/ste.html 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/stoMan/stoQue.html 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tag/tag.html 304 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/alarm-detl.html 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/ic_loading.gif 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/icon_date.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/icon_search.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-admin.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-blue.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-colorful.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-cyan.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-green.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-my.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-pink.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-purple.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-red.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-white.png 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/tpl-note.html 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/tpl/tpl-theme.html 229 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/user/user.html 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/user/user_detail.html 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/userLogin/userLogin.html 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/userLogin/userLogin_detail.html 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/waitPakin/waitPakin.html 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/waitPakin/waitPakin_detail.html 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/waitPakinLog/waitPakinLog.html 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/waitPakinLog/waitPakinLog_detail.html 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/wrkDetl/wrkDetl.html 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/wrkDetl/wrkDetl_detail.html 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/wrkDetlLog/wrkDetlLog.html 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/wrkDetlLog/wrkDetlLog_detail.html 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/wrkLastno/wrkLastno.html 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/wrkMast/wrkDetl.html 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast.html 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast_detail.html 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/wrkMastLog/wrkDetlLog.html 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/wrkMastLog/wrkMastLog.html 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/wrkMastLog/wrkMastLog_detail.html 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/version/sql/react_admin_stable.rar 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -19,7 +19,6 @@
    <modules>
        <module>zy-asrs-common</module>
        <module>zy-asrs-framework</module>
        <module>zy-asrs-wcs</module>
        <module>zy-asrs-wms</module>
        <module>zy-asrs-openapi</module>
    </modules>
zy-asrs-framework/src/main/resources/templates/react/Controller.txt
@@ -1,16 +1,16 @@
package com.zy.asrs.wcs.system.controller;
package com.zy.asrs.wms.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.wcs.common.annotation.OperationLog;
import com.zy.asrs.wcs.common.domain.BaseParam;
import com.zy.asrs.wcs.common.domain.KeyValVo;
import com.zy.asrs.wcs.common.domain.PageParam;
import com.zy.asrs.wms.common.annotation.OperationLog;
import com.zy.asrs.wms.common.domain.BaseParam;
import com.zy.asrs.wms.common.domain.KeyValVo;
import com.zy.asrs.wms.common.domain.PageParam;
import @{COMPANYNAME}.entity.@{ENTITYNAME};
import @{COMPANYNAME}.service.@{ENTITYNAME}Service;
import com.zy.asrs.wcs.utils.ExcelUtil;
import com.zy.asrs.wms.utils.ExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
zy-asrs-framework/src/main/resources/templates/react/Entity.txt
@@ -10,8 +10,8 @@
import lombok.Data;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.wcs.system.service.UserService;
import com.zy.asrs.wcs.system.service.HostService;
import com.zy.asrs.wms.system.service.UserService;
import com.zy.asrs.wms.system.service.HostService;
import java.io.Serializable;
import java.util.Date;
zy-asrs-wcs/.gitignore
File was deleted
zy-asrs-wcs/pom.xml
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/WcsBoot.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/annotation/OperationLog.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/aspect/OperationLogAspect.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/config/BeanConfig.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/config/ConfigProperties.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/config/MybatisPlusConfig.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/config/WebConfig.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/constant/Constants.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/BaseParam.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/KeyValVo.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageParam.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageResult.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtAuthenticationFilter.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtSubject.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/SecurityConfig.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/SecurityExceptionHandler.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/AuthController.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/BaseController.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/DeptController.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/HostController.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/MenuController.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/OperationRecordController.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/RoleController.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/UserController.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/UserLoginController.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/param/LoginParam.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/param/ResetPwdParam.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/param/RoleScopeParam.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/param/UpdatePasswordParam.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/result/LoginResult.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/Dept.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/Host.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/Menu.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/OperationRecord.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/Role.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/RoleMenu.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/User.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/UserLogin.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/entity/UserRole.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/DeptMapper.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/HostMapper.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/MenuMapper.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/OperationRecordMapper.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/RoleMapper.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/RoleMenuMapper.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/UserLoginMapper.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/UserMapper.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/mapper/UserRoleMapper.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/DeptService.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/HostService.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/MenuService.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/OperationRecordService.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/RoleMenuService.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/RoleService.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/UserLoginService.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/UserRoleService.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/UserService.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/DeptServiceImpl.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/HostServiceImpl.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/MenuServiceImpl.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/OperationRecordServiceImpl.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/RoleMenuServiceImpl.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/RoleServiceImpl.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/UserLoginServiceImpl.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/UserRoleServiceImpl.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/service/impl/UserServiceImpl.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/CodeBuilder.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/ExcelUtil.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/HttpUtils.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/JwtUtil.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/NodeUtils.java
File was deleted
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/Utils.java
File was deleted
zy-asrs-wcs/src/main/resources/application.yml
File was deleted
zy-asrs-wcs/src/main/resources/mapper/system/DeptMapper.xml
File was deleted
zy-asrs-wcs/src/main/resources/mapper/system/HostMapper.xml
File was deleted
zy-asrs-wcs/src/main/resources/mapper/system/MenuMapper.xml
File was deleted
zy-asrs-wcs/src/main/resources/mapper/system/OperationRecordMapper.xml
File was deleted
zy-asrs-wcs/src/main/resources/mapper/system/RoleMapper.xml
File was deleted
zy-asrs-wcs/src/main/resources/mapper/system/RoleMenuMapper.xml
File was deleted
zy-asrs-wcs/src/main/resources/mapper/system/UserLoginMapper.xml
File was deleted
zy-asrs-wcs/src/main/resources/mapper/system/UserMapper.xml
File was deleted
zy-asrs-wcs/src/main/resources/mapper/system/UserRoleMapper.xml
File was deleted
zy-asrs-wcs/src/main/webapp/static/css/common.css
File was deleted
zy-asrs-wcs/src/main/webapp/static/css/index.css
File was deleted
zy-asrs-wcs/src/main/webapp/static/js/common.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/js/cool.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/js/echarts/echarts.min.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/js/echarts/highcharts.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/js/handlebars/handlebars-v4.5.3.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/js/jquery/jquery-3.3.1.min.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/js/tools/md5.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/css/layui.css
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/css/layui.mobile.css
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/code.css
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/laydate/default/laydate.css
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/layer/default/icon-ext.png
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/layer/default/icon.png
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/layer/default/layer.css
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/layer/default/loading-0.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/layer/default/loading-1.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/css/modules/layer/default/loading-2.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/font/iconfont.eot
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/font/iconfont.svg
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/font/iconfont.ttf
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/font/iconfont.woff
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/font/iconfont.woff2
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/0.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/1.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/10.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/11.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/12.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/13.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/14.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/15.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/16.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/17.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/18.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/19.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/2.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/20.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/21.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/22.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/23.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/24.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/25.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/26.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/27.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/28.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/29.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/3.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/30.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/31.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/32.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/33.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/34.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/35.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/36.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/37.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/38.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/39.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/4.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/40.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/41.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/42.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/43.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/44.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/45.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/46.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/47.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/48.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/49.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/5.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/50.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/51.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/52.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/53.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/54.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/55.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/56.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/57.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/58.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/59.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/6.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/60.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/61.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/62.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/63.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/64.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/65.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/66.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/67.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/68.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/69.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/7.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/70.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/71.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/8.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/images/face/9.gif
Binary files differ
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/carousel.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/code.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/colorpicker.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/dropdown/dropdown.css
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/dropdown/dropdown.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/element.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/flow.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/form.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/jquery.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/laydate.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/layedit.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/layer.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/laypage.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/laytpl.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/mobile.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/rate.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/slider.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/table.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/transfer.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/tree.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/upload.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/lay/modules/util.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/layui.all.js
File was deleted
zy-asrs-wcs/src/main/webapp/static/layui/layui.js
File was deleted
zy-asrs-wcs/src/main/webapp/views/index.html
File was deleted
zy-asrs-wcs/src/main/webapp/views/login.html
File was deleted
zy-asrs-wms/pom.xml
@@ -32,21 +32,34 @@
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>8.2.2.jre8</version>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <!-- mybatis-plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-impl</artifactId>
            <version>0.11.2</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.4.1</version>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-jackson</artifactId>
            <version>0.11.2</version>
        </dependency>
        <!-- okHttp3 -->
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>3.10.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>5.2.5.RELEASE</version>
        </dependency>
    </dependencies>
zy-asrs-wms/src/main/java/com/zy/asrs/wms/WmsBoot.java
@@ -1,18 +1,16 @@
package com.zy.asrs.wms;
import com.zy.asrs.common.utils.RandomValidateCodeUtil;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@MapperScan("com.zy.**.mapper")
@MapperScan("com.zy.asrs.wms.**.mapper")
@EnableScheduling
@SpringBootApplication
public class WmsBoot {
    public static void main(String[] args) {
        RandomValidateCodeUtil.init();
        SpringApplication.run(WmsBoot.class, args);
    }
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/annotation/OperationLog.java
New file
@@ -0,0 +1,41 @@
package com.zy.asrs.wms.common.annotation;
import java.lang.annotation.*;
/**
 * æ“ä½œæ—¥å¿—记录注解
 *
 * @author vincent
 * @since 2020-03-21 17:03:08
 */
@Documented
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface OperationLog {
    /**
     * æ“ä½œåŠŸèƒ½
     */
    String value() default "";
    /**
     * æ“ä½œæ¨¡å—
     */
    String module() default "";
    /**
     * å¤‡æ³¨
     */
    String comments() default "";
    /**
     * æ˜¯å¦è®°å½•请求参数
     */
    boolean param() default true;
    /**
     * æ˜¯å¦è®°å½•返回结果
     */
    boolean result() default true;
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/aspect/OperationLogAspect.java
New file
@@ -0,0 +1,192 @@
package com.zy.asrs.wms.common.aspect;
import com.alibaba.fastjson.JSON;
import com.zy.asrs.common.utils.IpTools;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.wms.common.annotation.OperationLog;
import com.zy.asrs.wms.system.entity.OperationRecord;
import com.zy.asrs.wms.system.entity.User;
import com.zy.asrs.wms.system.service.OperationRecordService;
import com.zy.asrs.wms.utils.Utils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.*;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
 * æ“ä½œæ—¥å¿—记录
 *
 * @author vincent
 * @since 2020-03-21 16:58:16:05
 */
@Aspect
@Component
public class OperationLogAspect {
    @Resource
    private OperationRecordService operationRecordService;
    // å‚数、返回结果、错误信息等最大保存长度
    private static final int MAX_LENGTH = 1000;
    // ç”¨äºŽè®°å½•请求耗时
    private final ThreadLocal<Long> startTime = new ThreadLocal<>();
    @Pointcut("@annotation(com.zy.asrs.wms.common.annotation.OperationLog)")
    public void operationLog() {
    }
    @Before("operationLog()")
    public void doBefore(JoinPoint joinPoint) throws Throwable {
        startTime.set(System.currentTimeMillis());
    }
    @AfterReturning(pointcut = "operationLog()", returning = "result")
    public void doAfterReturning(JoinPoint joinPoint, Object result) {
        saveLog(joinPoint, result, null);
    }
    @AfterThrowing(value = "operationLog()", throwing = "e")
    public void doAfterThrowing(JoinPoint joinPoint, Exception e) {
        saveLog(joinPoint, null, e);
    }
    /**
     * ä¿å­˜æ“ä½œè®°å½•
     */
    private void saveLog(JoinPoint joinPoint, Object result, Exception e) {
        // è®°å½•模块名、操作功能、请求方法、请求参数、返回结果
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        Method method = signature.getMethod();
        if (null == method) {
            return;
        }
        OperationLog ol = method.getAnnotation(OperationLog.class);
        if (null == ol) {
            return;
        }
        String desc = getDescription(method, ol);
        if (Cools.isEmpty(desc)) {
            return;
        }
        OperationRecord record = new OperationRecord();
        Long endTime = startTime.get();
        record.setCreateTime(new Date());
        // è®°å½•操作耗时
        if (endTime != null) {
            record.setSpendTime((int) (System.currentTimeMillis() - endTime));
        }
        record.setTimestamp(String.valueOf(endTime));
        // è®°å½•当前登录用户id、租户id
        User user = getLoginUser();
        if (user != null) {
            record.setUserId(user.getId());
            record.setHostId(user.getHostId());
        }
        // è®°å½•请求地址、请求方式、ip
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = (attributes == null ? null : attributes.getRequest());
        if (request != null) {
            record.setUrl(request.getRequestURI());
            record.setClientIp(IpTools.gainRealIp(request));
        }
        // è®°å½•异常信息
        if (e != null) {
            record.setResult(0);
            record.setErr(Utils.sub(e.toString(), MAX_LENGTH));
        } else {
            record.setResult(1);
        }
        // è®°å½•操作功能
        record.setNamespace(desc);
        // è®°å½•备注
        if (!Cools.isEmpty(ol.comments())) {
            record.setMemo(ol.comments());
        }
        // è®°å½•请求参数
        if (ol.param() && request != null) {
            record.setRequest(Utils.sub(getParams(joinPoint, request), MAX_LENGTH));
        }
        // è®°å½•请求结果
        if (ol.result() && result != null) {
            record.setResponse(Utils.sub(JSON.toJSONString(result), MAX_LENGTH));
        }
        operationRecordService.saveAsync(record);
    }
    /**
     * èŽ·å–å½“å‰ç™»å½•ç”¨æˆ·
     */
    private User getLoginUser() {
        Authentication subject = SecurityContextHolder.getContext().getAuthentication();
        if (subject != null) {
            Object object = subject.getPrincipal();
            if (object instanceof User) {
                return (User) object;
            }
        }
        return null;
    }
    /**
     * èŽ·å–è¯·æ±‚å‚æ•°
     *
     * @param joinPoint JoinPoint
     * @param request   HttpServletRequest
     * @return String
     */
    private String getParams(JoinPoint joinPoint, HttpServletRequest request) {
        String params;
        Map<String, String> paramsMap = new HashMap<>();
        Map<String, String[]> map = Collections.unmodifiableMap(request.getParameterMap());
        for (Map.Entry<String, String[]> entry : map.entrySet()) {
            paramsMap.put(entry.getKey(), Utils.join(entry.getValue(), ","));
        }
        if (paramsMap.keySet().size() > 0) {
            params = JSON.toJSONString(paramsMap);
        } else {
            StringBuilder sb = new StringBuilder();
            for (Object arg : joinPoint.getArgs()) {
                if (null == arg
                        || arg instanceof MultipartFile
                        || arg instanceof HttpServletRequest
                        || arg instanceof HttpServletResponse) {
                    continue;
                }
                sb.append(JSON.toJSONString(arg)).append(" ");
            }
            params = sb.toString();
        }
        return params;
    }
    /**
     * èŽ·å–æ“ä½œåŠŸèƒ½
     *
     * @param method Method
     * @param ol     OperationLog
     * @return String
     */
    private String getDescription(Method method, OperationLog ol) {
        if (!Cools.isEmpty(ol.value())) {
            return ol.value();
        }
        return null;
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/config/BeanConfig.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.wms.common.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
 * Created by vincent on 12/19/2023
 */
@Configuration
@ComponentScan(value = "com.zy.asrs.common.config")
public class BeanConfig {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/config/ConfigProperties.java
New file
@@ -0,0 +1,33 @@
package com.zy.asrs.wms.common.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
/**
 * ç³»ç»Ÿé…ç½®å±žæ€§
 *
 * @author vincent
 * @since 2021-08-30 17:58:16
 */
@Data
@Configuration
@ConfigurationProperties(prefix = "config")
public class ConfigProperties {
    /**
     * token过期时间, å•位秒
     */
    private Long tokenExpireTime = 60 * 60 * 24L;
    /**
     * token快要过期自动刷新时间, å•位分钟
     */
    private int tokenRefreshTime = 30;
    /**
     * ç”Ÿæˆtoken的密钥Key的base64字符
     */
    private String tokenKey;
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/config/MybatisPlusConfig.java
New file
@@ -0,0 +1,82 @@
package com.zy.asrs.wms.common.config;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
import com.zy.asrs.wms.system.entity.User;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.LongValue;
import net.sf.jsqlparser.expression.NullValue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import java.util.Arrays;
/**
 * MybatisPlus配置
 *
 * @author vincent
 * @since 2018-02-22 11:29:28
 */
@Configuration
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        TenantLineHandler tenantLineHandler = new TenantLineHandler() {
            @Override
            public Expression getTenantId() {
                return getLoginUserTenantId();
            }
            @Override
            public String getTenantIdColumn() {
                return "host_id";
            }
            @Override
            public boolean ignoreTable(String tableName) {
                return Arrays.asList(
                        "sys_host",
                        "sys_user_role",
                        "sys_role_menu"
                ).contains(tableName);
            }
        };
        TenantLineInnerInterceptor tenantLineInnerInterceptor = new TenantLineInnerInterceptor(tenantLineHandler);
        interceptor.addInnerInterceptor(tenantLineInnerInterceptor);
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
        interceptor.addInnerInterceptor(paginationInnerInterceptor);
        return interceptor;
    }
    /**
     * èŽ·å–å½“å‰ç™»å½•ç”¨æˆ·çš„ç§Ÿæˆ·id
     *
     * @return Integer
     */
    public Expression getLoginUserTenantId() {
        try {
            Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
            if (authentication != null) {
                Object object = authentication.getPrincipal();
                if (object instanceof User) {
                    return new LongValue(((User) object).getHostId());
                }
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return new NullValue();
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/config/WebConfig.java
New file
@@ -0,0 +1,50 @@
package com.zy.asrs.wms.common.config;
import com.zy.asrs.wms.common.constant.Constants;
import com.zy.asrs.wms.utils.Utils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.AsyncHandlerInterceptor;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Created by vincent on 2019-06-13
 */
@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(getAsyncHandlerInterceptor())
                .addPathPatterns("/**")
                ;
    }
    @Bean
    public AsyncHandlerInterceptor getAsyncHandlerInterceptor() {
        return new AsyncHandlerInterceptor(){
            @Override
            public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
                Utils.cors(response);
                return true;
            }
        };
    }
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOriginPatterns("*")
                .allowedHeaders("*")
                .exposedHeaders(Constants.TOKEN_HEADER_NAME)
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH")
                .allowCredentials(true)
                .maxAge(3600);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/constant/Constants.java
New file
@@ -0,0 +1,93 @@
package com.zy.asrs.wms.common.constant;
/**
 * ç³»ç»Ÿå¸¸é‡
 * Created by vincent on 2019-10-29 15:55
 */
public class Constants {
    /**
     * é»˜è®¤æˆåŠŸç 
     */
    public static final int RESULT_OK_CODE = 0;
    /**
     * é»˜è®¤å¤±è´¥ç 
     */
    public static final int RESULT_ERROR_CODE = 1;
    /**
     * é»˜è®¤æˆåŠŸä¿¡æ¯
     */
    public static final String RESULT_OK_MSG = "操作成功";
    /**
     * é»˜è®¤å¤±è´¥ä¿¡æ¯
     */
    public static final String RESULT_ERROR_MSG = "操作失败";
    /**
     * æ— æƒé™é”™è¯¯ç 
     */
    public static final int UNAUTHORIZED_CODE = 403;
    /**
     * æ— æƒé™æç¤ºä¿¡æ¯
     */
    public static final String UNAUTHORIZED_MSG = "没有访问权限";
    /**
     * æœªè®¤è¯é”™è¯¯ç 
     */
    public static final int UNAUTHENTICATED_CODE = 401;
    /**
     * æœªè®¤è¯æç¤ºä¿¡æ¯
     */
    public static final String UNAUTHENTICATED_MSG = "请先登录";
    /**
     * ç™»å½•过期错误码
     */
    public static final int TOKEN_EXPIRED_CODE = 401;
    /**
     * ç™»å½•过期提示信息
     */
    public static final String TOKEN_EXPIRED_MSG = "登录已过期";
    /**
     * éžæ³•token错误码
     */
    public static final int BAD_CREDENTIALS_CODE = 401;
    /**
     * éžæ³•token提示信息
     */
    public static final String BAD_CREDENTIALS_MSG = "请退出重新登录";
    /**
     * è¡¨ç¤ºå‡åºçš„值
     */
    public static final String ORDER_ASC_VALUE = "asc";
    /**
     * è¡¨ç¤ºé™åºçš„值
     */
    public static final String ORDER_DESC_VALUE = "desc";
    /**
     * token通过header传递的名称
     */
    public static final String TOKEN_HEADER_NAME = "Authorization";
    /**
     * token通过参数传递的名称
     */
    public static final String TOKEN_PARAM_NAME = "access_token";
    /**
     * token认证类型
     */
    public static final String TOKEN_TYPE = "Bearer";
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/domain/BaseParam.java
New file
@@ -0,0 +1,54 @@
package com.zy.asrs.wms.common.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
/**
 * Created by vincent on 2/13/2024
 */
@Data
public class BaseParam implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableField(exist = false)
    private Integer current;
    @TableField(exist = false)
    private Integer pageSize;
    @TableField(exist = false)
    private String timeStart;
    @TableField(exist = false)
    private String timeEnd;
    @TableField(exist = false)
    private String condition;
    @TableField(exist = false)
    private Map<String, Object> map;
    public void syncMap(Map<String, Object> map) {
        if (null == map) {
            return;
        }
        if (null != map.get("current")) {
            this.setCurrent(Integer.parseInt(String.valueOf(map.get("current"))));
            map.remove("current");
        }
        if (null != map.get("pageSize")) {
            this.setPageSize(Integer.parseInt(String.valueOf(map.get("pageSize"))));
            map.remove("pageSize");
        }
        if (null != map.get("condition")) {
            this.setCondition(String.valueOf(map.get("condition")));
            map.remove("condition");
        }
        this.setMap(map);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/domain/KeyValVo.java
New file
@@ -0,0 +1,20 @@
package com.zy.asrs.wms.common.domain;
import lombok.Data;
/**
 * Created by vincent on 2/16/2024
 */
@Data
public class KeyValVo {
    private Object value;
    private Object label;
    public KeyValVo(Object value, Object label) {
        this.value = value;
        this.label = label;
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/domain/PageParam.java
New file
@@ -0,0 +1,173 @@
package com.zy.asrs.wms.common.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.DateUtils;
import com.zy.asrs.wms.utils.Utils;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
/**
 * Created by vincent on 2/13/2024
 */
public class PageParam<T, U extends BaseParam> extends Page<T> {
    private static final long serialVersionUID = 1L;
    private final U where;
    /**
     * æ˜¯å¦æŠŠå­—段名称驼峰转下划线
     */
    private final boolean isToUnderlineCase;
    private final Class<T> cls;
    public PageParam() {
        this(null);
    }
    public PageParam(U where) {
        this(where, true);
    }
    public PageParam(U where, Class<T> cls) {
        this(where, true, cls);
    }
    public PageParam(U where, boolean isToUnderlineCase) {
        this(where, isToUnderlineCase, null);
    }
    public PageParam(U where, boolean isToUnderlineCase, Class<T> cls) {
        super();
        this.where = where;
        this.isToUnderlineCase = isToUnderlineCase;
        this.cls = cls;
        if (where != null) {
            if (where.getCurrent() != null) {
                setCurrent(where.getCurrent());
            }
            if (where.getPageSize() != null) {
                setSize(where.getPageSize());
            }
        }
    }
    public QueryWrapper<T> buildWrapper() {
        return this.buildWrapper(false);
    }
    public QueryWrapper<T> buildWrapper(Consumer<QueryWrapper<T>> consumer) {
        return this.buildWrapper(false, consumer);
    }
    public QueryWrapper<T> buildWrapper(boolean like) {
        return this.buildWrapper(like, null);
    }
    @SuppressWarnings("all")
    public QueryWrapper<T> buildWrapper(boolean like, Consumer<QueryWrapper<T>> consumer) {
        QueryWrapper<T> queryWrapper = new QueryWrapper<>();
        Map<String, Object> map = where.getMap();
        for (String key : map.keySet()) {
            Object val = map.get(key);
            if (key.contains("Range")) {
                ArrayList<String> list = null;
                if (val instanceof ArrayList) {
                    list = (ArrayList<String>) val;
                }
                if (null != list) {
                    key = key.replaceAll("Range", "");
                    if (this.isToUnderlineCase) {
                        key = Utils.toSymbolCase(key, '_');
                    }
                    queryWrapper.ge(key, DateUtils.convert(list.get(0)));
                    queryWrapper.le(key, DateUtils.convert(list.get(1)));
                }
            } else {
                if (this.isToUnderlineCase) {
                    key = Utils.toSymbolCase(key, '_');
                }
                if (like) {
                    queryWrapper.like(key, val);
                } else {
                    queryWrapper.eq(key, val);
                }
            }
        }
        if (null != consumer) {
            consumer.accept(queryWrapper);
        }
        Field[] fields = null;
        if (!Cools.isEmpty(cls)) {
            fields = Cools.getAllFields(cls);
            for (Field field : fields) {
                if ("createTime".equals(field.getName())) {
                    queryWrapper.orderByDesc(Utils.toSymbolCase(field.getName(), '_'));
                }
            }
        }
        if (!Cools.isEmpty(where.getCondition()) && !Cools.isEmpty(fields)) {
            List<String> columns = new ArrayList<>();
            for (Field field : fields){
                if (Modifier.isFinal(field.getModifiers())
                        || Modifier.isStatic(field.getModifiers())
                        || Modifier.isTransient(field.getModifiers())){
                    continue;
                }
                if (field.isAnnotationPresent(TableField.class)){
                    TableField annotation = field.getAnnotation(TableField.class);
                    if (!annotation.exist()) {
                        continue;
                    }
                }
                String column =  Utils.toSymbolCase(field.getName(), '_');
                columns.add(column);
            }
            if (!columns.isEmpty()) {
                for (int i=0;i<columns.size();i++){
                    String column = columns.get(i);
                    String condition = where.getCondition();
                    if (i == 0) {
                        queryWrapper.and(wrapper -> wrapper.like(column, condition));
                    } else {
                        queryWrapper.or().like(column, condition);
                    }
                }
            }
        }
        return queryWrapper;
    }
    public Map<String, Object> pickOutMap() {
        return pickOutMap(false);
    }
    public Map<String, Object> pickOutMap(boolean mergeCondition) {
        Map<String, Object> map = where.getMap();
        if (mergeCondition) {
            if (!Cools.isEmpty(where.getCondition())) {
                map.put("condition", where.getCondition());
            }
        }
        return map;
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/domain/PageResult.java
New file
@@ -0,0 +1,33 @@
package com.zy.asrs.wms.common.domain;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
 * @author vincent
 * @since 2017-06-10 10:10:02
 */
@Data
public class PageResult<T> implements Serializable {
    private static final long serialVersionUID = 1L;
    private List<T> records;
    private Long total;
    public PageResult() {
    }
    public PageResult(List<T> records) {
        this(records, null);
    }
    public PageResult(List<T> records, Long total) {
        this.records = records;
        this.total = total;
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/JwtAuthenticationFilter.java
New file
@@ -0,0 +1,114 @@
package com.zy.asrs.wms.common.security;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.wms.common.config.ConfigProperties;
import com.zy.asrs.wms.common.constant.Constants;
import com.zy.asrs.wms.system.entity.Menu;
import com.zy.asrs.wms.system.entity.User;
import com.zy.asrs.wms.system.entity.UserLogin;
import com.zy.asrs.wms.system.service.UserLoginService;
import com.zy.asrs.wms.system.service.UserService;
import com.zy.asrs.wms.utils.HttpUtils;
import com.zy.asrs.wms.utils.JwtUtil;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ExpiredJwtException;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;
import javax.annotation.Resource;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
 * å¤„理携带token的请求过滤器
 *
 */
@Component
public class JwtAuthenticationFilter extends OncePerRequestFilter {
    public static final ArrayList<String> WHITE_LIST = new ArrayList<String>(){
        private static final long serialVersionUID = 1L;
        {
            add("xltys1995");
        }
    };
    @Resource
    private ConfigProperties configProperties;
    @Resource
    private UserService userService;
    @Resource
    private UserLoginService userLoginService;
    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
        String access_token = JwtUtil.getAccessToken(request);
        for (String filterPath : SecurityConfig.FILTER_PATH) {
            AntPathRequestMatcher antPathMatcher = new AntPathRequestMatcher(filterPath);
            if (antPathMatcher.matches(request)) {
                access_token = "";
            }
        }
        if (!Cools.isEmpty(access_token)) {
            try {
                User user;
                // ç™½åå•
                if (WHITE_LIST.contains(access_token)) {
                    user = userService.getByUsername("root", 1L);
                    if (user == null) {
                        throw new UsernameNotFoundException("Username not found");
                    }
                    List<Menu> authorities = user.getAuthorities().stream()
                            .filter(m -> !Cools.isEmpty(m.getAuthority())).collect(Collectors.toList());
                    UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
                            user, null, authorities);
                    SecurityContextHolder.getContext().setAuthentication(authentication);
                } else {
                    // è§£æžtoken
                    Claims claims = JwtUtil.parseToken(access_token, configProperties.getTokenKey());
                    JwtSubject jwtSubject = JwtUtil.getJwtSubject(claims);
                    user = userService.getByUsername(jwtSubject.getUsername(), jwtSubject.getHostId());
                    if (user == null) {
                        throw new UsernameNotFoundException("Username not found");
                    }
                    List<Menu> authorities = user.getAuthorities().stream()
                            .filter(m -> !Cools.isEmpty(m.getAuthority())).collect(Collectors.toList());
                    UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
                            user, null, authorities);
                    SecurityContextHolder.getContext().setAuthentication(authentication);
                    // token将要过期签发新token, é˜²æ­¢çªç„¶é€€å‡ºç™»å½•
                    long expiration = (claims.getExpiration().getTime() - new Date().getTime()) / 1000 / 60;
                    if (expiration < configProperties.getTokenRefreshTime()) {
                        String token = JwtUtil.buildToken(jwtSubject, configProperties.getTokenExpireTime(),
                                configProperties.getTokenKey());
                        response.addHeader(Constants.TOKEN_HEADER_NAME, token);
                        userLoginService.saveAsync(user.getId(), token, UserLogin.TYPE_REFRESH, user.getHostId(), null, request);
                    }
                }
            } catch (ExpiredJwtException e) {
                e.printStackTrace();
                HttpUtils.responseError(response, Constants.TOKEN_EXPIRED_CODE, Constants.TOKEN_EXPIRED_MSG,
                        e.getMessage());
                return;
            } catch (Exception e) {
                e.printStackTrace();
                HttpUtils.responseError(response, Constants.BAD_CREDENTIALS_CODE, Constants.BAD_CREDENTIALS_MSG,
                        e.toString());
                return;
            }
        }
        chain.doFilter(request, response);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/JwtSubject.java
New file
@@ -0,0 +1,31 @@
package com.zy.asrs.wms.common.security;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
 * Jwt载体
 *
 * @author vincent
 * @since 2021-09-03 00:11:12
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class JwtSubject implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * è´¦å·
     */
    private String username;
    /**
     * æœºæž„
     */
    private Long hostId;
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/SecurityConfig.java
New file
@@ -0,0 +1,114 @@
package com.zy.asrs.wms.common.security;
import com.zy.asrs.wms.common.constant.Constants;
import com.zy.asrs.wms.utils.HttpUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.security.web.access.AccessDeniedHandler;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Spring Security配置
 *
 */
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    public static final String[] FILTER_PATH = new String[]{
            "/api/auth/host",
            "/test/**",
            "/api/login",
            "/druid/**",
            "/swagger-ui.html",
            "/swagger-resources/**",
            "/webjars/**",
            "/v2/api-docs",
            "/v3/api-docs",
            "/swagger-ui/**"
    };
    @Resource
    private JwtAccessDeniedHandler jwtAccessDeniedHandler;
    @Resource
    private JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint;
    @Resource
    private JwtAuthenticationFilter jwtAuthenticationFilter;
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers(HttpMethod.OPTIONS, "/**")
                .permitAll()
                .antMatchers(HttpMethod.GET, "/api/file/**", "/api/captcha", "/")
                .permitAll()
                .antMatchers(FILTER_PATH)
                .permitAll()
                .anyRequest()
                .authenticated()
                .and()
                .sessionManagement()
                .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
                .and()
                .csrf()
                .disable()
                .cors()
                .and()
                .logout()
                .disable()
                .headers()
                .frameOptions()
                .disable()
                .and()
                .exceptionHandling()
                .accessDeniedHandler(jwtAccessDeniedHandler)
                .authenticationEntryPoint(jwtAuthenticationEntryPoint)
                .and()
                .addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class);
    }
    @Bean
    public BCryptPasswordEncoder bCryptPasswordEncoder() {
        return new BCryptPasswordEncoder();
    }
    // æ²¡æœ‰è®¿é—®æƒé™å¼‚常处理
    @Component
    static class JwtAccessDeniedHandler implements AccessDeniedHandler {
        @Override
        public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException e) {
            HttpUtils.responseError(response, Constants.UNAUTHORIZED_CODE, Constants.UNAUTHORIZED_MSG, e.getMessage());
        }
    }
    // æ²¡æœ‰ç™»å½•异常处理
    @Component
    static class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint {
        @Override
        public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) {
            HttpUtils.responseError(response, Constants.UNAUTHENTICATED_CODE, Constants.UNAUTHENTICATED_MSG,
                    e.getMessage());
        }
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/SecurityExceptionHandler.java
New file
@@ -0,0 +1,22 @@
package com.zy.asrs.wms.common.security;
import com.zy.asrs.wms.common.constant.Constants;
import com.zy.asrs.wms.utils.HttpUtils;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import javax.servlet.http.HttpServletResponse;
/**
 * Created by vincent on 2/13/2024
 */
@RestControllerAdvice
public class SecurityExceptionHandler {
    @ExceptionHandler(AccessDeniedException.class)
    public void accessDeniedExceptionHandler(AccessDeniedException e, HttpServletResponse response) {
        HttpUtils.responseError(response, Constants.UNAUTHORIZED_CODE, Constants.UNAUTHORIZED_MSG, e.getMessage());
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/config/AdminInterceptor.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/config/BeanConfig.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/config/MybatisPlusConfig.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/config/WebConfig.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/AdjDetlController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/BasBarcodeController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/BasDevpController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/BasLocStsController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/BasWhsController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/BasWrkIotypeController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/BasWrkStatusController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/CstmrController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/DocTypeController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/ItemController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocMastController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocRuleController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MapController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatCodeController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/NodeController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlLogController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderLogController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderSettleController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/PriorController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/ReportQueryController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/RouterController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/RowLastnoController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/StaDescController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TagController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WaitPakinController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WaitPakinLogController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WcsController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkDetlController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkDetlLogController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkLastnoController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkMastController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkMastLogController.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/AuthController.java
New file
@@ -0,0 +1,125 @@
package com.zy.asrs.wms.system.controller;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.wms.common.annotation.OperationLog;
import com.zy.asrs.wms.common.config.ConfigProperties;
import com.zy.asrs.wms.common.security.JwtSubject;
import com.zy.asrs.wms.system.controller.param.LoginParam;
import com.zy.asrs.wms.system.controller.param.UpdatePasswordParam;
import com.zy.asrs.wms.system.controller.result.LoginResult;
import com.zy.asrs.wms.system.entity.Host;
import com.zy.asrs.wms.system.entity.Menu;
import com.zy.asrs.wms.system.entity.User;
import com.zy.asrs.wms.system.entity.UserLogin;
import com.zy.asrs.wms.system.service.HostService;
import com.zy.asrs.wms.system.service.RoleMenuService;
import com.zy.asrs.wms.system.service.UserLoginService;
import com.zy.asrs.wms.system.service.UserService;
import com.zy.asrs.wms.utils.JwtUtil;
import com.zy.asrs.wms.utils.Utils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
 * è®¤è¯æŽ§åˆ¶å™¨
 *
 * Created by vincent on 1/30/2024
 */
@RestController
@RequestMapping("/api")
public class AuthController extends BaseController {
    @Resource
    private ConfigProperties configProperties;
    @Resource
    private UserService userService;
    @Resource
    private UserLoginService userLoginService;
    @Resource
    private RoleMenuService roleMenuService;
    @Resource
    private HostService hostService;
    @PostMapping("/login")
    public R login(@RequestBody LoginParam param, HttpServletRequest request) {
        String username = param.getUsername();
        Long hostId = param.getHostId();
        User user = userService.getByUsername(username, hostId);
        if (user == null) {
            return R.error("账号不存在");
        }
        if (!user.getStatus().equals(1)) {
            return R.error("账号被冻结");
        }
        if (!userService.comparePassword(user.getPassword(), param.getPassword())) {
            return R.error("密码错误");
        }
        String accessToken = JwtUtil.buildToken(new JwtSubject(username, user.getHostId()),
                configProperties.getTokenExpireTime(), configProperties.getTokenKey());
        userLoginService.saveAsync(user.getId(), accessToken, UserLogin.TYPE_LOGIN, hostId, null, request);
        return R.ok("登录成功").add(new LoginResult(accessToken, user));
    }
    @GetMapping("/auth/user")
    public R userInfo() {
        return R.ok(userService.getByIdRel(getLoginUserId()));
    }
    @GetMapping("/auth/menu")
    public R userMenu() {
        List<Menu> menus = roleMenuService.listMenuByUserId(getLoginUserId(), Menu.TYPE_MENU);
        return R.ok().add(Utils.toTreeData(menus, 0L, Menu::getParentId, Menu::getId, Menu::setChildren));
    }
    @GetMapping("/auth/host")
    public R authHost() {
        List<Host> list = hostService.list();
        return R.ok().add(list);
    }
    @PreAuthorize("hasAuthority('sys:auth:user')")
    @OperationLog
    @PutMapping("/auth/user")
    public R updateInfo(@RequestBody User user) {
        user.setId(getLoginUserId());
        // ä¸èƒ½ä¿®æ”¹çš„字段
        user.setUsername(null);
        user.setPassword(null);
        user.setEmailVerified(null);
        user.setHostId(null);
        user.setStatus(null);
        if (userService.updateById(user)) {
            return R.ok().add(userService.getByIdRel(user.getId()));
        }
        return R.error("保存失败");
    }
    @PreAuthorize("hasAuthority('sys:auth:password')")
    @OperationLog
    @PutMapping("/auth/password")
    public R updatePassword(@RequestBody UpdatePasswordParam param) {
        if (Cools.isEmpty(param.getOldPassword(), param.getPassword())) {
            return R.error("参数不能为空");
        }
        Long userId = getLoginUserId();
        if (userId == null) {
            return R.error("未登录");
        }
        if (!userService.comparePassword(userService.getById(userId).getPassword(), param.getOldPassword())) {
            return R.error("原密码输入不正确");
        }
        User user = new User();
        user.setId(userId);
        user.setPassword(userService.encodePassword(param.getPassword()));
        if (userService.updateById(user)) {
            return R.ok("修改成功");
        }
        return R.error("修改失败");
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/BaseController.java
New file
@@ -0,0 +1,51 @@
package com.zy.asrs.wms.system.controller;
import com.zy.asrs.wms.common.domain.BaseParam;
import com.zy.asrs.wms.system.entity.User;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import java.util.Map;
/**
 * Created by vincent on 1/30/2024
 */
public class BaseController {
    public User getLoginUser() {
        try {
            Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
            if (authentication != null) {
                Object object = authentication.getPrincipal();
                if (object instanceof User) {
                    return (User) object;
                }
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return null;
    }
    public Long getLoginUserId() {
        User loginUser = getLoginUser();
        return loginUser == null ? null : loginUser.getId();
    }
    public Long getHostId() {
        User loginUser = getLoginUser();
        return loginUser == null ? null : loginUser.getHostId();
    }
    public <T extends BaseParam> T buildParam(Map<String, Object> map, Class<T> clz) {
        T t  = null;
        try {
            t = clz.getDeclaredConstructor().newInstance();
            t.syncMap(map);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return t;
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/DeptController.java
New file
@@ -0,0 +1,148 @@
package com.zy.asrs.wms.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.wms.common.annotation.OperationLog;
import com.zy.asrs.wms.common.domain.BaseParam;
import com.zy.asrs.wms.common.domain.KeyValVo;
import com.zy.asrs.wms.common.domain.PageParam;
import com.zy.asrs.wms.system.entity.Dept;
import com.zy.asrs.wms.system.service.DeptService;
import com.zy.asrs.wms.utils.ExcelUtil;
import com.zy.asrs.wms.utils.NodeUtils;
import com.zy.asrs.wms.utils.Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
@RestController
@RequestMapping("/api")
public class DeptController extends BaseController {
    @Autowired
    private DeptService deptService;
    @PreAuthorize("hasAuthority('system:dept:list')")
    @PostMapping("/dept/page")
    public R page(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<Dept, BaseParam> pageParam = new PageParam<>(baseParam, Dept.class);
        return R.ok().add(deptService.page(pageParam, pageParam.buildWrapper(true)));
    }
    @PreAuthorize("hasAuthority('system:dept:list')")
    @PostMapping("/dept/list")
    public R list(@RequestBody Map<String, Object> map) {
        return R.ok().add(deptService.list());
    }
    @PreAuthorize("hasAuthority('system:dept:list')")
    @PostMapping("/dept/tree")
    public R tree(@RequestBody Map<String, Object> map) {
//        PageParam<Dept, BaseParam> param = new PageParam<>(buildParam(map, BaseParam.class), Dept.class);
//        QueryWrapper<Dept> wrapper = param.buildWrapper(true, queryWrapper -> queryWrapper.orderByAsc("sort"));
        List<Dept> deptList = deptService.list(new LambdaQueryWrapper<Dept>().orderByAsc(Dept::getSort));
        List<Dept> treeData = Utils.toTreeData(deptList, 0L, Dept::getParentId, Dept::getId, Dept::setChildren);
        if (!Cools.isEmpty(map.get("condition"))) {
            Utils.treeRemove(treeData, String.valueOf(map.get("condition")), Dept::getName, Dept::getChildren);
            Utils.treeRemove(treeData, String.valueOf(map.get("condition")), Dept::getName, Dept::getChildren);
        }
        return R.ok().add(treeData);
    }
    @PreAuthorize("hasAuthority('system:dept:list')")
    @GetMapping("/dept/{id}")
    public R get(@PathVariable("id") Long id) {
        return R.ok().add(deptService.getById(id));
    }
    @PreAuthorize("hasAuthority('system:dept:save')")
    @OperationLog("添加部门")
    @PostMapping("/dept/save")
    public R save(@RequestBody Dept dept) {
        if (dept.getParentId() != null && dept.getParentId() > 0) {
            Dept parent = deptService.getById(dept.getParentId());
            if (parent != null) {
                dept.setParentName(parent.getName());
            }
        } else {
            dept.setParentId(0L);
        }
        NodeUtils nodeUtils = new NodeUtils();
        nodeUtils.generatePath0(item -> deptService.getById(item.getParentId()), dept, Dept::getId, Dept::getName, Dept::getParentId);
        dept.setPath(nodeUtils.path.toString());
        dept.setPathName(nodeUtils.pathName.toString());
        dept.setCreateBy(getLoginUserId());
        dept.setCreateTime(new Date());
        dept.setUpdateBy(getLoginUserId());
        dept.setUpdateTime(new Date());
        if (!deptService.save(dept)) {
            return R.error("添加失败");
        }
        return R.ok("添加成功");
    }
    @PreAuthorize("hasAuthority('system:dept:update')")
    @OperationLog("修改部门")
    @PostMapping("/dept/update")
    public R update(@RequestBody Dept dept) {
        if (dept.getParentId() != null && dept.getParentId() > 0) {
            Dept parent = deptService.getById(dept.getParentId());
            if (parent != null) {
                dept.setParentName(parent.getName());
            }
        } else {
            dept.setParentId(0L);
        }
        NodeUtils nodeUtils = new NodeUtils();
        nodeUtils.generatePath0(item -> deptService.getById(item.getParentId()), dept, Dept::getId, Dept::getName, Dept::getParentId);
        dept.setPath(nodeUtils.path.toString());
        dept.setPathName(nodeUtils.pathName.toString());
        dept.setUpdateBy(getLoginUserId());
        dept.setUpdateTime(new Date());
        if (!deptService.updateById(dept)) {
            return R.error("修改失败");
        }
        return R.ok("修改成功");
    }
    @PreAuthorize("hasAuthority('system:dept:remove')")
    @OperationLog("删除部门")
    @PostMapping("/dept/remove/{ids}")
    public R remove(@PathVariable Long[] ids) {
        if (!deptService.removeByIds(Arrays.asList(ids))) {
            return R.error("删除失败");
        }
        return R.ok("删除成功");
    }
    @PreAuthorize("hasAuthority('system:dept:list')")
    @PostMapping("/dept/query")
    public R query(@RequestParam(required = false) String condition) {
        List<KeyValVo> vos = new ArrayList<>();
        LambdaQueryWrapper<Dept> wrapper = new LambdaQueryWrapper<>();
        if (!Cools.isEmpty(condition)) {
            wrapper.like(Dept::getName, condition);
        }
        deptService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
                item -> vos.add(new KeyValVo(item.getId(), item.getName()))
        );
        return R.ok().add(vos);
    }
    @PreAuthorize("hasAuthority('system:dept:list')")
    @PostMapping("/dept/export")
    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
        ExcelUtil.build(ExcelUtil.create(deptService.list(), Dept.class), response);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/HostController.java
New file
@@ -0,0 +1,101 @@
package com.zy.asrs.wms.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.wms.common.annotation.OperationLog;
import com.zy.asrs.wms.common.domain.BaseParam;
import com.zy.asrs.wms.common.domain.KeyValVo;
import com.zy.asrs.wms.common.domain.PageParam;
import com.zy.asrs.wms.system.entity.Host;
import com.zy.asrs.wms.system.service.HostService;
import com.zy.asrs.wms.utils.ExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
@RestController
@RequestMapping("/api")
public class HostController extends BaseController {
    @Autowired
    private HostService hostService;
    @PreAuthorize("hasAuthority('system:host:list')")
    @PostMapping("/host/page")
    public R page(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<Host, BaseParam> pageParam = new PageParam<>(baseParam, Host.class);
        return R.ok().add(hostService.page(pageParam, pageParam.buildWrapper(true)));
    }
    @PreAuthorize("hasAuthority('system:host:list')")
    @PostMapping("/host/list")
    public R list(@RequestBody Map<String, Object> map) {
        return R.ok().add(hostService.list());
    }
    @PreAuthorize("hasAuthority('system:host:list')")
    @GetMapping("/host/{id}")
    public R get(@PathVariable("id") Long id) {
        return R.ok().add(hostService.getById(id));
    }
    @PreAuthorize("hasAuthority('system:host:save')")
    @OperationLog("添加机构")
    @PostMapping("/host/save")
    public R save(@RequestBody Host host) {
        host.setCreateTime(new Date());
        host.setUpdateTime(new Date());
        if (!hostService.save(host)) {
            return R.error("添加失败");
        }
        return R.ok("添加成功");
    }
    @PreAuthorize("hasAuthority('system:host:update')")
    @OperationLog("修改机构")
    @PostMapping("/host/update")
    public R update(@RequestBody Host host) {
        host.setUpdateTime(new Date());
        if (!hostService.updateById(host)) {
            return R.error("修改失败");
        }
        return R.ok("修改成功");
    }
    @PreAuthorize("hasAuthority('system:host:remove')")
    @OperationLog("删除机构")
    @PostMapping("/host/remove/{ids}")
    public R remove(@PathVariable Long[] ids) {
        if (!hostService.removeByIds(Arrays.asList(ids))) {
            return R.error("删除失败");
        }
        return R.ok("删除成功");
    }
    @PreAuthorize("hasAuthority('system:host:list')")
    @PostMapping("/host/query")
    public R query(@RequestParam(required = false) String condition) {
        List<KeyValVo> vos = new ArrayList<>();
        LambdaQueryWrapper<Host> wrapper = new LambdaQueryWrapper<>();
        if (!Cools.isEmpty(condition)) {
            wrapper.like(Host::getName, condition);
        }
        hostService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
                item -> vos.add(new KeyValVo(item.getId(), item.getName()))
        );
        return R.ok().add(vos);
    }
    @PreAuthorize("hasAuthority('system:host:list')")
    @PostMapping("/host/export")
    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
        ExcelUtil.build(ExcelUtil.create(hostService.list(), Host.class), response);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/MenuController.java
New file
@@ -0,0 +1,150 @@
package com.zy.asrs.wms.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.wms.common.annotation.OperationLog;
import com.zy.asrs.wms.common.domain.BaseParam;
import com.zy.asrs.wms.common.domain.KeyValVo;
import com.zy.asrs.wms.common.domain.PageParam;
import com.zy.asrs.wms.system.entity.Menu;
import com.zy.asrs.wms.system.service.MenuService;
import com.zy.asrs.wms.utils.ExcelUtil;
import com.zy.asrs.wms.utils.NodeUtils;
import com.zy.asrs.wms.utils.Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
@RestController
@RequestMapping("/api")
public class MenuController extends BaseController {
    @Autowired
    private MenuService menuService;
    @PreAuthorize("hasAuthority('system:menu:list')")
    @PostMapping("/menu/page")
    public R page(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<Menu, BaseParam> pageParam = new PageParam<>(baseParam, Menu.class);
        return R.ok().add(menuService.page(pageParam, pageParam.buildWrapper(true)));
    }
    @PreAuthorize("hasAuthority('system:menu:list')")
    @PostMapping("/menu/list")
    public R list(@RequestBody Map<String, Object> map) {
        return R.ok().add(menuService.list());
    }
    @PreAuthorize("hasAuthority('system:menu:list')")
    @PostMapping("/menu/tree")
    public R tree(@RequestBody Map<String, Object> map) {
//        PageParam<Menu, BaseParam> param = new PageParam<>(buildParam(map, BaseParam.class), Menu.class);
//        QueryWrapper<Menu> wrapper = param.buildWrapper(true, queryWrapper -> queryWrapper.orderByAsc("sort"));
//        List<Menu> menus = menuService.list(wrapper);
//        return R.ok().add(Utils.toTreeData(menus, 0L, Menu::getParentId, Menu::getId, Menu::setChildren));
        List<Menu> menuList = menuService.list(new LambdaQueryWrapper<Menu>().orderByAsc(Menu::getSort));
        List<Menu> treeData = Utils.toTreeData(menuList, 0L, Menu::getParentId, Menu::getId, Menu::setChildren);
        if (!Cools.isEmpty(map.get("condition"))) {
            Utils.treeRemove(treeData, String.valueOf(map.get("condition")), Menu::getName, Menu::getChildren);
            Utils.treeRemove(treeData, String.valueOf(map.get("condition")), Menu::getName, Menu::getChildren);
        }
        return R.ok().add(treeData);
    }
    @PreAuthorize("hasAuthority('system:menu:list')")
    @GetMapping("/menu/{id}")
    public R get(@PathVariable("id") Long id) {
        return R.ok().add(menuService.getById(id));
    }
    @PreAuthorize("hasAuthority('system:menu:save')")
    @OperationLog("添加菜单")
    @PostMapping("/menu/save")
    public R save(@RequestBody Menu menu) {
        if (menu.getParentId() != null && menu.getParentId() > 0) {
            Menu parent = menuService.getById(menu.getParentId());
            if (parent != null) {
                menu.setParentName(parent.getName());
            }
        } else {
            menu.setParentId(0L);
        }
        NodeUtils nodeUtils = new NodeUtils();
        nodeUtils.generatePath0(item -> menuService.getById(item.getParentId()), menu, Menu::getId, Menu::getName, Menu::getParentId);
        menu.setPath(nodeUtils.path.toString());
        menu.setPathName(nodeUtils.pathName.toString());
        menu.setCreateBy(getLoginUserId());
        menu.setCreateTime(new Date());
        menu.setUpdateBy(getLoginUserId());
        menu.setUpdateTime(new Date());
        if (!menuService.save(menu)) {
            return R.error("添加失败");
        }
        return R.ok("添加成功");
    }
    @PreAuthorize("hasAuthority('system:menu:update')")
    @OperationLog("修改菜单")
    @PostMapping("/menu/update")
    public R update(@RequestBody Menu menu) {
        if (menu.getParentId() != null && menu.getParentId() > 0) {
            Menu parent = menuService.getById(menu.getParentId());
            if (parent != null) {
                menu.setParentName(parent.getName());
            }
        } else {
            menu.setParentId(0L);
        }
        NodeUtils nodeUtils = new NodeUtils();
        nodeUtils.generatePath0(item -> menuService.getById(item.getParentId()), menu, Menu::getId, Menu::getName, Menu::getParentId);
        menu.setPath(nodeUtils.path.toString());
        menu.setPathName(nodeUtils.pathName.toString());
        menu.setUpdateBy(getLoginUserId());
        menu.setUpdateTime(new Date());
        if (!menuService.updateById(menu)) {
            return R.error("修改失败");
        }
        return R.ok("修改成功");
    }
    @PreAuthorize("hasAuthority('system:menu:remove')")
    @OperationLog("删除菜单")
    @PostMapping("/menu/remove/{ids}")
    public R remove(@PathVariable Long[] ids) {
        if (!menuService.removeByIds(Arrays.asList(ids))) {
            return R.error("删除失败");
        }
        return R.ok("删除成功");
    }
    @PreAuthorize("hasAuthority('system:menu:list')")
    @PostMapping("/menu/query")
    public R query(@RequestParam(required = false) String condition) {
        List<KeyValVo> vos = new ArrayList<>();
        LambdaQueryWrapper<Menu> wrapper = new LambdaQueryWrapper<>();
        if (!Cools.isEmpty(condition)) {
            wrapper.like(Menu::getName, condition);
        }
        menuService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
                item -> vos.add(new KeyValVo(item.getId(), item.getName()))
        );
        return R.ok().add(vos);
    }
    @PreAuthorize("hasAuthority('system:menu:list')")
    @PostMapping("/menu/export")
    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
        ExcelUtil.build(ExcelUtil.create(menuService.list(), Menu.class), response);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/OperationRecordController.java
New file
@@ -0,0 +1,101 @@
package com.zy.asrs.wms.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.wms.common.annotation.OperationLog;
import com.zy.asrs.wms.common.domain.BaseParam;
import com.zy.asrs.wms.common.domain.KeyValVo;
import com.zy.asrs.wms.common.domain.PageParam;
import com.zy.asrs.wms.system.entity.OperationRecord;
import com.zy.asrs.wms.system.service.OperationRecordService;
import com.zy.asrs.wms.utils.ExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/api")
public class OperationRecordController extends BaseController {
    @Autowired
    private OperationRecordService operationRecordService;
    @PreAuthorize("hasAuthority('system:operationRecord:list')")
    @PostMapping("/operationRecord/page")
    public R page(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<OperationRecord, BaseParam> pageParam = new PageParam<>(baseParam, OperationRecord.class);
        return R.ok().add(operationRecordService.page(pageParam, pageParam.buildWrapper(true)));
    }
    @PreAuthorize("hasAuthority('system:operationRecord:list')")
    @PostMapping("/operationRecord/list")
    public R list(@RequestBody Map<String, Object> map) {
        return R.ok().add(operationRecordService.list());
    }
    @PreAuthorize("hasAuthority('system:operationRecord:list')")
    @GetMapping("/operationRecord/{id}")
    public R get(@PathVariable("id") Long id) {
        return R.ok().add(operationRecordService.getById(id));
    }
    @PreAuthorize("hasAuthority('system:operationRecord:save')")
    @OperationLog("添加操作日志")
    @PostMapping("/operationRecord/save")
    public R save(@RequestBody OperationRecord operationRecord) {
        if (!operationRecordService.save(operationRecord)) {
            return R.error("添加失败");
        }
        return R.ok("添加成功");
    }
    @PreAuthorize("hasAuthority('system:operationRecord:update')")
    @OperationLog("修改操作日志")
    @PostMapping("/operationRecord/update")
    public R update(@RequestBody OperationRecord operationRecord) {
        if (!operationRecordService.updateById(operationRecord)) {
            return R.error("修改失败");
        }
        return R.ok("修改成功");
    }
    @PreAuthorize("hasAuthority('system:operationRecord:remove')")
    @OperationLog("删除操作日志")
    @PostMapping("/operationRecord/remove/{ids}")
    public R remove(@PathVariable Long[] ids) {
        if (!operationRecordService.removeByIds(Arrays.asList(ids))) {
            return R.error("删除失败");
        }
        return R.ok("删除成功");
    }
    @PreAuthorize("hasAuthority('system:operationRecord:list')")
    @PostMapping("/operationRecord/query")
    public R query(@RequestParam(required = false) String condition) {
        List<KeyValVo> vos = new ArrayList<>();
        LambdaQueryWrapper<OperationRecord> wrapper = new LambdaQueryWrapper<>();
        if (!Cools.isEmpty(condition)) {
            wrapper.like(OperationRecord::getNamespace, condition);
        }
        operationRecordService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
                item -> vos.add(new KeyValVo(item.getId(), item.getNamespace()))
        );
        return R.ok().add(vos);
    }
    @PreAuthorize("hasAuthority('system:operationRecord:list')")
    @PostMapping("/operationRecord/export")
    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
        ExcelUtil.build(ExcelUtil.create(operationRecordService.list(), OperationRecord.class), response);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/RoleController.java
New file
@@ -0,0 +1,175 @@
package com.zy.asrs.wms.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.common.annotation.OperationLog;
import com.zy.asrs.wms.common.domain.BaseParam;
import com.zy.asrs.wms.common.domain.KeyValVo;
import com.zy.asrs.wms.common.domain.PageParam;
import com.zy.asrs.wms.system.controller.param.RoleScopeParam;
import com.zy.asrs.wms.system.entity.Role;
import com.zy.asrs.wms.system.entity.RoleMenu;
import com.zy.asrs.wms.system.service.RoleMenuService;
import com.zy.asrs.wms.system.service.RoleService;
import com.zy.asrs.wms.utils.ExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * Created by vincent on 2/13/2024
 */
@RestController
@RequestMapping("/api")
public class RoleController extends BaseController {
    @Autowired
    private RoleService roleService;
    @Autowired
    private RoleMenuService roleMenuService;
    @PreAuthorize("hasAuthority('system:role:list')")
    @PostMapping("/role/page")
    public R page(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<Role, BaseParam> pageParam = new PageParam<>(baseParam, Role.class);
        return R.ok().add(roleService.page(pageParam, pageParam.buildWrapper(true, (wrapper) -> wrapper.orderByAsc("create_time"))));
    }
    @PreAuthorize("hasAuthority('system:role:list')")
    @PostMapping("/role/list")
    public R list(@RequestBody Map<String, Object> map) {
        return R.ok().add(roleService.list());
    }
    @PreAuthorize("hasAuthority('system:role:list')")
    @GetMapping("/role/{id}")
    public R get(@PathVariable("id") Long id) {
        return R.ok().add(roleService.getById(id));
    }
    @PreAuthorize("hasAuthority('system:role:save')")
    @OperationLog("添加角色")
    @PostMapping("/role/save")
    public R save(@RequestBody Role role) {
        if (!Cools.isEmpty(role.getName())
                && roleService.count(new LambdaQueryWrapper<Role>().eq(Role::getName, role.getName())) > 0) {
            return R.error("角色名称已存在");
        }
        if (!Cools.isEmpty(role.getCode())
                && roleService.count(new LambdaQueryWrapper<Role>().eq(Role::getCode, role.getCode())) > 0) {
            return R.error("角色标识已存在");
        }
        role.setCreateTime(new Date());
        role.setUpdateTime(new Date());
        if (!roleService.save(role)) {
            return R.error("添加失败");
        }
        return R.ok("添加成功");
    }
    @PreAuthorize("hasAuthority('system:role:update')")
    @OperationLog("修改角色")
    @PostMapping("/role/update")
    public R update(@RequestBody Role role) {
        if (!Cools.isEmpty(role.getCode()) && roleService.count(new LambdaQueryWrapper<Role>()
                .eq(Role::getCode, role.getCode())
                .ne(Role::getId, role.getId())) > 0) {
            return R.error("角色标识已存在");
        }
        if (!Cools.isEmpty(role.getName()) && roleService.count(new LambdaQueryWrapper<Role>()
                .eq(Role::getName, role.getName())
                .ne(Role::getId, role.getId())) > 0) {
            return R.error("角色名称已存在");
        }
        role.setUpdateTime(new Date());
        if (!roleService.updateById(role)) {
            return R.error("修改失败");
        }
        return R.ok("修改成功");
    }
    @PreAuthorize("hasAuthority('system:role:remove')")
    @OperationLog("删除角色")
    @PostMapping("/role/remove/{ids}")
    @Transactional
    public R remove(@PathVariable Long[] ids) {
        for (Long roleId : ids) {
            if (!roleService.removeById(roleId)) {
                throw new CoolException("服务器内部错误");
            }
            if (!roleMenuService.remove(new LambdaQueryWrapper<RoleMenu>().eq(RoleMenu::getRoleId, roleId))) {
                throw new CoolException("服务器内部错误");
            }
        }
        return R.ok("删除成功");
    }
    @PreAuthorize("hasAuthority('system:role:list')")
    @PostMapping("/role/query")
    public R query(@RequestParam(required = false) String condition) {
        List<KeyValVo> vos = new ArrayList<>();
        LambdaQueryWrapper<Role> wrapper = new LambdaQueryWrapper<>();
        if (!Cools.isEmpty(condition)) {
            wrapper.like(Role::getName, condition);
        }
        roleService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
                item -> vos.add(new KeyValVo(item.getId(), item.getName()))
        );
        return R.ok().add(vos);
    }
    @PreAuthorize("hasAuthority('system:role:list')")
    @PostMapping("/role/export")
    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
        ExcelUtil.build(ExcelUtil.create(roleService.list(), Role.class), response);
    }
    @PreAuthorize("hasAuthority('system:role:list')")
    @GetMapping("/role/scope/list")
    public R scopeList(@RequestParam Long roleId) {
//        List<RoleMenu> list = roleMenuService.list(new LambdaQueryWrapper<RoleMenu>().eq(RoleMenu::getRoleId, roleId));
//        if (!Cools.isEmpty(list)) {
//            return R.ok().add(list.stream().map(RoleMenu::getMenuId).collect(Collectors.toList()));
//        }
        return R.ok().add(roleMenuService.listStrictlyMenuByRoleId(roleId));
    }
    @PreAuthorize("hasAuthority('system:role:update')")
    @OperationLog("分配权限")
    @PostMapping("/role/scope/update")
    @Transactional
    public R scopeUpdate(@RequestBody RoleScopeParam param) {
        Long roleId = param.getId();
        List<Long> menuIds = new ArrayList<>(param.getMenuIds().getChecked());
        menuIds.addAll(param.getMenuIds().getHalfChecked());
        roleMenuService.remove(new LambdaQueryWrapper<RoleMenu>().eq(RoleMenu::getRoleId, roleId));
        for (Long menuId : menuIds) {
            if (!roleMenuService.save(new RoleMenu(roleId, menuId))) {
                throw new CoolException("服务器内部错误");
            }
        }
        return R.ok("分配成功");
    }
    @PreAuthorize("hasAuthority('system:role:list')")
    @GetMapping("/role/list/name/{ids}")
    public R listName(@PathVariable Long[] ids) {
        List<String> nameList = new ArrayList<>();
        for (Long id : ids) {
            nameList.add(roleService.getById(id).getName());
        }
        return R.ok().add(nameList);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/UserController.java
New file
@@ -0,0 +1,208 @@
package com.zy.asrs.wms.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.common.annotation.OperationLog;
import com.zy.asrs.wms.common.domain.BaseParam;
import com.zy.asrs.wms.common.domain.KeyValVo;
import com.zy.asrs.wms.common.domain.PageParam;
import com.zy.asrs.wms.system.controller.param.ResetPwdParam;
import com.zy.asrs.wms.system.entity.User;
import com.zy.asrs.wms.system.entity.UserRole;
import com.zy.asrs.wms.system.service.UserRoleService;
import com.zy.asrs.wms.system.service.UserService;
import com.zy.asrs.wms.utils.ExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/api")
public class UserController extends BaseController {
    public static final String COMMON_PASSWORD = "123456";
    @Autowired
    private UserService userService;
    @Autowired
    private UserRoleService userRoleService;
    @PreAuthorize("hasAuthority('system:user:list')")
    @PostMapping("/user/page")
    public R page(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<User, BaseParam> pageParam = new PageParam<>(baseParam, User.class);
        return R.ok().add(userService.page(pageParam, pageParam.buildWrapper(true, wrapper -> wrapper.orderByAsc("create_time"))));
    }
    @PreAuthorize("hasAuthority('system:user:list')")
    @PostMapping("/user/page1")
    public R page1(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<User, BaseParam> pageParam = new PageParam<>(baseParam, User.class);
        return R.ok().add(userService.pageRel(pageParam));
    }
    @PreAuthorize("hasAuthority('system:user:list')")
    @PostMapping("/user/list")
    public R list(@RequestBody Map<String, Object> map) {
        return R.ok().add(userService.list());
    }
    @PreAuthorize("hasAuthority('system:user:list')")
    @GetMapping("/user/{id}")
    public R get(@PathVariable("id") Long id) {
        return R.ok().add(userService.getById(id));
    }
    @PreAuthorize("hasAuthority('system:user:save')")
    @OperationLog("添加用户")
    @PostMapping("/user/save")
    @Transactional
    public R save(@RequestBody User user) {
        if (!Cools.isEmpty(user.getUsername())
                && userService.count(new LambdaQueryWrapper<User>().eq(User::getUsername, user.getUsername())) > 0) {
            return R.error("登录账号已存在");
        }
        if (!Cools.isEmpty(user.getNickname())
                && userService.count(new LambdaQueryWrapper<User>().eq(User::getNickname, user.getNickname())) > 0) {
            return R.error("用户名称已存在");
        }
        if (!Cools.isEmpty(user.getPhone())
                && userService.count(new LambdaQueryWrapper<User>().eq(User::getPhone, user.getPhone())) > 0) {
            return R.error("手机号已存在");
        }
        user.setPassword(userService.encodePassword(COMMON_PASSWORD));
        user.setCreateBy(getLoginUserId());
        user.setCreateTime(new Date());
        user.setUpdateBy(getLoginUserId());
        user.setUpdateTime(new Date());
        if (!userService.save(user)) {
            throw new CoolException("服务器内部错误");
        }
        userRoleService.remove(new LambdaQueryWrapper<UserRole>().eq(UserRole::getUserId, user.getId()));
        for (Long roleId : user.getRoleIds()) {
            if (!userRoleService.save(new UserRole(user.getId(), roleId))) {
                throw new CoolException("服务器内部错误");
            }
        }
        return R.ok("添加成功");
    }
    @PreAuthorize("hasAuthority('system:user:update')")
    @OperationLog("修改用户")
    @PostMapping("/user/update")
    @Transactional
    public R update(@RequestBody User user) {
        if (!Cools.isEmpty(user.getUsername()) && userService.count(new LambdaQueryWrapper<User>()
                .eq(User::getUsername, user.getUsername())
                .ne(User::getId, user.getId())) > 0) {
            return R.error("登录账号已存在");
        }
        if (!Cools.isEmpty(user.getNickname()) && userService.count(new LambdaQueryWrapper<User>()
                .eq(User::getNickname, user.getNickname())
                .ne(User::getId, user.getId())) > 0) {
            return R.error("用户名称已存在");
        }
        if (!Cools.isEmpty(user.getPhone()) && userService.count(new LambdaQueryWrapper<User>()
                .eq(User::getPhone, user.getPhone())
                .ne(User::getId, user.getId())) > 0) {
            return R.error("手机号已存在");
        }
        if (!Cools.isEmpty(user.getPassword())) {
            user.setPassword(userService.encodePassword(user.getPassword()));
        }
        user.setUpdateBy(getLoginUserId());
        user.setUpdateTime(new Date());
        if (!userService.updateById(user)) {
            throw new CoolException("服务器内部错误");
        }
        if (user.getRoleIds() != null && user.getRoleIds().length > 0) {
            userRoleService.remove(new LambdaQueryWrapper<UserRole>().eq(UserRole::getUserId, user.getId()));
            for (Long roleId : user.getRoleIds()) {
                if (!userRoleService.save(new UserRole(user.getId(), roleId))) {
                    throw new CoolException("服务器内部错误");
                }
            }
        }
        return R.ok("修改成功");
    }
    @PreAuthorize("hasAuthority('system:user:remove')")
    @OperationLog("删除用户")
    @PostMapping("/user/remove/{ids}")
    @Transactional
    public R remove(@PathVariable Long[] ids) {
        for (Long userId : ids) {
            if (!userService.removeById(userId)) {
                throw new CoolException("服务器内部错误");
            }
            if (!userRoleService.remove(new LambdaQueryWrapper<UserRole>().eq(UserRole::getUserId, userId))) {
                throw new CoolException("服务器内部错误");
            }
        }
        return R.ok("删除成功");
    }
    @PreAuthorize("hasAuthority('system:user:list')")
    @PostMapping("/user/query")
    public R query(@RequestParam(required = false) String condition) {
        List<KeyValVo> vos = new ArrayList<>();
        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
        if (!Cools.isEmpty(condition)) {
            wrapper.like(User::getNickname, condition);
        }
        userService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
                item -> vos.add(new KeyValVo(item.getId(), item.getNickname()))
        );
        return R.ok().add(vos);
    }
    @PreAuthorize("hasAuthority('system:user:list')")
    @PostMapping("/user/export")
    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
        ExcelUtil.build(ExcelUtil.create(userService.list(), User.class), response);
    }
    @PreAuthorize("hasAuthority('system:user:update')")
    @OperationLog("重置密码")
    @PostMapping("/user/reset/pwd")
    public R resetPwd(@RequestBody ResetPwdParam param) {
        User user = userService.getById(param.getId());
        if (!Cools.isEmpty(param.getOldPwd())) {
            if (!userService.comparePassword(user.getPassword(), param.getOldPwd())) {
                return R.error("当前密码错误");
            }
        }
        if (!Cools.isEmpty(param.getPassword())) {
            user.setPassword(userService.encodePassword(param.getPassword()));
        }
        user.setUpdateBy(getLoginUserId());
        user.setUpdateTime(new Date());
        if (!userService.updateById(user)) {
            return R.error("重置失败");
        }
        return R.ok("重置成功");
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/UserLoginController.java
New file
@@ -0,0 +1,101 @@
package com.zy.asrs.wms.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.wms.common.annotation.OperationLog;
import com.zy.asrs.wms.common.domain.BaseParam;
import com.zy.asrs.wms.common.domain.KeyValVo;
import com.zy.asrs.wms.common.domain.PageParam;
import com.zy.asrs.wms.system.entity.UserLogin;
import com.zy.asrs.wms.system.service.UserLoginService;
import com.zy.asrs.wms.utils.ExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/api")
public class UserLoginController extends BaseController {
    @Autowired
    private UserLoginService userLoginService;
    @PreAuthorize("hasAuthority('system:userLogin:list')")
    @PostMapping("/userLogin/page")
    public R page(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<UserLogin, BaseParam> pageParam = new PageParam<>(baseParam, UserLogin.class);
        return R.ok().add(userLoginService.page(pageParam, pageParam.buildWrapper(true)));
    }
    @PreAuthorize("hasAuthority('system:userLogin:list')")
    @PostMapping("/userLogin/list")
    public R list(@RequestBody Map<String, Object> map) {
        return R.ok().add(userLoginService.list());
    }
    @PreAuthorize("hasAuthority('system:userLogin:list')")
    @GetMapping("/userLogin/{id}")
    public R get(@PathVariable("id") Long id) {
        return R.ok().add(userLoginService.getById(id));
    }
    @PreAuthorize("hasAuthority('system:userLogin:save')")
    @OperationLog("添加登录日志")
    @PostMapping("/userLogin/save")
    public R save(@RequestBody UserLogin userLogin) {
        if (!userLoginService.save(userLogin)) {
            return R.error("添加失败");
        }
        return R.ok("添加成功");
    }
    @PreAuthorize("hasAuthority('system:userLogin:update')")
    @OperationLog("修改登录日志")
    @PostMapping("/userLogin/update")
    public R update(@RequestBody UserLogin userLogin) {
        if (!userLoginService.updateById(userLogin)) {
            return R.error("修改失败");
        }
        return R.ok("修改成功");
    }
    @PreAuthorize("hasAuthority('system:userLogin:remove')")
    @OperationLog("删除登录日志")
    @PostMapping("/userLogin/remove/{ids}")
    public R remove(@PathVariable Long[] ids) {
        if (!userLoginService.removeByIds(Arrays.asList(ids))) {
            return R.error("删除失败");
        }
        return R.ok("删除成功");
    }
    @PreAuthorize("hasAuthority('system:userLogin:list')")
    @PostMapping("/userLogin/query")
    public R query(@RequestParam(required = false) String condition) {
        List<KeyValVo> vos = new ArrayList<>();
        LambdaQueryWrapper<UserLogin> wrapper = new LambdaQueryWrapper<>();
        if (!Cools.isEmpty(condition)) {
            wrapper.like(UserLogin::getToken, condition);
        }
        userLoginService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
                item -> vos.add(new KeyValVo(item.getId(), item.getToken()))
        );
        return R.ok().add(vos);
    }
    @PreAuthorize("hasAuthority('system:userLogin:list')")
    @PostMapping("/userLogin/export")
    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
        ExcelUtil.build(ExcelUtil.create(userLoginService.list(), UserLogin.class), response);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/param/LoginParam.java
New file
@@ -0,0 +1,21 @@
package com.zy.asrs.wms.system.controller.param;
import lombok.Data;
import java.io.Serializable;
/**
 * Created by vincent on 1/30/2024
 */
@Data
public class LoginParam implements Serializable {
    private static final long serialVersionUID = 1L;
    private String username;
    private String password;
    private Long hostId;
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/param/ResetPwdParam.java
New file
@@ -0,0 +1,17 @@
package com.zy.asrs.wms.system.controller.param;
import lombok.Data;
/**
 * Created by vincent on 2/28/2024
 */
@Data
public class ResetPwdParam {
    private Long id;
    private String oldPwd;
    private String password;
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/param/RoleScopeParam.java
New file
@@ -0,0 +1,26 @@
package com.zy.asrs.wms.system.controller.param;
import lombok.Data;
import java.util.List;
/**
 * Created by vincent on 2/16/2024
 */
@Data
public class RoleScopeParam {
    private Long id;
    private MenuIds menuIds;
    @Data
    public static class MenuIds {
        private List<Long> checked;
        private List<Long> halfChecked;
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/param/UpdatePasswordParam.java
New file
@@ -0,0 +1,16 @@
package com.zy.asrs.wms.system.controller.param;
import lombok.Data;
import java.io.Serializable;
@Data
public class UpdatePasswordParam implements Serializable {
    private static final long serialVersionUID = 1L;
    private String oldPassword;
    private String password;
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/result/LoginResult.java
New file
@@ -0,0 +1,24 @@
package com.zy.asrs.wms.system.controller.result;
import com.zy.asrs.wms.system.entity.User;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
 * Created by vincent on 1/30/2024
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class LoginResult implements Serializable {
    private static final long serialVersionUID = 1L;
    private String accessToken;
    private User user;
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/Dept.java
New file
@@ -0,0 +1,270 @@
package com.zy.asrs.wms.system.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.wms.system.service.HostService;
import com.zy.asrs.wms.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Data
@TableName("sys_dept")
public class Dept implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * åç§°
     */
    @ApiModelProperty(value= "名称")
    private String name;
    /**
     * ä¸Šçº§éƒ¨é—¨
     */
    @ApiModelProperty(value= "上级部门")
    private Long parentId;
    /**
     * ä¸Šçº§éƒ¨é—¨å
     */
    @ApiModelProperty(value= "上级部门名")
    private String parentName;
    /**
     * å…³è”路径
     */
    @ApiModelProperty(value= "关联路径")
    private String path;
    /**
     * å…³è”路径名
     */
    @ApiModelProperty(value= "关联路径名")
    private String pathName;
    /**
     * å…¨ç§°
     */
    @ApiModelProperty(value= "全称")
    private String fullName;
    /**
     * ç®€è¿°
     */
    @ApiModelProperty(value= "简述")
    private String brief;
    /**
     * æ ‡è¯†
     */
    @ApiModelProperty(value= "标识")
    private String code;
    /**
     * ç±»åž‹
     */
    @ApiModelProperty(value= "类型")
    private Integer type;
    /**
     * è´Ÿè´£äºº
     */
    @ApiModelProperty(value= "负责人")
    private String leader;
    /**
     * æ•°é‡
     */
    @ApiModelProperty(value= "数量")
    private Integer count;
    /**
     * æŽ’序
     */
    @ApiModelProperty(value= "排序")
    private Integer sort;
    /**
     * æ‰€å±žæœºæž„
     */
    @ApiModelProperty(value= "所属机构")
    private Long hostId;
    /**
     * çŠ¶æ€ 1: æ­£å¸¸  0: ç¦ç”¨
     */
    @ApiModelProperty(value= "状态 1: æ­£å¸¸  0: ç¦ç”¨  ")
    private Integer status;
    /**
     * æ˜¯å¦åˆ é™¤ 1: æ˜¯  0: å¦
     */
    @ApiModelProperty(value= "是否删除 1: æ˜¯  0: å¦  ")
    @TableLogic
    private Integer deleted;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * æ·»åŠ äººå‘˜
     */
    @ApiModelProperty(value= "添加人员")
    private Long createBy;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    private Long updateBy;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    @TableField(exist = false)
    private List<Dept> children;
    public Dept() {}
    public Dept(String name,Long parentId,String parentName,String path,String pathName,String fullName,String brief,String code,Integer type,String leader,Integer count,Integer sort,Long hostId,Integer status,Integer deleted,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) {
        this.name = name;
        this.parentId = parentId;
        this.parentName = parentName;
        this.path = path;
        this.pathName = pathName;
        this.fullName = fullName;
        this.brief = brief;
        this.code = code;
        this.type = type;
        this.leader = leader;
        this.count = count;
        this.sort = sort;
        this.hostId = hostId;
        this.status = status;
        this.deleted = deleted;
        this.createTime = createTime;
        this.createBy = createBy;
        this.updateTime = updateTime;
        this.updateBy = updateBy;
        this.memo = memo;
    }
//    Dept dept = new Dept(
//            null,    // åç§°[非空]
//            null,    // ä¸Šçº§éƒ¨é—¨
//            null,    // ä¸Šçº§éƒ¨é—¨å
//            null,    // å…³è”路径
//            null,    // å…³è”路径名
//            null,    // å…¨ç§°
//            null,    // ç®€è¿°
//            null,    // æ ‡è¯†
//            null,    // ç±»åž‹
//            null,    // è´Ÿè´£äºº
//            null,    // æ•°é‡
//            null,    // æŽ’序
//            null,    // æ‰€å±žæœºæž„
//            null,    // çŠ¶æ€
//            null,    // æ˜¯å¦åˆ é™¤
//            null,    // æ·»åŠ æ—¶é—´
//            null,    // æ·»åŠ äººå‘˜
//            null,    // ä¿®æ”¹æ—¶é—´
//            null,    // ä¿®æ”¹äººå‘˜
//            null    // å¤‡æ³¨
//    );
    public String getHostId$(){
        HostService service = SpringUtils.getBean(HostService.class);
        Host host = service.getById(this.hostId);
        if (!Cools.isEmpty(host)){
            return String.valueOf(host.getId());
        }
        return null;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
            case 1:
                return "正常";
            case 0:
                return "禁用";
            default:
                return String.valueOf(this.status);
        }
    }
    public String getDeleted$(){
        if (null == this.deleted){ return null; }
        switch (this.deleted){
            case 1:
                return "是";
            case 0:
                return "否";
            default:
                return String.valueOf(this.deleted);
        }
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getCreateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.createBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        return null;
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public String getUpdateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.updateBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        return null;
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/Host.java
New file
@@ -0,0 +1,127 @@
package com.zy.asrs.wms.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zy.asrs.framework.common.Cools;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@TableName("sys_host")
public class Host implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * åç§°
     */
    @ApiModelProperty(value= "名称")
    private String name;
    /**
     * çŠ¶æ€ 1: æ­£å¸¸  0: ç¦ç”¨
     */
    @ApiModelProperty(value= "状态 1: æ­£å¸¸  0: ç¦ç”¨  ")
    private Integer status;
    /**
     * æ˜¯å¦åˆ é™¤ 1: æ˜¯  0: å¦
     */
    @ApiModelProperty(value= "是否删除 1: æ˜¯  0: å¦  ")
    @TableLogic
    private Integer deleted;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    public Host() {}
    public Host(String name,Integer status,Integer deleted,Date createTime,Date updateTime,String memo) {
        this.name = name;
        this.status = status;
        this.deleted = deleted;
        this.createTime = createTime;
        this.updateTime = updateTime;
        this.memo = memo;
    }
//    Host host = new Host(
//            null,    // åç§°[非空]
//            null,    // çŠ¶æ€
//            null,    // æ˜¯å¦åˆ é™¤
//            null,    // æ·»åŠ æ—¶é—´
//            null,    // ä¿®æ”¹æ—¶é—´
//            null    // å¤‡æ³¨
//    );
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
            case 1:
                return "正常";
            case 0:
                return "禁用";
            default:
                return String.valueOf(this.status);
        }
    }
    public String getDeleted$(){
        if (null == this.deleted){ return null; }
        switch (this.deleted){
            case 1:
                return "是";
            case 0:
                return "否";
            default:
                return String.valueOf(this.deleted);
        }
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/Menu.java
New file
@@ -0,0 +1,301 @@
package com.zy.asrs.wms.system.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.wms.system.service.HostService;
import com.zy.asrs.wms.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.security.core.GrantedAuthority;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Data
@TableName("sys_menu")
public class Menu implements Serializable, GrantedAuthority {
    private static final long serialVersionUID = 1L;
    public static final int TYPE_MENU = 0;  // èœå•类型
    public static final int TYPE_BTN = 1;  // æŒ‰é’®ç±»åž‹
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * åç§°
     */
    @ApiModelProperty(value= "名称")
    private String name;
    /**
     * ä¸Šçº§èœå•
     */
    @ApiModelProperty(value= "上级菜单")
    private Long parentId;
    /**
     * ä¸Šçº§èœå•名
     */
    @ApiModelProperty(value= "上级菜单名")
    private String parentName;
    /**
     * å…³è”路径
     */
    @ApiModelProperty(value= "关联路径")
    private String path;
    /**
     * å…³è”路径名
     */
    @ApiModelProperty(value= "关联路径名")
    private String pathName;
    /**
     * è·¯ç”±åœ°å€
     */
    @ApiModelProperty(value= "路由地址")
    private String route;
    /**
     * é¡µé¢ç»„ä»¶
     */
    @ApiModelProperty(value= "页面组件")
    private String component;
    /**
     * ç®€è¿°
     */
    @ApiModelProperty(value= "简述")
    private String brief;
    /**
     * æ ‡è¯†
     */
    @ApiModelProperty(value= "标识")
    private String code;
    /**
     * ç±»åž‹ 0: èœå•  1: æŒ‰é’®
     */
    @ApiModelProperty(value= "类型 0: èœå•  1: æŒ‰é’®  ")
    private Integer type;
    /**
     * æƒé™æ ‡è¯†
     */
    @ApiModelProperty(value= "权限标识")
    private String authority;
    /**
     * èœå•图标
     */
    @ApiModelProperty(value= "菜单图标")
    private String icon;
    /**
     * æŽ’序
     */
    @ApiModelProperty(value= "排序")
    private Integer sort;
    /**
     * å…ƒä¿¡æ¯
     */
    @ApiModelProperty(value= "元信息")
    private String meta;
    /**
     * æ‰€å±žæœºæž„
     */
    @ApiModelProperty(value= "所属机构")
    private Long hostId;
    /**
     * çŠ¶æ€ 1: æ­£å¸¸  0: ç¦ç”¨
     */
    @ApiModelProperty(value= "状态 1: æ­£å¸¸  0: ç¦ç”¨  ")
    private Integer status;
    /**
     * æ˜¯å¦åˆ é™¤ 1: æ˜¯  0: å¦
     */
    @ApiModelProperty(value= "是否删除 1: æ˜¯  0: å¦  ")
    @TableLogic
    private Integer deleted;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * æ·»åŠ äººå‘˜
     */
    @ApiModelProperty(value= "添加人员")
    private Long createBy;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    private Long updateBy;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    @TableField(exist = false)
    private List<Menu> children;
    public Menu() {}
    public Menu(String name, Long parentId, String parentName, String path, String pathName, String route, String component, String brief, String code, Integer type, String authority, String icon, Integer sort, String meta, Long hostId, Integer status, Integer deleted, Date createTime, Long createBy, Date updateTime, Long updateBy, String memo) {
        this.name = name;
        this.parentId = parentId;
        this.parentName = parentName;
        this.path = path;
        this.pathName = pathName;
        this.route = route;
        this.component = component;
        this.brief = brief;
        this.code = code;
        this.type = type;
        this.authority = authority;
        this.icon = icon;
        this.sort = sort;
        this.meta = meta;
        this.hostId = hostId;
        this.status = status;
        this.deleted = deleted;
        this.createTime = createTime;
        this.createBy = createBy;
        this.updateTime = updateTime;
        this.updateBy = updateBy;
        this.memo = memo;
    }
    //    Menu menu = new Menu(
//            null,    // åç§°[非空]
//            null,    // ä¸Šçº§èœå•
//            null,    // ä¸Šçº§èœå•名
//            null,    // å…³è”路径
//            null,    // å…³è”路径名
//            null,    // è·¯ç”±åœ°å€
//            null,    // ç®€è¿°
//            null,    // æ ‡è¯†
//            null,    // ç±»åž‹
//            null,    // æƒé™æ ‡è¯†
//            null,    // èœå•图标
//            null,    // æŽ’序
//            null,    // å…ƒä¿¡æ¯
//            null,    // æ‰€å±žæœºæž„
//            null,    // çŠ¶æ€
//            null,    // æ˜¯å¦åˆ é™¤
//            null,    // æ·»åŠ æ—¶é—´
//            null,    // æ·»åŠ äººå‘˜
//            null,    // ä¿®æ”¹æ—¶é—´
//            null,    // ä¿®æ”¹äººå‘˜
//            null    // å¤‡æ³¨
//    );
    public String getType$(){
        if (null == this.type){ return null; }
        switch (this.type){
            case 0:
                return "菜单";
            case 1:
                return "按钮";
            default:
                return String.valueOf(this.type);
        }
    }
    public String getHostId$(){
        HostService service = SpringUtils.getBean(HostService.class);
        Host host = service.getById(this.hostId);
        if (!Cools.isEmpty(host)){
            return String.valueOf(host.getId());
        }
        return null;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
            case 1:
                return "正常";
            case 0:
                return "禁用";
            default:
                return String.valueOf(this.status);
        }
    }
    public String getDeleted$(){
        if (null == this.deleted){ return null; }
        switch (this.deleted){
            case 1:
                return "是";
            case 0:
                return "否";
            default:
                return String.valueOf(this.deleted);
        }
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getCreateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.createBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        return null;
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public String getUpdateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.updateBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        return null;
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/OperationRecord.java
New file
@@ -0,0 +1,189 @@
package com.zy.asrs.wms.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.wms.system.service.HostService;
import com.zy.asrs.wms.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@TableName("sys_operation_record")
public class OperationRecord implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * åç§°ç©ºé—´
     */
    @ApiModelProperty(value= "名称空间")
    private String namespace;
    /**
     * æŽ¥å£åœ°å€
     */
    @ApiModelProperty(value= "接口地址")
    private String url;
    /**
     * å¹³å°å¯†é’¥
     */
    @ApiModelProperty(value= "平台密钥")
    private String appkey;
    /**
     * æ—¶é—´æˆ³
     */
    @ApiModelProperty(value= "时间戳")
    private String timestamp;
    /**
     * å®¢æˆ·ç«¯IP
     */
    @ApiModelProperty(value= "客户端IP")
    private String clientIp;
    /**
     * è¯·æ±‚内容
     */
    @ApiModelProperty(value= "请求内容")
    private String request;
    /**
     * å“åº”内容
     */
    @ApiModelProperty(value= "响应内容")
    private String response;
    /**
     * æ¶ˆè€—æ—¶é—´
     */
    @ApiModelProperty(value= "消耗时间")
    private Integer spendTime;
    /**
     * å¼‚常内容
     */
    @ApiModelProperty(value= "异常内容")
    private String err;
    /**
     * ç»“æžœ 1: æˆåŠŸ  0: å¤±è´¥
     */
    @ApiModelProperty(value= "结果 1: æˆåŠŸ  0: å¤±è´¥  ")
    private Integer result;
    /**
     * ç”¨æˆ·
     */
    @ApiModelProperty(value= "用户")
    private Long userId;
    /**
     * æ‰€å±žæœºæž„
     */
    @ApiModelProperty(value= "所属机构")
    private Long hostId;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    public OperationRecord() {}
    public OperationRecord(String namespace, String url, String appkey, String timestamp, String clientIp, String request, String response, Integer spendTime, String err, Integer result, Long userId, Long hostId, Date createTime, String memo) {
        this.namespace = namespace;
        this.url = url;
        this.appkey = appkey;
        this.timestamp = timestamp;
        this.clientIp = clientIp;
        this.request = request;
        this.response = response;
        this.spendTime = spendTime;
        this.err = err;
        this.result = result;
        this.userId = userId;
        this.hostId = hostId;
        this.createTime = createTime;
        this.memo = memo;
    }
//    OperationRecord operationRecord = new OperationRecord(
//            null,    // åç§°ç©ºé—´
//            null,    // æŽ¥å£åœ°å€
//            null,    // å¹³å°å¯†é’¥
//            null,    // æ—¶é—´æˆ³
//            null,    // å®¢æˆ·ç«¯IP
//            null,    // è¯·æ±‚内容
//            null,    // å“åº”内容
//            null,    // å¼‚常内容
//            null,    // ç»“æžœ
//            null,    // ç”¨æˆ·
//            null,    // æ‰€å±žæœºæž„
//            null,    // æ·»åŠ æ—¶é—´
//            null    // å¤‡æ³¨
//    );
    public String getResult$(){
        if (null == this.result){ return null; }
        switch (this.result){
            case 1:
                return "成功";
            case 0:
                return "失败";
            default:
                return String.valueOf(this.result);
        }
    }
    public String getUserId$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.userId);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        return null;
    }
    public String getHostId$(){
        HostService service = SpringUtils.getBean(HostService.class);
        Host host = service.getById(this.hostId);
        if (!Cools.isEmpty(host)){
            return String.valueOf(host.getName());
        }
        return null;
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/Role.java
New file
@@ -0,0 +1,154 @@
package com.zy.asrs.wms.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.wms.system.service.HostService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@TableName("sys_role")
public class Role implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * åç§°
     */
    @ApiModelProperty(value= "名称")
    private String name;
    /**
     * æ ‡è¯†
     */
    @ApiModelProperty(value= "标识")
    private String code;
    /**
     * æ‰€å±žæœºæž„
     */
    @ApiModelProperty(value= "所属机构")
    private Long hostId;
    /**
     * çŠ¶æ€ 1: æ­£å¸¸  0: ç¦ç”¨
     */
    @ApiModelProperty(value= "状态")
    private Integer status;
    /**
     * æ˜¯å¦åˆ é™¤ 1: æ˜¯  0: å¦
     */
    @ApiModelProperty(value= "是否删除")
    @TableLogic
    private Integer deleted;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    public Role() {}
    public Role(String name,String code,Long hostId,Integer status,Integer deleted,Date createTime,Date updateTime,String memo) {
        this.name = name;
        this.code = code;
        this.hostId = hostId;
        this.status = status;
        this.deleted = deleted;
        this.createTime = createTime;
        this.updateTime = updateTime;
        this.memo = memo;
    }
//    Role role = new Role(
//            null,    // åç§°[非空]
//            null,    // æ ‡è¯†
//            null,    // æ‰€å±žæœºæž„
//            null,    // çŠ¶æ€
//            null,    // æ˜¯å¦åˆ é™¤
//            null,    // æ·»åŠ æ—¶é—´
//            null,    // ä¿®æ”¹æ—¶é—´
//            null    // å¤‡æ³¨
//    );
    public String getHostId$(){
        HostService service = SpringUtils.getBean(HostService.class);
        Host host = service.getById(this.hostId);
        if (!Cools.isEmpty(host)){
            return String.valueOf(host.getName());
        }
        return null;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
            case 1:
                return "正常";
            case 0:
                return "禁用";
            default:
                return String.valueOf(this.status);
        }
    }
    public String getDeleted$(){
        if (null == this.deleted){ return null; }
        switch (this.deleted){
            case 1:
                return "是";
            case 0:
                return "否";
            default:
                return String.valueOf(this.deleted);
        }
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/RoleMenu.java
New file
@@ -0,0 +1,40 @@
package com.zy.asrs.wms.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@TableName("sys_role_menu")
public class RoleMenu implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value= "")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value= "")
    private Long roleId;
    @ApiModelProperty(value= "")
    private Long menuId;
    public RoleMenu() {}
    public RoleMenu(Long roleId,Long menuId) {
        this.roleId = roleId;
        this.menuId = menuId;
    }
//    RoleMenu roleMenu = new RoleMenu(
//            null,    // [非空]
//            null    // [非空]
//    );
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/User.java
New file
@@ -0,0 +1,360 @@
package com.zy.asrs.wms.system.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.wms.system.service.DeptService;
import com.zy.asrs.wms.system.service.HostService;
import com.zy.asrs.wms.system.service.UserRoleService;
import com.zy.asrs.wms.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.security.core.userdetails.UserDetails;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Data
@TableName("sys_user")
public class User implements Serializable, UserDetails {
    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * è´¦å·
     */
    @ApiModelProperty(value= "账号")
    private String username;
    /**
     * å¯†ç 
     */
    @ApiModelProperty(value= "密码")
    private String password;
    /**
     * æ˜µç§°
     */
    @ApiModelProperty(value= "昵称")
    private String nickname;
    /**
     * å¤´åƒ
     */
    @ApiModelProperty(value= "头像")
    private String avatar;
    /**
     * å·¥å·
     */
    @ApiModelProperty(value= "工号")
    private String code;
    /**
     * æ€§åˆ« 0: æœªçŸ¥  1: ç”·  2: å¥³
     */
    @ApiModelProperty(value= "性别 0: æœªçŸ¥  1: ç”·  2: å¥³  ")
    private Integer sex;
    /**
     * æ‰‹æœºå·
     */
    @ApiModelProperty(value= "手机号")
    private String phone;
    /**
     * é‚®ç®±
     */
    @ApiModelProperty(value= "邮箱")
    private String email;
    /**
     * é‚®ç®±éªŒè¯ 0: å¦  1: æ˜¯
     */
    @ApiModelProperty(value= "邮箱验证 0: å¦  1: æ˜¯  ")
    private Integer emailVerified;
    /**
     * æ‰€å±žéƒ¨é—¨
     */
    @ApiModelProperty(value= "所属部门")
    private Long deptId;
    /**
     * çœŸå®žå§“名
     */
    @ApiModelProperty(value= "真实姓名")
    private String realName;
    /**
     * èº«ä»½è¯å·
     */
    @ApiModelProperty(value= "身份证号")
    private String idCard;
    /**
     * å‡ºç”Ÿæ—¥æœŸ
     */
    @ApiModelProperty(value= "出生日期")
    private String birthday;
    /**
     * ä¸ªäººç®€ä»‹
     */
    @ApiModelProperty(value= "个人简介")
    private String introduction;
    /**
     * æ‰€å±žæœºæž„
     */
    @ApiModelProperty(value= "所属机构")
    private Long hostId;
    /**
     * çŠ¶æ€ 1: æ­£å¸¸  0: ç¦ç”¨
     */
    @ApiModelProperty(value= "状态 1: æ­£å¸¸  0: ç¦ç”¨  ")
    private Integer status;
    /**
     * æ˜¯å¦åˆ é™¤ 1: æ˜¯  0: å¦
     */
    @ApiModelProperty(value= "是否删除 1: æ˜¯  0: å¦  ")
    @TableLogic
    private Integer deleted;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * æ·»åŠ äººå‘˜
     */
    @ApiModelProperty(value= "添加人员")
    private Long createBy;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    private Long updateBy;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    @TableField(exist = false)
    private Long[] roleIds;
    @TableField(exist = false)
    private List<Role> roles;
    @TableField(exist = false)
    private List<Menu> authorities;
    public User() {}
    public User(String username,String password,String nickname,String avatar,String code,Integer sex,String phone,String email,Integer emailVerified,Long deptId,String realName,String idCard,String birthday,String introduction,Long hostId,Integer status,Integer deleted,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) {
        this.username = username;
        this.password = password;
        this.nickname = nickname;
        this.avatar = avatar;
        this.code = code;
        this.sex = sex;
        this.phone = phone;
        this.email = email;
        this.emailVerified = emailVerified;
        this.deptId = deptId;
        this.realName = realName;
        this.idCard = idCard;
        this.birthday = birthday;
        this.introduction = introduction;
        this.hostId = hostId;
        this.status = status;
        this.deleted = deleted;
        this.createTime = createTime;
        this.createBy = createBy;
        this.updateTime = updateTime;
        this.updateBy = updateBy;
        this.memo = memo;
    }
//    User user = new User(
//            null,    // è´¦å·[非空]
//            null,    // å¯†ç 
//            null,    // æ˜µç§°
//            null,    // å¤´åƒ
//            null,    // å·¥å·
//            null,    // æ€§åˆ«
//            null,    // æ‰‹æœºå·
//            null,    // é‚®ç®±
//            null,    // é‚®ç®±éªŒè¯
//            null,    // æ‰€å±žéƒ¨é—¨
//            null,    // çœŸå®žå§“名
//            null,    // èº«ä»½è¯å·
//            null,    // å‡ºç”Ÿæ—¥æœŸ
//            null,    // ä¸ªäººç®€ä»‹
//            null,    // æ‰€å±žæœºæž„
//            null,    // çŠ¶æ€
//            null,    // æ˜¯å¦åˆ é™¤
//            null,    // æ·»åŠ æ—¶é—´
//            null,    // æ·»åŠ äººå‘˜
//            null,    // ä¿®æ”¹æ—¶é—´
//            null,    // ä¿®æ”¹äººå‘˜
//            null    // å¤‡æ³¨
//    );
    public String getSex$(){
        if (null == this.sex){ return null; }
        switch (this.sex){
            case 0:
                return "未知";
            case 1:
                return "男";
            case 2:
                return "女";
            default:
                return String.valueOf(this.sex);
        }
    }
    public String getEmailVerified$(){
        if (null == this.emailVerified){ return null; }
        switch (this.emailVerified){
            case 0:
                return "否";
            case 1:
                return "是";
            default:
                return String.valueOf(this.emailVerified);
        }
    }
    public String getDeptId$(){
        DeptService service = SpringUtils.getBean(DeptService.class);
        Dept dept = service.getById(this.deptId);
        if (!Cools.isEmpty(dept)){
            return String.valueOf(dept.getName());
        }
        return null;
    }
    public String getHostId$(){
        HostService service = SpringUtils.getBean(HostService.class);
        Host host = service.getById(this.hostId);
        if (!Cools.isEmpty(host)){
            return String.valueOf(host.getName());
        }
        return null;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
            case 1:
                return "正常";
            case 0:
                return "禁用";
            default:
                return String.valueOf(this.status);
        }
    }
    public String getDeleted$(){
        if (null == this.deleted){ return null; }
        switch (this.deleted){
            case 1:
                return "是";
            case 0:
                return "否";
            default:
                return String.valueOf(this.deleted);
        }
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getCreateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.createBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        return null;
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public String getUpdateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.updateBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        return null;
    }
    public Long[] getRoleIds() {
        return this.roleIds;
    }
    public Long[] getUserRoleIds() {
        UserRoleService service = SpringUtils.getBean(UserRoleService.class);
        List<UserRole> list = service.list(new LambdaQueryWrapper<UserRole>().eq(UserRole::getUserId, this.id));
        return list.stream().map(UserRole::getRoleId).toArray(Long[]::new);
    }
    @Override
    public boolean isAccountNonExpired() {
        return true;
    }
    @Override
    public boolean isAccountNonLocked() {
        return this.status != null && this.status == 1;
    }
    @Override
    public boolean isCredentialsNonExpired() {
        return true;
    }
    @Override
    public boolean isEnabled() {
        return true;
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/UserLogin.java
New file
@@ -0,0 +1,112 @@
package com.zy.asrs.wms.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.wms.system.service.HostService;
import com.zy.asrs.wms.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@TableName("sys_user_login")
public class UserLogin implements Serializable {
    public static final int TYPE_LOGIN = 0;  // ç™»å½•成功
    public static final int TYPE_ERROR = 1;  // ç™»å½•失败
    public static final int TYPE_LOGOUT = 2;  // é€€å‡ºç™»å½•
    public static final int TYPE_REFRESH = 3;  // ç»­ç­¾token
    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * ç”¨æˆ·
     */
    @ApiModelProperty(value= "用户")
    private Long userId;
    /**
     * æ‰€å±žæœºæž„
     */
    @ApiModelProperty(value= "所属机构")
    private Long hostId;
    /**
     * å¯†é’¥
     */
    @ApiModelProperty(value= "密钥")
    private String token;
    /**
     * ç™»å½•ip
     */
    @ApiModelProperty(value= "登录ip")
    private String ip;
    /**
     * ç±»åž‹
     */
    @ApiModelProperty(value= "类型")
    private Integer type;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * ç™»å½•系统
     */
    @ApiModelProperty(value= "登录系统")
    private String system;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    public String getUserId$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.userId);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        return null;
    }
    public String getHostId$(){
        HostService service = SpringUtils.getBean(HostService.class);
        Host host = service.getById(this.hostId);
        if (!Cools.isEmpty(host)){
            return String.valueOf(host.getName());
        }
        return null;
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/entity/UserRole.java
New file
@@ -0,0 +1,40 @@
package com.zy.asrs.wms.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@TableName("sys_user_role")
public class UserRole implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value= "")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value= "")
    private Long userId;
    @ApiModelProperty(value= "")
    private Long roleId;
    public UserRole() {}
    public UserRole(Long userId,Long roleId) {
        this.userId = userId;
        this.roleId = roleId;
    }
//    UserRole userRole = new UserRole(
//            null,    // [非空]
//            null    // [非空]
//    );
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/DeptMapper.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.wms.system.mapper;
import com.zy.asrs.wms.system.entity.Dept;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface DeptMapper extends BaseMapper<Dept> {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/HostMapper.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.wms.system.mapper;
import com.zy.asrs.wms.system.entity.Host;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface HostMapper extends BaseMapper<Host> {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/MenuMapper.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.wms.system.mapper;
import com.zy.asrs.wms.system.entity.Menu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface MenuMapper extends BaseMapper<Menu> {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/OperationRecordMapper.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.wms.system.mapper;
import com.zy.asrs.wms.system.entity.OperationRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface OperationRecordMapper extends BaseMapper<OperationRecord> {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/RoleMapper.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.wms.system.mapper;
import com.zy.asrs.wms.system.entity.Role;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface RoleMapper extends BaseMapper<Role> {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/RoleMenuMapper.java
New file
@@ -0,0 +1,22 @@
package com.zy.asrs.wms.system.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zy.asrs.wms.system.entity.Menu;
import com.zy.asrs.wms.system.entity.RoleMenu;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface RoleMenuMapper extends BaseMapper<RoleMenu> {
    @InterceptorIgnore(tenantLine = "true")
    List<Menu> listMenuByUserId(@Param("userId") Long userId, @Param("type") Integer menuType);
    List<Long> listStrictlyMenuByRoleId(@Param("roleId") Long roleId);
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/UserLoginMapper.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.wms.system.mapper;
import com.zy.asrs.wms.system.entity.UserLogin;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface UserLoginMapper extends BaseMapper<UserLogin> {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/UserMapper.java
New file
@@ -0,0 +1,23 @@
package com.zy.asrs.wms.system.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zy.asrs.wms.system.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Mapper
@Repository
public interface UserMapper extends BaseMapper<User> {
    List<User> selectPageRel(@Param("page") IPage<User> page, @Param("param") Map<String, Object> param);
    @InterceptorIgnore(tenantLine = "true")
    User selectByUsername(@Param("username") String username, @Param("hostId") Long hostId);
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/mapper/UserRoleMapper.java
New file
@@ -0,0 +1,18 @@
package com.zy.asrs.wms.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zy.asrs.wms.system.entity.Role;
import com.zy.asrs.wms.system.entity.UserRole;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface UserRoleMapper extends BaseMapper<UserRole> {
    List<Role> selectByUserId(@Param("userId") Long userId);
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/DeptService.java
New file
@@ -0,0 +1,8 @@
package com.zy.asrs.wms.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wms.system.entity.Dept;
public interface DeptService extends IService<Dept> {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/HostService.java
New file
@@ -0,0 +1,8 @@
package com.zy.asrs.wms.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wms.system.entity.Host;
public interface HostService extends IService<Host> {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/MenuService.java
New file
@@ -0,0 +1,8 @@
package com.zy.asrs.wms.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wms.system.entity.Menu;
public interface MenuService extends IService<Menu> {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/OperationRecordService.java
New file
@@ -0,0 +1,10 @@
package com.zy.asrs.wms.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wms.system.entity.OperationRecord;
public interface OperationRecordService extends IService<OperationRecord> {
    void saveAsync(OperationRecord operationRecord);
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/RoleMenuService.java
New file
@@ -0,0 +1,15 @@
package com.zy.asrs.wms.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wms.system.entity.Menu;
import com.zy.asrs.wms.system.entity.RoleMenu;
import java.util.List;
public interface RoleMenuService extends IService<RoleMenu> {
    List<Menu> listMenuByUserId(Long userId, Integer menuType);
    List<Long> listStrictlyMenuByRoleId(Long roleId);
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/RoleService.java
New file
@@ -0,0 +1,8 @@
package com.zy.asrs.wms.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wms.system.entity.Role;
public interface RoleService extends IService<Role> {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/UserLoginService.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.wms.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wms.system.entity.UserLogin;
import javax.servlet.http.HttpServletRequest;
public interface UserLoginService extends IService<UserLogin> {
    void saveAsync(Long userId, String token, Integer type, Long hostId, String memo, HttpServletRequest request);
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/UserRoleService.java
New file
@@ -0,0 +1,13 @@
package com.zy.asrs.wms.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wms.system.entity.Role;
import com.zy.asrs.wms.system.entity.UserRole;
import java.util.List;
public interface UserRoleService extends IService<UserRole> {
    List<Role> listByUserId(Long userId);
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/UserService.java
New file
@@ -0,0 +1,21 @@
package com.zy.asrs.wms.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wms.common.domain.BaseParam;
import com.zy.asrs.wms.common.domain.PageParam;
import com.zy.asrs.wms.common.domain.PageResult;
import com.zy.asrs.wms.system.entity.User;
public interface UserService extends IService<User> {
    PageResult<User> pageRel(PageParam<User, BaseParam> pageParam);
    User getByUsername(String username, Long hostId);
    User getByIdRel(Long userId);
    boolean comparePassword(String dbPassword, String inputPassword);
    String encodePassword(String password);
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/DeptServiceImpl.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.wms.system.service.impl;
import com.zy.asrs.wms.system.mapper.DeptMapper;
import com.zy.asrs.wms.system.entity.Dept;
import com.zy.asrs.wms.system.service.DeptService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service("deptService")
public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements DeptService {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/HostServiceImpl.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.wms.system.service.impl;
import com.zy.asrs.wms.system.mapper.HostMapper;
import com.zy.asrs.wms.system.entity.Host;
import com.zy.asrs.wms.system.service.HostService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service("hostService")
public class HostServiceImpl extends ServiceImpl<HostMapper, Host> implements HostService {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/MenuServiceImpl.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.wms.system.service.impl;
import com.zy.asrs.wms.system.mapper.MenuMapper;
import com.zy.asrs.wms.system.entity.Menu;
import com.zy.asrs.wms.system.service.MenuService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service("menuService")
public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements MenuService {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/OperationRecordServiceImpl.java
New file
@@ -0,0 +1,19 @@
package com.zy.asrs.wms.system.service.impl;
import com.zy.asrs.wms.system.mapper.OperationRecordMapper;
import com.zy.asrs.wms.system.entity.OperationRecord;
import com.zy.asrs.wms.system.service.OperationRecordService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@Service("operationRecordService")
public class OperationRecordServiceImpl extends ServiceImpl<OperationRecordMapper, OperationRecord> implements OperationRecordService {
    @Async
    @Override
    public void saveAsync(OperationRecord operationRecord) {
        baseMapper.insert(operationRecord);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/RoleMenuServiceImpl.java
New file
@@ -0,0 +1,25 @@
package com.zy.asrs.wms.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.asrs.wms.system.entity.Menu;
import com.zy.asrs.wms.system.entity.RoleMenu;
import com.zy.asrs.wms.system.mapper.RoleMenuMapper;
import com.zy.asrs.wms.system.service.RoleMenuService;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("roleMenuService")
public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> implements RoleMenuService {
    @Override
    public List<Menu> listMenuByUserId(Long userId, Integer menuType) {
        return baseMapper.listMenuByUserId(userId, menuType);
    }
    @Override
    public List<Long> listStrictlyMenuByRoleId(Long roleId) {
        return baseMapper.listStrictlyMenuByRoleId(roleId);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/RoleServiceImpl.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.wms.system.service.impl;
import com.zy.asrs.wms.system.mapper.RoleMapper;
import com.zy.asrs.wms.system.entity.Role;
import com.zy.asrs.wms.system.service.RoleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service("roleService")
public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService {
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/UserLoginServiceImpl.java
New file
@@ -0,0 +1,31 @@
package com.zy.asrs.wms.system.service.impl;
import com.zy.asrs.common.utils.IpTools;
import com.zy.asrs.wms.system.mapper.UserLoginMapper;
import com.zy.asrs.wms.system.entity.UserLogin;
import com.zy.asrs.wms.system.service.UserLoginService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
@Service("userLoginService")
public class UserLoginServiceImpl extends ServiceImpl<UserLoginMapper, UserLogin> implements UserLoginService {
    @Async
    @Override
    public void saveAsync(Long userId, String token, Integer type, Long hostId, String memo, HttpServletRequest request) {
        if (userId == null) {
            return;
        }
        UserLogin userLogin = new UserLogin();
        userLogin.setUserId(userId);
        userLogin.setToken(token);
        userLogin.setType(type);
        userLogin.setIp(IpTools.gainRealIp(request));
        userLogin.setMemo(memo);
        baseMapper.insert(userLogin);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/UserRoleServiceImpl.java
New file
@@ -0,0 +1,20 @@
package com.zy.asrs.wms.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.asrs.wms.system.entity.Role;
import com.zy.asrs.wms.system.entity.UserRole;
import com.zy.asrs.wms.system.mapper.UserRoleMapper;
import com.zy.asrs.wms.system.service.UserRoleService;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("userRoleService")
public class UserRoleServiceImpl extends ServiceImpl<UserRoleMapper, UserRole> implements UserRoleService {
    @Override
    public List<Role> listByUserId(Long userId) {
        return baseMapper.selectByUserId(userId);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/service/impl/UserServiceImpl.java
New file
@@ -0,0 +1,66 @@
package com.zy.asrs.wms.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.wms.common.domain.BaseParam;
import com.zy.asrs.wms.common.domain.PageParam;
import com.zy.asrs.wms.common.domain.PageResult;
import com.zy.asrs.wms.system.entity.User;
import com.zy.asrs.wms.system.mapper.UserMapper;
import com.zy.asrs.wms.system.service.RoleMenuService;
import com.zy.asrs.wms.system.service.UserRoleService;
import com.zy.asrs.wms.system.service.UserService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service("userService")
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    @Resource
    private UserRoleService userRoleService;
    @Resource
    private RoleMenuService roleMenuService;
    @Resource
    private BCryptPasswordEncoder bCryptPasswordEncoder;
    @Override
    public PageResult<User> pageRel(PageParam<User, BaseParam> pageParam) {
        return new PageResult<>(this.baseMapper.selectPageRel(pageParam, pageParam.pickOutMap(true)), pageParam.getTotal());
    }
    @Override
    public User getByUsername(String username, Long hostId) {
        if (Cools.isEmpty(username)) {
            return null;
        }
        User user = baseMapper.selectByUsername(username, hostId);
        if (user != null) {
            user.setRoles(userRoleService.listByUserId(user.getId()));
            user.setAuthorities(roleMenuService.listMenuByUserId(user.getId(), null));
        }
        return user;
    }
    @Override
    public User getByIdRel(Long userId) {
        User user = this.getById(userId);
        if (user != null) {
            user.setRoles(userRoleService.listByUserId(user.getId()));
            user.setAuthorities(roleMenuService.listMenuByUserId(user.getId(), null));
        }
        return user;
    }
    @Override
    public boolean comparePassword(String dbPassword, String inputPassword) {
        return bCryptPasswordEncoder.matches(inputPassword, dbPassword);
    }
    @Override
    public String encodePassword(String password) {
        return password == null ? null : bCryptPasswordEncoder.encode(password);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/AbstractHandler.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/WorkLogScheduler.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/WorkMastScheduler.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/core/ReturnT.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkMastHandler.java
File was deleted
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/CodeBuilder.java
@@ -1,7 +1,7 @@
package com.zy.asrs.wms.utils;
import com.zy.asrs.framework.generators.CoolGenerator;
import com.zy.asrs.framework.generators.BetterGenerator;
import com.zy.asrs.framework.generators.constant.SqlOsType;
/**
@@ -10,26 +10,22 @@
public class CodeBuilder {
    public static void main(String[] args) throws Exception {
        CoolGenerator generator = new CoolGenerator();
        // mysql
//        generator.url="localhost:3306/cool";
//        generator.username="root";
//        generator.password="xltys1995";
//        generator.table="sys_host";
        // sqlserver
        generator.sqlOsType = SqlOsType.SQL_SERVER;
        generator.backendPrefixPath = "zy-asrs-common/";
        generator.frontendPrefixPath = "zy-asrs-wms/";
        BetterGenerator generator = new BetterGenerator();
        generator.backendPrefixPath = "zy-asrs-wms/";
        generator.frontendPrefixPath = "zy-asrs-flow/";
        generator.url="47.97.1.152:51433;databasename=jkasrs";
        generator.username="sa";
        generator.password="Zoneyung@zy56$";
        generator.table="wms_loc_main";
        generator.packagePath="com.zy.asrs.common.wms";
//        generator.js = false;
//        generator.html = false;
//        generator.sql = false;
//        generator.controller = false;
        generator.sqlOsType = SqlOsType.MYSQL;
        generator.url="localhost:3306/asrs";
        generator.username="root";
        generator.password="xltys1995";
//        generator.url="47.97.1.152:51433;databasename=jkasrs";
//        generator.username="sa";
//        generator.password="Zoneyung@zy56$";
        generator.table="sys_operation_record";
        generator.tableName="操作日志";
        generator.packagePath="com.zy.asrs.wms.system";
        generator.build();
    }
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/ExcelUtil.java
New file
@@ -0,0 +1,95 @@
package com.zy.asrs.wms.utils;
import com.zy.asrs.framework.common.Cools;
import io.swagger.annotations.ApiModelProperty;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
 * Created by vincent on 2/17/2024
 */
public class ExcelUtil {
    public static void build(Workbook workbook, HttpServletResponse response) {
        response.reset();
        Utils.cors(response);
        response.setContentType("application/octet-stream; charset=utf-8");
        try {
            response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("export", "UTF-8"));
            workbook.write(response.getOutputStream());
        } catch (IOException ignore) {}
    }
    public static <T> Workbook create(List<T> list, Class<T> clz) {
        HSSFWorkbook workbook = new HSSFWorkbook();
        Sheet sheet = workbook.createSheet(clz.getSimpleName());
        Row header = sheet.createRow(0);
        Field[] fields = Cools.getAllFields(clz);
        int headerIdx = 0;
        for (Field field : fields) {
            if (Modifier.isFinal(field.getModifiers())
                    || Modifier.isStatic(field.getModifiers())
                    || Modifier.isTransient(field.getModifiers())) {
                continue;
            }
            String memo = "未知";
            if (field.isAnnotationPresent(ApiModelProperty.class)) {
                memo = field.getAnnotation(ApiModelProperty.class).value();
            }
            header.createCell(headerIdx).setCellValue(memo);
            headerIdx++;
        }
        int rowIndex = 1;
        for (T t : list) {
            Row row = sheet.createRow(rowIndex++);
            int cellIndex = 0;
            for (Field field : fields) {
                if (Modifier.isFinal(field.getModifiers())
                        || Modifier.isStatic(field.getModifiers())
                        || Modifier.isTransient(field.getModifiers())) {
                    continue;
                }
                field.setAccessible(true);  // æ­¤è¡Œå¾ˆé‡è¦ï¼Œç‰¹åˆ«æ˜¯å­—段为private时
                Object value = null;
                try {
                    value = field.get(t);
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
                if (value != null) {
                    if (value instanceof Date) {
                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                        row.createCell(cellIndex).setCellValue(sdf.format((Date) value));
                    } else {
                        row.createCell(cellIndex).setCellValue(value.toString());
                    }
                }
                cellIndex++;
            }
        }
        for (int i = 0; i <= fields.length; i++) {
            sheet.autoSizeColumn(i);
        }
        return workbook;
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/HttpUtils.java
New file
@@ -0,0 +1,26 @@
package com.zy.asrs.wms.utils;
import com.alibaba.fastjson.JSON;
import com.zy.asrs.framework.common.R;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
 * Created by vincent on 1/29/2024
 */
public class HttpUtils {
    public static void responseError(HttpServletResponse response, Integer code, String message, String error) {
        response.setContentType("application/json;charset=UTF-8");
        try {
            PrintWriter out = response.getWriter();
            out.write(JSON.toJSONString(R.parse(code + "-" + message)));
            out.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/JwtUtil.java
New file
@@ -0,0 +1,143 @@
package com.zy.asrs.wms.utils;
import com.alibaba.fastjson.JSON;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.wms.common.constant.Constants;
import com.zy.asrs.wms.common.security.JwtSubject;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.io.Decoders;
import io.jsonwebtoken.io.Encoders;
import io.jsonwebtoken.security.Keys;
import javax.servlet.http.HttpServletRequest;
import java.security.Key;
import java.util.Date;
/**
 * JWT工具类
 *
 * @author vincent
 * @since 2018-01-21 16:30:59
 */
public class JwtUtil {
    /**
     * èŽ·å–è¯·æ±‚ä¸­çš„access_token
     *
     * @param request HttpServletRequest
     * @return String
     */
    public static String getAccessToken(HttpServletRequest request) {
        String access_token = request.getHeader(Constants.TOKEN_HEADER_NAME);
        if (!Cools.isEmpty(access_token)) {
            if (access_token.startsWith(Constants.TOKEN_TYPE)) {
                access_token = Utils.removePrefix(access_token, Constants.TOKEN_TYPE).trim();
            }
        } else {
            access_token = request.getParameter(Constants.TOKEN_PARAM_NAME);
        }
        return access_token;
    }
    /**
     * ç”Ÿæˆtoken
     *
     * @param subject          è½½ä½“
     * @param expire           è¿‡æœŸæ—¶é—´
     * @param base64EncodedKey base64编码的Key
     * @return token
     */
    public static String buildToken(JwtSubject subject, Long expire, String base64EncodedKey) {
        return buildToken(JSON.toJSONString(subject), expire, decodeKey(base64EncodedKey));
    }
    /**
     * ç”Ÿæˆtoken
     *
     * @param subject è½½ä½“
     * @param expire  è¿‡æœŸæ—¶é—´
     * @param key     å¯†é’¥
     * @return token
     */
    public static String buildToken(String subject, Long expire, Key key) {
        Date expireDate = new Date(new Date().getTime() + 1000 * expire);
        return Jwts.builder()
                .setSubject(subject)
                .setExpiration(expireDate)
                .setIssuedAt(new Date())
                .signWith(key)
                .compact();
    }
    /**
     * è§£æžtoken
     *
     * @param token            token
     * @param base64EncodedKey base64编码的Key
     * @return Claims
     */
    public static Claims parseToken(String token, String base64EncodedKey) {
        return parseToken(token, decodeKey(base64EncodedKey));
    }
    /**
     * è§£æžtoken
     *
     * @param token token
     * @param key   å¯†é’¥
     * @return Claims
     */
    public static Claims parseToken(String token, Key key) {
        return Jwts.parserBuilder()
                .setSigningKey(key)
                .build()
                .parseClaimsJws(token)
                .getBody();
    }
    /**
     * èŽ·å–JwtSubject
     *
     * @param claims Claims
     * @return JwtSubject
     */
    public static JwtSubject getJwtSubject(Claims claims) {
        return JSON.parseObject(claims.getSubject(), JwtSubject.class);
    }
    /**
     * ç”ŸæˆKey
     *
     * @return Key
     */
    public static Key randomKey() {
        return Keys.secretKeyFor(SignatureAlgorithm.HS256);
    }
    /**
     * base64编码key
     *
     * @return String
     */
    public static String encodeKey(Key key) {
        return Encoders.BASE64.encode(key.getEncoded());
    }
    /**
     * base64编码Key
     *
     * @param base64EncodedKey base64编码的key
     * @return Key
     */
    public static Key decodeKey(String base64EncodedKey) {
        if (Cools.isEmpty(base64EncodedKey)) {
            return null;
        }
        return Keys.hmacShaKeyFor(Decoders.BASE64.decode(base64EncodedKey));
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/NodeUtils.java
New file
@@ -0,0 +1,40 @@
package com.zy.asrs.wms.utils;
import java.io.Serializable;
import java.util.function.Function;
/**
 * Created by vincent on 2021/1/19
 */
public class NodeUtils {
    public StringBuilder path = new StringBuilder();
    public StringBuilder pathName = new StringBuilder();
    public interface NodeSupport<T> {
        T query(T t);
    }
    public <T, R extends Serializable> void generatePath0(
            NodeSupport<T> support
            , T t
            , Function<? super T, ? extends Long> idMapper
            , Function<? super T, ? extends String> nameMapper
            , Function<? super T, ? extends Long> parentIdMapper) {
        T parent = support.query(t);
        if (null != parent) {
            path.insert(0, idMapper.apply(parent)).insert(0,",");
            pathName.insert(0, nameMapper.apply(parent)).insert(0,",");
            if (parentIdMapper.apply(parent) != null && parentIdMapper.apply(parent) != 0) {
                generatePath0(support, parent, idMapper, nameMapper, parentIdMapper);
            } else {
                path.deleteCharAt(0);
                pathName.deleteCharAt(0);
            }
        }
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/Utils.java
New file
@@ -0,0 +1,307 @@
package com.zy.asrs.wms.utils;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.wms.common.constant.Constants;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Function;
/**
 * Created by vincent on 2023/3/14
 */
public class Utils {
    /**
     * List转为树形结构
     *
     * @param data           List
     * @param parentId       é¡¶çº§çš„parentId
     * @param parentIdMapper èŽ·å–parentId的Function
     * @param idMapper       èŽ·å–id的Function
     * @param consumer       èµ‹å€¼children的Consumer
     * @param <T>            æ•°æ®çš„类型
     * @param <R>            parentId的类型
     * @return List<T>
     */
    public static <T, R> List<T> toTreeData(List<T> data,
                                            R parentId,
                                            Function<? super T, ? extends R> parentIdMapper,
                                            Function<? super T, ? extends R> idMapper,
                                            BiConsumer<T, List<T>> consumer) {
        List<T> result = new ArrayList<>();
        for (T d : data) {
            R dParentId = parentIdMapper.apply(d);
            if (parentId.equals(dParentId)) {
                R dId = idMapper.apply(d);
                List<T> children = toTreeData(data, dId, parentIdMapper, idMapper, consumer);
                if(children.size() > 0) {
                    consumer.accept(d, children);
                }
                result.add(d);
            }
        }
        return result;
    }
//    public static <T> List<T> treeRemove(List<T> data, String condition,
//                                         Function<? super T, ? extends String> fetcher,
//                                         Function<T, List<T>> childrenGetter,
//                                         BiConsumer<T, List<T>> childrenSetter) {
//        List<T> result = new ArrayList<>();
//        for (T node : data) {
//            List<T> children = childrenGetter.apply(node);
//
//            if (children != null && !children.isEmpty()) {
//                List<T> newChildren = treeRemove(children, condition, fetcher, childrenGetter, childrenSetter);
//                childrenSetter.accept(node, newChildren);
//            }
//
//            if (fetcher.apply(node).contains(condition)) {
//                result.add(node);
//            }
//        }
//        return result;
//    }
    public static <T> void treeRemove(List<T> list, String condition, Function<? super T, ? extends String> fetcher, Function<T, List<T>> childrenGetter) {
        Iterator<T> iterator = list.iterator();
        while (iterator.hasNext()) {
            T next = iterator.next();
            List<T> children = childrenGetter.apply(next);
            if (children != null && !children.isEmpty()) {
                treeRemove(children, condition, fetcher, childrenGetter);
            } else {
                if (!fetcher.apply(next).contains(condition)) {
                    iterator.remove();
                }
            }
        }
    }
    /**
     * æ•°ç»„倒序
     * @param bytes
     * @param <T>
     */
    public static <T> byte[] reverse(byte[] bytes) {
        if (bytes == null) return null;
        for (int start = 0, end = bytes.length - 1; start < end; start++, end--) {
            byte temp = bytes[end];
            bytes[end] = bytes[start];
            bytes[start] = temp;
        }
        return bytes;
    }
    /**
     * æˆªå–数组
     * @param bytes åŽŸæ•°ç»„
     * @param pos   å®šä½ï¼ˆæˆªå–后包含定位点数据)
     * @param len   é•¿åº¦
     * @return new arr
     */
    public static byte[] slice(byte[] bytes, int pos, int len) {
        if (bytes == null || bytes.length == 0 || len == 0) {
            return new byte[0];
        }
        if (pos + len > bytes.length) {
            throw new RuntimeException("com.zy.acs.common.utils ArrayIndexOutOfBoundsException\n" +
                    "原数组 bytes é•¿åº¦ä¸º " + bytes.length + ",截取长度超过原数组!");
        }
        byte[] arr = new byte[len];
        System.arraycopy(bytes, pos, arr, 0, len);
        return arr;
    }
    public static byte[] sliceWithReverse(byte[] bytes, int pos, int len) {
        byte[] slice = slice(bytes, pos, len);
        reverse(slice);
        return slice;
    }
    public static byte[] merge(Object... objects) {
        int len = 0;
        for (Object object : objects) {
            if (object instanceof byte[]) {
                byte[] bytes = (byte[]) object;
                len += bytes.length;
            }
            if (object instanceof Byte) {
                len++;
            }
        }
        byte[] arr = new byte[len];
        int idx = 0;
        for (Object object : objects) {
            if (object instanceof byte[]) {
                byte[] bytes = (byte[]) object;
                System.arraycopy(bytes, 0, arr, idx, bytes.length);
                idx += bytes.length;
            }
            if (object instanceof Byte) {
                byte[] bytes = new byte[] {(Byte) object};
                System.arraycopy(bytes, 0, arr, idx, bytes.length);
                idx += bytes.length;
            }
        }
        return arr;
    }
    public static <T> String join(T[] array, String seq) {
        StringBuilder sb = new StringBuilder();
        if (array != null) {
            for (int i = 0; i < array.length; i++) {
                sb.append(array[i]);
                if (i < array.length - 1) {
                    sb.append(seq);
                }
            }
        }
        return sb.toString();
    }
    public static String zeroFill(String msg, Integer len) {
        len = Optional.ofNullable(len).orElse(16);
        if (msg.length() == len){
            return msg;
        } else if (msg.length() > len){
            return msg.substring(0, 16);
        } else {
            StringBuilder msgBuilder = new StringBuilder(msg);
            for (int i = 0; i<len-msg.length(); i++){
                msgBuilder.insert(0,"0");
            }
            return msgBuilder.toString();
        }
    }
    public static String removePrefix(String str, String prefix) {
        if (!Cools.isEmpty(str) && !Cools.isEmpty(prefix)) {
            if (str.startsWith(prefix)) {
                return str.substring(prefix.length());
            } else {
                return str;
            }
        } else {
            return str;
        }
    }
    public static String removeSuffix(String str, String suffix) {
        if (!Cools.isEmpty(str) && !Cools.isEmpty(suffix)) {
            if (str.endsWith(suffix)) {
                return str.substring(0, str.indexOf(suffix));
            } else {
                return str;
            }
        } else {
            return str;
        }
    }
    /**
     * å¤§é©¼å³° è½¬ symbol小驼峰
     */
    public static String toSymbolCase(String str, char symbol) {
        if (str == null) {
            return null;
        } else {
            int length = str.length();
            StringBuilder sb = new StringBuilder();
            for(int i = 0; i < length; ++i) {
                char c = str.charAt(i);
                if (Character.isUpperCase(c)) {
                    Character preChar = i > 0 ? str.charAt(i - 1) : null;
                    Character nextChar = i < str.length() - 1 ? str.charAt(i + 1) : null;
                    if (null != preChar) {
                        if (symbol == preChar) {
                            if (null == nextChar || Character.isLowerCase(nextChar)) {
                                c = Character.toLowerCase(c);
                            }
                        } else if (Character.isLowerCase(preChar)) {
                            sb.append(symbol);
                            if (null == nextChar || Character.isLowerCase(nextChar)) {
                                c = Character.toLowerCase(c);
                            }
                        } else if (null == nextChar || Character.isLowerCase(nextChar)) {
                            sb.append(symbol);
                            c = Character.toLowerCase(c);
                        }
                    } else if (null == nextChar || Character.isLowerCase(nextChar)) {
                        c = Character.toLowerCase(c);
                    }
                }
                sb.append(c);
            }
            return sb.toString();
        }
    }
    public static String toCamelCase(CharSequence name) {
        if (null == name) {
            return null;
        } else {
            String name2 = name.toString();
            if (name2.contains("_")) {
                int length = name2.length();
                StringBuilder sb = new StringBuilder(length);
                boolean upperCase = false;
                for(int i = 0; i < length; ++i) {
                    char c = name2.charAt(i);
                    if (c == '_') {
                        upperCase = true;
                    } else if (upperCase) {
                        sb.append(Character.toUpperCase(c));
                        upperCase = false;
                    } else {
                        sb.append(Character.toLowerCase(c));
                    }
                }
                return sb.toString();
            } else {
                return name2;
            }
        }
    }
    public static String sub(String str, Integer maxLen) {
        if (str.length() > maxLen) {
            return str.substring(0, maxLen);
        }
        return str;
    }
    public static String generateSeqNum(String lastSeqNum) {
        if (Cools.isEmpty(lastSeqNum)) {
            return zeroFill("1", 4);
        } else {
            int i = Integer.parseInt(lastSeqNum);
            if (i >= 9999) {
                return zeroFill("1", 4);
            } else {
                return zeroFill(String.valueOf(i+1), 4);
            }
        }
    }
    public static void cors(HttpServletResponse response){
        // è·¨åŸŸè®¾ç½®
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "*");
        response.setHeader("Access-Control-Allow-Headers", "*");
        response.setHeader("Access-Control-Expose-Headers", Constants.TOKEN_HEADER_NAME);
    }
}
zy-asrs-wms/src/main/resources/application.yml
@@ -16,11 +16,10 @@
    url: jdbc:mysql://127.0.0.1:3306/wms_dev?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: root
#  datasource:
#    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
#    url: jdbc:sqlserver://localhost:1433;databasename=jmasrs
#    url: jdbc:sqlserver://47.97.1.152:51433;databasename=jkasrs
#    username: sa
#    password: sa@123
#    password: Zoneyung@zy56$
  mvc:
    static-path-pattern: /**
  servlet:
@@ -49,3 +48,6 @@
super:
  pwd: xltys1995
config:
  token-key: KUHSMcYQ4lePt3r6bckz0P13cBJyoonYqInThvQlUnbsFCIcCcZZAbWZ6UNFztYNYPhGdy6eyb8WdIz8FU2Cz396TyTJk3NI2rtXMHBOehRb4WWJ4MdYVVg2oWPyqRQ2
zy-asrs-wms/src/main/resources/mapper/system/DeptMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.wms.system.mapper.DeptMapper">
</mapper>
zy-asrs-wms/src/main/resources/mapper/system/HostMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.wms.system.mapper.HostMapper">
</mapper>
zy-asrs-wms/src/main/resources/mapper/system/MenuMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.wms.system.mapper.MenuMapper">
</mapper>
zy-asrs-wms/src/main/resources/mapper/system/OperationRecordMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.wms.system.mapper.OperationRecordMapper">
</mapper>
zy-asrs-wms/src/main/resources/mapper/system/RoleMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.wms.system.mapper.RoleMapper">
</mapper>
zy-asrs-wms/src/main/resources/mapper/system/RoleMenuMapper.xml
New file
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.wms.system.mapper.RoleMenuMapper">
    <select id="listMenuByUserId" resultType="com.zy.asrs.wms.system.entity.Menu">
        select * from sys_menu
        where 1=1
        <if test="type != null">
            AND type = #{type}
        </if>
        and deleted = 0
        and id in (
            select menu_id from sys_role_menu
            where role_id in (
                select sur.role_id from sys_user_role sur
                left join sys_role sr on sur.role_id = sr.id
                where 1=1
                and sur.user_id = #{userId}
                and sr.deleted = 0
            )
        )
        order by sort
    </select>
    <select id="listStrictlyMenuByRoleId" resultType="java.lang.Long">
        select sm.id
        from sys_menu sm
        left join sys_role_menu srm on sm.id = srm.menu_id
        where 1=1
        and sm.deleted = 0
        and srm.role_id = #{roleId}
        and sm.id not in (
            select sm.parent_id
            from sys_menu sm
            inner join sys_role_menu srm on sm.id = srm.menu_id
            and srm.role_id = #{roleId}
        )
        order by sm.sort
    </select>
</mapper>
zy-asrs-wms/src/main/resources/mapper/system/UserLoginMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.wms.system.mapper.UserLoginMapper">
</mapper>
zy-asrs-wms/src/main/resources/mapper/system/UserMapper.xml
New file
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.wms.system.mapper.UserMapper">
    <!-- æ ¹æ®è´¦å·æŸ¥è¯¢ -->
    <select id="selectByUsername" resultType="com.zy.asrs.wms.system.entity.User">
        select * from sys_user
        where 1=1
        and deleted = 0
        and username = #{username}
        <if test="hostId != null">
            AND host_id = #{hostId}
        </if>
    </select>
    <select id="selectPageRel" resultType="com.zy.asrs.wms.system.entity.User">
        select
        su.*
        from sys_user su
        left join sys_dept sd on su.dept_id = sd.id
        where 1=1
        and su.deleted = 0
        <if test="param.deptId != null">
            and (FIND_IN_SET(#{param.deptId}, sd.`path`) OR sd.`id` = #{param.deptId})
        </if>
        <if test="param.username != null">
            and su.username like concat('%',#{param.username},'%')
        </if>
        <if test="param.nickname != null">
            and su.nickname like concat('%',#{param.nickname},'%')
        </if>
        <if test="param.phone != null">
            and su.phone like concat('%',#{param.phone},'%')
        </if>
        <if test="param.sex != null">
            and su.sex = #{param.sex}
        </if>
        <if test="param.status != null">
            and su.status = #{param.status}
        </if>
        <if test="param.condition != null">
            and (
                   su.username like concat('%',#{param.condition},'%')
                or su.nickname like concat('%',#{param.condition},'%')
                or su.phone like concat('%',#{param.condition},'%')
            )
        </if>
        order by su.create_time
    </select>
</mapper>
zy-asrs-wms/src/main/resources/mapper/system/UserRoleMapper.xml
New file
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.wms.system.mapper.UserRoleMapper">
    <select id="selectByUserId" resultType="com.zy.asrs.wms.system.entity.Role">
        select *
        from sys_role
        where 1=1
        and id in (
            select role_id
            from sys_user_role
            where user_id = #{userId}
        )
        and deleted = 0
    </select>
</mapper>
zy-asrs-wms/src/main/webapp/static/css/admin.css
File was deleted
zy-asrs-wms/src/main/webapp/static/css/animate.min.css
zy-asrs-wms/src/main/webapp/static/css/animsition.css
zy-asrs-wms/src/main/webapp/static/css/bg.css
File was deleted
zy-asrs-wms/src/main/webapp/static/css/common.css
@@ -1,225 +1,49 @@
/**, *::before, *::after {*/
/*    -webkit-box-sizing: border-box;*/
/*    box-sizing: border-box;*/
/*    margin: 0;*/
/*    padding: 0;*/
/*}*/
/* ç»Ÿä¸€å¤„理 */
*, *::before, *::after {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
html {
    line-height: 1.5;
    font-size: 15px;
    font-family: sans-serif;
    height: 100%;
}
body {
    background-color: #fff;
    height: 100%;
}
input::placeholder {
    color: #b4b4b4;
}
input::-webkit-input-placeholder { /* WebKit browsers é€‚配谷歌 */
    color: #b4b4b4;
}
.layui-input input:-moz-placeholder { /* Mozilla Firefox 4 to 18 é€‚配火狐 */
    color: #b4b4b4;
}
.layui-input input::-moz-placeholder { /* Mozilla Firefox 19+ é€‚配火狐 */
    color: #b4b4b4;
}
.layui-input input:-ms-input-placeholder { /* Internet Explorer 10+  é€‚配ie*/
    color: #b4b4b4;
}
/* layui优化 */
.layui-form-label {
    /*color: #595959;*/
}
.layui-input:focus {
    border-color: #007bff !important;
}
/*搜索栏*/
.layui-form.layui-card-header {
    padding: 20px 0 5px 0;
    height: auto;
}
#search-box {
    margin-left: 10px;
    z-index: 999;
    position: relative;
    padding: 30px 30px 10px 30px;
}
#search-box .layui-inline{
    margin-bottom: 10px;
    margin-right: 5px;
}
#search-box .layui-input-inline {
    width: 150px;
}
.layui-form-label{
    font-size: 100%;
    padding: 13px 0 9px 5px;
    text-align: right;
}
#data-search-btn {
    display: inline-block;
    margin: 8px 0 0 10px;
    justify-content: center;
    align-items: center;
}
#data-search-btn.layui-btn-container .layui-btn{
    margin-right: 20px;
}
/*头工具栏*/
.layui-table-tool-temp {
    padding-right: 70px;
}
.layui-btn .layui-icon {
    margin: 1px 5px;
}
#btn-add{
    background: #007DDB
}
#btn-delete{
    background: #ff5722
}
#btn-export{
    float: right;
}
/*表格*/
.layui-table thead th {
    font-weight: bold;
    text-align: center;
}
div .layui-table-tool .layui-table-tool-self .layui-inline[title='导出']{
    display: none;
}
.layui-form.layui-border-box.layui-table-view{
    margin: 15px 0 35px 0;
    width: 100%;
iframe {
    border-width: 0;
}
.layui-table-box{
    padding-bottom: 10px;
}
/*.layui-table-body.layui-table-main{*/
/*    overflow: hidden;*/
/*}*/
.layui-table-page{
    border-width: 0;
}
.layui-table tbody tr:hover, .layui-table thead tr, .layui-table-click, .layui-table-header, .layui-table-hover, .layui-table-mend, .layui-table-patch, .layui-table-tool, .layui-table-total, .layui-table-total tr, .layui-table[lay-even] tr:nth-child(even) {
    background-color: #f9f9f9;
}
.layui-table-tool {
    /*background-color: #fff;*/
}
/* table ï¼ˆæ¢è¡Œ/详情)显示控制 */
/*.layui-table-cell {*/
    /*font-size:14px;*/
    /*padding:0 5px;*/
    /*height:auto;*/
    /*overflow:visible;*/
    /*text-overflow:inherit;*/
    /*white-space:normal;*/
    /*word-break: break-all;*/
/*}*/
/*.layui-table-grid-down {*/
    /*display: none;*/
/*}*/
/*详情*/
#detail .layui-form-label{
    white-space: nowrap;
    font-size: 100%;
    padding: 9px 0 9px 5px;
    text-align: right;
/* å¸ƒå±€ */
.row::after, .row::before {
    content: "";
    display: table;
    clear: both;
}
#detail {
    padding: 25px 0;
    margin: 0 20px 0 30px;
}
#detail .layui-inline {
    margin: 10px 15px 15px 0;
}
#detail .layui-input-inline {
    margin-right: 40px;
    margin-left: 95px;
    display: block;
}
.layui-bg-gray {
    margin-top: 40px;
}
#prompt {
    margin-top: 20px;
    width: 90%;
    text-indent: 40px;
    color: #505050;
}
#data-detail-btn {
    padding-top: 25px;
    display: flex;
    justify-content: center;
    align-items: center;
}
#data-detail-btn.layui-btn-container .layui-btn{
    margin-right: 30px;
}
.not-null {
    color:red;
}
#detail .layui-form-checkbox {
    top: 10px;
}
/*图片*/
.cool-img {
    cursor:pointer;
    width: 200px;
    height: 200px;
}
/*
    å¸ƒå±€
 */
.col:empty{min-height:32px;height: inherit;z-index:1;position:relative;box-sizing: border-box;}
.col:empty:after{
    z-index:0;display:flex;align-items: center;justify-content: center;
    clear: both;content:attr(title);position:absolute;
    background:rgba(0,0,0,0.04);top:2px;left:2px;right:2px;bottom:2px;
    text-align:center;color:rgba(0,0,0,0.1); border-radius: inherit;
}
.col{
.col-md3:empty {
    background:rgba(0,0,0,0.04);
    border: 1px solid rgba(0,0,0,.3);
    min-height:32px;
    height: inherit;
    z-index:1;
}
/*权限*/
#btn-add {
    display: none;
.col-md1,.col-md10,.col-md11,.col-md12,.col-md2,.col-md3,.col-md4,.col-md5,.col-md6,.col-md7,.col-md8,.col-md9{
    float:left;
}
.btn-edit {
    display: none;
}
#btn-delete {
    display: none;
}
#btn-export {
    display: none;
}
#btn-into {
    display: none;
}
/*修改复选框颜色*/
/*.layui-form-checked[lay-skin=primary] i {*/
    /*border-color: #4c95b8!important;*/
    /*background-color: #4c95b8;*/
    /*color: #fff;*/
/*}*/
/*.layui-form-checkbox[lay-skin=primary]:hover i {*/
    /*border-color: #4c95b8;*/
    /*color: #fff;*/
/*}*/
/* åª’体查询 â€”— å“åº”布局 */
/* åšå“åº”式布局时,不建议用固定尺寸,尽量用% */
@media only screen and (max-width: 800px) {
}
.col-md1{width:8.33333333%}
.col-md2{width:16.66666667%}
.col-md3{width:25%}
.col-md4{width:33.33333333%}
.col-md5{width:41.66666667%}
.col-md6{width:50%}
.col-md7{width:58.33333333%}
.col-md8{width:66.66666667%}
.col-md9{width:75%}
.col-md10{width:83.33333333%}
.col-md11{width:91.66666667%}
.col-md12{width:100%}
zy-asrs-wms/src/main/webapp/static/css/console.css
zy-asrs-wms/src/main/webapp/static/css/console_vue.css
zy-asrs-wms/src/main/webapp/static/css/cool.css
File was deleted
zy-asrs-wms/src/main/webapp/static/css/crn.css
zy-asrs-wms/src/main/webapp/static/css/element.css
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/css/font-awesome.css
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/css/font-awesome.min.css
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/fonts/FontAwesome.otf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/fonts/fontawesome-webfont.eot
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/fonts/fontawesome-webfont.svg
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/fonts/fontawesome-webfont.woff
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/animated.less
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/bordered-pulled.less
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/core.less
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/fixed-width.less
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/font-awesome.less
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/icons.less
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/larger.less
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/list.less
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/mixins.less
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/path.less
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/rotated-flipped.less
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/screen-reader.less
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/stacked.less
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/less/variables.less
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_animated.scss
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_bordered-pulled.scss
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_core.scss
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_fixed-width.scss
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_icons.scss
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_larger.scss
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_list.scss
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_mixins.scss
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_path.scss
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_rotated-flipped.scss
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_screen-reader.scss
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_stacked.scss
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/_variables.scss
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/font-awesome-4.7.0/scss/font-awesome.scss
File was deleted
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-Black.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-BlackItalic.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-Bold.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-BoldItalic.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-ExtraBold.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-ExtraBoldItalic.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-ExtraLight.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-ExtraLightItalic.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-Italic.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-Light.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-LightItalic.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-Medium.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-MediumItalic.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-Regular.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-SemiBold.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-SemiBoldItalic.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-Thin.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/Montserrat-ThinItalic.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/font/montserrat/OFL.txt
File was deleted
zy-asrs-wms/src/main/webapp/static/css/fonts/element-icons.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/fonts/element-icons.woff
Binary files differ
zy-asrs-wms/src/main/webapp/static/css/index-0.css
zy-asrs-wms/src/main/webapp/static/css/index.css
@@ -1,125 +1,122 @@
body {
    display : none;
* {
    margin: 0;
    overflow: hidden;
}
html,body {
    height: 100%;
}
/* ç”¨æˆ·åŠŸèƒ½æ */
.layui-side.layui-bg-black.layui-side-menu::-webkit-scrollbar {
    width: 0 !important
.sidebar {
    width: 8%;
    height: 40%;
    line-height: 5.625em;
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
}
#person {
.nav ul {
    font-size: 1.25em;
    font-weight: 500;
    padding-left: 5%;
}
.nav a {
    position: relative;
    z-index:2;
    margin: 40px 0;
    text-align: center
    text-decoration: none;
    margin-left: 0.625em;
    font-weight: 500;
}
#person-username {
    font-size: large;
    top: 35px;
    left: 70px;
.nav a:hover {
    color:  #fff;
}
.dropdown-list {
    display: inline-block
/* Effect 4: bottom border enlarge */
.cl-effect-4 a {
    padding: 0 0 0.625em;
}
.dropdown-item {
    background:transparent;
.cl-effect-4 a::after {
    position: absolute;
    width: 100%;
    left: 0;
}
#person:hover dd {
    display: block;
}
#person:hover dt {
    transform: rotate(180deg) translate(0, 4px);
}
/*小箭头*/
.dropdown-list dt {
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid;
    border-top-color: rgba(255,255,255,.7);
    padding-top: 3px;
}
/*选项*/
#person dd {
    top: 100%;
    left: 0;
    width:100%;
    position: absolute;
    line-height: 32px;
    display: none;
    padding-top: 3px;
    z-index:999;
    width: 100%;
    height: 0.0625em;
    background: #fff;
    content: '';
    opacity: 0;
    -webkit-transition: height 0.3s, opacity 0.3s, -webkit-transform 0.3s;
    -moz-transition: height 0.3s, opacity 0.3s, -moz-transform 0.3s;
    transition: height 0.3s, opacity 0.3s, transform 0.3s;
    -webkit-transform: translateY(-0.625em);
    -moz-transform: translateY(-0.625em);
    transform: translateY(-0.625em);
}
.dropdown-item ul {
    width:80%;
    margin:0 auto;
    background:#222;
    box-shadow: 0 0 5px rgba(200,200,200,0.03);
    border-radius: 5px;
    letter-spacing: 2px;
.cl-effect-4 a:hover::after,
.cl-effect-4 a:focus::after {
    height: 0.3125em;
    opacity: 1;
    -webkit-transform: translateY(0px);
    -moz-transform: translateY(0px);
    transform: translateY(0px);
}
.dropdown-item ul li a {
    color:#555;
/* Effect 4: bottom border enlarge */
/* .sidebar ul {
    font-size: 20px;
    font-weight: 500;
    padding-left: 5%;
}
.sidebar a {
    text-decoration: none;
}
.sidebar a:hover {
    color: rgb(255, 148, 111);
} */
.nav-unselect {
    color: #FFFFFF;
}
.nav-select {
    font-weight: 900;
    color:  #fff;
}
/*侧边菜单栏*/
#cool-menu-tree li {
    cursor:pointer;
}
.site-active {
    text-indent: 1em;
}
.layui-side.layui-bg-black.layui-side-menu {
    position: absolute;
    top: 0;
    z-index: 1;
}
.layui-side-scroll {
    height: auto;
}
/* <!--内容主体--> */
.layui-tab-title {
    box-sizing: border-box;
    box-shadow: 0 1px 2px 0 rgba(0,0,0,.1);
}
.layui-layout-admin .layui-body {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: -1;
}
/*选项卡*/
.layui-body .layui-tab.layui-tab-card {
/* æ¶“讳綋 */
iframe {
    width: 100%;
    height: 100%;
    margin: 0;
    border-width: 0;
}
/*选项卡标题*/
.layui-tab-title {
    border-bottom-width: 0px;
/* æ´æ›¢å„´ */
footer {
    /* border-top: 1px solid #e3e3e3; */
    position: fixed;
    bottom: 0;
    right: 0;
    left: 0;
    text-align: center;
    font: 14px Helvetica Neue,Helvetica,PingFang SC,\5FAE\8F6F\96C5\9ED1,Tahoma,Arial,sans-serif;
    box-shadow: 0 -1px 2px 0 rgba(0,0,0,.0);
    box-sizing: border-box;
    background-color: rgb(108,167,168);
    z-index: 999;
    height: 20px;
    font-size: 13px;
    line-height: 20px;
    background-color: #f1f1f1;
    opacity: .7;
}
/*选项卡内容*/
.layui-tab-content {
    position: absolute;
    top: 40px;
    bottom: 4px;
    width: 100%;
    padding: 0;
}
.layui-tab-item.layui-show {
    height: 100%;
footer a {
    color: #3573ab;
    font-weight: bold;
    text-decoration: none;
    cursor: pointer;
}
.site-active {
    -moz-user-select:none;/*火狐*/
    -webkit-user-select:none;/*webkit浏览器*/
    -ms-user-select:none;/*IE10*/
    -khtml-user-select:none;/*早期浏览器*/
    user-select:none;
}
zy-asrs-wms/src/main/webapp/static/css/layx.min.css
zy-asrs-wms/src/main/webapp/static/css/lift.css
zy-asrs-wms/src/main/webapp/static/css/loader.css
File was deleted
zy-asrs-wms/src/main/webapp/static/css/login.css
File was deleted
zy-asrs-wms/src/main/webapp/static/css/main.min.css
File was deleted
zy-asrs-wms/src/main/webapp/static/css/normalize.css
zy-asrs-wms/src/main/webapp/static/css/optimize.css
zy-asrs-wms/src/main/webapp/static/css/originTable.css
File was deleted
zy-asrs-wms/src/main/webapp/static/css/pda.css
File was deleted
zy-asrs-wms/src/main/webapp/static/css/pipeline.css
zy-asrs-wms/src/main/webapp/static/css/print.css
File was deleted
zy-asrs-wms/src/main/webapp/static/css/render.css
zy-asrs-wms/src/main/webapp/static/css/road.css
File was deleted
zy-asrs-wms/src/main/webapp/static/css/shuttle.css
zy-asrs-wms/src/main/webapp/static/css/ste.css
zy-asrs-wms/src/main/webapp/static/css/toggle-switch.css
zy-asrs-wms/src/main/webapp/static/css/tree.css
File was deleted
zy-asrs-wms/src/main/webapp/static/image/Excel.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/banner.mp4
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/bg.jpg
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/bg1.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/favicon.ico
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/instancing/cubemap_nx.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/instancing/cubemap_ny.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/instancing/cubemap_nz.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/instancing/cubemap_px.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/instancing/cubemap_py.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/instancing/cubemap_pz.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/login_bg.jpg
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/logo.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/nav/bg_1.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/nav/fn_1.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/nav/fn_1_h.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/nav/fn_2.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/nav/fn_2_h.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/nav/fn_3.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/nav/fn_3_h.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/nav/icon.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/image/weixin_qrcode.jpg
Binary files differ
zy-asrs-wms/src/main/webapp/static/images/Crane_auto.png

zy-asrs-wms/src/main/webapp/static/images/Crane_error.png

zy-asrs-wms/src/main/webapp/static/images/Crane_hptoohp.png

zy-asrs-wms/src/main/webapp/static/images/Crane_loctoloc.png

zy-asrs-wms/src/main/webapp/static/images/Crane_manual.png

zy-asrs-wms/src/main/webapp/static/images/Crane_manual1.png

zy-asrs-wms/src/main/webapp/static/images/Crane_retrieve.png

zy-asrs-wms/src/main/webapp/static/images/Crane_stntostn.png

zy-asrs-wms/src/main/webapp/static/images/Crane_store.png

zy-asrs-wms/src/main/webapp/static/images/Popup-green.png

zy-asrs-wms/src/main/webapp/static/images/Popup-yellow.png

zy-asrs-wms/src/main/webapp/static/images/barcode.png

zy-asrs-wms/src/main/webapp/static/images/bg.jpg

zy-asrs-wms/src/main/webapp/static/images/bscanner.png

zy-asrs-wms/src/main/webapp/static/images/cancellation.png

zy-asrs-wms/src/main/webapp/static/images/favicon.ico

zy-asrs-wms/src/main/webapp/static/images/fork_l.png

zy-asrs-wms/src/main/webapp/static/images/fork_r.png

zy-asrs-wms/src/main/webapp/static/images/line.png

zy-asrs-wms/src/main/webapp/static/images/login.png

zy-asrs-wms/src/main/webapp/static/images/loginBg.jpg

zy-asrs-wms/src/main/webapp/static/images/siteclose.png

zy-asrs-wms/src/main/webapp/static/images/stacker.png

zy-asrs-wms/src/main/webapp/static/images/start48.png

zy-asrs-wms/src/main/webapp/static/images/status_bar_1.png

zy-asrs-wms/src/main/webapp/static/images/status_bar_2.png

zy-asrs-wms/src/main/webapp/static/images/ste/1@1x.png

zy-asrs-wms/src/main/webapp/static/images/ste/2@1x.png

zy-asrs-wms/src/main/webapp/static/images/ste/3@1x.png

zy-asrs-wms/src/main/webapp/static/images/ste/4@1x.png

zy-asrs-wms/src/main/webapp/static/images/ste/5@1x.png

zy-asrs-wms/src/main/webapp/static/images/ste/6@1x.png

zy-asrs-wms/src/main/webapp/static/images/ste/7@1x.png

zy-asrs-wms/src/main/webapp/static/images/ste/8@1x.png

zy-asrs-wms/src/main/webapp/static/images/stop48.png

zy-asrs-wms/src/main/webapp/static/images/sxcar.png

zy-asrs-wms/src/main/webapp/static/images/wcs_logo.png

zy-asrs-wms/src/main/webapp/static/images/zy-logo.png

zy-asrs-wms/src/main/webapp/static/js/adjDetl/adjDetl.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/basBarcode/basBarcode.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/basDevp/basDevp.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/basLocSts/basLocSts.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/basWhs/basWhs.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/basWrkIotype/basWrkIotype.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/basWrkStatus/basWrkStatus.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/common.js
@@ -1,5 +1,12 @@
var baseUrl = "/wms";
// èµ‹å€¼
function setVal(el, val) {
    if (el.text() !== val){
        el.html(val);
    }
}
// è¯¦æƒ…窗口-高度
var detailHeight = '80%';
// è¯¦æƒ…窗口-宽度
@@ -10,11 +17,8 @@
    return typeof obj == "undefined" || obj == null || obj === "";
}
// let loadIndex = layer.msg('请求中...', {icon: 16, shade: 0.01, time: false});
//       layer.close(loadIndex);
// æ—¶é—´ ==>> å­—符串
function dateToStr(date, millisecond) {
function dateToStr(date) {
    var time = new Date(date);
    var y = time.getFullYear();
    var M = time.getMonth() + 1;
@@ -27,18 +31,7 @@
    m = m < 10 ? ("0" + m) : m;
    var s = time.getSeconds();
    s = s < 10 ? ("0" + s) : s;
    if (!millisecond) {
        return y + "-" + M + "-" + d + " " + h + ":" + m + ":" + s;
    } else {
        var p = time.getMilliseconds();
        if (p < 10) {
            p = "00" + p;
        }
        if (p <  100) {
            p = "0" + p;
        }
        return y + "-" + M + "-" + d + " " + h + ":" + m + ":" + s + "," + p;
    }
    return y + "-" + M + "-" + d + " " + h + ":" + m + ":" + s;
}
// å­—符串 ===>> æ—¶é—´
@@ -77,10 +70,7 @@
    }
    var param = (child?parent.window:window).location.href.split("?")[1];
    if (null != param) {
        var resourceId = getQueryVariable('resourceId')
        if (resourceId == false) {
            resourceId = param.split("=")[1];
        }
        var resourceId = param.split("=")[1];
        $.ajax({
            url: baseUrl+"/power/menu/"+resourceId+"/auth",
            headers: {'token': localStorage.getItem('token')},
@@ -93,14 +83,16 @@
                        (child?parent:window).$('.'+res.data[i].code).css("display", "inline-block");
                    }
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                    window.location.href = baseUrl;
                } else {
                    layer.msg(res.msg)
                }
            }
        });
    }
}
// http请求
@@ -117,24 +109,17 @@
                url: url,
                data: data,
                dataType: 'json',
                header: {'token': localStorage.getItem('token')},
                header: {'Content-Type': 'application/json'},
                timeout: 10000,
                cache: false,
                success: function (res) {
                    if (res.code === 200){
                        callback(res);
                    } else if (res.code === 403){
                        top.location.href = baseUrl+"/";
                    }  else {
                        layer.msg(res.msg);
                    }
                success: function (result) {
                    callback(result);
                },
                error: function (res, type) {
                }
            })
        },
        // é»˜è®¤è¡¨å•
        post: function (url, param, callback, type) {
            var headerType;
            if (type === 'json') {
@@ -155,9 +140,9 @@
                    if (res.code === 200){
                        callback(res);
                    } else if (res.code === 403){
                        top.location.href = baseUrl+"/";
                        parent.location.href = baseUrl+"/login";
                    }  else {
                        layer.msg(res.msg);
                        layer.msg(res.msg, {icon: 2});
                    }
                },
                error: function (res, type) {
@@ -166,107 +151,45 @@
            })
        },
    };
    "function" == typeof define && define.amd ? define(function () {
        return http
    }) : "object" == typeof module && module.exports ? module.exports = http : n.http = http
}(this);
/*************************************************************************************************************/
/********************************************** ç‰©æ–™ä¸šåŠ¡æŠ½è±¡ ***************************************************/
/*************************************************************************************************************/
function arrRemove(arr, key, val) {
    for(var i=arr.length-1; i>=0; i--){
        if(arr[i][key] === val){
            arr.splice(i,1);
        }
/**
 * èŽ·å–url键值对
 */
function getUrlVal(key) {
    var reg = new RegExp('(^|&)' + key + '=([^&]*)(&|$)', 'i');
    var r = window.location.search.substr(1).match(reg);
    if (r != null) {
        return unescape(r[2]);
    }
    return null;
}
var matCols = [
    {field: 'matnr', align: 'center',title: '商品编号', width: 180}
    // {field: 'id', align: 'center',title: 'ID'}
    // ,{field: 'uuid', align: 'center',title: '编号'}
    // ,{field: 'tagId$', align: 'center',title: '所属归类'}
    ,{field: 'maktx', align: 'center',title: '商品名称', width: 200}
    // ,{field: 'name', align: 'center',title: '别名'}
    ,{field: 'specs', align: 'center',title: '配置'}
    ,{field: 'model', align: 'center',title: '代码', hide: false}
    ,{field: 'color', align: 'center',title: '颜色', hide: true}
    ,{field: 'brand', align: 'center',title: '品牌', hide: true}
    ,{field: 'unit', align: 'center',title: '单位', hide: true}
    ,{field: 'price', align: 'center',title: '单价', hide: true}
    ,{field: 'sku', align: 'center',title: 'sku', hide: true}
    ,{field: 'units', align: 'center',title: '单位量', hide: true}
    ,{field: 'barcode', align: 'center',title: '条码', hide: true}
    ,{field: 'origin', align: 'center',title: '产地', hide: true}
    ,{field: 'manu', align: 'center',title: '厂家', hide: true}
    ,{field: 'manuDate', align: 'center',title: '生产日期', hide: true}
    ,{field: 'itemNum', align: 'center',title: '品项数', hide: true}
    ,{field: 'safeQty', align: 'center',title: '安全库存量', hide: true}
    ,{field: 'weight', align: 'center',title: '单箱净重', hide: false}
    ,{field: 'length', align: 'center',title: '单箱毛重', hide: false}
    ,{field: 'volume', align: 'center',title: '单箱体积', hide: false}
    ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: false}
    ,{field: 'supp', align: 'center',title: '供应商', hide: true}
    ,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true}
    ,{field: 'beBatch$', align: 'center',title: '是否批次', hide: true}
    ,{field: 'deadTime', align: 'center',title: '保质期', hide: true}
    ,{field: 'deadWarn', align: 'center',title: '预警天数', hide: true}
    ,{field: 'source$', align: 'center',title: '制购', hide: true}
    ,{field: 'check$', align: 'center',title: '要求检验', hide: true}
    ,{field: 'danger$', align: 'center',title: '危险品', hide: true}
    // ,{field: 'status$', align: 'center',title: '状态'}
    // ,{field: 'createBy$', align: 'center',title: '添加人员'}
    // ,{field: 'createTime$', align: 'center',title: '添加时间'}
    ,{field: 'updateBy$', align: 'center',title: '修改人员', hide: true}
    ,{field: 'updateTime$', align: 'center',title: '修改时间', hide: true}
    ,{field: 'memo', align: 'center',title: '备注', hide: true}
]
var detlCols = [
    {field: 'matnr', align: 'center',title: '商品编号', sort:true}
    ,{field: 'maktx', align: 'center',title: '商品名称', sort:true}
    ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false}
    ,{field: 'batch', align: 'center',title: '序列码', width: 300, sort:true}
    ,{field: 'anfme', align: 'center',title: '数量'}
    ,{field: 'zpallet', align: 'center',title: '托盘条码'}
    ,{field: 'specs', align: 'center',title: '配置'}
    ,{field: 'model', align: 'center',title: '代码', hide: false}
    ,{field: 'color', align: 'center',title: '颜色', hide: true}
    ,{field: 'brand', align: 'center',title: '品牌', hide: true}
    ,{field: 'unit', align: 'center',title: '单位', hide: true}
    ,{field: 'price', align: 'center',title: '单价', hide: true}
    ,{field: 'sku', align: 'center',title: 'sku', hide: true}
    ,{field: 'units', align: 'center',title: '单位量', hide: true}
    ,{field: 'barcode', align: 'center',title: '条码', hide: true}
    ,{field: 'origin', align: 'center',title: '产地', hide: true}
    ,{field: 'manu', align: 'center',title: '厂家', hide: true}
    ,{field: 'manuDate', align: 'center',title: '生产日期', hide: true}
    ,{field: 'itemNum', align: 'center',title: '品项数', hide: true}
    ,{field: 'safeQty', align: 'center',title: '安全库存量', hide: true}
    ,{field: 'weight', align: 'center',title: '单箱净重', hide: false}
    ,{field: 'length', align: 'center',title: '单箱毛重', hide: false}
    ,{field: 'volume', align: 'center',title: '单箱体积', hide: false}
    ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: false}
    ,{field: 'supp', align: 'center',title: '供应商', hide: true}
    ,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true}
    ,{field: 'beBatch$', align: 'center',title: '是否批次', hide: true}
    ,{field: 'deadTime', align: 'center',title: '保质期', hide: true}
    ,{field: 'deadWarn', align: 'center',title: '预警天数', hide: true}
    ,{field: 'source$', align: 'center',title: '制购', hide: true}
    ,{field: 'check$', align: 'center',title: '要求检验', hide: true}
    ,{field: 'danger$', align: 'center',title: '危险品', hide: true}
]
function getQueryVariable(variable)
{
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split("=");
        if(pair[0] == variable){return pair[1];}
    }
    return(false);
function getDateFormat(value){
    var date = new Date();// èŽ·å–å½“å‰æ—¶é—´
    date.setDate(date.getDate() + value);// è®¾ç½®å¤©æ•° -1 å¤©
    return date.Format("MM-dd");
}
/**
 * æ—¥æœŸæ ¼å¼åŒ–
 */
Date.prototype.Format = function (fmt) {
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}
zy-asrs-wms/src/main/webapp/static/js/config/config.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/console.js
zy-asrs-wms/src/main/webapp/static/js/console.map.js
zy-asrs-wms/src/main/webapp/static/js/cool.js
@@ -53,7 +53,7 @@
                }
                selectDom.style.display='block';
            } else if (res.code === 403){
                top.location.href = baseUrl+"/";
                window.location.href = baseUrl;
            } else {
                layer.msg(res.msg)
            }
@@ -106,14 +106,6 @@
    return str;
}
// è¡¨å•值清空
function clearFormVal(el) {
    $(':input', el)
        .val('')
        .removeAttr('checked')
        .removeAttr('selected');
}
var banMsg;
var tips;
// ä¸»é”®æ ¡éªŒ
@@ -134,7 +126,7 @@
                layer.close(tips);
                banMsg = null;
            } else if (res.code === 403) {
                top.location.href = baseUrl+"/";
                window.location.href = baseUrl;
            } else if (res.code === 407) {
                banMsg = res.data + "不可用";
                tips = layer.tips(
zy-asrs-wms/src/main/webapp/static/js/cstmr/cstmr.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/docType/docType.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/element.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/errorWrkMast/errorWrkMast.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/handWrkMast/handWrkMast.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/host/host.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/hostTable.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/item/item.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/jquery/jQuery.print.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/jquery/jquery.animsition.js
zy-asrs-wms/src/main/webapp/static/js/layer/layer.js
zy-asrs-wms/src/main/webapp/static/js/layer/mobile/layer.js
zy-asrs-wms/src/main/webapp/static/js/layer/mobile/need/layer.css
zy-asrs-wms/src/main/webapp/static/js/layer/theme/default/icon-ext.png

zy-asrs-wms/src/main/webapp/static/js/layer/theme/default/icon.png

zy-asrs-wms/src/main/webapp/static/js/layer/theme/default/layer.css
zy-asrs-wms/src/main/webapp/static/js/layer/theme/default/loading-0.gif

zy-asrs-wms/src/main/webapp/static/js/layer/theme/default/loading-1.gif

zy-asrs-wms/src/main/webapp/static/js/layer/theme/default/loading-2.gif

zy-asrs-wms/src/main/webapp/static/js/locDetl/locDetl.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/locDetlStatis/locDetlStatis.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/locDirection/locDirection.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/locMast/locMast.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/locRule/locRule.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/mat/mat.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/matCode/matCode.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/node/node.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/operateLog/operateLog.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/order/order.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/order/out.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/orderDetl/orderDetl.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/orderDetlLog/orderDetlLog.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/orderLog/orderLog.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/orderSettle/orderSettle.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/orderTable.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/pakStore/emptyIn.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/pakStore/emptyOut.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/pakStore/locCheckOut.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/pakStore/locMove.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/pakStore/pakStore.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/pakStore/stockAdjust.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/pakStore/stockOut.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/pakStore/stockOut2.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/pakStore/turnOver.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/particles.min.js
zy-asrs-wms/src/main/webapp/static/js/pixi-legacy.min.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/prior/prior.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/report/inOut.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/report/locMap.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/report/reportStockUse.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/report/stayTime.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/report/workCountIn.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/report/workCountOut.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/report/workIn.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/report/workOut.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/resource/resource.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/role/role.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/role/rolePower.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/rowLastno/rowLastno.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/safeSto/safeSto.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/staDesc/staDesc.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/stoMan/stoQue.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/tag/tag.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/tagTree.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/tools/anime.min.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/tools/layx.min.js
zy-asrs-wms/src/main/webapp/static/js/tools/main.min.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/user/user.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/userLogin/userLogin.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/vue.min.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/waitPakin/waitPakin.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/waitPakinLog/waitPakinLog.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/wrkDetl/wrkDetl.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/wrkDetlLog/wrkDetlLog.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/wrkLastno/wrkLastno.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/wrkMast/wrkMast.js
File was deleted
zy-asrs-wms/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layer/layer.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layer/mobile/layer.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layer/mobile/need/layer.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layer/theme/default/icon-ext.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/layer/theme/default/icon.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/layer/theme/default/layer.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layer/theme/default/loading-0.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layer/theme/default/loading-1.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layer/theme/default/loading-2.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layui/css/layui.css
@@ -1,23 +1,2 @@
/** layui-v2.5.8 MIT License By https://www.layui.com */
.layui-inline,img{display:inline-block;vertical-align:middle}h1,h2,h3,h4,h5,h6{font-weight:400}a,body{color:#333}.layui-edge,.layui-header,.layui-inline,.layui-main{position:relative}.layui-edge,hr{height:0;overflow:hidden}.layui-layout-body,.layui-side,.layui-side-scroll{overflow-x:hidden}.layui-edge,.layui-elip,hr{overflow:hidden}.layui-btn,.layui-edge,.layui-inline,img{vertical-align:middle}.layui-btn,.layui-disabled,.layui-icon,.layui-unselect{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}a:active,a:hover{outline:0}img{border:none}li{list-style:none}table{border-collapse:collapse;border-spacing:0}h4,h5,h6{font-size:100%}button,input,optgroup,option,select,textarea{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;outline:0}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}body{line-height:1.6;color:rgba(0,0,0,.85);font:14px Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif}hr{line-height:0;margin:10px 0;padding:0;border:none!important;border-bottom:1px solid #eee!important;clear:both;background:0 0}a{text-decoration:none}a:hover{color:#777}a cite{font-style:normal;*cursor:pointer}.layui-border-box,.layui-border-box *{box-sizing:border-box}.layui-box,.layui-box *{box-sizing:content-box}.layui-clear{clear:both;*zoom:1}.layui-clear:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-inline{*display:inline;*zoom:1}.layui-btn,.layui-btn-group,.layui-edge{display:inline-block}.layui-edge{width:0;border-width:6px;border-style:dashed;border-color:transparent}.layui-edge-top{top:-4px;border-bottom-color:#999;border-bottom-style:solid}.layui-edge-right{border-left-color:#999;border-left-style:solid}.layui-edge-bottom{top:2px;border-top-color:#999;border-top-style:solid}.layui-edge-left{border-right-color:#999;border-right-style:solid}.layui-elip{text-overflow:ellipsis;white-space:nowrap}.layui-disabled,.layui-disabled:hover{color:#d2d2d2!important;cursor:not-allowed!important}.layui-circle{border-radius:100%}.layui-show{display:block!important}.layui-hide{display:none!important}.layui-show-v{visibility:visible!important}.layui-hide-v{visibility:hidden!important}@font-face{font-family:layui-icon;src:url(../font/iconfont.eot?v=256);src:url(../font/iconfont.eot?v=256#iefix) format('embedded-opentype'),url(../font/iconfont.woff2?v=256) format('woff2'),url(../font/iconfont.woff?v=256) format('woff'),url(../font/iconfont.ttf?v=256) format('truetype'),url(../font/iconfont.svg?v=256#layui-icon) format('svg')}.layui-icon{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-icon-reply-fill:before{content:"\e611"}.layui-icon-set-fill:before{content:"\e614"}.layui-icon-menu-fill:before{content:"\e60f"}.layui-icon-search:before{content:"\e615"}.layui-icon-share:before{content:"\e641"}.layui-icon-set-sm:before{content:"\e620"}.layui-icon-engine:before{content:"\e628"}.layui-icon-close:before{content:"\1006"}.layui-icon-close-fill:before{content:"\1007"}.layui-icon-chart-screen:before{content:"\e629"}.layui-icon-star:before{content:"\e600"}.layui-icon-circle-dot:before{content:"\e617"}.layui-icon-chat:before{content:"\e606"}.layui-icon-release:before{content:"\e609"}.layui-icon-list:before{content:"\e60a"}.layui-icon-chart:before{content:"\e62c"}.layui-icon-ok-circle:before{content:"\1005"}.layui-icon-layim-theme:before{content:"\e61b"}.layui-icon-table:before{content:"\e62d"}.layui-icon-right:before{content:"\e602"}.layui-icon-left:before{content:"\e603"}.layui-icon-cart-simple:before{content:"\e698"}.layui-icon-face-cry:before{content:"\e69c"}.layui-icon-face-smile:before{content:"\e6af"}.layui-icon-survey:before{content:"\e6b2"}.layui-icon-tree:before{content:"\e62e"}.layui-icon-ie:before{content:"\e7bb"}.layui-icon-upload-circle:before{content:"\e62f"}.layui-icon-add-circle:before{content:"\e61f"}.layui-icon-download-circle:before{content:"\e601"}.layui-icon-templeate-1:before{content:"\e630"}.layui-icon-util:before{content:"\e631"}.layui-icon-face-surprised:before{content:"\e664"}.layui-icon-edit:before{content:"\e642"}.layui-icon-speaker:before{content:"\e645"}.layui-icon-down:before{content:"\e61a"}.layui-icon-file:before{content:"\e621"}.layui-icon-layouts:before{content:"\e632"}.layui-icon-rate-half:before{content:"\e6c9"}.layui-icon-add-circle-fine:before{content:"\e608"}.layui-icon-prev-circle:before{content:"\e633"}.layui-icon-read:before{content:"\e705"}.layui-icon-404:before{content:"\e61c"}.layui-icon-carousel:before{content:"\e634"}.layui-icon-help:before{content:"\e607"}.layui-icon-code-circle:before{content:"\e635"}.layui-icon-windows:before{content:"\e67f"}.layui-icon-water:before{content:"\e636"}.layui-icon-username:before{content:"\e66f"}.layui-icon-find-fill:before{content:"\e670"}.layui-icon-about:before{content:"\e60b"}.layui-icon-location:before{content:"\e715"}.layui-icon-up:before{content:"\e619"}.layui-icon-pause:before{content:"\e651"}.layui-icon-date:before{content:"\e637"}.layui-icon-layim-uploadfile:before{content:"\e61d"}.layui-icon-delete:before{content:"\e640"}.layui-icon-play:before{content:"\e652"}.layui-icon-top:before{content:"\e604"}.layui-icon-firefox:before{content:"\e686"}.layui-icon-friends:before{content:"\e612"}.layui-icon-refresh-3:before{content:"\e9aa"}.layui-icon-ok:before{content:"\e605"}.layui-icon-layer:before{content:"\e638"}.layui-icon-face-smile-fine:before{content:"\e60c"}.layui-icon-dollar:before{content:"\e659"}.layui-icon-group:before{content:"\e613"}.layui-icon-layim-download:before{content:"\e61e"}.layui-icon-picture-fine:before{content:"\e60d"}.layui-icon-link:before{content:"\e64c"}.layui-icon-diamond:before{content:"\e735"}.layui-icon-log:before{content:"\e60e"}.layui-icon-key:before{content:"\e683"}.layui-icon-rate-solid:before{content:"\e67a"}.layui-icon-fonts-del:before{content:"\e64f"}.layui-icon-unlink:before{content:"\e64d"}.layui-icon-fonts-clear:before{content:"\e639"}.layui-icon-triangle-r:before{content:"\e623"}.layui-icon-circle:before{content:"\e63f"}.layui-icon-radio:before{content:"\e643"}.layui-icon-align-center:before{content:"\e647"}.layui-icon-align-right:before{content:"\e648"}.layui-icon-align-left:before{content:"\e649"}.layui-icon-loading-1:before{content:"\e63e"}.layui-icon-return:before{content:"\e65c"}.layui-icon-fonts-strong:before{content:"\e62b"}.layui-icon-upload:before{content:"\e67c"}.layui-icon-dialogue:before{content:"\e63a"}.layui-icon-video:before{content:"\e6ed"}.layui-icon-headset:before{content:"\e6fc"}.layui-icon-cellphone-fine:before{content:"\e63b"}.layui-icon-add-1:before{content:"\e654"}.layui-icon-face-smile-b:before{content:"\e650"}.layui-icon-fonts-html:before{content:"\e64b"}.layui-icon-screen-full:before{content:"\e622"}.layui-icon-form:before{content:"\e63c"}.layui-icon-cart:before{content:"\e657"}.layui-icon-camera-fill:before{content:"\e65d"}.layui-icon-tabs:before{content:"\e62a"}.layui-icon-heart-fill:before{content:"\e68f"}.layui-icon-fonts-code:before{content:"\e64e"}.layui-icon-ios:before{content:"\e680"}.layui-icon-at:before{content:"\e687"}.layui-icon-fire:before{content:"\e756"}.layui-icon-set:before{content:"\e716"}.layui-icon-fonts-u:before{content:"\e646"}.layui-icon-triangle-d:before{content:"\e625"}.layui-icon-tips:before{content:"\e702"}.layui-icon-picture:before{content:"\e64a"}.layui-icon-more-vertical:before{content:"\e671"}.layui-icon-bluetooth:before{content:"\e689"}.layui-icon-flag:before{content:"\e66c"}.layui-icon-loading:before{content:"\e63d"}.layui-icon-fonts-i:before{content:"\e644"}.layui-icon-refresh-1:before{content:"\e666"}.layui-icon-rmb:before{content:"\e65e"}.layui-icon-addition:before{content:"\e624"}.layui-icon-home:before{content:"\e68e"}.layui-icon-time:before{content:"\e68d"}.layui-icon-user:before{content:"\e770"}.layui-icon-notice:before{content:"\e667"}.layui-icon-chrome:before{content:"\e68a"}.layui-icon-edge:before{content:"\e68b"}.layui-icon-login-weibo:before{content:"\e675"}.layui-icon-voice:before{content:"\e688"}.layui-icon-upload-drag:before{content:"\e681"}.layui-icon-login-qq:before{content:"\e676"}.layui-icon-snowflake:before{content:"\e6b1"}.layui-icon-heart:before{content:"\e68c"}.layui-icon-logout:before{content:"\e682"}.layui-icon-file-b:before{content:"\e655"}.layui-icon-template:before{content:"\e663"}.layui-icon-transfer:before{content:"\e691"}.layui-icon-auz:before{content:"\e672"}.layui-icon-console:before{content:"\e665"}.layui-icon-app:before{content:"\e653"}.layui-icon-prev:before{content:"\e65a"}.layui-icon-website:before{content:"\e7ae"}.layui-icon-next:before{content:"\e65b"}.layui-icon-component:before{content:"\e857"}.layui-icon-android:before{content:"\e684"}.layui-icon-more:before{content:"\e65f"}.layui-icon-login-wechat:before{content:"\e677"}.layui-icon-shrink-right:before{content:"\e668"}.layui-icon-spread-left:before{content:"\e66b"}.layui-icon-camera:before{content:"\e660"}.layui-icon-note:before{content:"\e66e"}.layui-icon-refresh:before{content:"\e669"}.layui-icon-female:before{content:"\e661"}.layui-icon-male:before{content:"\e662"}.layui-icon-screen-restore:before{content:"\e758"}.layui-icon-password:before{content:"\e673"}.layui-icon-senior:before{content:"\e674"}.layui-icon-theme:before{content:"\e66a"}.layui-icon-tread:before{content:"\e6c5"}.layui-icon-praise:before{content:"\e6c6"}.layui-icon-star-fill:before{content:"\e658"}.layui-icon-rate:before{content:"\e67b"}.layui-icon-template-1:before{content:"\e656"}.layui-icon-vercode:before{content:"\e679"}.layui-icon-service:before{content:"\e626"}.layui-icon-cellphone:before{content:"\e678"}.layui-icon-print:before{content:"\e66d"}.layui-icon-cols:before{content:"\e610"}.layui-icon-wifi:before{content:"\e7e0"}.layui-icon-export:before{content:"\e67d"}.layui-icon-rss:before{content:"\e808"}.layui-icon-slider:before{content:"\e714"}.layui-icon-email:before{content:"\e618"}.layui-icon-subtraction:before{content:"\e67e"}.layui-icon-mike:before{content:"\e6dc"}.layui-icon-light:before{content:"\e748"}.layui-icon-gift:before{content:"\e627"}.layui-icon-mute:before{content:"\e685"}.layui-icon-reduce-circle:before{content:"\e616"}.layui-icon-music:before{content:"\e690"}.layui-main{width:1140px;margin:0 auto}.layui-header{z-index:1000;height:60px}.layui-header a:hover{transition:all .5s;-webkit-transition:all .5s}.layui-side{position:fixed;left:0;top:0;bottom:0;z-index:999;width:200px}.layui-side-scroll{position:relative;width:220px;height:100%}.layui-body{position:relative;left:200px;right:0;top:0;bottom:0;z-index:900;width:auto;box-sizing:border-box}.layui-layout-admin .layui-header{position:fixed;top:0;left:0;right:0;background-color:#23262E}.layui-layout-admin .layui-side{top:60px;width:200px;overflow-x:hidden}.layui-layout-admin .layui-body{position:absolute;top:60px;padding-bottom:44px}.layui-layout-admin .layui-main{width:auto;margin:0 15px}.layui-layout-admin .layui-footer{position:fixed;left:200px;right:0;bottom:0;z-index:990;height:44px;line-height:44px;padding:0 15px;box-shadow:-1px 0 4px rgb(0 0 0 / 12%);background-color:#FAFAFA}.layui-layout-admin .layui-logo{position:absolute;left:0;top:0;width:200px;height:100%;line-height:60px;text-align:center;color:#009688;font-size:16px;box-shadow:0 1px 2px 0 rgb(0 0 0 / 15%)}.layui-layout-admin .layui-header .layui-nav{background:0 0}.layui-layout-left{position:absolute!important;left:200px;top:0}.layui-layout-right{position:absolute!important;right:0;top:0}.layui-container{position:relative;margin:0 auto;padding:0 15px;box-sizing:border-box}.layui-fluid{position:relative;margin:0 auto;padding:0 15px}.layui-row:after,.layui-row:before{content:"";display:block;clear:both}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9,.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9,.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9,.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{position:relative;display:block;box-sizing:border-box}.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{float:left}.layui-col-xs1{width:8.33333333%}.layui-col-xs2{width:16.66666667%}.layui-col-xs3{width:25%}.layui-col-xs4{width:33.33333333%}.layui-col-xs5{width:41.66666667%}.layui-col-xs6{width:50%}.layui-col-xs7{width:58.33333333%}.layui-col-xs8{width:66.66666667%}.layui-col-xs9{width:75%}.layui-col-xs10{width:83.33333333%}.layui-col-xs11{width:91.66666667%}.layui-col-xs12{width:100%}.layui-col-xs-offset1{margin-left:8.33333333%}.layui-col-xs-offset2{margin-left:16.66666667%}.layui-col-xs-offset3{margin-left:25%}.layui-col-xs-offset4{margin-left:33.33333333%}.layui-col-xs-offset5{margin-left:41.66666667%}.layui-col-xs-offset6{margin-left:50%}.layui-col-xs-offset7{margin-left:58.33333333%}.layui-col-xs-offset8{margin-left:66.66666667%}.layui-col-xs-offset9{margin-left:75%}.layui-col-xs-offset10{margin-left:83.33333333%}.layui-col-xs-offset11{margin-left:91.66666667%}.layui-col-xs-offset12{margin-left:100%}@media screen and (max-width:768px){.layui-hide-xs{display:none!important}.layui-show-xs-block{display:block!important}.layui-show-xs-inline{display:inline!important}.layui-show-xs-inline-block{display:inline-block!important}}@media screen and (min-width:768px){.layui-container{width:750px}.layui-hide-sm{display:none!important}.layui-show-sm-block{display:block!important}.layui-show-sm-inline{display:inline!important}.layui-show-sm-inline-block{display:inline-block!important}.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9{float:left}.layui-col-sm1{width:8.33333333%}.layui-col-sm2{width:16.66666667%}.layui-col-sm3{width:25%}.layui-col-sm4{width:33.33333333%}.layui-col-sm5{width:41.66666667%}.layui-col-sm6{width:50%}.layui-col-sm7{width:58.33333333%}.layui-col-sm8{width:66.66666667%}.layui-col-sm9{width:75%}.layui-col-sm10{width:83.33333333%}.layui-col-sm11{width:91.66666667%}.layui-col-sm12{width:100%}.layui-col-sm-offset1{margin-left:8.33333333%}.layui-col-sm-offset2{margin-left:16.66666667%}.layui-col-sm-offset3{margin-left:25%}.layui-col-sm-offset4{margin-left:33.33333333%}.layui-col-sm-offset5{margin-left:41.66666667%}.layui-col-sm-offset6{margin-left:50%}.layui-col-sm-offset7{margin-left:58.33333333%}.layui-col-sm-offset8{margin-left:66.66666667%}.layui-col-sm-offset9{margin-left:75%}.layui-col-sm-offset10{margin-left:83.33333333%}.layui-col-sm-offset11{margin-left:91.66666667%}.layui-col-sm-offset12{margin-left:100%}}@media screen and (min-width:992px){.layui-container{width:970px}.layui-hide-md{display:none!important}.layui-show-md-block{display:block!important}.layui-show-md-inline{display:inline!important}.layui-show-md-inline-block{display:inline-block!important}.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9{float:left}.layui-col-md1{width:8.33333333%}.layui-col-md2{width:16.66666667%}.layui-col-md3{width:25%}.layui-col-md4{width:33.33333333%}.layui-col-md5{width:41.66666667%}.layui-col-md6{width:50%}.layui-col-md7{width:58.33333333%}.layui-col-md8{width:66.66666667%}.layui-col-md9{width:75%}.layui-col-md10{width:83.33333333%}.layui-col-md11{width:91.66666667%}.layui-col-md12{width:100%}.layui-col-md-offset1{margin-left:8.33333333%}.layui-col-md-offset2{margin-left:16.66666667%}.layui-col-md-offset3{margin-left:25%}.layui-col-md-offset4{margin-left:33.33333333%}.layui-col-md-offset5{margin-left:41.66666667%}.layui-col-md-offset6{margin-left:50%}.layui-col-md-offset7{margin-left:58.33333333%}.layui-col-md-offset8{margin-left:66.66666667%}.layui-col-md-offset9{margin-left:75%}.layui-col-md-offset10{margin-left:83.33333333%}.layui-col-md-offset11{margin-left:91.66666667%}.layui-col-md-offset12{margin-left:100%}}@media screen and (min-width:1200px){.layui-container{width:1170px}.layui-hide-lg{display:none!important}.layui-show-lg-block{display:block!important}.layui-show-lg-inline{display:inline!important}.layui-show-lg-inline-block{display:inline-block!important}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9{float:left}.layui-col-lg1{width:8.33333333%}.layui-col-lg2{width:16.66666667%}.layui-col-lg3{width:25%}.layui-col-lg4{width:33.33333333%}.layui-col-lg5{width:41.66666667%}.layui-col-lg6{width:50%}.layui-col-lg7{width:58.33333333%}.layui-col-lg8{width:66.66666667%}.layui-col-lg9{width:75%}.layui-col-lg10{width:83.33333333%}.layui-col-lg11{width:91.66666667%}.layui-col-lg12{width:100%}.layui-col-lg-offset1{margin-left:8.33333333%}.layui-col-lg-offset2{margin-left:16.66666667%}.layui-col-lg-offset3{margin-left:25%}.layui-col-lg-offset4{margin-left:33.33333333%}.layui-col-lg-offset5{margin-left:41.66666667%}.layui-col-lg-offset6{margin-left:50%}.layui-col-lg-offset7{margin-left:58.33333333%}.layui-col-lg-offset8{margin-left:66.66666667%}.layui-col-lg-offset9{margin-left:75%}.layui-col-lg-offset10{margin-left:83.33333333%}.layui-col-lg-offset11{margin-left:91.66666667%}.layui-col-lg-offset12{margin-left:100%}}.layui-col-space1{margin:-.5px}.layui-col-space1>*{padding:.5px}.layui-col-space2{margin:-1px}.layui-col-space2>*{padding:1px}.layui-col-space4{margin:-2px}.layui-col-space4>*{padding:2px}.layui-col-space5{margin:-2.5px}.layui-col-space5>*{padding:2.5px}.layui-col-space6{margin:-3px}.layui-col-space6>*{padding:3px}.layui-col-space8{margin:-4px}.layui-col-space8>*{padding:4px}.layui-col-space10{margin:-5px}.layui-col-space10>*{padding:5px}.layui-col-space12{margin:-6px}.layui-col-space12>*{padding:6px}.layui-col-space14{margin:-7px}.layui-col-space14>*{padding:7px}.layui-col-space15{margin:-7.5px}.layui-col-space15>*{padding:7.5px}.layui-col-space16{margin:-8px}.layui-col-space16>*{padding:8px}.layui-col-space18{margin:-9px}.layui-col-space18>*{padding:9px}.layui-col-space20{margin:-10px}.layui-col-space20>*{padding:10px}.layui-col-space22{margin:-11px}.layui-col-space22>*{padding:11px}.layui-col-space24{margin:-12px}.layui-col-space24>*{padding:12px}.layui-col-space25{margin:-12.5px}.layui-col-space25>*{padding:12.5px}.layui-col-space26{margin:-13px}.layui-col-space26>*{padding:13px}.layui-col-space28{margin:-14px}.layui-col-space28>*{padding:14px}.layui-col-space30{margin:-15px}.layui-col-space30>*{padding:15px}.layui-btn,.layui-input,.layui-select,.layui-textarea,.layui-upload-button{outline:0;-webkit-appearance:none;transition:all .3s;-webkit-transition:all .3s;box-sizing:border-box}.layui-elem-quote{margin-bottom:10px;padding:15px;line-height:1.6;border-left:5px solid #5FB878;border-radius:0 2px 2px 0;background-color:#FAFAFA}.layui-quote-nm{border-style:solid;border-width:1px 1px 1px 5px;background:0 0}.layui-elem-field{margin-bottom:10px;padding:0;border-width:1px;border-style:solid}.layui-elem-field legend{margin-left:20px;padding:0 10px;font-size:20px;font-weight:300}.layui-field-title{margin:10px 0 20px;border-width:1px 0 0}.layui-field-box{padding:15px}.layui-field-title .layui-field-box{padding:10px 0}.layui-progress{position:relative;height:6px;border-radius:20px;background-color:#eee}.layui-progress-bar{position:absolute;left:0;top:0;width:0;max-width:100%;height:6px;border-radius:20px;text-align:right;background-color:#5FB878;transition:all .3s;-webkit-transition:all .3s}.layui-progress-big,.layui-progress-big .layui-progress-bar{height:18px;line-height:18px}.layui-progress-text{position:relative;top:-20px;line-height:18px;font-size:12px;color:#666}.layui-progress-big .layui-progress-text{position:static;padding:0 10px;color:#fff}.layui-collapse{border-width:1px;border-style:solid;border-radius:2px}.layui-colla-content,.layui-colla-item{border-top-width:1px;border-top-style:solid}.layui-colla-item:first-child{border-top:none}.layui-colla-title{position:relative;height:42px;line-height:42px;padding:0 15px 0 35px;color:#333;background-color:#FAFAFA;cursor:pointer;font-size:14px;overflow:hidden}.layui-colla-content{display:none;padding:10px 15px;line-height:1.6;color:#666}.layui-colla-icon{position:absolute;left:15px;top:0;font-size:14px}.layui-card-body,.layui-card-header,.layui-form-label,.layui-form-mid,.layui-form-select,.layui-input-block,.layui-input-inline,.layui-panel,.layui-textarea{position:relative}.layui-card{margin-bottom:15px;border-radius:2px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.layui-form-select dl,.layui-panel{box-shadow:1px 1px 4px rgb(0 0 0 / 8%)}.layui-card:last-child{margin-bottom:0}.layui-card-header{height:42px;line-height:42px;padding:0 15px;border-bottom:1px solid #f6f6f6;color:#333;border-radius:2px 2px 0 0;font-size:14px}.layui-card-body{padding:10px 15px;line-height:24px}.layui-card-body[pad15]{padding:15px}.layui-card-body[pad20]{padding:20px}.layui-card-body .layui-table{margin:5px 0}.layui-card .layui-tab{margin:0}.layui-panel{border-width:1px;border-style:solid;border-radius:2px;background-color:#fff;color:#666}.layui-bg-black,.layui-bg-blue,.layui-bg-cyan,.layui-bg-green,.layui-bg-orange,.layui-bg-red{color:#fff!important}.layui-panel-window{position:relative;padding:15px;border-radius:0;border-top:5px solid #eee;background-color:#fff}.layui-border,.layui-border-black,.layui-border-blue,.layui-border-cyan,.layui-border-green,.layui-border-orange,.layui-border-red{border-width:1px;border-style:solid}.layui-auxiliar-moving{position:fixed;left:0;right:0;top:0;bottom:0;width:100%;height:100%;background:0 0;z-index:9999999999}.layui-bg-red{background-color:#FF5722!important}.layui-bg-orange{background-color:#FFB800!important}.layui-bg-green{background-color:#009688!important}.layui-bg-cyan{background-color:#2F4056!important}.layui-bg-blue{background-color:#1E9FFF!important}.layui-bg-black{background-color:#393D49!important}.layui-bg-gray{background-color:#FAFAFA!important;color:#666!important}.layui-badge-rim,.layui-border,.layui-colla-content,.layui-colla-item,.layui-collapse,.layui-elem-field,.layui-form-pane .layui-form-item[pane],.layui-form-pane .layui-form-label,.layui-input,.layui-layedit,.layui-layedit-tool,.layui-panel,.layui-quote-nm,.layui-select,.layui-tab-bar,.layui-tab-card,.layui-tab-title,.layui-tab-title .layui-this:after,.layui-textarea{border-color:#eee}.layui-border{color:#666!important}.layui-border-red{border-color:#FF5722!important;color:#FF5722!important}.layui-border-orange{border-color:#FFB800!important;color:#FFB800!important}.layui-border-green{border-color:#009688!important;color:#009688!important}.layui-border-cyan{border-color:#2F4056!important;color:#2F4056!important}.layui-border-blue{border-color:#1E9FFF!important;color:#1E9FFF!important}.layui-border-black{border-color:#393D49!important;color:#393D49!important}.layui-timeline-item:before{background-color:#eee}.layui-text{line-height:1.6;font-size:14px;color:#666}.layui-text h1,.layui-text h2,.layui-text h3{font-weight:500;color:#333}.layui-text h1{font-size:30px}.layui-text h2{font-size:24px}.layui-text h3{font-size:18px}.layui-text a:not(.layui-btn){color:#01AAED}.layui-text a:not(.layui-btn):hover{text-decoration:underline}.layui-text ul{padding:5px 0 5px 15px}.layui-text ul li{margin-top:5px;list-style-type:disc}.layui-text em,.layui-word-aux{color:#999!important;padding-left:5px!important;padding-right:5px!important}.layui-text p{margin:10px 0}.layui-text p:first-child{margin-top:0}.layui-font-12{font-size:12px!important}.layui-font-14{font-size:14px!important}.layui-font-16{font-size:16px!important}.layui-font-18{font-size:18px!important}.layui-font-20{font-size:20px!important}.layui-font-red{color:#FF5722!important}.layui-font-orange{color:#FFB800!important}.layui-font-green{color:#009688!important}.layui-font-cyan{color:#2F4056!important}.layui-font-blue{color:#01AAED!important}.layui-font-black{color:#000!important}.layui-font-gray{color:#c2c2c2!important}.layui-btn{height:38px;line-height:38px;border:1px solid transparent;padding:0 18px;background-color:#009688;color:#fff;white-space:nowrap;text-align:center;font-size:14px;border-radius:2px;cursor:pointer}.layui-btn:hover{opacity:.8;filter:alpha(opacity=80);color:#fff}.layui-btn:active{opacity:1;filter:alpha(opacity=100)}.layui-btn+.layui-btn{margin-left:10px}.layui-btn-container{font-size:0}.layui-btn-container .layui-btn{margin-right:10px;margin-bottom:10px}.layui-btn-container .layui-btn+.layui-btn{margin-left:0}.layui-table .layui-btn-container .layui-btn{margin-bottom:9px}.layui-btn-radius{border-radius:100px}.layui-btn .layui-icon{padding:0 2px;vertical-align:middle\9;vertical-align:bottom}.layui-btn-primary{border-color:#d2d2d2;background:0 0;color:#666}.layui-btn-primary:hover{border-color:#009688;color:#333}.layui-btn-normal{background-color:#1E9FFF}.layui-btn-warm{background-color:#FFB800}.layui-btn-danger{background-color:#FF5722}.layui-btn-checked{background-color:#5FB878}.layui-btn-disabled,.layui-btn-disabled:active,.layui-btn-disabled:hover{border-color:#eee!important;background-color:#FBFBFB!important;color:#d2d2d2!important;cursor:not-allowed!important;opacity:1}.layui-btn-lg{height:44px;line-height:44px;padding:0 25px;font-size:16px}.layui-btn-sm{height:30px;line-height:30px;padding:0 10px;font-size:12px}.layui-btn-xs{height:22px;line-height:22px;padding:0 5px;font-size:12px}.layui-btn-xs i{font-size:12px!important}.layui-btn-group{vertical-align:middle;font-size:0}.layui-btn-group .layui-btn{margin-left:0!important;margin-right:0!important;border-left:1px solid rgba(255,255,255,.5);border-radius:0}.layui-btn-group .layui-btn-primary{border-left:none}.layui-btn-group .layui-btn-primary:hover{border-color:#d2d2d2;color:#009688}.layui-btn-group .layui-btn:first-child{border-left:none;border-radius:2px 0 0 2px}.layui-btn-group .layui-btn-primary:first-child{border-left:1px solid #d2d2d2}.layui-btn-group .layui-btn:last-child{border-radius:0 2px 2px 0}.layui-btn-group .layui-btn+.layui-btn{margin-left:0}.layui-btn-group+.layui-btn-group{margin-left:10px}.layui-btn-fluid{width:100%}.layui-input,.layui-select,.layui-textarea{height:38px;line-height:1.3;line-height:38px\9;border-width:1px;border-style:solid;background-color:#fff;color:rgba(0,0,0,.85);border-radius:2px}.layui-input::-webkit-input-placeholder,.layui-select::-webkit-input-placeholder,.layui-textarea::-webkit-input-placeholder{line-height:1.3}.layui-input,.layui-textarea{display:block;width:100%;padding-left:10px}.layui-input:hover,.layui-textarea:hover{border-color:#eee!important}.layui-input:focus,.layui-textarea:focus{border-color:#d2d2d2!important}.layui-textarea{min-height:100px;height:auto;line-height:20px;padding:6px 10px;resize:vertical}.layui-select{padding:0 10px}.layui-form input[type=checkbox],.layui-form input[type=radio],.layui-form select{display:none}.layui-form [lay-ignore]{display:initial}.layui-form-item{margin-bottom:15px;clear:both;*zoom:1}.layui-form-item:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-form-label{float:left;display:block;padding:9px 15px;width:80px;font-weight:400;line-height:20px;text-align:right}.layui-form-label-col{display:block;float:none;padding:9px 0;line-height:20px;text-align:left}.layui-form-item .layui-inline{margin-bottom:5px;margin-right:10px}.layui-input-block{margin-left:110px;min-height:36px}.layui-input-inline{display:inline-block;vertical-align:middle}.layui-form-item .layui-input-inline{float:left;width:190px;margin-right:10px}.layui-form-text .layui-input-inline{width:auto}.layui-form-mid{float:left;display:block;padding:9px 0!important;line-height:20px;margin-right:10px}.layui-form-danger+.layui-form-select .layui-input,.layui-form-danger:focus{border-color:#FF5722!important}.layui-form-select .layui-input{padding-right:30px;cursor:pointer}.layui-form-select .layui-edge{position:absolute;right:10px;top:50%;margin-top:-3px;cursor:pointer;border-width:6px;border-top-color:#c2c2c2;border-top-style:solid;transition:all .3s;-webkit-transition:all .3s}.layui-form-select dl{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #eee;max-height:300px;overflow-y:auto;background-color:#fff;border-radius:2px;box-sizing:border-box}.layui-form-select dl dd,.layui-form-select dl dt{padding:0 10px;line-height:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layui-form-select dl dt{font-size:12px;color:#999}.layui-form-select dl dd{cursor:pointer}.layui-form-select dl dd:hover{background-color:#F6F6F6;-webkit-transition:.5s all;transition:.5s all}.layui-form-select .layui-select-group dd{padding-left:20px}.layui-form-select dl dd.layui-select-tips{padding-left:10px!important;color:#999}.layui-form-select dl dd.layui-this{background-color:#5FB878;color:#fff}.layui-form-checkbox,.layui-form-select dl dd.layui-disabled{background-color:#fff}.layui-form-selected dl{display:block}.layui-form-checkbox,.layui-form-checkbox *,.layui-form-switch{display:inline-block;vertical-align:middle}.layui-form-selected .layui-edge{margin-top:-9px;-webkit-transform:rotate(180deg);transform:rotate(180deg);margin-top:-3px\9}:root .layui-form-selected .layui-edge{margin-top:-9px\0/IE9}.layui-form-selectup dl{top:auto;bottom:42px}.layui-select-none{margin:5px 0;text-align:center;color:#999}.layui-select-disabled .layui-disabled{border-color:#eee!important}.layui-select-disabled .layui-edge{border-top-color:#d2d2d2}.layui-form-checkbox{position:relative;height:30px;line-height:30px;margin-right:10px;padding-right:30px;cursor:pointer;font-size:0;-webkit-transition:.1s linear;transition:.1s linear;box-sizing:border-box}.layui-form-checkbox span{padding:0 10px;height:100%;font-size:14px;border-radius:2px 0 0 2px;background-color:#d2d2d2;color:#fff;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.layui-form-checkbox:hover span{background-color:#c2c2c2}.layui-form-checkbox i{position:absolute;right:0;top:0;width:30px;height:28px;border:1px solid #d2d2d2;border-left:none;border-radius:0 2px 2px 0;color:#fff;font-size:20px;text-align:center}.layui-form-checkbox:hover i{border-color:#c2c2c2;color:#c2c2c2}.layui-form-checked,.layui-form-checked:hover{border-color:#5FB878}.layui-form-checked span,.layui-form-checked:hover span{background-color:#5FB878}.layui-form-checked i,.layui-form-checked:hover i{color:#5FB878}.layui-form-item .layui-form-checkbox{margin-top:4px}.layui-form-checkbox[lay-skin=primary]{height:auto!important;line-height:normal!important;min-width:18px;min-height:18px;border:none!important;margin-right:0;padding-left:28px;padding-right:0;background:0 0}.layui-form-checkbox[lay-skin=primary] span{padding-left:0;padding-right:15px;line-height:18px;background:0 0;color:#666}.layui-form-checkbox[lay-skin=primary] i{right:auto;left:0;width:16px;height:16px;line-height:16px;border:1px solid #d2d2d2;font-size:12px;border-radius:2px;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-checkbox[lay-skin=primary]:hover i{border-color:#5FB878;color:#fff}.layui-form-checked[lay-skin=primary] i{border-color:#5FB878!important;background-color:#5FB878;color:#fff}.layui-checkbox-disabled[lay-skin=primary] span{background:0 0!important;color:#c2c2c2!important}.layui-checkbox-disabled[lay-skin=primary]:hover i{border-color:#d2d2d2}.layui-form-item .layui-form-checkbox[lay-skin=primary]{margin-top:10px}.layui-form-switch{position:relative;height:22px;line-height:22px;min-width:35px;padding:0 5px;margin-top:8px;border:1px solid #d2d2d2;border-radius:20px;cursor:pointer;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch i{position:absolute;left:5px;top:3px;width:16px;height:16px;border-radius:20px;background-color:#d2d2d2;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch em{position:relative;top:0;width:25px;margin-left:21px;padding:0!important;text-align:center!important;color:#999!important;font-style:normal!important;font-size:12px}.layui-form-onswitch{border-color:#5FB878;background-color:#5FB878}.layui-checkbox-disabled,.layui-checkbox-disabled i{border-color:#eee!important}.layui-form-onswitch i{left:100%;margin-left:-21px;background-color:#fff}.layui-form-onswitch em{margin-left:5px;margin-right:21px;color:#fff!important}.layui-checkbox-disabled span{background-color:#eee!important}.layui-checkbox-disabled em{color:#d2d2d2!important}.layui-checkbox-disabled:hover i{color:#fff!important}[lay-radio]{display:none}.layui-form-radio,.layui-form-radio *{display:inline-block;vertical-align:middle}.layui-form-radio{line-height:28px;margin:6px 10px 0 0;padding-right:10px;cursor:pointer;font-size:0}.layui-form-radio *{font-size:14px}.layui-form-radio>i{margin-right:8px;font-size:22px;color:#c2c2c2}.layui-form-radio:hover *,.layui-form-radioed,.layui-form-radioed>i{color:#5FB878}.layui-radio-disabled>i{color:#eee!important}.layui-radio-disabled *{color:#c2c2c2!important}.layui-form-pane .layui-form-label{width:110px;padding:8px 15px;height:38px;line-height:20px;border-width:1px;border-style:solid;border-radius:2px 0 0 2px;text-align:center;background-color:#FAFAFA;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box}.layui-form-pane .layui-input-inline{margin-left:-1px}.layui-form-pane .layui-input-block{margin-left:110px;left:-1px}.layui-form-pane .layui-input{border-radius:0 2px 2px 0}.layui-form-pane .layui-form-text .layui-form-label{float:none;width:100%;border-radius:2px;box-sizing:border-box;text-align:left}.layui-form-pane .layui-form-text .layui-input-inline{display:block;margin:0;top:-1px;clear:both}.layui-form-pane .layui-form-text .layui-input-block{margin:0;left:0;top:-1px}.layui-form-pane .layui-form-text .layui-textarea{min-height:100px;border-radius:0 0 2px 2px}.layui-form-pane .layui-form-checkbox{margin:4px 0 4px 10px}.layui-form-pane .layui-form-radio,.layui-form-pane .layui-form-switch{margin-top:6px;margin-left:10px}.layui-form-pane .layui-form-item[pane]{position:relative;border-width:1px;border-style:solid}.layui-form-pane .layui-form-item[pane] .layui-form-label{position:absolute;left:0;top:0;height:100%;border-width:0 1px 0 0}.layui-form-pane .layui-form-item[pane] .layui-input-inline{margin-left:110px}@media screen and (max-width:450px){.layui-form-item .layui-form-label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-form-item .layui-inline{display:block;margin-right:0;margin-bottom:20px;clear:both}.layui-form-item .layui-inline:after{content:'\20';clear:both;display:block;height:0}.layui-form-item .layui-input-inline{display:block;float:none;left:-3px;width:auto!important;margin:0 0 10px 112px}.layui-form-item .layui-input-inline+.layui-form-mid{margin-left:110px;top:-5px;padding:0}.layui-form-item .layui-form-checkbox{margin-right:5px;margin-bottom:5px}}.layui-layedit{border-width:1px;border-style:solid;border-radius:2px}.layui-layedit-tool{padding:3px 5px;border-bottom-width:1px;border-bottom-style:solid;font-size:0}.layedit-tool-fixed{position:fixed;top:0;border-top:1px solid #eee}.layui-layedit-tool .layedit-tool-mid,.layui-layedit-tool .layui-icon{display:inline-block;vertical-align:middle;text-align:center;font-size:14px}.layui-layedit-tool .layui-icon{position:relative;width:32px;height:30px;line-height:30px;margin:3px 5px;color:#777;cursor:pointer;border-radius:2px}.layui-layedit-tool .layui-icon:hover{color:#393D49}.layui-layedit-tool .layui-icon:active{color:#000}.layui-layedit-tool .layedit-tool-active{background-color:#eee;color:#000}.layui-layedit-tool .layui-disabled,.layui-layedit-tool .layui-disabled:hover{color:#d2d2d2;cursor:not-allowed}.layui-layedit-tool .layedit-tool-mid{width:1px;height:18px;margin:0 10px;background-color:#d2d2d2}.layedit-tool-html{width:50px!important;font-size:30px!important}.layedit-tool-b,.layedit-tool-code,.layedit-tool-help{font-size:16px!important}.layedit-tool-d,.layedit-tool-face,.layedit-tool-image,.layedit-tool-unlink{font-size:18px!important}.layedit-tool-image input{position:absolute;font-size:0;left:0;top:0;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-layedit-iframe iframe{display:block;width:100%}#LAY_layedit_code{overflow:hidden}.layui-laypage{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;margin:10px 0;font-size:0}.layui-laypage>a:first-child,.layui-laypage>a:first-child em{border-radius:2px 0 0 2px}.layui-laypage>a:last-child,.layui-laypage>a:last-child em{border-radius:0 2px 2px 0}.layui-laypage>:first-child{margin-left:0!important}.layui-laypage>:last-child{margin-right:0!important}.layui-laypage a,.layui-laypage button,.layui-laypage input,.layui-laypage select,.layui-laypage span{border:1px solid #eee}.layui-laypage a,.layui-laypage span{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding:0 15px;height:28px;line-height:28px;margin:0 -1px 5px 0;background-color:#fff;color:#333;font-size:12px}.layui-flow-more a *,.layui-laypage input,.layui-table-view select[lay-ignore]{display:inline-block}.layui-laypage a:hover{color:#009688}.layui-laypage em{font-style:normal}.layui-laypage .layui-laypage-spr{color:#999;font-weight:700}.layui-laypage a{text-decoration:none}.layui-laypage .layui-laypage-curr{position:relative}.layui-laypage .layui-laypage-curr em{position:relative;color:#fff}.layui-laypage .layui-laypage-curr .layui-laypage-em{position:absolute;left:-1px;top:-1px;padding:1px;width:100%;height:100%;background-color:#009688}.layui-laypage-em{border-radius:2px}.layui-laypage-next em,.layui-laypage-prev em{font-family:Sim sun;font-size:16px}.layui-laypage .layui-laypage-count,.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh,.layui-laypage .layui-laypage-skip{margin-left:10px;margin-right:10px;padding:0;border:none}.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh{vertical-align:top}.layui-laypage .layui-laypage-refresh i{font-size:18px;cursor:pointer}.layui-laypage select{height:22px;padding:3px;border-radius:2px;cursor:pointer}.layui-laypage .layui-laypage-skip{height:30px;line-height:30px;color:#999}.layui-laypage button,.layui-laypage input{height:30px;line-height:30px;border-radius:2px;vertical-align:top;background-color:#fff;box-sizing:border-box}.layui-laypage input{width:40px;margin:0 10px;padding:0 3px;text-align:center}.layui-laypage input:focus,.layui-laypage select:focus{border-color:#009688!important}.layui-laypage button{margin-left:10px;padding:0 10px;cursor:pointer}.layui-table,.layui-table-view{margin:10px 0}.layui-flow-more{margin:10px 0;text-align:center;color:#999;font-size:14px}.layui-flow-more a{height:32px;line-height:32px}.layui-flow-more a *{vertical-align:top}.layui-flow-more a cite{padding:0 20px;border-radius:3px;background-color:#eee;color:#333;font-style:normal}.layui-flow-more a cite:hover{opacity:.8}.layui-flow-more a i{font-size:30px;color:#737383}.layui-table{width:100%;background-color:#fff;color:#666}.layui-table tr{transition:all .3s;-webkit-transition:all .3s}.layui-table th{text-align:left;font-weight:400}.layui-table tbody tr:hover,.layui-table thead tr,.layui-table-click,.layui-table-header,.layui-table-hover,.layui-table-mend,.layui-table-patch,.layui-table-tool,.layui-table-total,.layui-table-total tr,.layui-table[lay-even] tr:nth-child(even){background-color:#FAFAFA}.layui-table td,.layui-table th,.layui-table-col-set,.layui-table-fixed-r,.layui-table-grid-down,.layui-table-header,.layui-table-page,.layui-table-tips-main,.layui-table-tool,.layui-table-total,.layui-table-view,.layui-table[lay-skin=line],.layui-table[lay-skin=row]{border-width:1px;border-style:solid;border-color:#eee}.layui-table td,.layui-table th{position:relative;padding:9px 15px;min-height:20px;line-height:20px;font-size:14px}.layui-table[lay-skin=line] td,.layui-table[lay-skin=line] th{border-width:0 0 1px}.layui-table[lay-skin=row] td,.layui-table[lay-skin=row] th{border-width:0 1px 0 0}.layui-table[lay-skin=nob] td,.layui-table[lay-skin=nob] th{border:none}.layui-table img{max-width:100px}.layui-table[lay-size=lg] td,.layui-table[lay-size=lg] th{padding:15px 30px}.layui-table-view .layui-table[lay-size=lg] .layui-table-cell{height:40px;line-height:40px}.layui-table[lay-size=sm] td,.layui-table[lay-size=sm] th{font-size:12px;padding:5px 10px}.layui-table-view .layui-table[lay-size=sm] .layui-table-cell{height:20px;line-height:20px}.layui-table[lay-data]{display:none}.layui-table-box{position:relative;overflow:hidden}.layui-table-view .layui-table{position:relative;width:auto;margin:0}.layui-table-view .layui-table[lay-skin=line]{border-width:0 1px 0 0}.layui-table-view .layui-table[lay-skin=row]{border-width:0 0 1px}.layui-table-view .layui-table td,.layui-table-view .layui-table th{padding:5px 0;border-top:none;border-left:none}.layui-table-view .layui-table th.layui-unselect .layui-table-cell span{cursor:pointer}.layui-table-view .layui-table td{cursor:default}.layui-table-view .layui-table td[data-edit=text]{cursor:text}.layui-table-view .layui-form-checkbox[lay-skin=primary] i{width:18px;height:18px}.layui-table-view .layui-form-radio{line-height:0;padding:0}.layui-table-view .layui-form-radio>i{margin:0;font-size:20px}.layui-table-init{position:absolute;left:0;top:0;width:100%;height:100%;text-align:center;z-index:110}.layui-table-init .layui-icon{position:absolute;left:50%;top:50%;margin:-15px 0 0 -15px;font-size:30px;color:#c2c2c2}.layui-table-header{border-width:0 0 1px;overflow:hidden}.layui-table-header .layui-table{margin-bottom:-1px}.layui-table-tool .layui-inline[lay-event]{position:relative;width:26px;height:26px;padding:5px;line-height:16px;margin-right:10px;text-align:center;color:#333;border:1px solid #ccc;cursor:pointer;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool .layui-inline[lay-event]:hover{border:1px solid #999}.layui-table-tool-temp{padding-right:120px}.layui-table-tool-self{position:absolute;right:17px;top:10px}.layui-table-tool .layui-table-tool-self .layui-inline[lay-event]{margin:0 0 0 10px}.layui-table-tool-panel{position:absolute;top:29px;left:-1px;padding:5px 0;min-width:150px;min-height:40px;border:1px solid #d2d2d2;text-align:left;overflow-y:auto;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-table-cell,.layui-table-tool-panel li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layui-table-tool-panel li{padding:0 10px;line-height:30px;-webkit-transition:.5s all;transition:.5s all}.layui-menu li,.layui-menu-body-title a:hover,.layui-menu-body-title>.layui-icon:hover{transition:all .3s}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary]{width:100%;padding-left:28px}.layui-table-tool-panel li:hover{background-color:#F6F6F6}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] i{position:absolute;left:0;top:0}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] span{padding:0}.layui-table-tool .layui-table-tool-self .layui-table-tool-panel{left:auto;right:-1px}.layui-table-col-set{position:absolute;right:0;top:0;width:20px;height:100%;border-width:0 0 0 1px;background-color:#fff}.layui-table-sort{width:10px;height:20px;margin-left:5px;cursor:pointer!important}.layui-table-sort .layui-edge{position:absolute;left:5px;border-width:5px}.layui-table-sort .layui-table-sort-asc{top:3px;border-top:none;border-bottom-style:solid;border-bottom-color:#b2b2b2}.layui-table-sort .layui-table-sort-asc:hover{border-bottom-color:#666}.layui-table-sort .layui-table-sort-desc{bottom:5px;border-bottom:none;border-top-style:solid;border-top-color:#b2b2b2}.layui-table-sort .layui-table-sort-desc:hover{border-top-color:#666}.layui-table-sort[lay-sort=asc] .layui-table-sort-asc{border-bottom-color:#000}.layui-table-sort[lay-sort=desc] .layui-table-sort-desc{border-top-color:#000}.layui-table-cell{height:28px;line-height:28px;padding:0 15px;position:relative;box-sizing:border-box}.layui-table-cell .layui-form-checkbox[lay-skin=primary]{top:-1px;padding:0}.layui-table-cell .layui-table-link{color:#01AAED}.laytable-cell-checkbox,.laytable-cell-numbers,.laytable-cell-radio,.laytable-cell-space{padding:0;text-align:center}.layui-table-body{position:relative;overflow:auto;margin-right:-1px;margin-bottom:-1px}.layui-table-body .layui-none{line-height:26px;padding:30px 15px;text-align:center;color:#999}.layui-table-fixed{position:absolute;left:0;top:0;z-index:101}.layui-table-fixed .layui-table-body{overflow:hidden}.layui-table-fixed-l{box-shadow:1px 0 8px rgba(0,0,0,.08)}.layui-table-fixed-r{left:auto;right:-1px;border-width:0 0 0 1px;box-shadow:-1px 0 8px rgba(0,0,0,.08)}.layui-table-fixed-r .layui-table-header{position:relative;overflow:visible}.layui-table-mend{position:absolute;right:-49px;top:0;height:100%;width:50px}.layui-table-tool{position:relative;z-index:890;width:100%;min-height:50px;line-height:30px;padding:10px 15px;border-width:0 0 1px}.layui-table-tool .layui-btn-container{margin-bottom:-10px}.layui-table-page,.layui-table-total{border-width:1px 0 0;margin-bottom:-1px;overflow:hidden}.layui-table-page{position:relative;width:100%;padding:7px 7px 0;height:41px;font-size:12px;white-space:nowrap}.layui-table-page>div{height:26px}.layui-table-page .layui-laypage{margin:0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span{height:26px;line-height:26px;margin-bottom:10px;border:none;background:0 0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span.layui-laypage-curr{padding:0 12px}.layui-table-page .layui-laypage span{margin-left:0;padding:0}.layui-table-page .layui-laypage .layui-laypage-prev{margin-left:-7px!important}.layui-table-page .layui-laypage .layui-laypage-curr .layui-laypage-em{left:0;top:0;padding:0}.layui-table-page .layui-laypage button,.layui-table-page .layui-laypage input{height:26px;line-height:26px}.layui-table-page .layui-laypage input{width:40px}.layui-table-page .layui-laypage button{padding:0 10px}.layui-table-page select{height:18px}.layui-table-patch .layui-table-cell{padding:0;width:30px}.layui-table-edit{position:absolute;left:0;top:0;width:100%;height:100%;padding:0 14px 1px;border-radius:0;box-shadow:1px 1px 20px rgba(0,0,0,.15)}.layui-table-edit:focus{border-color:#5FB878!important}select.layui-table-edit{padding:0 0 0 10px;border-color:#d2d2d2}.layui-table-view .layui-form-checkbox,.layui-table-view .layui-form-radio,.layui-table-view .layui-form-switch{top:0;margin:0;box-sizing:content-box}.layui-colorpicker-alpha-slider,.layui-colorpicker-side-slider,.layui-menu,.layui-menu *,.layui-nav{box-sizing:border-box}.layui-table-view .layui-form-checkbox{top:-1px;height:26px;line-height:26px}.layui-table-view .layui-form-checkbox i{height:26px}.layui-table-grid .layui-table-cell{overflow:visible}.layui-table-grid-down{position:absolute;top:0;right:0;width:26px;height:100%;padding:5px 0;border-width:0 0 0 1px;text-align:center;background-color:#fff;color:#999;cursor:pointer}.layui-table-grid-down .layui-icon{position:absolute;top:50%;left:50%;margin:-8px 0 0 -8px}.layui-table-grid-down:hover{background-color:#fbfbfb}body .layui-table-tips .layui-layer-content{background:0 0;padding:0;box-shadow:0 1px 6px rgba(0,0,0,.12)}.layui-table-tips-main{margin:-44px 0 0 -1px;max-height:150px;padding:8px 15px;font-size:14px;overflow-y:scroll;background-color:#fff;color:#666}.layui-table-tips-c{position:absolute;right:-3px;top:-13px;width:20px;height:20px;padding:3px;cursor:pointer;background-color:#666;border-radius:50%;color:#fff}.layui-table-tips-c:hover{background-color:#777}.layui-table-tips-c:before{position:relative;right:-2px}.layui-upload-file{display:none!important;opacity:.01;filter:Alpha(opacity=1)}.layui-upload-drag,.layui-upload-form,.layui-upload-wrap{display:inline-block}.layui-upload-list{margin:10px 0}.layui-upload-choose{max-width:200px;padding:0 10px;color:#999;font-size:14px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-upload-drag{position:relative;padding:30px;border:1px dashed #e2e2e2;background-color:#fff;text-align:center;cursor:pointer;color:#999}.layui-upload-drag .layui-icon{font-size:50px;color:#009688}.layui-upload-drag[lay-over]{border-color:#009688}.layui-upload-iframe{position:absolute;width:0;height:0;border:0;visibility:hidden}.layui-upload-wrap{position:relative;vertical-align:middle}.layui-upload-wrap .layui-upload-file{display:block!important;position:absolute;left:0;top:0;z-index:10;font-size:100px;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-btn-container .layui-upload-choose{padding-left:0}.layui-menu{position:relative;margin:5px 0;background-color:#fff}.layui-menu li,.layui-menu-body-title a{padding:5px 15px}.layui-menu li{position:relative;margin:1px 0;width:calc(100% + 1px);line-height:26px;color:rgba(0,0,0,.8);font-size:14px;white-space:nowrap;cursor:pointer}.layui-menu li:hover{background-color:#F6F6F6}.layui-menu-item-parent:hover>.layui-menu-body-panel{display:block;animation-name:layui-fadein;animation-duration:.3s;animation-fill-mode:both;animation-delay:.2s}.layui-menu-item-group .layui-menu-body-title,.layui-menu-item-parent .layui-menu-body-title{padding-right:25px}.layui-menu .layui-menu-item-divider:hover,.layui-menu .layui-menu-item-group:hover,.layui-menu .layui-menu-item-none:hover{background:0 0;cursor:default}.layui-menu .layui-menu-item-group>ul{margin:5px 0 -5px}.layui-menu .layui-menu-item-group>.layui-menu-body-title{color:rgba(0,0,0,.35);user-select:none}.layui-menu .layui-menu-item-none{color:rgba(0,0,0,.35);cursor:default;text-align:center}.layui-menu .layui-menu-item-divider{margin:5px 0;padding:0;height:0;line-height:0;border-bottom:1px solid #eee;overflow:hidden}.layui-menu .layui-menu-item-down:hover,.layui-menu .layui-menu-item-up:hover{cursor:pointer}.layui-menu .layui-menu-item-up>.layui-menu-body-title{color:rgba(0,0,0,.8)}.layui-menu .layui-menu-item-up>ul{visibility:hidden;height:0;overflow:hidden}.layui-menu .layui-menu-item-down:hover>.layui-menu-body-title>.layui-icon,.layui-menu .layui-menu-item-up>.layui-menu-body-title:hover>.layui-icon{color:rgba(0,0,0,1)}.layui-menu .layui-menu-item-down>ul{visibility:visible;height:auto}.layui-breadcrumb,.layui-tree-btnGroup{visibility:hidden}.layui-menu .layui-menu-item-checked,.layui-menu .layui-menu-item-checked2{background-color:#F6F6F6!important;color:#5FB878}.layui-menu .layui-menu-item-checked a,.layui-menu .layui-menu-item-checked2 a{color:#5FB878}.layui-menu .layui-menu-item-checked:after{position:absolute;right:0;top:0;bottom:0;border-right:3px solid #5FB878;content:""}.layui-menu-body-title{position:relative;overflow:hidden;text-overflow:ellipsis}.layui-menu-body-title a{display:block;margin:-5px -15px;color:rgba(0,0,0,.8)}.layui-menu-body-title>.layui-icon{position:absolute;right:0;top:0;font-size:14px}.layui-menu-body-title>.layui-icon-right{right:-1px}.layui-menu-body-panel{display:none;position:absolute;top:-7px;left:100%;z-index:1000;margin-left:13px;padding:5px 0}.layui-menu-body-panel:before{content:"";position:absolute;width:20px;left:-16px;top:0;bottom:0}.layui-menu-body-panel-left{left:auto;right:100%;margin:0 13px}.layui-menu-body-panel-left:before{left:auto;right:-16px}.layui-menu-lg li{line-height:32px}.layui-menu-lg .layui-menu-body-title a:hover,.layui-menu-lg li:hover{background:0 0;color:#5FB878}.layui-menu-lg li .layui-menu-body-panel{margin-left:14px}.layui-menu-lg li .layui-menu-body-panel-left{margin:0 15px}.layui-dropdown{position:absolute;left:-999999px;top:-999999px;z-index:66666666;margin:5px 0;min-width:100px}.layui-dropdown:before{content:"";position:absolute;width:100%;height:6px;left:0;top:-6px}.layui-nav{position:relative;padding:0 20px;background-color:#393D49;color:#fff;border-radius:2px;font-size:0}.layui-nav *{font-size:14px}.layui-nav .layui-nav-item{position:relative;display:inline-block;*display:inline;*zoom:1;vertical-align:middle;line-height:60px}.layui-nav .layui-nav-item a{display:block;padding:0 20px;color:#fff;color:rgba(255,255,255,.7);transition:all .3s;-webkit-transition:all .3s}.layui-nav .layui-this:after,.layui-nav-bar{content:"";position:absolute;left:0;top:0;width:0;height:5px;background-color:#5FB878;transition:all .2s;-webkit-transition:all .2s;pointer-events:none}.layui-nav-bar{z-index:1000}.layui-nav[lay-bar=disabled] .layui-nav-bar{display:none}.layui-nav .layui-nav-item a:hover,.layui-nav .layui-this a{color:#fff}.layui-nav .layui-this:after{top:auto;bottom:0;width:100%}.layui-nav-img{width:30px;height:30px;margin-right:10px;border-radius:50%}.layui-nav .layui-nav-more{position:absolute;top:0;right:3px;left:auto!important;margin-top:0;font-size:12px;cursor:pointer;transition:all .2s;-webkit-transition:all .2s}.layui-nav .layui-nav-mored,.layui-nav-itemed>a .layui-nav-more{transform:rotate(180deg)}.layui-nav-child{display:none;position:absolute;left:0;top:65px;min-width:100%;line-height:36px;padding:5px 0;box-shadow:0 2px 4px rgba(0,0,0,.12);border:1px solid #eee;background-color:#fff;z-index:100;border-radius:2px;white-space:nowrap}.layui-nav .layui-nav-child a{color:#666;color:rgba(0,0,0,.8)}.layui-nav .layui-nav-child a:hover{background-color:#F6F6F6;color:rgba(0,0,0,.8)}.layui-nav-child dd{margin:1px 0;position:relative}.layui-nav-child dd.layui-this{background-color:#F6F6F6;color:#000}.layui-nav-child dd.layui-this:after{display:none}.layui-nav-child-r{left:auto;right:0}.layui-nav-child-c{text-align:center}.layui-nav-tree{width:200px;padding:0}.layui-nav-tree .layui-nav-item{display:block;width:100%;line-height:40px}.layui-nav-tree .layui-nav-item a{position:relative;height:40px;line-height:40px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-nav-tree .layui-nav-item>a{padding-top:5px;padding-bottom:5px}.layui-nav-tree .layui-nav-more{right:15px}.layui-nav-tree .layui-nav-item>a .layui-nav-more{padding:5px 0}.layui-nav-tree .layui-nav-bar{width:5px;height:0;background-color:#009688}.layui-side .layui-nav-tree .layui-nav-bar{width:2px}.layui-nav-tree .layui-nav-child dd.layui-this,.layui-nav-tree .layui-nav-child dd.layui-this a,.layui-nav-tree .layui-this,.layui-nav-tree .layui-this>a,.layui-nav-tree .layui-this>a:hover{background-color:#009688;color:#fff}.layui-nav-tree .layui-this:after{display:none}.layui-nav-itemed>a,.layui-nav-tree .layui-nav-title a,.layui-nav-tree .layui-nav-title a:hover{color:#fff!important}.layui-nav-tree .layui-nav-child{position:relative;z-index:0;top:0;border:none;box-shadow:none}.layui-nav-tree .layui-nav-child dd{margin:0}.layui-nav-tree .layui-nav-child a{color:#fff;color:rgba(255,255,255,.7)}.layui-nav-tree .layui-nav-child,.layui-nav-tree .layui-nav-child a:hover{background:0 0;color:#fff}.layui-nav-itemed>.layui-nav-child{display:block;background-color:rgba(0,0,0,.3)!important}.layui-nav-itemed>.layui-nav-child>.layui-this>.layui-nav-child{display:block}.layui-nav-side{position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;z-index:999}.layui-breadcrumb{font-size:0}.layui-breadcrumb>*{font-size:14px}.layui-breadcrumb a{color:#999!important}.layui-breadcrumb a:hover{color:#5FB878!important}.layui-breadcrumb a cite{color:#666;font-style:normal}.layui-breadcrumb span[lay-separator]{margin:0 10px;color:#999}.layui-tab{margin:10px 0;text-align:left!important}.layui-tab[overflow]>.layui-tab-title{overflow:hidden}.layui-tab-title{position:relative;left:0;height:40px;white-space:nowrap;font-size:0;border-bottom-width:1px;border-bottom-style:solid;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;font-size:14px;transition:all .2s;-webkit-transition:all .2s;position:relative;line-height:40px;min-width:65px;padding:0 15px;text-align:center;cursor:pointer}.layui-tab-title li a{display:block;padding:0 15px;margin:0 -15px}.layui-tab-title .layui-this{color:#000}.layui-tab-title .layui-this:after{position:absolute;left:0;top:0;content:"";width:100%;height:41px;border-width:1px;border-style:solid;border-bottom-color:#fff;border-radius:2px 2px 0 0;box-sizing:border-box;pointer-events:none}.layui-tab-bar{position:absolute;right:0;top:0;z-index:10;width:30px;height:39px;line-height:39px;border-width:1px;border-style:solid;border-radius:2px;text-align:center;background-color:#fff;cursor:pointer}.layui-tab-bar .layui-icon{position:relative;display:inline-block;top:3px;transition:all .3s;-webkit-transition:all .3s}.layui-tab-item{display:none}.layui-tab-more{padding-right:30px;height:auto!important;white-space:normal!important}.layui-tab-more li.layui-this:after{border-bottom-color:#eee;border-radius:2px}.layui-tab-more .layui-tab-bar .layui-icon{top:-2px;top:3px\9;-webkit-transform:rotate(180deg);transform:rotate(180deg)}:root .layui-tab-more .layui-tab-bar .layui-icon{top:-2px\0/IE9}.layui-tab-content{padding:15px 0}.layui-tab-title li .layui-tab-close{position:relative;display:inline-block;width:18px;height:18px;line-height:20px;margin-left:8px;top:1px;text-align:center;font-size:14px;color:#c2c2c2;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li .layui-tab-close:hover{border-radius:2px;background-color:#FF5722;color:#fff}.layui-tab-brief>.layui-tab-title .layui-this{color:#009688}.layui-tab-brief>.layui-tab-more li.layui-this:after,.layui-tab-brief>.layui-tab-title .layui-this:after{border:none;border-radius:0;border-bottom:2px solid #5FB878}.layui-tab-brief[overflow]>.layui-tab-title .layui-this:after{top:-1px}.layui-tab-card{border-width:1px;border-style:solid;border-radius:2px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1)}.layui-tab-card>.layui-tab-title{background-color:#FAFAFA}.layui-tab-card>.layui-tab-title li{margin-right:-1px;margin-left:-1px}.layui-tab-card>.layui-tab-title .layui-this{background-color:#fff}.layui-tab-card>.layui-tab-title .layui-this:after{border-top:none;border-width:1px;border-bottom-color:#fff}.layui-tab-card>.layui-tab-title .layui-tab-bar{height:40px;line-height:40px;border-radius:0;border-top:none;border-right:none}.layui-tab-card>.layui-tab-more .layui-this{background:0 0;color:#5FB878}.layui-tab-card>.layui-tab-more .layui-this:after{border:none}.layui-timeline{padding-left:5px}.layui-timeline-item{position:relative;padding-bottom:20px}.layui-timeline-axis{position:absolute;left:-5px;top:0;z-index:10;width:20px;height:20px;line-height:20px;background-color:#fff;color:#5FB878;border-radius:50%;text-align:center;cursor:pointer}.layui-timeline-axis:hover{color:#FF5722}.layui-timeline-item:before{content:"";position:absolute;left:5px;top:0;z-index:0;width:1px;height:100%}.layui-timeline-item:first-child:before{display:block}.layui-timeline-item:last-child:before{display:none}.layui-timeline-content{padding-left:25px}.layui-timeline-title{position:relative;margin-bottom:10px;line-height:22px}.layui-badge,.layui-badge-dot,.layui-badge-rim{position:relative;display:inline-block;padding:0 6px;font-size:12px;text-align:center;background-color:#FF5722;color:#fff;border-radius:2px}.layui-badge{height:18px;line-height:18px}.layui-badge-dot{width:8px;height:8px;padding:0;border-radius:50%}.layui-badge-rim{height:18px;line-height:18px;border-width:1px;border-style:solid;background-color:#fff;color:#666}.layui-btn .layui-badge,.layui-btn .layui-badge-dot{margin-left:5px}.layui-nav .layui-badge,.layui-nav .layui-badge-dot{position:absolute;top:50%;margin:-5px 6px 0}.layui-nav .layui-badge{margin-top:-10px}.layui-tab-title .layui-badge,.layui-tab-title .layui-badge-dot{left:5px;top:-2px}.layui-carousel{position:relative;left:0;top:0;background-color:#f8f8f8}.layui-carousel>[carousel-item]{position:relative;width:100%;height:100%;overflow:hidden}.layui-carousel>[carousel-item]:before{position:absolute;content:'\e63d';left:50%;top:50%;width:100px;line-height:20px;margin:-10px 0 0 -50px;text-align:center;color:#c2c2c2;font-family:layui-icon!important;font-size:30px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-carousel>[carousel-item]>*{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f8f8f8;transition-duration:.3s;-webkit-transition-duration:.3s}.layui-carousel-updown>*{-webkit-transition:.3s ease-in-out up;transition:.3s ease-in-out up}.layui-carousel-arrow{display:none\9;opacity:0;position:absolute;left:10px;top:50%;margin-top:-18px;width:36px;height:36px;line-height:36px;text-align:center;font-size:20px;border:0;border-radius:50%;background-color:rgba(0,0,0,.2);color:#fff;-webkit-transition-duration:.3s;transition-duration:.3s;cursor:pointer}.layui-carousel-arrow[lay-type=add]{left:auto!important;right:10px}.layui-carousel:hover .layui-carousel-arrow[lay-type=add],.layui-carousel[lay-arrow=always] .layui-carousel-arrow[lay-type=add]{right:20px}.layui-carousel[lay-arrow=always] .layui-carousel-arrow{opacity:1;left:20px}.layui-carousel[lay-arrow=none] .layui-carousel-arrow{display:none}.layui-carousel-arrow:hover,.layui-carousel-ind ul:hover{background-color:rgba(0,0,0,.35)}.layui-carousel:hover .layui-carousel-arrow{display:block\9;opacity:1;left:20px}.layui-carousel-ind{position:relative;top:-35px;width:100%;line-height:0!important;text-align:center;font-size:0}.layui-carousel[lay-indicator=outside]{margin-bottom:30px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind{top:10px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind ul{background-color:rgba(0,0,0,.5)}.layui-carousel[lay-indicator=none] .layui-carousel-ind{display:none}.layui-carousel-ind ul{display:inline-block;padding:5px;background-color:rgba(0,0,0,.2);border-radius:10px;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li{display:inline-block;width:10px;height:10px;margin:0 3px;font-size:14px;background-color:#eee;background-color:rgba(255,255,255,.5);border-radius:50%;cursor:pointer;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li:hover{background-color:rgba(255,255,255,.7)}.layui-carousel-ind li.layui-this{background-color:#fff}.layui-carousel>[carousel-item]>.layui-carousel-next,.layui-carousel>[carousel-item]>.layui-carousel-prev,.layui-carousel>[carousel-item]>.layui-this{display:block}.layui-carousel>[carousel-item]>.layui-this{left:0}.layui-carousel>[carousel-item]>.layui-carousel-prev{left:-100%}.layui-carousel>[carousel-item]>.layui-carousel-next{left:100%}.layui-carousel>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel>[carousel-item]>.layui-carousel-prev.layui-carousel-right{left:0}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-left{left:-100%}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-right{left:100%}.layui-carousel[lay-anim=updown] .layui-carousel-arrow{left:50%!important;top:20px;margin:0 0 0 -18px}.layui-carousel[lay-anim=updown]>[carousel-item]>*,.layui-carousel[lay-anim=fade]>[carousel-item]>*{left:0!important}.layui-carousel[lay-anim=updown] .layui-carousel-arrow[lay-type=add]{top:auto!important;bottom:20px}.layui-carousel[lay-anim=updown] .layui-carousel-ind{position:absolute;top:50%;right:20px;width:auto;height:auto}.layui-carousel[lay-anim=updown] .layui-carousel-ind ul{padding:3px 5px}.layui-carousel[lay-anim=updown] .layui-carousel-ind li{display:block;margin:6px 0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next{top:100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-left{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-right{top:100%}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev{opacity:0}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{opacity:1}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-right{opacity:0}.layui-fixbar{position:fixed;right:15px;bottom:15px;z-index:999999}.layui-fixbar li{width:50px;height:50px;line-height:50px;margin-bottom:1px;text-align:center;cursor:pointer;font-size:30px;background-color:#9F9F9F;color:#fff;border-radius:2px;opacity:.95}.layui-fixbar li:hover{opacity:.85}.layui-fixbar li:active{opacity:1}.layui-fixbar .layui-fixbar-top{display:none;font-size:40px}body .layui-util-face{border:none;background:0 0}body .layui-util-face .layui-layer-content{padding:0;background-color:#fff;color:#666;box-shadow:none}.layui-util-face .layui-layer-TipsG{display:none}.layui-transfer-active,.layui-transfer-box{display:inline-block;vertical-align:middle}.layui-util-face ul{position:relative;width:372px;padding:10px;border:1px solid #D9D9D9;background-color:#fff;box-shadow:0 0 20px rgba(0,0,0,.2)}.layui-util-face ul li{cursor:pointer;float:left;border:1px solid #e8e8e8;height:22px;width:26px;overflow:hidden;margin:-1px 0 0 -1px;padding:4px 2px;text-align:center}.layui-util-face ul li:hover{position:relative;z-index:2;border:1px solid #eb7350;background:#fff9ec}.layui-code{position:relative;margin:10px 0;padding:15px;line-height:20px;border:1px solid #eee;border-left-width:6px;background-color:#FAFAFA;color:#333;font-family:Courier New;font-size:12px}.layui-transfer-box,.layui-transfer-header,.layui-transfer-search{border-width:0;border-style:solid;border-color:#eee}.layui-transfer-box{position:relative;border-width:1px;width:200px;height:360px;border-radius:2px;background-color:#fff}.layui-transfer-box .layui-form-checkbox{width:100%;margin:0!important}.layui-transfer-header{height:38px;line-height:38px;padding:0 10px;border-bottom-width:1px}.layui-transfer-search{position:relative;padding:10px;border-bottom-width:1px}.layui-transfer-search .layui-input{height:32px;padding-left:30px;font-size:12px}.layui-transfer-search .layui-icon-search{position:absolute;left:20px;top:50%;margin-top:-8px;color:#666}.layui-transfer-active{margin:0 15px}.layui-transfer-active .layui-btn{display:block;margin:0;padding:0 15px;background-color:#5FB878;border-color:#5FB878;color:#fff}.layui-transfer-active .layui-btn-disabled{background-color:#FBFBFB;border-color:#eee;color:#d2d2d2}.layui-transfer-active .layui-btn:first-child{margin-bottom:15px}.layui-transfer-active .layui-btn .layui-icon{margin:0;font-size:14px!important}.layui-transfer-data{padding:5px 0;overflow:auto}.layui-transfer-data li{height:32px;line-height:32px;padding:0 10px}.layui-transfer-data li:hover{background-color:#F6F6F6;transition:.5s all}.layui-transfer-data .layui-none{padding:15px 10px;text-align:center;color:#999}.layui-rate,.layui-rate *{display:inline-block;vertical-align:middle}.layui-rate{padding:10px 5px 10px 0;font-size:0}.layui-rate li i.layui-icon{font-size:20px;color:#FFB800;margin-right:5px;transition:all .3s;-webkit-transition:all .3s}.layui-rate li i:hover{cursor:pointer;transform:scale(1.12);-webkit-transform:scale(1.12)}.layui-rate[readonly] li i:hover{cursor:default;transform:scale(1)}.layui-colorpicker{width:26px;height:26px;border:1px solid #eee;padding:5px;border-radius:2px;line-height:24px;display:inline-block;cursor:pointer;transition:all .3s;-webkit-transition:all .3s}.layui-colorpicker:hover{border-color:#d2d2d2}.layui-colorpicker.layui-colorpicker-lg{width:34px;height:34px;line-height:32px}.layui-colorpicker.layui-colorpicker-sm{width:24px;height:24px;line-height:22px}.layui-colorpicker.layui-colorpicker-xs{width:22px;height:22px;line-height:20px}.layui-colorpicker-trigger-bgcolor{display:block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);border-radius:2px}.layui-colorpicker-trigger-span{display:block;height:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,.15);border-radius:2px;text-align:center}.layui-colorpicker-trigger-i{display:inline-block;color:#FFF;font-size:12px}.layui-colorpicker-trigger-i.layui-icon-close{color:#999}.layui-colorpicker-main{position:absolute;left:-999999px;top:-999999px;z-index:66666666;width:280px;margin:5px 0;padding:7px;background:#FFF;border:1px solid #d2d2d2;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-colorpicker-main-wrapper{height:180px;position:relative}.layui-colorpicker-basis{width:260px;height:100%;position:relative}.layui-colorpicker-basis-white{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(90deg,#FFF,hsla(0,0%,100%,0))}.layui-colorpicker-basis-black{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(0deg,#000,transparent)}.layui-colorpicker-basis-cursor{width:10px;height:10px;border:1px solid #FFF;border-radius:50%;position:absolute;top:-3px;right:-3px;cursor:pointer}.layui-colorpicker-side{position:absolute;top:0;right:0;width:12px;height:100%;background:linear-gradient(red,#FF0,#0F0,#0FF,#00F,#F0F,red)}.layui-colorpicker-side-slider{width:100%;height:5px;box-shadow:0 0 1px #888;background:#FFF;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;left:0}.layui-colorpicker-main-alpha{display:none;height:12px;margin-top:7px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-alpha-bgcolor{height:100%;position:relative}.layui-colorpicker-alpha-slider{width:5px;height:100%;box-shadow:0 0 1px #888;background:#FFF;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;top:0}.layui-colorpicker-main-pre{padding-top:7px;font-size:0}.layui-colorpicker-pre{width:20px;height:20px;border-radius:2px;display:inline-block;margin-left:6px;margin-bottom:7px;cursor:pointer}.layui-colorpicker-pre:nth-child(11n+1){margin-left:0}.layui-colorpicker-pre-isalpha{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-pre.layui-this{box-shadow:0 0 3px 2px rgba(0,0,0,.15)}.layui-colorpicker-pre>div{height:100%;border-radius:2px}.layui-colorpicker-main-input{text-align:right;padding-top:7px}.layui-colorpicker-main-input .layui-btn-container .layui-btn{margin:0 0 0 10px}.layui-colorpicker-main-input div.layui-inline{float:left;margin-right:10px;font-size:14px}.layui-colorpicker-main-input input.layui-input{width:150px;height:30px;color:#666}.layui-slider{height:4px;background:#eee;border-radius:3px;position:relative;cursor:pointer}.layui-slider-bar{border-radius:3px;position:absolute;height:100%}.layui-slider-step{position:absolute;top:0;width:4px;height:4px;border-radius:50%;background:#FFF;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.layui-slider-wrap{width:36px;height:36px;position:absolute;top:-16px;-webkit-transform:translateX(-50%);transform:translateX(-50%);z-index:10;text-align:center}.layui-slider-wrap-btn{width:12px;height:12px;border-radius:50%;background:#FFF;display:inline-block;vertical-align:middle;cursor:pointer;transition:.3s}.layui-slider-wrap:after{content:"";height:100%;display:inline-block;vertical-align:middle}.layui-slider-wrap-btn.layui-slider-hover,.layui-slider-wrap-btn:hover{transform:scale(1.2)}.layui-slider-wrap-btn.layui-disabled:hover{transform:scale(1)!important}.layui-slider-tips{position:absolute;top:-42px;z-index:66666666;white-space:nowrap;display:none;-webkit-transform:translateX(-50%);transform:translateX(-50%);color:#FFF;background:#000;border-radius:3px;height:25px;line-height:25px;padding:0 10px}.layui-slider-tips:after{content:"";position:absolute;bottom:-12px;left:50%;margin-left:-6px;width:0;height:0;border-width:6px;border-style:solid;border-color:#000 transparent transparent}.layui-slider-input{width:70px;height:32px;border:1px solid #eee;border-radius:3px;font-size:16px;line-height:32px;position:absolute;right:0;top:-14px}.layui-slider-input-btn{position:absolute;top:0;right:0;width:20px;height:100%;border-left:1px solid #eee}.layui-slider-input-btn i{cursor:pointer;position:absolute;right:0;bottom:0;width:20px;height:50%;font-size:12px;line-height:16px;text-align:center;color:#999}.layui-slider-input-btn i:first-child{top:0;border-bottom:1px solid #eee}.layui-slider-input-txt{height:100%;font-size:14px}.layui-slider-input-txt input{height:100%;border:none}.layui-slider-input-btn i:hover{color:#009688}.layui-slider-vertical{width:4px;margin-left:33px}.layui-slider-vertical .layui-slider-bar{width:4px}.layui-slider-vertical .layui-slider-step{top:auto;left:0;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-wrap{top:auto;left:-16px;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-tips{top:auto;left:2px}@media \0screen{.layui-slider-wrap-btn{margin-left:-20px}.layui-slider-vertical .layui-slider-wrap-btn{margin-left:0;margin-bottom:-20px}.layui-slider-vertical .layui-slider-tips{margin-left:-8px}.layui-slider>span{margin-left:8px}}.layui-tree{line-height:22px}.layui-tree .layui-form-checkbox{margin:0!important}.layui-tree-set{width:100%;position:relative}.layui-tree-pack{display:none;padding-left:20px;position:relative}.layui-tree-iconClick,.layui-tree-main{display:inline-block;vertical-align:middle}.layui-tree-line .layui-tree-pack{padding-left:27px}.layui-tree-line .layui-tree-set .layui-tree-set:after{content:"";position:absolute;top:14px;left:-9px;width:17px;height:0;border-top:1px dotted #c0c4cc}.layui-tree-entry{position:relative;padding:3px 0;height:20px;white-space:nowrap}.layui-tree-entry:hover{background-color:#eee}.layui-tree-line .layui-tree-entry:hover{background-color:rgba(0,0,0,0)}.layui-tree-line .layui-tree-entry:hover .layui-tree-txt{color:#999;text-decoration:underline;transition:.3s}.layui-tree-main{cursor:pointer;padding-right:10px}.layui-tree-line .layui-tree-set:before{content:"";position:absolute;top:0;left:-9px;width:0;height:100%;border-left:1px dotted #c0c4cc}.layui-tree-line .layui-tree-set.layui-tree-setLineShort:before{height:13px}.layui-tree-line .layui-tree-set.layui-tree-setHide:before{height:0}.layui-tree-iconClick{position:relative;height:20px;line-height:20px;margin:0 10px;color:#c0c4cc}.layui-tree-icon{height:12px;line-height:12px;width:12px;text-align:center;border:1px solid #c0c4cc}.layui-tree-iconClick .layui-icon{font-size:18px}.layui-tree-icon .layui-icon{font-size:12px;color:#666}.layui-tree-iconArrow{padding:0 5px}.layui-tree-iconArrow:after{content:"";position:absolute;left:4px;top:3px;z-index:100;width:0;height:0;border-width:5px;border-style:solid;border-color:transparent transparent transparent #c0c4cc;transition:.5s}.layui-tree-btnGroup,.layui-tree-editInput{position:relative;vertical-align:middle;display:inline-block}.layui-tree-spread>.layui-tree-entry>.layui-tree-iconClick>.layui-tree-iconArrow:after{transform:rotate(90deg) translate(3px,4px)}.layui-tree-txt{display:inline-block;vertical-align:middle;color:#555}.layui-tree-search{margin-bottom:15px;color:#666}.layui-tree-btnGroup .layui-icon{display:inline-block;vertical-align:middle;padding:0 2px;cursor:pointer}.layui-tree-btnGroup .layui-icon:hover{color:#999;transition:.3s}.layui-tree-entry:hover .layui-tree-btnGroup{visibility:visible}.layui-tree-editInput{height:20px;line-height:20px;padding:0 3px;border:none;background-color:rgba(0,0,0,.05)}.layui-tree-emptyText{text-align:center;color:#999}.layui-anim{-webkit-animation-duration:.3s;-webkit-animation-fill-mode:both;animation-duration:.3s;animation-fill-mode:both}.layui-anim.layui-icon{display:inline-block}.layui-anim-loop{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.layui-trans,.layui-trans a{transition:all .2s;-webkit-transition:all .2s}@-webkit-keyframes layui-rotate{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}@keyframes layui-rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.layui-anim-rotate{-webkit-animation-name:layui-rotate;animation-name:layui-rotate;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes layui-up{from{-webkit-transform:translate3d(0,100%,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-up{from{transform:translate3d(0,100%,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-up{-webkit-animation-name:layui-up;animation-name:layui-up}@-webkit-keyframes layui-upbit{from{-webkit-transform:translate3d(0,15px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-upbit{from{transform:translate3d(0,15px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-upbit{-webkit-animation-name:layui-upbit;animation-name:layui-upbit}@keyframes layui-down{0%{opacity:.3;transform:translate3d(0,-100%,0)}100%{opacity:1;transform:translate3d(0,0,0)}}.layui-anim-down{animation-name:layui-down}@keyframes layui-downbit{0%{opacity:.3;transform:translate3d(0,-5px,0)}100%{opacity:1;transform:translate3d(0,0,0)}}.layui-anim-downbit{animation-name:layui-downbit}@-webkit-keyframes layui-scale{0%{opacity:.3;-webkit-transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale{0%{opacity:.3;-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-ms-transform:scale(1);transform:scale(1)}}.layui-anim-scale{-webkit-animation-name:layui-scale;animation-name:layui-scale}@-webkit-keyframes layui-scale-spring{0%{opacity:.5;-webkit-transform:scale(.5)}80%{opacity:.8;-webkit-transform:scale(1.1)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale-spring{0%{opacity:.5;transform:scale(.5)}80%{opacity:.8;transform:scale(1.1)}100%{opacity:1;transform:scale(1)}}.layui-anim-scaleSpring{-webkit-animation-name:layui-scale-spring;animation-name:layui-scale-spring}@keyframes layui-scalesmall{0%{opacity:.3;transform:scale(1.5)}100%{opacity:1;transform:scale(1)}}.layui-anim-scalesmall{animation-name:layui-scalesmall}@keyframes layui-scalesmall-spring{0%{opacity:.3;transform:scale(1.5)}80%{opacity:.8;transform:scale(.9)}100%{opacity:1;transform:scale(1)}}.layui-anim-scalesmall-spring{animation-name:layui-scalesmall-spring}@-webkit-keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}@keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}.layui-anim-fadein{-webkit-animation-name:layui-fadein;animation-name:layui-fadein}@-webkit-keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}.layui-anim-fadeout{-webkit-animation-name:layui-fadeout;animation-name:layui-fadeout}
.layui-badge-blue {
    color: #29a2ff;
    background: rgba(219, 236, 252, 0.53);
    border: 1px solid #8ac5ef;
}
.layui-badge-green {
    color: #52c41a;
    background: rgba(246, 255, 237, 0.59);
    border: 1px solid #b7eb8f;
}
.layui-badge-gray {
    color: #8c8c8c;
    background: #fafafa;
    border: 1px solid #ccc;
}
.layui-badge-red {
    color: #f66868;
    background: rgba(252, 242, 242, 0.56);
    border: 1px solid #ffb0b0;
}
/** layui-v2.5.4 MIT License By https://www.layui.com */
 .layui-inline,img{display:inline-block;vertical-align:middle}h1,h2,h3,h4,h5,h6{font-weight:400}.layui-edge,.layui-header,.layui-inline,.layui-main{position:relative}.layui-body,.layui-edge,.layui-elip{overflow:hidden}.layui-btn,.layui-edge,.layui-inline,img{vertical-align:middle}.layui-btn,.layui-disabled,.layui-icon,.layui-unselect{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-elip,.layui-form-checkbox span,.layui-form-pane .layui-form-label{text-overflow:ellipsis;white-space:nowrap}.layui-breadcrumb,.layui-tree-btnGroup{visibility:hidden}blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}a:active,a:hover{outline:0}img{border:none}li{list-style:none}table{border-collapse:collapse;border-spacing:0}h4,h5,h6{font-size:100%}button,input,optgroup,option,select,textarea{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;outline:0}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}body{line-height:24px;font:14px Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif}hr{height:1px;margin:10px 0;border:0;clear:both}a{color:#333;text-decoration:none}a:hover{color:#777}a cite{font-style:normal;*cursor:pointer}.layui-border-box,.layui-border-box *{box-sizing:border-box}.layui-box,.layui-box *{box-sizing:content-box}.layui-clear{clear:both;*zoom:1}.layui-clear:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-inline{*display:inline;*zoom:1}.layui-edge{display:inline-block;width:0;height:0;border-width:6px;border-style:dashed;border-color:transparent}.layui-edge-top{top:-4px;border-bottom-color:#999;border-bottom-style:solid}.layui-edge-right{border-left-color:#999;border-left-style:solid}.layui-edge-bottom{top:2px;border-top-color:#999;border-top-style:solid}.layui-edge-left{border-right-color:#999;border-right-style:solid}.layui-disabled,.layui-disabled:hover{color:#d2d2d2!important;cursor:not-allowed!important}.layui-circle{border-radius:100%}.layui-show{display:block!important}.layui-hide{display:none!important}@font-face{font-family:layui-icon;src:url(../font/iconfont.eot?v=250);src:url(../font/iconfont.eot?v=250#iefix) format('embedded-opentype'),url(../font/iconfont.woff2?v=250) format('woff2'),url(../font/iconfont.woff?v=250) format('woff'),url(../font/iconfont.ttf?v=250) format('truetype'),url(../font/iconfont.svg?v=250#layui-icon) format('svg')}.layui-icon{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-icon-reply-fill:before{content:"\e611"}.layui-icon-set-fill:before{content:"\e614"}.layui-icon-menu-fill:before{content:"\e60f"}.layui-icon-search:before{content:"\e615"}.layui-icon-share:before{content:"\e641"}.layui-icon-set-sm:before{content:"\e620"}.layui-icon-engine:before{content:"\e628"}.layui-icon-close:before{content:"\1006"}.layui-icon-close-fill:before{content:"\1007"}.layui-icon-chart-screen:before{content:"\e629"}.layui-icon-star:before{content:"\e600"}.layui-icon-circle-dot:before{content:"\e617"}.layui-icon-chat:before{content:"\e606"}.layui-icon-release:before{content:"\e609"}.layui-icon-list:before{content:"\e60a"}.layui-icon-chart:before{content:"\e62c"}.layui-icon-ok-circle:before{content:"\1005"}.layui-icon-layim-theme:before{content:"\e61b"}.layui-icon-table:before{content:"\e62d"}.layui-icon-right:before{content:"\e602"}.layui-icon-left:before{content:"\e603"}.layui-icon-cart-simple:before{content:"\e698"}.layui-icon-face-cry:before{content:"\e69c"}.layui-icon-face-smile:before{content:"\e6af"}.layui-icon-survey:before{content:"\e6b2"}.layui-icon-tree:before{content:"\e62e"}.layui-icon-upload-circle:before{content:"\e62f"}.layui-icon-add-circle:before{content:"\e61f"}.layui-icon-download-circle:before{content:"\e601"}.layui-icon-templeate-1:before{content:"\e630"}.layui-icon-util:before{content:"\e631"}.layui-icon-face-surprised:before{content:"\e664"}.layui-icon-edit:before{content:"\e642"}.layui-icon-speaker:before{content:"\e645"}.layui-icon-down:before{content:"\e61a"}.layui-icon-file:before{content:"\e621"}.layui-icon-layouts:before{content:"\e632"}.layui-icon-rate-half:before{content:"\e6c9"}.layui-icon-add-circle-fine:before{content:"\e608"}.layui-icon-prev-circle:before{content:"\e633"}.layui-icon-read:before{content:"\e705"}.layui-icon-404:before{content:"\e61c"}.layui-icon-carousel:before{content:"\e634"}.layui-icon-help:before{content:"\e607"}.layui-icon-code-circle:before{content:"\e635"}.layui-icon-water:before{content:"\e636"}.layui-icon-username:before{content:"\e66f"}.layui-icon-find-fill:before{content:"\e670"}.layui-icon-about:before{content:"\e60b"}.layui-icon-location:before{content:"\e715"}.layui-icon-up:before{content:"\e619"}.layui-icon-pause:before{content:"\e651"}.layui-icon-date:before{content:"\e637"}.layui-icon-layim-uploadfile:before{content:"\e61d"}.layui-icon-delete:before{content:"\e640"}.layui-icon-play:before{content:"\e652"}.layui-icon-top:before{content:"\e604"}.layui-icon-friends:before{content:"\e612"}.layui-icon-refresh-3:before{content:"\e9aa"}.layui-icon-ok:before{content:"\e605"}.layui-icon-layer:before{content:"\e638"}.layui-icon-face-smile-fine:before{content:"\e60c"}.layui-icon-dollar:before{content:"\e659"}.layui-icon-group:before{content:"\e613"}.layui-icon-layim-download:before{content:"\e61e"}.layui-icon-picture-fine:before{content:"\e60d"}.layui-icon-link:before{content:"\e64c"}.layui-icon-diamond:before{content:"\e735"}.layui-icon-log:before{content:"\e60e"}.layui-icon-rate-solid:before{content:"\e67a"}.layui-icon-fonts-del:before{content:"\e64f"}.layui-icon-unlink:before{content:"\e64d"}.layui-icon-fonts-clear:before{content:"\e639"}.layui-icon-triangle-r:before{content:"\e623"}.layui-icon-circle:before{content:"\e63f"}.layui-icon-radio:before{content:"\e643"}.layui-icon-align-center:before{content:"\e647"}.layui-icon-align-right:before{content:"\e648"}.layui-icon-align-left:before{content:"\e649"}.layui-icon-loading-1:before{content:"\e63e"}.layui-icon-return:before{content:"\e65c"}.layui-icon-fonts-strong:before{content:"\e62b"}.layui-icon-upload:before{content:"\e67c"}.layui-icon-dialogue:before{content:"\e63a"}.layui-icon-video:before{content:"\e6ed"}.layui-icon-headset:before{content:"\e6fc"}.layui-icon-cellphone-fine:before{content:"\e63b"}.layui-icon-add-1:before{content:"\e654"}.layui-icon-face-smile-b:before{content:"\e650"}.layui-icon-fonts-html:before{content:"\e64b"}.layui-icon-form:before{content:"\e63c"}.layui-icon-cart:before{content:"\e657"}.layui-icon-camera-fill:before{content:"\e65d"}.layui-icon-tabs:before{content:"\e62a"}.layui-icon-fonts-code:before{content:"\e64e"}.layui-icon-fire:before{content:"\e756"}.layui-icon-set:before{content:"\e716"}.layui-icon-fonts-u:before{content:"\e646"}.layui-icon-triangle-d:before{content:"\e625"}.layui-icon-tips:before{content:"\e702"}.layui-icon-picture:before{content:"\e64a"}.layui-icon-more-vertical:before{content:"\e671"}.layui-icon-flag:before{content:"\e66c"}.layui-icon-loading:before{content:"\e63d"}.layui-icon-fonts-i:before{content:"\e644"}.layui-icon-refresh-1:before{content:"\e666"}.layui-icon-rmb:before{content:"\e65e"}.layui-icon-home:before{content:"\e68e"}.layui-icon-user:before{content:"\e770"}.layui-icon-notice:before{content:"\e667"}.layui-icon-login-weibo:before{content:"\e675"}.layui-icon-voice:before{content:"\e688"}.layui-icon-upload-drag:before{content:"\e681"}.layui-icon-login-qq:before{content:"\e676"}.layui-icon-snowflake:before{content:"\e6b1"}.layui-icon-file-b:before{content:"\e655"}.layui-icon-template:before{content:"\e663"}.layui-icon-auz:before{content:"\e672"}.layui-icon-console:before{content:"\e665"}.layui-icon-app:before{content:"\e653"}.layui-icon-prev:before{content:"\e65a"}.layui-icon-website:before{content:"\e7ae"}.layui-icon-next:before{content:"\e65b"}.layui-icon-component:before{content:"\e857"}.layui-icon-more:before{content:"\e65f"}.layui-icon-login-wechat:before{content:"\e677"}.layui-icon-shrink-right:before{content:"\e668"}.layui-icon-spread-left:before{content:"\e66b"}.layui-icon-camera:before{content:"\e660"}.layui-icon-note:before{content:"\e66e"}.layui-icon-refresh:before{content:"\e669"}.layui-icon-female:before{content:"\e661"}.layui-icon-male:before{content:"\e662"}.layui-icon-password:before{content:"\e673"}.layui-icon-senior:before{content:"\e674"}.layui-icon-theme:before{content:"\e66a"}.layui-icon-tread:before{content:"\e6c5"}.layui-icon-praise:before{content:"\e6c6"}.layui-icon-star-fill:before{content:"\e658"}.layui-icon-rate:before{content:"\e67b"}.layui-icon-template-1:before{content:"\e656"}.layui-icon-vercode:before{content:"\e679"}.layui-icon-cellphone:before{content:"\e678"}.layui-icon-screen-full:before{content:"\e622"}.layui-icon-screen-restore:before{content:"\e758"}.layui-icon-cols:before{content:"\e610"}.layui-icon-export:before{content:"\e67d"}.layui-icon-print:before{content:"\e66d"}.layui-icon-slider:before{content:"\e714"}.layui-icon-addition:before{content:"\e624"}.layui-icon-subtraction:before{content:"\e67e"}.layui-icon-service:before{content:"\e626"}.layui-icon-transfer:before{content:"\e691"}.layui-main{width:1140px;margin:0 auto}.layui-header{z-index:1000;height:60px}.layui-header a:hover{transition:all .5s;-webkit-transition:all .5s}.layui-side{position:fixed;left:0;top:0;bottom:0;z-index:999;width:200px;overflow-x:hidden}.layui-side-scroll{position:relative;width:220px;height:100%;overflow-x:hidden}.layui-body{position:absolute;left:200px;right:0;top:0;bottom:0;z-index:998;width:auto;overflow-y:auto;box-sizing:border-box}.layui-layout-body{overflow:hidden}.layui-layout-admin .layui-header{background-color:#23262E}.layui-layout-admin .layui-side{top:60px;width:200px;overflow-x:hidden}.layui-layout-admin .layui-body{position:fixed;top:60px;bottom:44px}.layui-layout-admin .layui-main{width:auto;margin:0 15px}.layui-layout-admin .layui-footer{position:fixed;left:200px;right:0;bottom:0;height:44px;line-height:44px;padding:0 15px;background-color:#eee}.layui-layout-admin .layui-logo{position:absolute;left:0;top:0;width:200px;height:100%;line-height:60px;text-align:center;color:#009688;font-size:16px}.layui-layout-admin .layui-header .layui-nav{background:0 0}.layui-layout-left{position:absolute!important;left:200px;top:0}.layui-layout-right{position:absolute!important;right:0;top:0}.layui-container{position:relative;margin:0 auto;padding:0 15px;box-sizing:border-box}.layui-fluid{position:relative;margin:0 auto;padding:0 15px}.layui-row:after,.layui-row:before{content:'';display:block;clear:both}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9,.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9,.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9,.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{position:relative;display:block;box-sizing:border-box}.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{float:left}.layui-col-xs1{width:8.33333333%}.layui-col-xs2{width:16.66666667%}.layui-col-xs3{width:25%}.layui-col-xs4{width:33.33333333%}.layui-col-xs5{width:41.66666667%}.layui-col-xs6{width:50%}.layui-col-xs7{width:58.33333333%}.layui-col-xs8{width:66.66666667%}.layui-col-xs9{width:75%}.layui-col-xs10{width:83.33333333%}.layui-col-xs11{width:91.66666667%}.layui-col-xs12{width:100%}.layui-col-xs-offset1{margin-left:8.33333333%}.layui-col-xs-offset2{margin-left:16.66666667%}.layui-col-xs-offset3{margin-left:25%}.layui-col-xs-offset4{margin-left:33.33333333%}.layui-col-xs-offset5{margin-left:41.66666667%}.layui-col-xs-offset6{margin-left:50%}.layui-col-xs-offset7{margin-left:58.33333333%}.layui-col-xs-offset8{margin-left:66.66666667%}.layui-col-xs-offset9{margin-left:75%}.layui-col-xs-offset10{margin-left:83.33333333%}.layui-col-xs-offset11{margin-left:91.66666667%}.layui-col-xs-offset12{margin-left:100%}@media screen and (max-width:768px){.layui-hide-xs{display:none!important}.layui-show-xs-block{display:block!important}.layui-show-xs-inline{display:inline!important}.layui-show-xs-inline-block{display:inline-block!important}}@media screen and (min-width:768px){.layui-container{width:750px}.layui-hide-sm{display:none!important}.layui-show-sm-block{display:block!important}.layui-show-sm-inline{display:inline!important}.layui-show-sm-inline-block{display:inline-block!important}.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9{float:left}.layui-col-sm1{width:8.33333333%}.layui-col-sm2{width:16.66666667%}.layui-col-sm3{width:25%}.layui-col-sm4{width:33.33333333%}.layui-col-sm5{width:41.66666667%}.layui-col-sm6{width:50%}.layui-col-sm7{width:58.33333333%}.layui-col-sm8{width:66.66666667%}.layui-col-sm9{width:75%}.layui-col-sm10{width:83.33333333%}.layui-col-sm11{width:91.66666667%}.layui-col-sm12{width:100%}.layui-col-sm-offset1{margin-left:8.33333333%}.layui-col-sm-offset2{margin-left:16.66666667%}.layui-col-sm-offset3{margin-left:25%}.layui-col-sm-offset4{margin-left:33.33333333%}.layui-col-sm-offset5{margin-left:41.66666667%}.layui-col-sm-offset6{margin-left:50%}.layui-col-sm-offset7{margin-left:58.33333333%}.layui-col-sm-offset8{margin-left:66.66666667%}.layui-col-sm-offset9{margin-left:75%}.layui-col-sm-offset10{margin-left:83.33333333%}.layui-col-sm-offset11{margin-left:91.66666667%}.layui-col-sm-offset12{margin-left:100%}}@media screen and (min-width:992px){.layui-container{width:970px}.layui-hide-md{display:none!important}.layui-show-md-block{display:block!important}.layui-show-md-inline{display:inline!important}.layui-show-md-inline-block{display:inline-block!important}.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9{float:left}.layui-col-md1{width:8.33333333%}.layui-col-md2{width:16.66666667%}.layui-col-md3{width:25%}.layui-col-md4{width:33.33333333%}.layui-col-md5{width:41.66666667%}.layui-col-md6{width:50%}.layui-col-md7{width:58.33333333%}.layui-col-md8{width:66.66666667%}.layui-col-md9{width:75%}.layui-col-md10{width:83.33333333%}.layui-col-md11{width:91.66666667%}.layui-col-md12{width:100%}.layui-col-md-offset1{margin-left:8.33333333%}.layui-col-md-offset2{margin-left:16.66666667%}.layui-col-md-offset3{margin-left:25%}.layui-col-md-offset4{margin-left:33.33333333%}.layui-col-md-offset5{margin-left:41.66666667%}.layui-col-md-offset6{margin-left:50%}.layui-col-md-offset7{margin-left:58.33333333%}.layui-col-md-offset8{margin-left:66.66666667%}.layui-col-md-offset9{margin-left:75%}.layui-col-md-offset10{margin-left:83.33333333%}.layui-col-md-offset11{margin-left:91.66666667%}.layui-col-md-offset12{margin-left:100%}}@media screen and (min-width:1200px){.layui-container{width:1170px}.layui-hide-lg{display:none!important}.layui-show-lg-block{display:block!important}.layui-show-lg-inline{display:inline!important}.layui-show-lg-inline-block{display:inline-block!important}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9{float:left}.layui-col-lg1{width:8.33333333%}.layui-col-lg2{width:16.66666667%}.layui-col-lg3{width:25%}.layui-col-lg4{width:33.33333333%}.layui-col-lg5{width:41.66666667%}.layui-col-lg6{width:50%}.layui-col-lg7{width:58.33333333%}.layui-col-lg8{width:66.66666667%}.layui-col-lg9{width:75%}.layui-col-lg10{width:83.33333333%}.layui-col-lg11{width:91.66666667%}.layui-col-lg12{width:100%}.layui-col-lg-offset1{margin-left:8.33333333%}.layui-col-lg-offset2{margin-left:16.66666667%}.layui-col-lg-offset3{margin-left:25%}.layui-col-lg-offset4{margin-left:33.33333333%}.layui-col-lg-offset5{margin-left:41.66666667%}.layui-col-lg-offset6{margin-left:50%}.layui-col-lg-offset7{margin-left:58.33333333%}.layui-col-lg-offset8{margin-left:66.66666667%}.layui-col-lg-offset9{margin-left:75%}.layui-col-lg-offset10{margin-left:83.33333333%}.layui-col-lg-offset11{margin-left:91.66666667%}.layui-col-lg-offset12{margin-left:100%}}.layui-col-space1{margin:-.5px}.layui-col-space1>*{padding:.5px}.layui-col-space3{margin:-1.5px}.layui-col-space3>*{padding:1.5px}.layui-col-space5{margin:-2.5px}.layui-col-space5>*{padding:2.5px}.layui-col-space8{margin:-3.5px}.layui-col-space8>*{padding:3.5px}.layui-col-space10{margin:-5px}.layui-col-space10>*{padding:5px}.layui-col-space12{margin:-6px}.layui-col-space12>*{padding:6px}.layui-col-space15{margin:-7.5px}.layui-col-space15>*{padding:7.5px}.layui-col-space18{margin:-9px}.layui-col-space18>*{padding:9px}.layui-col-space20{margin:-10px}.layui-col-space20>*{padding:10px}.layui-col-space22{margin:-11px}.layui-col-space22>*{padding:11px}.layui-col-space25{margin:-12.5px}.layui-col-space25>*{padding:12.5px}.layui-col-space30{margin:-15px}.layui-col-space30>*{padding:15px}.layui-btn,.layui-input,.layui-select,.layui-textarea,.layui-upload-button{outline:0;-webkit-appearance:none;transition:all .3s;-webkit-transition:all .3s;box-sizing:border-box}.layui-elem-quote{margin-bottom:10px;padding:15px;line-height:22px;border-left:5px solid #009688;border-radius:0 2px 2px 0;background-color:#f2f2f2}.layui-quote-nm{border-style:solid;border-width:1px 1px 1px 5px;background:0 0}.layui-elem-field{margin-bottom:10px;padding:0;border-width:1px;border-style:solid}.layui-elem-field legend{margin-left:20px;padding:0 10px;font-size:20px;font-weight:300}.layui-field-title{margin:10px 0 20px;border-width:1px 0 0}.layui-field-box{padding:10px 15px}.layui-field-title .layui-field-box{padding:10px 0}.layui-progress{position:relative;height:6px;border-radius:20px;background-color:#e2e2e2}.layui-progress-bar{position:absolute;left:0;top:0;width:0;max-width:100%;height:6px;border-radius:20px;text-align:right;background-color:#5FB878;transition:all .3s;-webkit-transition:all .3s}.layui-progress-big,.layui-progress-big .layui-progress-bar{height:18px;line-height:18px}.layui-progress-text{position:relative;top:-20px;line-height:18px;font-size:12px;color:#666}.layui-progress-big .layui-progress-text{position:static;padding:0 10px;color:#fff}.layui-collapse{border-width:1px;border-style:solid;border-radius:2px}.layui-colla-content,.layui-colla-item{border-top-width:1px;border-top-style:solid}.layui-colla-item:first-child{border-top:none}.layui-colla-title{position:relative;height:42px;line-height:42px;padding:0 15px 0 35px;color:#333;background-color:#f2f2f2;cursor:pointer;font-size:14px;overflow:hidden}.layui-colla-content{display:none;padding:10px 15px;line-height:22px;color:#666}.layui-colla-icon{position:absolute;left:15px;top:0;font-size:14px}.layui-card{margin-bottom:15px;border-radius:2px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.layui-card:last-child{margin-bottom:0}.layui-card-header{position:relative;height:42px;line-height:42px;padding:0 15px;border-bottom:1px solid #f6f6f6;color:#333;border-radius:2px 2px 0 0;font-size:14px}.layui-bg-black,.layui-bg-blue,.layui-bg-cyan,.layui-bg-green,.layui-bg-orange,.layui-bg-red{color:#fff!important}.layui-card-body{position:relative;padding:10px 15px;line-height:24px}.layui-card-body[pad15]{padding:15px}.layui-card-body[pad20]{padding:20px}.layui-card-body .layui-table{margin:5px 0}.layui-card .layui-tab{margin:0}.layui-panel-window{position:relative;padding:15px;border-radius:0;border-top:5px solid #E6E6E6;background-color:#fff}.layui-auxiliar-moving{position:fixed;left:0;right:0;top:0;bottom:0;width:100%;height:100%;background:0 0;z-index:9999999999}.layui-form-label,.layui-form-mid,.layui-form-select,.layui-input-block,.layui-input-inline,.layui-textarea{position:relative}.layui-bg-red{background-color:#FF5722!important}.layui-bg-orange{background-color:#FFB800!important}.layui-bg-green{background-color:#009688!important}.layui-bg-cyan{background-color:#2F4056!important}.layui-bg-blue{background-color:#1E9FFF!important}.layui-bg-black{background-color:#393D49!important}.layui-bg-gray{background-color:#eee!important;color:#666!important}.layui-badge-rim,.layui-colla-content,.layui-colla-item,.layui-collapse,.layui-elem-field,.layui-form-pane .layui-form-item[pane],.layui-form-pane .layui-form-label,.layui-input,.layui-layedit,.layui-layedit-tool,.layui-quote-nm,.layui-select,.layui-tab-bar,.layui-tab-card,.layui-tab-title,.layui-tab-title .layui-this:after,.layui-textarea{border-color:#e6e6e6}.layui-timeline-item:before,hr{background-color:#e6e6e6}.layui-text{line-height:22px;font-size:14px;color:#666}.layui-text h1,.layui-text h2,.layui-text h3{font-weight:500;color:#333}.layui-text h1{font-size:30px}.layui-text h2{font-size:24px}.layui-text h3{font-size:18px}.layui-text a:not(.layui-btn){color:#01AAED}.layui-text a:not(.layui-btn):hover{text-decoration:underline}.layui-text ul{padding:5px 0 5px 15px}.layui-text ul li{margin-top:5px;list-style-type:disc}.layui-text em,.layui-word-aux{color:#999!important;padding:0 5px!important}.layui-btn{display:inline-block;height:38px;line-height:38px;padding:0 18px;background-color:#009688;color:#fff;white-space:nowrap;text-align:center;font-size:14px;border:none;border-radius:2px;cursor:pointer}.layui-btn:hover{opacity:.8;filter:alpha(opacity=80);color:#fff}.layui-btn:active{opacity:1;filter:alpha(opacity=100)}.layui-btn+.layui-btn{margin-left:10px}.layui-btn-container{font-size:0}.layui-btn-container .layui-btn{margin-right:10px;margin-bottom:10px}.layui-btn-container .layui-btn+.layui-btn{margin-left:0}.layui-table .layui-btn-container .layui-btn{margin-bottom:9px}.layui-btn-radius{border-radius:100px}.layui-btn .layui-icon{margin-right:3px;font-size:18px;vertical-align:bottom;vertical-align:middle\9}.layui-btn-primary{border:1px solid #C9C9C9;background-color:#fff;color:#555}.layui-btn-primary:hover{border-color:#009688;color:#333}.layui-btn-normal{background-color:#1E9FFF}.layui-btn-warm{background-color:#FFB800}.layui-btn-danger{background-color:#FF5722}.layui-btn-checked{background-color:#5FB878}.layui-btn-disabled,.layui-btn-disabled:active,.layui-btn-disabled:hover{border:1px solid #e6e6e6;background-color:#FBFBFB;color:#C9C9C9;cursor:not-allowed;opacity:1}.layui-btn-lg{height:44px;line-height:44px;padding:0 25px;font-size:16px}.layui-btn-sm{height:30px;line-height:30px;padding:0 10px;font-size:12px}.layui-btn-sm i{font-size:16px!important}.layui-btn-xs{height:22px;line-height:22px;padding:0 5px;font-size:12px}.layui-btn-xs i{font-size:14px!important}.layui-btn-group{display:inline-block;vertical-align:middle;font-size:0}.layui-btn-group .layui-btn{margin-left:0!important;margin-right:0!important;border-left:1px solid rgba(255,255,255,.5);border-radius:0}.layui-btn-group .layui-btn-primary{border-left:none}.layui-btn-group .layui-btn-primary:hover{border-color:#C9C9C9;color:#009688}.layui-btn-group .layui-btn:first-child{border-left:none;border-radius:2px 0 0 2px}.layui-btn-group .layui-btn-primary:first-child{border-left:1px solid #c9c9c9}.layui-btn-group .layui-btn:last-child{border-radius:0 2px 2px 0}.layui-btn-group .layui-btn+.layui-btn{margin-left:0}.layui-btn-group+.layui-btn-group{margin-left:10px}.layui-btn-fluid{width:100%}.layui-input,.layui-select,.layui-textarea{height:38px;line-height:1.3;line-height:38px\9;border-width:1px;border-style:solid;background-color:#fff;border-radius:2px}.layui-input::-webkit-input-placeholder,.layui-select::-webkit-input-placeholder,.layui-textarea::-webkit-input-placeholder{line-height:1.3}.layui-input,.layui-textarea{display:block;width:100%;padding-left:10px}.layui-input:hover,.layui-textarea:hover{border-color:#D2D2D2!important}.layui-input:focus,.layui-textarea:focus{border-color:#C9C9C9!important}.layui-textarea{min-height:100px;height:auto;line-height:20px;padding:6px 10px;resize:vertical}.layui-select{padding:0 10px}.layui-form input[type=checkbox],.layui-form input[type=radio],.layui-form select{display:none}.layui-form [lay-ignore]{display:initial}.layui-form-item{margin-bottom:15px;clear:both;*zoom:1}.layui-form-item:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-form-label{float:left;display:block;padding:9px 15px;width:80px;font-weight:400;line-height:20px;text-align:right}.layui-form-label-col{display:block;float:none;padding:9px 0;line-height:20px;text-align:left}.layui-form-item .layui-inline{margin-bottom:5px;margin-right:10px}.layui-input-block{margin-left:110px;min-height:36px}.layui-input-inline{display:inline-block;vertical-align:middle}.layui-form-item .layui-input-inline{float:left;width:190px;margin-right:10px}.layui-form-text .layui-input-inline{width:auto}.layui-form-mid{float:left;display:block;padding:9px 0!important;line-height:20px;margin-right:10px}.layui-form-danger+.layui-form-select .layui-input,.layui-form-danger:focus{border-color:#FF5722!important}.layui-form-select .layui-input{padding-right:30px;cursor:pointer}.layui-form-select .layui-edge{position:absolute;right:10px;top:50%;margin-top:-3px;cursor:pointer;border-width:6px;border-top-color:#c2c2c2;border-top-style:solid;transition:all .3s;-webkit-transition:all .3s}.layui-form-select dl{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #d2d2d2;max-height:300px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12);box-sizing:border-box}.layui-form-select dl dd,.layui-form-select dl dt{padding:0 10px;line-height:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layui-form-select dl dt{font-size:12px;color:#999}.layui-form-select dl dd{cursor:pointer}.layui-form-select dl dd:hover{background-color:#f2f2f2;-webkit-transition:.5s all;transition:.5s all}.layui-form-select .layui-select-group dd{padding-left:20px}.layui-form-select dl dd.layui-select-tips{padding-left:10px!important;color:#999}.layui-form-select dl dd.layui-this{background-color:#5FB878;color:#fff}.layui-form-checkbox,.layui-form-select dl dd.layui-disabled{background-color:#fff}.layui-form-selected dl{display:block}.layui-form-checkbox,.layui-form-checkbox *,.layui-form-switch{display:inline-block;vertical-align:middle}.layui-form-selected .layui-edge{margin-top:-9px;-webkit-transform:rotate(180deg);transform:rotate(180deg);margin-top:-3px\9}:root .layui-form-selected .layui-edge{margin-top:-9px\0/IE9}.layui-form-selectup dl{top:auto;bottom:42px}.layui-select-none{margin:5px 0;text-align:center;color:#999}.layui-select-disabled .layui-disabled{border-color:#eee!important}.layui-select-disabled .layui-edge{border-top-color:#d2d2d2}.layui-form-checkbox{position:relative;height:30px;line-height:30px;margin-right:10px;padding-right:30px;cursor:pointer;font-size:0;-webkit-transition:.1s linear;transition:.1s linear;box-sizing:border-box}.layui-form-checkbox span{padding:0 10px;height:100%;font-size:14px;border-radius:2px 0 0 2px;background-color:#d2d2d2;color:#fff;overflow:hidden}.layui-form-checkbox:hover span{background-color:#c2c2c2}.layui-form-checkbox i{position:absolute;right:0;top:0;width:30px;height:28px;border:1px solid #d2d2d2;border-left:none;border-radius:0 2px 2px 0;color:#fff;font-size:20px;text-align:center}.layui-form-checkbox:hover i{border-color:#c2c2c2;color:#c2c2c2}.layui-form-checked,.layui-form-checked:hover{border-color:#5FB878}.layui-form-checked span,.layui-form-checked:hover span{background-color:#5FB878}.layui-form-checked i,.layui-form-checked:hover i{color:#5FB878}.layui-form-item .layui-form-checkbox{margin-top:4px}.layui-form-checkbox[lay-skin=primary]{height:auto!important;line-height:normal!important;min-width:18px;min-height:18px;border:none!important;margin-right:0;padding-left:28px;padding-right:0;background:0 0}.layui-form-checkbox[lay-skin=primary] span{padding-left:0;padding-right:15px;line-height:18px;background:0 0;color:#666}.layui-form-checkbox[lay-skin=primary] i{right:auto;left:0;width:16px;height:16px;line-height:16px;border:1px solid #d2d2d2;font-size:12px;border-radius:2px;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-checkbox[lay-skin=primary]:hover i{border-color:#5FB878;color:#fff}.layui-form-checked[lay-skin=primary] i{border-color:#5FB878!important;background-color:#5FB878;color:#fff}.layui-checkbox-disbaled[lay-skin=primary] span{background:0 0!important;color:#c2c2c2}.layui-checkbox-disbaled[lay-skin=primary]:hover i{border-color:#d2d2d2}.layui-form-item .layui-form-checkbox[lay-skin=primary]{margin-top:10px}.layui-form-switch{position:relative;height:22px;line-height:22px;min-width:35px;padding:0 5px;margin-top:8px;border:1px solid #d2d2d2;border-radius:20px;cursor:pointer;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch i{position:absolute;left:5px;top:3px;width:16px;height:16px;border-radius:20px;background-color:#d2d2d2;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch em{position:relative;top:0;width:25px;margin-left:21px;padding:0!important;text-align:center!important;color:#999!important;font-style:normal!important;font-size:12px}.layui-form-onswitch{border-color:#5FB878;background-color:#5FB878}.layui-checkbox-disbaled,.layui-checkbox-disbaled i{border-color:#e2e2e2!important}.layui-form-onswitch i{left:100%;margin-left:-21px;background-color:#fff}.layui-form-onswitch em{margin-left:5px;margin-right:21px;color:#fff!important}.layui-checkbox-disbaled span{background-color:#e2e2e2!important}.layui-checkbox-disbaled:hover i{color:#fff!important}[lay-radio]{display:none}.layui-form-radio,.layui-form-radio *{display:inline-block;vertical-align:middle}.layui-form-radio{line-height:28px;margin:6px 10px 0 0;padding-right:10px;cursor:pointer;font-size:0}.layui-form-radio *{font-size:14px}.layui-form-radio>i{margin-right:8px;font-size:22px;color:#c2c2c2}.layui-form-radio>i:hover,.layui-form-radioed>i{color:#5FB878}.layui-radio-disbaled>i{color:#e2e2e2!important}.layui-form-pane .layui-form-label{width:110px;padding:8px 15px;height:38px;line-height:20px;border-width:1px;border-style:solid;border-radius:2px 0 0 2px;text-align:center;background-color:#FBFBFB;overflow:hidden;box-sizing:border-box}.layui-form-pane .layui-input-inline{margin-left:-1px}.layui-form-pane .layui-input-block{margin-left:110px;left:-1px}.layui-form-pane .layui-input{border-radius:0 2px 2px 0}.layui-form-pane .layui-form-text .layui-form-label{float:none;width:100%;border-radius:2px;box-sizing:border-box;text-align:left}.layui-form-pane .layui-form-text .layui-input-inline{display:block;margin:0;top:-1px;clear:both}.layui-form-pane .layui-form-text .layui-input-block{margin:0;left:0;top:-1px}.layui-form-pane .layui-form-text .layui-textarea{min-height:100px;border-radius:0 0 2px 2px}.layui-form-pane .layui-form-checkbox{margin:4px 0 4px 10px}.layui-form-pane .layui-form-radio,.layui-form-pane .layui-form-switch{margin-top:6px;margin-left:10px}.layui-form-pane .layui-form-item[pane]{position:relative;border-width:1px;border-style:solid}.layui-form-pane .layui-form-item[pane] .layui-form-label{position:absolute;left:0;top:0;height:100%;border-width:0 1px 0 0}.layui-form-pane .layui-form-item[pane] .layui-input-inline{margin-left:110px}@media screen and (max-width:450px){.layui-form-item .layui-form-label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-form-item .layui-inline{display:block;margin-right:0;margin-bottom:20px;clear:both}.layui-form-item .layui-inline:after{content:'\20';clear:both;display:block;height:0}.layui-form-item .layui-input-inline{display:block;float:none;left:-3px;width:auto;margin:0 0 10px 112px}.layui-form-item .layui-input-inline+.layui-form-mid{margin-left:110px;top:-5px;padding:0}.layui-form-item .layui-form-checkbox{margin-right:5px;margin-bottom:5px}}.layui-layedit{border-width:1px;border-style:solid;border-radius:2px}.layui-layedit-tool{padding:3px 5px;border-bottom-width:1px;border-bottom-style:solid;font-size:0}.layedit-tool-fixed{position:fixed;top:0;border-top:1px solid #e2e2e2}.layui-layedit-tool .layedit-tool-mid,.layui-layedit-tool .layui-icon{display:inline-block;vertical-align:middle;text-align:center;font-size:14px}.layui-layedit-tool .layui-icon{position:relative;width:32px;height:30px;line-height:30px;margin:3px 5px;color:#777;cursor:pointer;border-radius:2px}.layui-layedit-tool .layui-icon:hover{color:#393D49}.layui-layedit-tool .layui-icon:active{color:#000}.layui-layedit-tool .layedit-tool-active{background-color:#e2e2e2;color:#000}.layui-layedit-tool .layui-disabled,.layui-layedit-tool .layui-disabled:hover{color:#d2d2d2;cursor:not-allowed}.layui-layedit-tool .layedit-tool-mid{width:1px;height:18px;margin:0 10px;background-color:#d2d2d2}.layedit-tool-html{width:50px!important;font-size:30px!important}.layedit-tool-b,.layedit-tool-code,.layedit-tool-help{font-size:16px!important}.layedit-tool-d,.layedit-tool-face,.layedit-tool-image,.layedit-tool-unlink{font-size:18px!important}.layedit-tool-image input{position:absolute;font-size:0;left:0;top:0;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-layedit-iframe iframe{display:block;width:100%}#LAY_layedit_code{overflow:hidden}.layui-laypage{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;margin:10px 0;font-size:0}.layui-laypage>a:first-child,.layui-laypage>a:first-child em{border-radius:2px 0 0 2px}.layui-laypage>a:last-child,.layui-laypage>a:last-child em{border-radius:0 2px 2px 0}.layui-laypage>:first-child{margin-left:0!important}.layui-laypage>:last-child{margin-right:0!important}.layui-laypage a,.layui-laypage button,.layui-laypage input,.layui-laypage select,.layui-laypage span{border:1px solid #e2e2e2}.layui-laypage a,.layui-laypage span{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding:0 15px;height:28px;line-height:28px;margin:0 -1px 5px 0;background-color:#fff;color:#333;font-size:12px}.layui-flow-more a *,.layui-laypage input,.layui-table-view select[lay-ignore]{display:inline-block}.layui-laypage a:hover{color:#009688}.layui-laypage em{font-style:normal}.layui-laypage .layui-laypage-spr{color:#999;font-weight:700}.layui-laypage a{text-decoration:none}.layui-laypage .layui-laypage-curr{position:relative}.layui-laypage .layui-laypage-curr em{position:relative;color:#fff}.layui-laypage .layui-laypage-curr .layui-laypage-em{position:absolute;left:-1px;top:-1px;padding:1px;width:100%;height:100%;background-color:#009688}.layui-laypage-em{border-radius:2px}.layui-laypage-next em,.layui-laypage-prev em{font-family:Sim sun;font-size:16px}.layui-laypage .layui-laypage-count,.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh,.layui-laypage .layui-laypage-skip{margin-left:10px;margin-right:10px;padding:0;border:none}.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh{vertical-align:top}.layui-laypage .layui-laypage-refresh i{font-size:18px;cursor:pointer}.layui-laypage select{height:22px;padding:3px;border-radius:2px;cursor:pointer}.layui-laypage .layui-laypage-skip{height:30px;line-height:30px;color:#999}.layui-laypage button,.layui-laypage input{height:30px;line-height:30px;border-radius:2px;vertical-align:top;background-color:#fff;box-sizing:border-box}.layui-laypage input{width:40px;margin:0 10px;padding:0 3px;text-align:center}.layui-laypage input:focus,.layui-laypage select:focus{border-color:#009688!important}.layui-laypage button{margin-left:10px;padding:0 10px;cursor:pointer}.layui-table,.layui-table-view{margin:10px 0}.layui-flow-more{margin:10px 0;text-align:center;color:#999;font-size:14px}.layui-flow-more a{height:32px;line-height:32px}.layui-flow-more a *{vertical-align:top}.layui-flow-more a cite{padding:0 20px;border-radius:3px;background-color:#eee;color:#333;font-style:normal}.layui-flow-more a cite:hover{opacity:.8}.layui-flow-more a i{font-size:30px;color:#737383}.layui-table{width:100%;background-color:#fff;color:#666}.layui-table tr{transition:all .3s;-webkit-transition:all .3s}.layui-table th{text-align:left;font-weight:400}.layui-table tbody tr:hover,.layui-table thead tr,.layui-table-click,.layui-table-header,.layui-table-hover,.layui-table-mend,.layui-table-patch,.layui-table-tool,.layui-table-total,.layui-table-total tr,.layui-table[lay-even] tr:nth-child(even){background-color:#f2f2f2}.layui-table td,.layui-table th,.layui-table-col-set,.layui-table-fixed-r,.layui-table-grid-down,.layui-table-header,.layui-table-page,.layui-table-tips-main,.layui-table-tool,.layui-table-total,.layui-table-view,.layui-table[lay-skin=line],.layui-table[lay-skin=row]{border-width:1px;border-style:solid;border-color:#e6e6e6}.layui-table td,.layui-table th{position:relative;padding:9px 15px;min-height:20px;line-height:20px;font-size:14px}.layui-table[lay-skin=line] td,.layui-table[lay-skin=line] th{border-width:0 0 1px}.layui-table[lay-skin=row] td,.layui-table[lay-skin=row] th{border-width:0 1px 0 0}.layui-table[lay-skin=nob] td,.layui-table[lay-skin=nob] th{border:none}.layui-table img{max-width:100px}.layui-table[lay-size=lg] td,.layui-table[lay-size=lg] th{padding:15px 30px}.layui-table-view .layui-table[lay-size=lg] .layui-table-cell{height:40px;line-height:40px}.layui-table[lay-size=sm] td,.layui-table[lay-size=sm] th{font-size:12px;padding:5px 10px}.layui-table-view .layui-table[lay-size=sm] .layui-table-cell{height:20px;line-height:20px}.layui-table[lay-data]{display:none}.layui-table-box{position:relative;overflow:hidden}.layui-table-view .layui-table{position:relative;width:auto;margin:0}.layui-table-view .layui-table[lay-skin=line]{border-width:0 1px 0 0}.layui-table-view .layui-table[lay-skin=row]{border-width:0 0 1px}.layui-table-view .layui-table td,.layui-table-view .layui-table th{padding:5px 0;border-top:none;border-left:none}.layui-table-view .layui-table th.layui-unselect .layui-table-cell span{cursor:pointer}.layui-table-view .layui-table td{cursor:default}.layui-table-view .layui-table td[data-edit=text]{cursor:text}.layui-table-view .layui-form-checkbox[lay-skin=primary] i{width:18px;height:18px}.layui-table-view .layui-form-radio{line-height:0;padding:0}.layui-table-view .layui-form-radio>i{margin:0;font-size:20px}.layui-table-init{position:absolute;left:0;top:0;width:100%;height:100%;text-align:center;z-index:110}.layui-table-init .layui-icon{position:absolute;left:50%;top:50%;margin:-15px 0 0 -15px;font-size:30px;color:#c2c2c2}.layui-table-header{border-width:0 0 1px;overflow:hidden}.layui-table-header .layui-table{margin-bottom:-1px}.layui-table-tool .layui-inline[lay-event]{position:relative;width:26px;height:26px;padding:5px;line-height:16px;margin-right:10px;text-align:center;color:#333;border:1px solid #ccc;cursor:pointer;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool .layui-inline[lay-event]:hover{border:1px solid #999}.layui-table-tool-temp{padding-right:120px}.layui-table-tool-self{position:absolute;right:17px;top:10px}.layui-table-tool .layui-table-tool-self .layui-inline[lay-event]{margin:0 0 0 10px}.layui-table-tool-panel{position:absolute;top:29px;left:-1px;padding:5px 0;min-width:150px;min-height:40px;border:1px solid #d2d2d2;text-align:left;overflow-y:auto;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-table-cell,.layui-table-tool-panel li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layui-table-tool-panel li{padding:0 10px;line-height:30px;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary]{width:100%;padding-left:28px}.layui-table-tool-panel li:hover{background-color:#f2f2f2}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] i{position:absolute;left:0;top:0}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] span{padding:0}.layui-table-tool .layui-table-tool-self .layui-table-tool-panel{left:auto;right:-1px}.layui-table-col-set{position:absolute;right:0;top:0;width:20px;height:100%;border-width:0 0 0 1px;background-color:#fff}.layui-table-sort{width:10px;height:20px;margin-left:5px;cursor:pointer!important}.layui-table-sort .layui-edge{position:absolute;left:5px;border-width:5px}.layui-table-sort .layui-table-sort-asc{top:3px;border-top:none;border-bottom-style:solid;border-bottom-color:#b2b2b2}.layui-table-sort .layui-table-sort-asc:hover{border-bottom-color:#666}.layui-table-sort .layui-table-sort-desc{bottom:5px;border-bottom:none;border-top-style:solid;border-top-color:#b2b2b2}.layui-table-sort .layui-table-sort-desc:hover{border-top-color:#666}.layui-table-sort[lay-sort=asc] .layui-table-sort-asc{border-bottom-color:#000}.layui-table-sort[lay-sort=desc] .layui-table-sort-desc{border-top-color:#000}.layui-table-cell{height:28px;line-height:28px;padding:0 15px;position:relative;box-sizing:border-box}.layui-table-cell .layui-form-checkbox[lay-skin=primary]{top:-1px;padding:0}.layui-table-cell .layui-table-link{color:#01AAED}.laytable-cell-checkbox,.laytable-cell-numbers,.laytable-cell-radio,.laytable-cell-space{padding:0;text-align:center}.layui-table-body{position:relative;overflow:auto;margin-right:-1px;margin-bottom:-1px}.layui-table-body .layui-none{line-height:26px;padding:15px;text-align:center;color:#999}.layui-table-fixed{position:absolute;left:0;top:0;z-index:101}.layui-table-fixed .layui-table-body{overflow:hidden}.layui-table-fixed-l{box-shadow:0 -1px 8px rgba(0,0,0,.08)}.layui-table-fixed-r{left:auto;right:-1px;border-width:0 0 0 1px;box-shadow:-1px 0 8px rgba(0,0,0,.08)}.layui-table-fixed-r .layui-table-header{position:relative;overflow:visible}.layui-table-mend{position:absolute;right:-49px;top:0;height:100%;width:50px}.layui-table-tool{position:relative;z-index:890;width:100%;min-height:50px;line-height:30px;padding:10px 15px;border-width:0 0 1px}.layui-table-tool .layui-btn-container{margin-bottom:-10px}.layui-table-page,.layui-table-total{border-width:1px 0 0;margin-bottom:-1px;overflow:hidden}.layui-table-page{position:relative;width:100%;padding:7px 7px 0;height:41px;font-size:12px;white-space:nowrap}.layui-table-page>div{height:26px}.layui-table-page .layui-laypage{margin:0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span{height:26px;line-height:26px;margin-bottom:10px;border:none;background:0 0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span.layui-laypage-curr{padding:0 12px}.layui-table-page .layui-laypage span{margin-left:0;padding:0}.layui-table-page .layui-laypage .layui-laypage-prev{margin-left:-7px!important}.layui-table-page .layui-laypage .layui-laypage-curr .layui-laypage-em{left:0;top:0;padding:0}.layui-table-page .layui-laypage button,.layui-table-page .layui-laypage input{height:26px;line-height:26px}.layui-table-page .layui-laypage input{width:40px}.layui-table-page .layui-laypage button{padding:0 10px}.layui-table-page select{height:18px}.layui-table-patch .layui-table-cell{padding:0;width:30px}.layui-table-edit{position:absolute;left:0;top:0;width:100%;height:100%;padding:0 14px 1px;border-radius:0;box-shadow:1px 1px 20px rgba(0,0,0,.15)}.layui-table-edit:focus{border-color:#5FB878!important}select.layui-table-edit{padding:0 0 0 10px;border-color:#C9C9C9}.layui-table-view .layui-form-checkbox,.layui-table-view .layui-form-radio,.layui-table-view .layui-form-switch{top:0;margin:0;box-sizing:content-box}.layui-table-view .layui-form-checkbox{top:-1px;height:26px;line-height:26px}.layui-table-view .layui-form-checkbox i{height:26px}.layui-table-grid .layui-table-cell{overflow:visible}.layui-table-grid-down{position:absolute;top:0;right:0;width:26px;height:100%;padding:5px 0;border-width:0 0 0 1px;text-align:center;background-color:#fff;color:#999;cursor:pointer}.layui-table-grid-down .layui-icon{position:absolute;top:50%;left:50%;margin:-8px 0 0 -8px}.layui-table-grid-down:hover{background-color:#fbfbfb}body .layui-table-tips .layui-layer-content{background:0 0;padding:0;box-shadow:0 1px 6px rgba(0,0,0,.12)}.layui-table-tips-main{margin:-44px 0 0 -1px;max-height:150px;padding:8px 15px;font-size:14px;overflow-y:scroll;background-color:#fff;color:#666}.layui-table-tips-c{position:absolute;right:-3px;top:-13px;width:20px;height:20px;padding:3px;cursor:pointer;background-color:#666;border-radius:50%;color:#fff}.layui-table-tips-c:hover{background-color:#777}.layui-table-tips-c:before{position:relative;right:-2px}.layui-upload-file{display:none!important;opacity:.01;filter:Alpha(opacity=1)}.layui-upload-drag,.layui-upload-form,.layui-upload-wrap{display:inline-block}.layui-upload-list{margin:10px 0}.layui-upload-choose{padding:0 10px;color:#999}.layui-upload-drag{position:relative;padding:30px;border:1px dashed #e2e2e2;background-color:#fff;text-align:center;cursor:pointer;color:#999}.layui-upload-drag .layui-icon{font-size:50px;color:#009688}.layui-upload-drag[lay-over]{border-color:#009688}.layui-upload-iframe{position:absolute;width:0;height:0;border:0;visibility:hidden}.layui-upload-wrap{position:relative;vertical-align:middle}.layui-upload-wrap .layui-upload-file{display:block!important;position:absolute;left:0;top:0;z-index:10;font-size:100px;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-transfer-active,.layui-transfer-box{display:inline-block;vertical-align:middle}.layui-transfer-box,.layui-transfer-header,.layui-transfer-search{border-width:0;border-style:solid;border-color:#e6e6e6}.layui-transfer-box{position:relative;border-width:1px;width:200px;height:360px;border-radius:2px;background-color:#fff}.layui-transfer-box .layui-form-checkbox{width:100%;margin:0!important}.layui-transfer-header{height:38px;line-height:38px;padding:0 10px;border-bottom-width:1px}.layui-transfer-search{position:relative;padding:10px;border-bottom-width:1px}.layui-transfer-search .layui-input{height:32px;padding-left:30px;font-size:12px}.layui-transfer-search .layui-icon-search{position:absolute;left:20px;top:50%;margin-top:-8px;color:#666}.layui-transfer-active{margin:0 15px}.layui-transfer-active .layui-btn{display:block;margin:0;padding:0 15px;background-color:#5FB878;border-color:#5FB878;color:#fff}.layui-transfer-active .layui-btn-disabled{background-color:#FBFBFB;border-color:#e6e6e6;color:#C9C9C9}.layui-transfer-active .layui-btn:first-child{margin-bottom:15px}.layui-transfer-active .layui-btn .layui-icon{margin:0;font-size:14px!important}.layui-transfer-data{padding:5px 0;overflow:auto}.layui-transfer-data li{height:32px;line-height:32px;padding:0 10px}.layui-transfer-data li:hover{background-color:#f2f2f2;transition:.5s all}.layui-transfer-data .layui-none{padding:15px 10px;text-align:center;color:#999}.layui-nav{position:relative;padding:0 20px;background-color:#393D49;color:#fff;border-radius:2px;font-size:0;box-sizing:border-box}.layui-nav *{font-size:14px}.layui-nav .layui-nav-item{position:relative;display:inline-block;*display:inline;*zoom:1;vertical-align:middle;line-height:60px}.layui-nav .layui-nav-item a{display:block;padding:0 20px;color:#fff;color:rgba(255,255,255,.7);transition:all .3s;-webkit-transition:all .3s}.layui-nav .layui-this:after,.layui-nav-bar,.layui-nav-tree .layui-nav-itemed:after{position:absolute;left:0;top:0;width:0;height:5px;background-color:#5FB878;transition:all .2s;-webkit-transition:all .2s}.layui-nav-bar{z-index:1000}.layui-nav .layui-nav-item a:hover,.layui-nav .layui-this a{color:#fff}.layui-nav .layui-this:after{content:'';top:auto;bottom:0;width:100%}.layui-nav-img{width:30px;height:30px;margin-right:10px;border-radius:50%}.layui-nav .layui-nav-more{content:'';width:0;height:0;border-style:solid dashed dashed;border-color:#fff transparent transparent;overflow:hidden;cursor:pointer;transition:all .2s;-webkit-transition:all .2s;position:absolute;top:50%;right:3px;margin-top:-3px;border-width:6px;border-top-color:rgba(255,255,255,.7)}.layui-nav .layui-nav-mored,.layui-nav-itemed>a .layui-nav-more{margin-top:-9px;border-style:dashed dashed solid;border-color:transparent transparent #fff}.layui-nav-child{display:none;position:absolute;left:0;top:65px;min-width:100%;line-height:36px;padding:5px 0;box-shadow:0 2px 4px rgba(0,0,0,.12);border:1px solid #d2d2d2;background-color:#fff;z-index:100;border-radius:2px;white-space:nowrap}.layui-nav .layui-nav-child a{color:#333}.layui-nav .layui-nav-child a:hover{background-color:#f2f2f2;color:#000}.layui-nav-child dd{position:relative}.layui-nav .layui-nav-child dd.layui-this a,.layui-nav-child dd.layui-this{background-color:#5FB878;color:#fff}.layui-nav-child dd.layui-this:after{display:none}.layui-nav-tree{width:200px;padding:0}.layui-nav-tree .layui-nav-item{display:block;width:100%;line-height:45px}.layui-nav-tree .layui-nav-item a{position:relative;height:45px;line-height:45px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-nav-tree .layui-nav-item a:hover{background-color:#4E5465}.layui-nav-tree .layui-nav-bar{width:5px;height:0;background-color:#009688}.layui-nav-tree .layui-nav-child dd.layui-this,.layui-nav-tree .layui-nav-child dd.layui-this a,.layui-nav-tree .layui-this,.layui-nav-tree .layui-this>a,.layui-nav-tree .layui-this>a:hover{background-color:#009688;color:#fff}.layui-nav-tree .layui-this:after{display:none}.layui-nav-itemed>a,.layui-nav-tree .layui-nav-title a,.layui-nav-tree .layui-nav-title a:hover{color:#fff!important}.layui-nav-tree .layui-nav-child{position:relative;z-index:0;top:0;border:none;box-shadow:none}.layui-nav-tree .layui-nav-child a{height:40px;line-height:40px;color:#fff;color:rgba(255,255,255,.7)}.layui-nav-tree .layui-nav-child,.layui-nav-tree .layui-nav-child a:hover{background:0 0;color:#fff}.layui-nav-tree .layui-nav-more{right:10px}.layui-nav-itemed>.layui-nav-child{display:block;padding:0;background-color:rgba(0,0,0,.3)!important}.layui-nav-itemed>.layui-nav-child>.layui-this>.layui-nav-child{display:block}.layui-nav-side{position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;z-index:999}.layui-bg-blue .layui-nav-bar,.layui-bg-blue .layui-nav-itemed:after,.layui-bg-blue .layui-this:after{background-color:#93D1FF}.layui-bg-blue .layui-nav-child dd.layui-this{background-color:#1E9FFF}.layui-bg-blue .layui-nav-itemed>a,.layui-nav-tree.layui-bg-blue .layui-nav-title a,.layui-nav-tree.layui-bg-blue .layui-nav-title a:hover{background-color:#007DDB!important}.layui-breadcrumb{font-size:0}.layui-breadcrumb>*{font-size:14px}.layui-breadcrumb a{color:#999!important}.layui-breadcrumb a:hover{color:#5FB878!important}.layui-breadcrumb a cite{color:#666;font-style:normal}.layui-breadcrumb span[lay-separator]{margin:0 10px;color:#999}.layui-tab{margin:10px 0;text-align:left!important}.layui-tab[overflow]>.layui-tab-title{overflow:hidden}.layui-tab-title{position:relative;left:0;height:40px;white-space:nowrap;font-size:0;border-bottom-width:1px;border-bottom-style:solid;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;font-size:14px;transition:all .2s;-webkit-transition:all .2s;position:relative;line-height:40px;min-width:65px;padding:0 15px;text-align:center;cursor:pointer}.layui-tab-title li a{display:block}.layui-tab-title .layui-this{color:#000}.layui-tab-title .layui-this:after{position:absolute;left:0;top:0;content:'';width:100%;height:41px;border-width:1px;border-style:solid;border-bottom-color:#fff;border-radius:2px 2px 0 0;box-sizing:border-box;pointer-events:none}.layui-tab-bar{position:absolute;right:0;top:0;z-index:10;width:30px;height:39px;line-height:39px;border-width:1px;border-style:solid;border-radius:2px;text-align:center;background-color:#fff;cursor:pointer}.layui-tab-bar .layui-icon{position:relative;display:inline-block;top:3px;transition:all .3s;-webkit-transition:all .3s}.layui-tab-item{display:none}.layui-tab-more{padding-right:30px;height:auto!important;white-space:normal!important}.layui-tab-more li.layui-this:after{border-bottom-color:#e2e2e2;border-radius:2px}.layui-tab-more .layui-tab-bar .layui-icon{top:-2px;top:3px\9;-webkit-transform:rotate(180deg);transform:rotate(180deg)}:root .layui-tab-more .layui-tab-bar .layui-icon{top:-2px\0/IE9}.layui-tab-content{padding:10px}.layui-tab-title li .layui-tab-close{position:relative;display:inline-block;width:18px;height:18px;line-height:20px;margin-left:8px;top:1px;text-align:center;font-size:14px;color:#c2c2c2;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li .layui-tab-close:hover{border-radius:2px;background-color:#FF5722;color:#fff}.layui-tab-brief>.layui-tab-title .layui-this{color:#009688}.layui-tab-brief>.layui-tab-more li.layui-this:after,.layui-tab-brief>.layui-tab-title .layui-this:after{border:none;border-radius:0;border-bottom:2px solid #5FB878}.layui-tab-brief[overflow]>.layui-tab-title .layui-this:after{top:-1px}.layui-tab-card{border-width:1px;border-style:solid;border-radius:2px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1)}.layui-tab-card>.layui-tab-title{background-color:#f2f2f2}.layui-tab-card>.layui-tab-title li{margin-right:-1px;margin-left:-1px}.layui-tab-card>.layui-tab-title .layui-this{background-color:#fff}.layui-tab-card>.layui-tab-title .layui-this:after{border-top:none;border-width:1px;border-bottom-color:#fff}.layui-tab-card>.layui-tab-title .layui-tab-bar{height:40px;line-height:40px;border-radius:0;border-top:none;border-right:none}.layui-tab-card>.layui-tab-more .layui-this{background:0 0;color:#5FB878}.layui-tab-card>.layui-tab-more .layui-this:after{border:none}.layui-timeline{padding-left:5px}.layui-timeline-item{position:relative;padding-bottom:20px}.layui-timeline-axis{position:absolute;left:-5px;top:0;z-index:10;width:20px;height:20px;line-height:20px;background-color:#fff;color:#5FB878;border-radius:50%;text-align:center;cursor:pointer}.layui-timeline-axis:hover{color:#FF5722}.layui-timeline-item:before{content:'';position:absolute;left:5px;top:0;z-index:0;width:1px;height:100%}.layui-timeline-item:last-child:before{display:none}.layui-timeline-item:first-child:before{display:block}.layui-timeline-content{padding-left:25px}.layui-timeline-title{position:relative;margin-bottom:10px}.layui-badge,.layui-badge-dot,.layui-badge-rim{position:relative;display:inline-block;padding:0 6px;font-size:12px;text-align:center;background-color:#FF5722;color:#fff;border-radius:2px}.layui-badge{height:18px;line-height:18px}.layui-badge-dot{width:8px;height:8px;padding:0;border-radius:50%}.layui-badge-rim{height:18px;line-height:18px;border-width:1px;border-style:solid;background-color:#fff;color:#666}.layui-btn .layui-badge,.layui-btn .layui-badge-dot{margin-left:5px}.layui-nav .layui-badge,.layui-nav .layui-badge-dot{position:absolute;top:50%;margin:-8px 6px 0}.layui-tab-title .layui-badge,.layui-tab-title .layui-badge-dot{left:5px;top:-2px}.layui-carousel{position:relative;left:0;top:0;background-color:#f8f8f8}.layui-carousel>[carousel-item]{position:relative;width:100%;height:100%;overflow:hidden}.layui-carousel>[carousel-item]:before{position:absolute;content:'\e63d';left:50%;top:50%;width:100px;line-height:20px;margin:-10px 0 0 -50px;text-align:center;color:#c2c2c2;font-family:layui-icon!important;font-size:30px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-carousel>[carousel-item]>*{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f8f8f8;transition-duration:.3s;-webkit-transition-duration:.3s}.layui-carousel-updown>*{-webkit-transition:.3s ease-in-out up;transition:.3s ease-in-out up}.layui-carousel-arrow{display:none\9;opacity:0;position:absolute;left:10px;top:50%;margin-top:-18px;width:36px;height:36px;line-height:36px;text-align:center;font-size:20px;border:0;border-radius:50%;background-color:rgba(0,0,0,.2);color:#fff;-webkit-transition-duration:.3s;transition-duration:.3s;cursor:pointer}.layui-carousel-arrow[lay-type=add]{left:auto!important;right:10px}.layui-carousel:hover .layui-carousel-arrow[lay-type=add],.layui-carousel[lay-arrow=always] .layui-carousel-arrow[lay-type=add]{right:20px}.layui-carousel[lay-arrow=always] .layui-carousel-arrow{opacity:1;left:20px}.layui-carousel[lay-arrow=none] .layui-carousel-arrow{display:none}.layui-carousel-arrow:hover,.layui-carousel-ind ul:hover{background-color:rgba(0,0,0,.35)}.layui-carousel:hover .layui-carousel-arrow{display:block\9;opacity:1;left:20px}.layui-carousel-ind{position:relative;top:-35px;width:100%;line-height:0!important;text-align:center;font-size:0}.layui-carousel[lay-indicator=outside]{margin-bottom:30px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind{top:10px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind ul{background-color:rgba(0,0,0,.5)}.layui-carousel[lay-indicator=none] .layui-carousel-ind{display:none}.layui-carousel-ind ul{display:inline-block;padding:5px;background-color:rgba(0,0,0,.2);border-radius:10px;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li{display:inline-block;width:10px;height:10px;margin:0 3px;font-size:14px;background-color:#e2e2e2;background-color:rgba(255,255,255,.5);border-radius:50%;cursor:pointer;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li:hover{background-color:rgba(255,255,255,.7)}.layui-carousel-ind li.layui-this{background-color:#fff}.layui-carousel>[carousel-item]>.layui-carousel-next,.layui-carousel>[carousel-item]>.layui-carousel-prev,.layui-carousel>[carousel-item]>.layui-this{display:block}.layui-carousel>[carousel-item]>.layui-this{left:0}.layui-carousel>[carousel-item]>.layui-carousel-prev{left:-100%}.layui-carousel>[carousel-item]>.layui-carousel-next{left:100%}.layui-carousel>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel>[carousel-item]>.layui-carousel-prev.layui-carousel-right{left:0}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-left{left:-100%}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-right{left:100%}.layui-carousel[lay-anim=updown] .layui-carousel-arrow{left:50%!important;top:20px;margin:0 0 0 -18px}.layui-carousel[lay-anim=updown]>[carousel-item]>*,.layui-carousel[lay-anim=fade]>[carousel-item]>*{left:0!important}.layui-carousel[lay-anim=updown] .layui-carousel-arrow[lay-type=add]{top:auto!important;bottom:20px}.layui-carousel[lay-anim=updown] .layui-carousel-ind{position:absolute;top:50%;right:20px;width:auto;height:auto}.layui-carousel[lay-anim=updown] .layui-carousel-ind ul{padding:3px 5px}.layui-carousel[lay-anim=updown] .layui-carousel-ind li{display:block;margin:6px 0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next{top:100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-left{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-right{top:100%}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev{opacity:0}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{opacity:1}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-right{opacity:0}.layui-fixbar{position:fixed;right:15px;bottom:15px;z-index:999999}.layui-fixbar li{width:50px;height:50px;line-height:50px;margin-bottom:1px;text-align:center;cursor:pointer;font-size:30px;background-color:#9F9F9F;color:#fff;border-radius:2px;opacity:.95}.layui-fixbar li:hover{opacity:.85}.layui-fixbar li:active{opacity:1}.layui-fixbar .layui-fixbar-top{display:none;font-size:40px}body .layui-util-face{border:none;background:0 0}body .layui-util-face .layui-layer-content{padding:0;background-color:#fff;color:#666;box-shadow:none}.layui-util-face .layui-layer-TipsG{display:none}.layui-util-face ul{position:relative;width:372px;padding:10px;border:1px solid #D9D9D9;background-color:#fff;box-shadow:0 0 20px rgba(0,0,0,.2)}.layui-util-face ul li{cursor:pointer;float:left;border:1px solid #e8e8e8;height:22px;width:26px;overflow:hidden;margin:-1px 0 0 -1px;padding:4px 2px;text-align:center}.layui-util-face ul li:hover{position:relative;z-index:2;border:1px solid #eb7350;background:#fff9ec}.layui-code{position:relative;margin:10px 0;padding:15px;line-height:20px;border:1px solid #ddd;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New;font-size:12px}.layui-rate,.layui-rate *{display:inline-block;vertical-align:middle}.layui-rate{padding:10px 5px 10px 0;font-size:0}.layui-rate li i.layui-icon{font-size:20px;color:#FFB800;margin-right:5px;transition:all .3s;-webkit-transition:all .3s}.layui-rate li i:hover{cursor:pointer;transform:scale(1.12);-webkit-transform:scale(1.12)}.layui-rate[readonly] li i:hover{cursor:default;transform:scale(1)}.layui-colorpicker{width:26px;height:26px;border:1px solid #e6e6e6;padding:5px;border-radius:2px;line-height:24px;display:inline-block;cursor:pointer;transition:all .3s;-webkit-transition:all .3s}.layui-colorpicker:hover{border-color:#d2d2d2}.layui-colorpicker.layui-colorpicker-lg{width:34px;height:34px;line-height:32px}.layui-colorpicker.layui-colorpicker-sm{width:24px;height:24px;line-height:22px}.layui-colorpicker.layui-colorpicker-xs{width:22px;height:22px;line-height:20px}.layui-colorpicker-trigger-bgcolor{display:block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);border-radius:2px}.layui-colorpicker-trigger-span{display:block;height:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,.15);border-radius:2px;text-align:center}.layui-colorpicker-trigger-i{display:inline-block;color:#FFF;font-size:12px}.layui-colorpicker-trigger-i.layui-icon-close{color:#999}.layui-colorpicker-main{position:absolute;z-index:66666666;width:280px;padding:7px;background:#FFF;border:1px solid #d2d2d2;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-colorpicker-main-wrapper{height:180px;position:relative}.layui-colorpicker-basis{width:260px;height:100%;position:relative}.layui-colorpicker-basis-white{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(90deg,#FFF,hsla(0,0%,100%,0))}.layui-colorpicker-basis-black{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(0deg,#000,transparent)}.layui-colorpicker-basis-cursor{width:10px;height:10px;border:1px solid #FFF;border-radius:50%;position:absolute;top:-3px;right:-3px;cursor:pointer}.layui-colorpicker-side{position:absolute;top:0;right:0;width:12px;height:100%;background:linear-gradient(red,#FF0,#0F0,#0FF,#00F,#F0F,red)}.layui-colorpicker-side-slider{width:100%;height:5px;box-shadow:0 0 1px #888;box-sizing:border-box;background:#FFF;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;left:0}.layui-colorpicker-main-alpha{display:none;height:12px;margin-top:7px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-alpha-bgcolor{height:100%;position:relative}.layui-colorpicker-alpha-slider{width:5px;height:100%;box-shadow:0 0 1px #888;box-sizing:border-box;background:#FFF;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;top:0}.layui-colorpicker-main-pre{padding-top:7px;font-size:0}.layui-colorpicker-pre{width:20px;height:20px;border-radius:2px;display:inline-block;margin-left:6px;margin-bottom:7px;cursor:pointer}.layui-colorpicker-pre:nth-child(11n+1){margin-left:0}.layui-colorpicker-pre-isalpha{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-pre.layui-this{box-shadow:0 0 3px 2px rgba(0,0,0,.15)}.layui-colorpicker-pre>div{height:100%;border-radius:2px}.layui-colorpicker-main-input{text-align:right;padding-top:7px}.layui-colorpicker-main-input .layui-btn-container .layui-btn{margin:0 0 0 10px}.layui-colorpicker-main-input div.layui-inline{float:left;margin-right:10px;font-size:14px}.layui-colorpicker-main-input input.layui-input{width:150px;height:30px;color:#666}.layui-slider{height:4px;background:#e2e2e2;border-radius:3px;position:relative;cursor:pointer}.layui-slider-bar{border-radius:3px;position:absolute;height:100%}.layui-slider-step{position:absolute;top:0;width:4px;height:4px;border-radius:50%;background:#FFF;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.layui-slider-wrap{width:36px;height:36px;position:absolute;top:-16px;-webkit-transform:translateX(-50%);transform:translateX(-50%);z-index:10;text-align:center}.layui-slider-wrap-btn{width:12px;height:12px;border-radius:50%;background:#FFF;display:inline-block;vertical-align:middle;cursor:pointer;transition:.3s}.layui-slider-wrap:after{content:"";height:100%;display:inline-block;vertical-align:middle}.layui-slider-wrap-btn.layui-slider-hover,.layui-slider-wrap-btn:hover{transform:scale(1.2)}.layui-slider-wrap-btn.layui-disabled:hover{transform:scale(1)!important}.layui-slider-tips{position:absolute;top:-42px;z-index:66666666;white-space:nowrap;display:none;-webkit-transform:translateX(-50%);transform:translateX(-50%);color:#FFF;background:#000;border-radius:3px;height:25px;line-height:25px;padding:0 10px}.layui-slider-tips:after{content:'';position:absolute;bottom:-12px;left:50%;margin-left:-6px;width:0;height:0;border-width:6px;border-style:solid;border-color:#000 transparent transparent}.layui-slider-input{width:70px;height:32px;border:1px solid #e6e6e6;border-radius:3px;font-size:16px;line-height:32px;position:absolute;right:0;top:-15px}.layui-slider-input-btn{display:none;position:absolute;top:0;right:0;width:20px;height:100%;border-left:1px solid #d2d2d2}.layui-slider-input-btn i{cursor:pointer;position:absolute;right:0;bottom:0;width:20px;height:50%;font-size:12px;line-height:16px;text-align:center;color:#999}.layui-slider-input-btn i:first-child{top:0;border-bottom:1px solid #d2d2d2}.layui-slider-input-txt{height:100%;font-size:14px}.layui-slider-input-txt input{height:100%;border:none}.layui-slider-input-btn i:hover{color:#009688}.layui-slider-vertical{width:4px;margin-left:34px}.layui-slider-vertical .layui-slider-bar{width:4px}.layui-slider-vertical .layui-slider-step{top:auto;left:0;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-wrap{top:auto;left:-16px;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-tips{top:auto;left:2px}@media \0screen{.layui-slider-wrap-btn{margin-left:-20px}.layui-slider-vertical .layui-slider-wrap-btn{margin-left:0;margin-bottom:-20px}.layui-slider-vertical .layui-slider-tips{margin-left:-8px}.layui-slider>span{margin-left:8px}}.layui-tree{line-height:22px}.layui-tree .layui-form-checkbox{margin:0!important}.layui-tree-set{width:100%;position:relative}.layui-tree-pack{display:none;padding-left:20px;position:relative}.layui-tree-iconClick,.layui-tree-main{display:inline-block;vertical-align:middle}.layui-tree-line .layui-tree-pack{padding-left:27px}.layui-tree-line .layui-tree-set .layui-tree-set:after{content:'';position:absolute;top:14px;left:-9px;width:17px;height:0;border-top:1px dotted #c0c4cc}.layui-tree-entry{position:relative;padding:3px 0;height:20px;white-space:nowrap}.layui-tree-entry:hover{background-color:#eee}.layui-tree-line .layui-tree-entry:hover{background-color:rgba(0,0,0,0)}.layui-tree-line .layui-tree-entry:hover .layui-tree-txt{color:#999;text-decoration:underline;transition:.3s}.layui-tree-main{cursor:pointer;padding-right:10px}.layui-tree-line .layui-tree-set:before{content:'';position:absolute;top:0;left:-9px;width:0;height:100%;border-left:1px dotted #c0c4cc}.layui-tree-line .layui-tree-set.layui-tree-setLineShort:before{height:13px}.layui-tree-line .layui-tree-set.layui-tree-setHide:before{height:0}.layui-tree-iconClick{position:relative;height:20px;line-height:20px;margin:0 10px;color:#c0c4cc}.layui-tree-icon{height:12px;line-height:12px;width:12px;text-align:center;border:1px solid #c0c4cc}.layui-tree-iconClick .layui-icon{font-size:18px}.layui-tree-icon .layui-icon{font-size:12px;color:#666}.layui-tree-iconArrow{padding:0 5px}.layui-tree-iconArrow:after{content:'';position:absolute;left:4px;top:3px;z-index:100;width:0;height:0;border-width:5px;border-style:solid;border-color:transparent transparent transparent #c0c4cc;transition:.5s}.layui-tree-btnGroup,.layui-tree-editInput{position:relative;vertical-align:middle;display:inline-block}.layui-tree-spread>.layui-tree-entry>.layui-tree-iconClick>.layui-tree-iconArrow:after{transform:rotate(90deg) translate(3px,4px)}.layui-tree-txt{display:inline-block;vertical-align:middle;color:#555}.layui-tree-search{margin-bottom:15px;color:#666}.layui-tree-btnGroup .layui-icon{display:inline-block;vertical-align:middle;padding:0 2px;cursor:pointer}.layui-tree-btnGroup .layui-icon:hover{color:#999;transition:.3s}.layui-tree-entry:hover .layui-tree-btnGroup{visibility:visible}.layui-tree-editInput{height:20px;line-height:20px;padding:0 3px;border:none;background-color:rgba(0,0,0,.05)}.layui-tree-emptyText{text-align:center;color:#999}.layui-anim{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-anim.layui-icon{display:inline-block}.layui-anim-loop{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.layui-trans,.layui-trans a{transition:all .3s;-webkit-transition:all .3s}@-webkit-keyframes layui-rotate{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}@keyframes layui-rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.layui-anim-rotate{-webkit-animation-name:layui-rotate;animation-name:layui-rotate;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes layui-up{from{-webkit-transform:translate3d(0,100%,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-up{from{transform:translate3d(0,100%,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-up{-webkit-animation-name:layui-up;animation-name:layui-up}@-webkit-keyframes layui-upbit{from{-webkit-transform:translate3d(0,30px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-upbit{from{transform:translate3d(0,30px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-upbit{-webkit-animation-name:layui-upbit;animation-name:layui-upbit}@-webkit-keyframes layui-scale{0%{opacity:.3;-webkit-transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale{0%{opacity:.3;-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-ms-transform:scale(1);transform:scale(1)}}.layui-anim-scale{-webkit-animation-name:layui-scale;animation-name:layui-scale}@-webkit-keyframes layui-scale-spring{0%{opacity:.5;-webkit-transform:scale(.5)}80%{opacity:.8;-webkit-transform:scale(1.1)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale-spring{0%{opacity:.5;transform:scale(.5)}80%{opacity:.8;transform:scale(1.1)}100%{opacity:1;transform:scale(1)}}.layui-anim-scaleSpring{-webkit-animation-name:layui-scale-spring;animation-name:layui-scale-spring}@-webkit-keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}@keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}.layui-anim-fadein{-webkit-animation-name:layui-fadein;animation-name:layui-fadein}@-webkit-keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}.layui-anim-fadeout{-webkit-animation-name:layui-fadeout;animation-name:layui-fadeout}
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/admin.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/carousel.js
@@ -1,2 +1,2 @@
/** layui-v2.5.4 MIT License By https://www.layui.com */
 ;layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(clearInterval(e.timer),e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['<button class="layui-icon '+u+'" lay-type="sub">'+("updown"===n.anim?"&#xe619;":"&#xe603;")+"</button>",'<button class="layui-icon '+u+'" lay-type="add">'+("updown"===n.anim?"&#xe61a;":"&#xe602;")+"</button>"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['<div class="'+c+'"><ul>',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("<li"+(n.index===e?' class="layui-this"':"")+"></li>")}),i.join("")}(),"</ul></div>"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a<n.index&&e.slide("sub",n.index-a)})},m.prototype.slide=function(e,i){var n=this,l=n.elemItem,u=n.config,c=u.index,m=u.elem.attr("lay-filter");n.haveSlide||("sub"===e?(n.subIndex(i),l.eq(u.index).addClass(d),setTimeout(function(){l.eq(c).addClass(r),l.eq(u.index).addClass(r)},50)):(n.addIndex(i),l.eq(u.index).addClass(s),setTimeout(function(){l.eq(c).addClass(o),l.eq(u.index).addClass(o)},50)),setTimeout(function(){l.removeClass(a+" "+d+" "+s+" "+o+" "+r),l.eq(u.index).addClass(a),n.haveSlide=!1},300),n.elemInd.find("li").eq(u.index).addClass(a).siblings().removeClass(a),n.haveSlide=!0,layui.event.call(this,t,"change("+m+")",{index:u.index,prevIndex:c,item:l.eq(u.index)}))},m.prototype.events=function(){var e=this,i=e.config;i.elem.data("haveEvents")||(i.elem.on("mouseenter",function(){clearInterval(e.timer)}).on("mouseleave",function(){e.autoplay()}),i.elem.data("haveEvents",!0))},n.render=function(e){var i=new m(e);return i},e(t,n)});
 ;layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"100%",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(clearInterval(e.timer),e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['<button class="layui-icon '+u+'" lay-type="sub">'+("updown"===n.anim?"&#xe619;":"&#xe603;")+"</button>",'<button class="layui-icon '+u+'" lay-type="add">'+("updown"===n.anim?"&#xe61a;":"&#xe602;")+"</button>"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['<div class="'+c+'"><ul>',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("<li"+(n.index===e?' class="layui-this"':"")+"></li>")}),i.join("")}(),"</ul></div>"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a<n.index&&e.slide("sub",n.index-a)})},m.prototype.slide=function(e,i){var n=this,l=n.elemItem,u=n.config,c=u.index,m=u.elem.attr("lay-filter");n.haveSlide||("sub"===e?(n.subIndex(i),l.eq(u.index).addClass(d),setTimeout(function(){l.eq(c).addClass(r),l.eq(u.index).addClass(r)},50)):(n.addIndex(i),l.eq(u.index).addClass(s),setTimeout(function(){l.eq(c).addClass(o),l.eq(u.index).addClass(o)},50)),setTimeout(function(){l.removeClass(a+" "+d+" "+s+" "+o+" "+r),l.eq(u.index).addClass(a),n.haveSlide=!1},300),n.elemInd.find("li").eq(u.index).addClass(a).siblings().removeClass(a),n.haveSlide=!0,layui.event.call(this,t,"change("+m+")",{index:u.index,prevIndex:c,item:l.eq(u.index)}))},m.prototype.events=function(){var e=this,i=e.config;i.elem.data("haveEvents")||(i.elem.on("mouseenter",function(){clearInterval(e.timer)}).on("mouseleave",function(){e.autoplay()}),i.elem.data("haveEvents",!0))},n.render=function(e){var i=new m(e);return i},e(t,n)});
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/contextMenu.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/index.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/1.wav
Binary files differ
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/2.wav
Binary files differ
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/3.wav
Binary files differ
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/4.wav
Binary files differ
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/5.wav
Binary files differ
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/6.wav
Binary files differ
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/notice.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/notice/notice.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/tableMerge.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/tableX.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/treeTable.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layui/lay/modules/xmSelect.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layui/layer_mobile/layer.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layui/layer_mobile/need/layer.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/config.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/console/prograss.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/console/top-card.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/console/top-search.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/content/comment.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/content/list.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/content/tags.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/forum/list.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/forum/replys.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/layer/photos.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/layim/getList.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/layim/getMembers.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/mall/order.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/menu.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/menu1.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/message/all.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/message/detail.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/message/direct.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/message/new.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/message/notice.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/table/demo.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/table/demo2.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/table/user.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/table/user30.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/upload/demo.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/user/forget.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/user/login.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/user/logout.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/user/reg.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/user/resetpass.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/user/session.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/user/sms.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/useradmin/mangadmin.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/useradmin/role.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/useradmin/webuser.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/workorder/demo.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/json/˵Ã÷.txt
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/layui.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/layui.mobile.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/code.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/laydate/default/font.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/laydate/default/laydate.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layer/default/icon-ext.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layer/default/icon.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layer/default/layer.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layer/default/loading-0.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layer/default/loading-1.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layer/default/loading-2.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/html/chatlog.html
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/html/find.html
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/html/getmsg.json
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/html/msgbox.html
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/layim.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/mobile/layim.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/skin/1.jpg
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/skin/2.jpg
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/skin/3.jpg
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/skin/4.jpg
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/skin/5.jpg
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/skin/logo.jpg
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/css/modules/layim/voice/default.mp3
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/font/iconfont.eot
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/font/iconfont.svg
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/font/iconfont.ttf
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/font/iconfont.woff
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/0.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/1.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/10.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/11.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/12.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/13.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/14.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/15.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/16.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/17.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/18.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/19.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/2.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/20.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/21.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/22.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/23.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/24.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/25.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/26.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/27.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/28.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/29.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/3.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/30.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/31.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/32.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/33.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/34.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/35.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/36.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/37.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/38.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/39.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/4.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/40.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/41.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/42.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/43.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/44.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/45.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/46.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/47.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/48.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/49.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/5.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/50.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/51.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/52.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/53.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/54.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/55.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/56.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/57.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/58.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/59.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/6.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/60.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/61.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/62.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/63.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/64.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/65.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/66.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/67.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/68.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/69.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/7.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/70.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/71.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/8.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/images/face/9.gif
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/all-mobile.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/all.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/carousel.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/code.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/element.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/flow.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/form.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/jquery.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/laydate.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/layedit.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/layer.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/layim.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/laypage.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/laytpl.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/mobile.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/mobile/layer-mobile.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/mobile/layim-mobile-open.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/mobile/layim-mobile.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/mobile/upload-mobile.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/mobile/zepto.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/rate.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/table.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/tree.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/upload.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/lay/modules/util.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/layui.all.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/layui/layui.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/lib/admin.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/lib/extend/echarts.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/lib/extend/echartsTheme.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/lib/index.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/lib/view.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/common.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/console.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/contlist.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/forum.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/im.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/message.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/sample.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/senior.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/set.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/user.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/useradmin.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/modules/workorder.js
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/admin.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/login.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/res/bg-none.jpg
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/res/layui-logo.jpg
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/res/logo-black.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/res/logo.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/res/template/character.jpg
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/res/template/huge.jpg
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/res/template/portrait.png
Binary files differ
zy-asrs-wms/src/main/webapp/static/layuiadmin/style/template.css
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/tpl/layim/demo.html
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/tpl/system/about.html
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/tpl/system/get.html
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/tpl/system/more.html
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/tpl/system/theme.html
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/tpl/system/˵Ã÷.txt
File was deleted
zy-asrs-wms/src/main/webapp/static/layuiadmin/tpl/˵Ã÷.txt
File was deleted
zy-asrs-wms/src/main/webapp/views/404.html
File was deleted
zy-asrs-wms/src/main/webapp/views/adjDetl/adjDetl.html
File was deleted
zy-asrs-wms/src/main/webapp/views/adjDetl/adjDetl_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/basBarcode/basBarcode.html
File was deleted
zy-asrs-wms/src/main/webapp/views/basDevp/basDevp.html
File was deleted
zy-asrs-wms/src/main/webapp/views/basDevp/basDevp_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/basLocSts/basLocSts.html
File was deleted
zy-asrs-wms/src/main/webapp/views/basWhs/basWhs.html
File was deleted
zy-asrs-wms/src/main/webapp/views/basWrkIotype/basWrkIotype.html
File was deleted
zy-asrs-wms/src/main/webapp/views/basWrkStatus/basWrkStatus.html
File was deleted
zy-asrs-wms/src/main/webapp/views/car_vue.html
zy-asrs-wms/src/main/webapp/views/config/config.html
File was deleted
zy-asrs-wms/src/main/webapp/views/config/config_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/console.html
zy-asrs-wms/src/main/webapp/views/console2.html
zy-asrs-wms/src/main/webapp/views/control.html
zy-asrs-wms/src/main/webapp/views/crn.html
zy-asrs-wms/src/main/webapp/views/cstmr/cstmr.html
File was deleted
zy-asrs-wms/src/main/webapp/views/detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/docType/docType.html
File was deleted
zy-asrs-wms/src/main/webapp/views/errorWrkMast/errorWrkMast.html
File was deleted
zy-asrs-wms/src/main/webapp/views/handWrkMast/handWrkMast.html
File was deleted
zy-asrs-wms/src/main/webapp/views/handWrkMast/wrkDetlLog.html
File was deleted
zy-asrs-wms/src/main/webapp/views/home/console.html
File was deleted
zy-asrs-wms/src/main/webapp/views/home/css/app.7cc7872b.css
File was deleted
zy-asrs-wms/src/main/webapp/views/home/js/app.e3dc6995.js
File was deleted
zy-asrs-wms/src/main/webapp/views/home/js/app.e3dc6995.js.map
File was deleted
zy-asrs-wms/src/main/webapp/views/home/js/chunk-vendors.9ed0ec45.js
File was deleted
zy-asrs-wms/src/main/webapp/views/home/js/chunk-vendors.9ed0ec45.js.map
File was deleted
zy-asrs-wms/src/main/webapp/views/home/map.html
File was deleted
zy-asrs-wms/src/main/webapp/views/home/map_edit.html
File was deleted
zy-asrs-wms/src/main/webapp/views/home/navigation.html
File was deleted
zy-asrs-wms/src/main/webapp/views/host/host.html
File was deleted
zy-asrs-wms/src/main/webapp/views/index.html
@@ -1,273 +1,97 @@
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>中扬 - è‡ªåŠ¨åŒ–ç«‹ä½“ä»“åº“ - AS / RS</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.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  <link rel="icon" type="image/x-icon" href="../static/image/favicon.ico" />
  <link rel="stylesheet" href="../static/layui/css/layui.css" media="all">
  <link rel="stylesheet" href="../static/css/admin.css?v=318" media="all">
  <link rel="stylesheet" href="../static/css/loader.css" media="all">
  <link rel="stylesheet" href="../static/css/originTable.css" media="all">
  <style>
    .layui-logo img {
      width: 25px;
    }
    .layui-logo cite {
      font-size: 18px;
      font-weight: 400;
      /*margin-left: 5px;*/
    }
  </style>
    <meta charset="utf-8">
    <title>自动仓库WCS系统</title>
    <link rel="stylesheet" href="../static/css/index.css">
    <link rel="stylesheet" href="../static/css/layx.min.css" type="text/css" />
    <script src="../static/js/jquery/jquery-3.3.1.min.js"></script>
    <script src="../static/js/tools/layx.min.js"></script>
    <style>
        .layx-window.layx-skin-news .layx-control-bar {
            background-color: #333333;
        }
    </style>
</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
  <!-- å¤´éƒ¨ -->
  <div class="layui-header">
    <div class="layui-logo">
      <img src="../static/image/logo.png" style="display: inline-block; width: 60%;height: auto">
      <!--          <span style="margin-top: 0; letter-spacing: 10px">中扬立库</span>-->
      <!--          <img src="../static/image/logo.svg"/>-->
      <!--          <cite>中扬 - Zoneyung</cite>-->
<body>
<!-- å¯¼èˆªæ  -->
<div class="sidebar">
    <div class="nav">
        <ul class="cl-effect-4">
            <li><a id="console" onclick="nav(this.id)" class="nav-select" href="#">主控图</a></li>
            <li><a id="pipeline" onclick="nav(this.id)" class="nav-unselect" href="#">输送设备</a></li>
            <li><a id="lift" onclick="nav(this.id)" class="nav-unselect" href="#">提升机</a></li>
<!--            <li><a id="ste" onclick="nav(this.id)" class="nav-unselect" href="#">穿梭车</a></li>-->
            <li><a id="shuttle" onclick="nav(this.id)" class="nav-unselect" href="#">四向穿梭车</a></li>
        </ul>
    </div>
    <ul class="layui-nav layui-layout-left">
      <li class="layui-nav-item" lay-unselect>
        <a ew-event="flexible" title="侧边伸缩"><i class="layui-icon layui-icon-shrink-right"></i></a>
      </li>
      <li class="layui-nav-item" lay-unselect>
        <a ew-event="refresh" title="刷新"><i class="layui-icon layui-icon-refresh-3"></i></a>
      </li>
    </ul>
    <ul class="layui-nav layui-layout-right">
      <li class="layui-nav-item" lay-unselect>
        <a id="hostName"></a>
      </li>
<!--      <li class="layui-nav-item" lay-unselect>-->
<!--        <a ew-event="note" title="便签"><i class="layui-icon layui-icon-note"></i></a>-->
<!--      </li>-->
      <li class="layui-nav-item layui-hide-xs" lay-unselect>
        <a ew-event="fullScreen" title="全屏"><i class="layui-icon layui-icon-screen-full"></i></a>
      </li>
      <li class="layui-nav-item" lay-unselect>
        <a>
          <cite id="username" style="margin-right: 5px">管理员</cite>
        </a>
        <dl class="layui-nav-child">
          <dd lay-unselect><a ew-href="detail.html?resourceId=8">基本资料</a></dd>
          <hr>
          <dd lay-unselect><a id="logout">退出</a></dd>
        </dl>
      </li>
      <li class="layui-nav-item" lay-unselect>
        <a ew-event="theme" title="主题"><i class="layui-icon layui-icon-more-vertical"></i></a>
      </li>
    </ul>
  </div>
  <!-- ä¾§è¾¹æ  -->
  <div class="layui-side">
    <div class="layui-side-scroll">
      <ul id="menu-main" class="layui-nav layui-nav-tree arrow2" lay-filter="admin-side-nav" lay-shrink="_all">
      </ul>
    </div>
  </div>
  <!-- ä¸»ä½“部分 -->
  <div class="layui-body"></div>
  <!-- åº•部 -->
  <div class="layui-footer layui-text">
    copyright Â© 2024 <a href="http://www.zoneyung.com" target="_blank">浙江中扬立库技术有限公司</a> all rights reserved.
    <span class="pull-right">Version 1.0.0</span>
  </div>
</div>
<!--初始化加载层-->
<div class="layuimini-loader">
  <div class="layuimini-loader-inner"></div>
</div>
<script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../static/layui/layui.js"></script>
<script type="text/javascript" src="../static/js/handlebars/handlebars-v4.5.3.js"></script>
<script type="text/javascript" src="../static/js/common.js"></script>
<script>
  console.log('%c ä¸­æ‰¬ç«‹åº“平台 %c 1.0.0','background-color:rgb(53,73,94);color: #fff;border-radius:2px 0 0 2px;padding:2px 4px;','background-color:rgb(25,190,107);color: #fff;border-radius:0 2px 2px 0;padding:2px 4px;font: 9pt "Apercu Regular", Georgia, "Times New Roman", Times, serif;');
  $(function () {
    if ("" === localStorage.getItem('token')) {
      top.location.href = baseUrl + "/login";
    }
  });
  layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
  }).extend({
    notice: 'notice/notice',
  }).use(['index', 'element', 'layer', 'admin', 'notice', 'table'], function () {
    var $ = layui.jquery;
    var index = layui.index;
    var element = layui.element;
    var layer = layui.layer;
    var admin = layui.admin;
    var notice = layui.notice;
    var table = layui.table;
    var easywebIframeMsg = localStorage.getItem("easyweb-iframe");
    if (!isEmpty(easywebIframeMsg)) {
      var easywebIframeObj = JSON.parse(easywebIframeMsg);
      if (easywebIframeObj.defaultTheme === undefined) {
        admin.changeTheme("theme-colorful");
      }
    }
    $.ajax({
      url: baseUrl + "/menu/auth",
      headers: {'token': localStorage.getItem('token')},
      method: 'POST',
      // async: false,
      success: function (res) {
        // å…³é—­åŠ è½½åŠ¨ç”»
        $('.layuimini-loader').fadeOut();
        if (res.code === 200) {
          var tpl = $('#menuTpl').html();
          var template = Handlebars.compile(tpl);
          var html = template(res);
          $("#menu-main").html(html);
          element.init();
        } else if (res.code === 403) {
          top.location.href = baseUrl + "/login";
        } else {
          layer.msg(res.msg, {icon: 2});
        }
      }
    });
    // æ£€æµ‹æ˜¯å¦ä¸ºè¶…级管理员
    $.ajax({
      url: baseUrl + "/show/host.action",
      headers: {'token': localStorage.getItem('token')},
      method: 'GET',
      success: function (res) {
        if (res.code === 200) {
          if (!isEmpty(res.data.hostName)) {
            $('#hostName').text(res.data.hostName);
          }
          if (res.data.root) {
            showHost();
          }
        } else if (res.code === 403) {
          top.location.href = baseUrl + "/login";
        } else {
          layer.msg(res.msg, {icon: 2});
        }
      }
    });
    // é»˜è®¤åŠ è½½ä¸»é¡µ
    index.loadHome({
      menuPath: baseUrl + '/views/home/navigation.html',
      menuName: '<i class="layui-icon layui-icon-home"></i>'
    });
    $('#username').text(localStorage.getItem('username'));
    $(document).on('click', '#logout', function () {
      window.location.href = "login.html";
      localStorage.removeItem('token');
      localStorage.removeItem('username');
      admin.closeAllTabs();
    });
    // æ›¿æ¢é€€å‡ºæŒ‰é’®å˜é‡
    var logout = document.getElementById('logout');
    var url = logout.getAttribute('href');
    logout.setAttribute('href', baseUrl + "/login");
    // å¤šä»“库模式
    function showHost() {
      // var dele = layer.msg('正在删除', {icon: 16, time: 10000}, function(){
      //     layer.msg('成功删除', {icon: 1})
      // });
      admin.open({
        type: 1,
        title: '仓库选择',
        area: '250px',
        offset: 'r',
        shade: false,
        shadeClose: true,
        content: '<table id="originTable" lay-filter="originTable"></table>',
        success: function (layero) {
          var insTb = table.render({
            elem: '#originTable',
            url: baseUrl + '/host/list/auth',
            height: 'full-500',
            headers: {token: localStorage.getItem('token')},
            request: {
              pageName: 'curr',
              pageSize: 'limit'
            },
            parseData: function (res) {
              return {
                'code': res.code,
                'msg': res.msg,
                'count': res.data.total,
                'data': res.data.records
              }
            },
            response: {
              statusCode: 200
            },
            defaultToolbar: [],
            cols: [[
              {field: 'id', title: '编号', width: 70, align: 'center'},
              {field: 'name', title: '项目名称'}
            ]],
            done: function (res, curr, count) {
              $('.layui-table, .layui-table-view').css("margin", 0);
              // $('#originTable+.layui-table-view .layui-table-body tbody>tr:first').trigger('click');
            }
          });
          /* ç›‘听行单击事件 */
          table.on('row(originTable)', function (obj) {
            obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click');
            // æ£€æµ‹æ˜¯å¦ä¸ºè¶…级管理员
            $.ajax({
              url: baseUrl + "/root/change/host/auth?hostId=" + obj.data.id,
              headers: {'token': localStorage.getItem('token')},
              method: 'GET',
              success: function (res) {
                if (res.code === 200) {
                  window.location.reload();
                } else if (res.code === 403) {
                  top.location.href = baseUrl + "/login";
                } else {
                  layer.msg(res.msg, {icon: 2});
                }
              }
            });
          });
        }
      });
    }
  });
</script>
<script type="text/html" id="menuTpl">
  {{#each data}}
  <li class="layui-nav-item">
    <a><i class="layui-icon {{this.menuIcon}}"></i>&emsp;<cite>{{this.menu}}</cite></a>
    <dl class="layui-nav-child">
      {{#each this.subMenu}}
      <dd><a lay-href="{{this.code}}?resourceId={{this.id}}{{this.param}}">{{this.name}}</a></dd>
      {{/each}}
    </dl>
  </li>
  {{/each}}
</script>
<!-- ä¸»ä½“内容 -->
<iframe id="content" src="console.html"></iframe>
<!-- å°¾éƒ¨ -->
<footer class="footer">
    Copyright Â© 2015~2023 All Rights Reserved. æµ™æ±Ÿä¸­æ‰¬ç«‹åº“技术有限公司  ä¿ç•™æ‰€æœ‰æƒåˆ©
</footer>
</body>
<script>
    // å¯¼èˆªæ 
    function nav(id) {
        $('.nav-select').attr("class", "nav-unselect");
        $('#'+id).attr("class", "nav-select");
        $('#content').attr("src", id+".html");
    }
    // ç³»ç»Ÿè¿è¡ŒçŠ¶æ€
    var systemRunning = true;
    // news by http://chuange.gitee.io/vue-layx/
    news();layx.min('wcs-news');
    function news() {
        layx.iframe(
              'wcs-news' // id
            , '系统分析报告'
            , "news.html"
            , {
                  shadow:false
                , storeStatus:false
                // , skin: 'news'
                , width:800
                , height:600
                , position:'rb'
                // , control:false
                , opacity:0.9
                , border:false
                , icon:'<img src="../static/images/favicon.ico" style="height:22px;display:block;"  alt=""/>'
                , stickMenu:true
                , maxMenu:false
                , closeMenu:false
                , moveLimit:{
                    leftOut: false,
                    rightOut: false,
                    topOut: false,
                    bottomOut: false,
                }
                , minWidth:300
                , minHeight:300
                , borderRadius: '8px'
                , shadeDestroy:true
                , escKey: false
                , event:{
                    onmin: {
                        after: function () {
                            $('.layx-min-statu').css("left", "inherit").css("right", "10px")
                        }
                    }
                    , onrestore:{
                        after: function () {
                            let win = layx.getFrameContext('wcs-news');
                            win.autoScroll = true
                        }
                    }
                }
            }
        );
    }
</script>
</html>
zy-asrs-wms/src/main/webapp/views/item/item.html
File was deleted
zy-asrs-wms/src/main/webapp/views/led.html
zy-asrs-wms/src/main/webapp/views/lift.html
zy-asrs-wms/src/main/webapp/views/locDetl/locDetl.html
File was deleted
zy-asrs-wms/src/main/webapp/views/locDetl/locDetl_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/locDetlStatis/locDetlStatis.html
File was deleted
zy-asrs-wms/src/main/webapp/views/locDirection/locDirection.html
File was deleted
zy-asrs-wms/src/main/webapp/views/locMast/locMast.html
File was deleted
zy-asrs-wms/src/main/webapp/views/locMast/locMast_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/locRule/locRule.html
File was deleted
zy-asrs-wms/src/main/webapp/views/login.html
@@ -1,356 +1,233 @@
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>中扬 â”‚ login of zoneyung WMS</title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>系统登录</title>
    <link rel="stylesheet" href="../static/layui/css/layui.css" media="all">
    <link rel="icon" type="image/x-icon" href="../static/images/wcs_logo.png" />
    <link rel="stylesheet" href="../static/css/animate.min.css">
    <script type="text/javascript" src="../static/layui/layui.js"></script>
    <script type="text/javascript" src="../static/js/common.js"></script>
    <style>
        html{
            height: 100%;
        }
        body.login-bg {
            color: #777;
            height: 100%;
            /*background-image: linear-gradient(to right, #ff9569 0%, #e92758 100%);*/
            /*background-image: linear-gradient(-90deg, #a2e7f3 0%, #98baee 100%);*/
            background-image: url("../static/images/login.png");
            /*background: -webkit-linear-gradient(red, blue); !* Safari 5.1 - 6.0 *!;*/
            /*background-image: url("../static/image/login_bg.jpg");*/
            /*background-repeat: no-repeat;*/
            /*background-size: cover;*/
            /*background-position: top center;*/
        }
            .container {
                display: flex;
                height: 100vh;
                width: 100%;
            }
        #login-wrapper {
            box-sizing:border-box;
            background: #fff;
            position: absolute;
            top: 45%;
            left: 50%;
            margin-top: -210px;
            margin-left: -220px;
            width: 400px;
            min-height: 380px;
            padding: 50px;
            text-align: center;
            border-radius: 5px;
            box-shadow: 0px 0px 10px rgb(168, 165, 165);
            transform-origin: 50% 50%;
            /*animation: loading 1s 0s forwards;*/
            transform: rotateX(0deg);
        }
            .left-box {
                height: 100%;
                width: 70%;
            }
        #login-wrapper h2 {
            color: rgba(64,158,255,0.9);
            font-size: 26px;
            font-weight: bold;
            margin-bottom: 30px;
        }
            .login-video {
                height: 100%;
                overflow: hidden;
            }
        .layadmin-user-login-body .layui-form-item {
            margin-bottom: 20px;
            position: relative;
        }
        .layadmin-user-login-body .layui-form-item .layui-input {
            height: 42px;
            padding-left: 40px;
            font-size: 16px;
            border: 1px solid #c8cccf;
            color: inherit;
        }
        .login-submit {
            margin-top: 30px;
        }
        .layadmin-user-login-icon {
            position: absolute;
            left: 1px;
            top: 1px;
            width: 38px;
            line-height: 40px;
            text-align: center;
            color: #B2B2B2;
            font-size: 18px;
        }
        .layui-btn-normal {
            background-color: rgba(64,158,255,0.9);
            font-size: 20px;
            border-radius: 4px;
            height: 52px;
        }
        #code-box {
            position: relative;
            height: 42px;
        }
        #code-label {
            z-index: 999;
        }
        #code {
            position: absolute;
            left: 0;
            top: 0;
            display: inline-block;
            width: 60%;
        }
        #codeImg {
            border: 1px solid rgba(0,0,0,0.1);
            position: absolute;
            right: 5%;
            top: 0;
            width: 30%;
            height: 90%;
        }
    </style>
</head>
<body class="login-bg animsition">
            .form-main {
                width: 300px;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                background-color: rgba(255, 255, 255, 0.6);
                padding: 50px 30px 50px 30px;
                border-radius: 20px;
                box-shadow: 0px 0px 40px rgba(0, 0, 0, 0.062);
            }
<div id="login-wrapper" class="animate__animated animate__bounceInDown">
    <header>
        <h2>WCS ç³»ç»Ÿç™»å½•</h2>
    </header>
    <div class="layui-form layadmin-user-login-body">
        <div class="layui-form-item">
            <label class="layui-icon layui-icon-cellphone layadmin-user-login-icon"></label>
            <input id="mobile" class="layui-input" type="text" name="mobile" lay-verify="mobile" placeholder="账号">
        </div>
        <div class="layui-form-item">
            <label class="layui-icon layui-icon-password layadmin-user-login-icon"></label>
            <input id="password" class="layui-input" type="password" name="password" lay-verify="password" placeholder="密码">
        </div>
        <div id="code-box" class="layui-form-item" style="">
            <label id="code-label" class="layui-icon layui-icon-vercode layadmin-user-login-icon"></label>
            <input id="code" class="layui-input" type="text" name="password" lay-verify="code" placeholder="验证码">
            <img id="codeImg" title="看不清?点击换一张。">
        </div>
        <!--<div class="layui-form-item">-->
            <!--<input id="rememberPwd" style="vertical-align: middle" type="checkbox" lay-filter="remPwd" lay-skin="switch" lay-text="开启|关闭" title="记住密码" checked="checked">-->
            <!--<span style="vertical-align: middle;font-size: 15px">记住密码</span>-->
        <!--</div>-->
    </div>
    <div class="layui-form-item login-submit">
        <button id="login-button" class="layui-btn layui-btn-fluid layui-btn-normal" lay-submit="" lay-filter="login">登 &nbsp  &nbsp å½•</button>
    </div>
</div>
            .heading {
                font-size: 2.5em;
                color: #2e2e2e;
                font-weight: 700;
                margin: 15px 0 0px 0;
            }
</body>
<script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../static/js/tools/md5.js"></script>
<script type="text/javascript">
            .inputContainer {
                width: 100%;
                position: relative;
                display: flex;
                align-items: center;
                justify-content: center;
            }
    // éªŒè¯ç å¼€å…³
    var codeSwitch = 'Y';
    $.ajax({
        url: baseUrl+"/code/switch.action",
        async: false,
        success: function (res) {
            if (res.data === 'N'){
                codeSwitch = res.data;
                $('#code-box').css("display", "none");
            }
        }
    });
            .inputIcon {
                position: absolute;
                left: 10px;
            }
    // åˆå§‹åŒ–验证码
    initCode();
    $('#codeImg').click(function () {
        initCode();
    });
    function initCode() {
        var random = Math.random();
        $('#codeImg').attr("src", baseUrl+"/code.action?sd="+random);
        setTimeout(function () {
            $.ajax({
                url: baseUrl+"/code.do",
                data: {sd: random},
                method: 'POST',
                async: false,
                success: function (code) {
                    sessionStorage.setItem("code", code);
                }
            });
        }, 100);
    }
            .inputField {
                width: 100%;
                height: 40px;
                background-color: transparent;
                border: none;
                border-bottom: 2px solid rgb(173, 173, 173);
                border-radius: 30px;
                margin: 10px 0;
                color: black;
                font-size: .8em;
                font-weight: 500;
                box-sizing: border-box;
                padding-left: 30px;
            }
    layui.use(['form','layer'],function () {
        var form = layui.form,
            layer = layui.layer,
            $ = layui.jquery;
            .inputField:focus {
                outline: none;
                border-bottom: 2px solid rgb(199, 114, 255);
            }
        form.on('submit(login)', function (data) {
            var mobile = $("#mobile").val();
            if (mobile === "") {
                layer.msg("请输入账号", {offset: '150px'});
                return;
            }
            var password = $("#password").val();
            if (password === "") {
                layer.msg("请输入密码", {offset: '150px'});
                return;
            }
            var code = $("#code").val();
            if (code === "" && codeSwitch === 'Y') {
                layer.msg("请输入验证码", {offset: '150px'});
                return;
            }
            if (sessionStorage.getItem("code").toUpperCase() !== code.toUpperCase()&&codeSwitch==='Y'){
                layer.msg("验证码错误", {offset: '150px'});
                return;
            }
            .inputField::placeholder {
                color: rgb(80, 80, 80);
                font-size: 1em;
                font-weight: 500;
            }
            .login-box {
                height: 100%;
                display: flex;
                justify-content: center;
                align-items: center;
            }
            var user = {
                mobile: mobile,
                password: hex_md5(password)
            };
            $.ajax({
                url: baseUrl+"/login.action",
                data: user,
                method: 'POST',
                success: function (res) {
                    if (res.code === 200){
                        localStorage.setItem("token", res.data.token);
                        localStorage.setItem("username", res.data.username);
                        window.location.href = "index.html";
                    } else {
                        layer.msg(res.msg, {offset: '150px'});
                    }
                }
            });
            return false;
        });
            .login-button {
                position: relative;
                width: 100%;
                border: 2px solid #8000ff;
                background-color: #8000ff;
                height: 40px;
                color: white;
                font-size: .8em;
                font-weight: 500;
                letter-spacing: 1px;
                border-radius: 30px;
                margin: 10px;
                cursor: pointer;
                overflow: hidden;
            }
        $('body').keydown(function () {
            if (event.keyCode === 13) {
                $("#login-button").click();
            }
        });
            .login-button::after {
                content: "";
                position: absolute;
                background-color: rgba(255, 255, 255, 0.253);
                height: 100%;
                width: 150px;
                top: 0;
                left: -200px;
                border-bottom-right-radius: 100px;
                border-top-left-radius: 100px;
                filter: blur(10px);
                transition-duration: .5s;
            }
            .login-button:hover::after {
                transform: translateX(600px);
                transition-duration: .5s;
            }
            .right-box {
                height: 100%;
                width: 30%;
                background: #f6f6f6;
                position: relative;
            }
            .login-copyright {
                position: absolute;
                bottom: 20px;
                right: 20px;
                font-size: 14px;
                width: 100%;
                display: flex;
                justify-content: center;
                align-items: center;
            }
            .copyright-text {
                margin-right: 20px;
            }
            .copyright-img {
                width: 40px;
                height: 40px;
                position: relative;
            }
            .copyright-img > img {
                width: 100%;
                height: 100%;
            }
            .copyright-img-large {
                width: 140px;
                height: 140px;
                position: absolute;
                top: -140px;
                left: -50px;
                display: none;
            }
            .copyright-img-large > img {
                width: 100%;
                height: 100%;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="left-box">
                <div class="login-video">
<!--                    <video src="../static/image/banner.mp4" height="100%" loop autoplay muted="false"-->
<!--                        controlslist="nodownload" disablepictureinpicture></video>-->
                    <img src="../static/image/bg1.png" height="100%">
                </div>
            </div>
            <div class="right-box">
                <div class="login-box">
                    <div class="form-main">
                        <p style="text-align: center;"><img class="loginLogoUrl" src="../static/image/logo.png" alt="" style="width: 80%">
                        </p>
                        <p style="margin-top: -10px;"><span class="login100-form-title p-t-20 p-b-45"
                                style="color: #868686;font-size: 24px">WMS</span></p>
                        <div class="inputContainer">
                            <svg viewBox="0 0 16 16" fill="#2e2e2e" height="16" width="16"
                                xmlns="http://www.w3.org/2000/svg" class="inputIcon">
                                <path
                                    d="M13.106 7.222c0-2.967-2.249-5.032-5.482-5.032-3.35 0-5.646 2.318-5.646 5.702 0 3.493 2.235 5.708 5.762 5.708.862 0 1.689-.123 2.304-.335v-.862c-.43.199-1.354.328-2.29.328-2.926 0-4.813-1.88-4.813-4.798 0-2.844 1.921-4.881 4.594-4.881 2.735 0 4.608 1.688 4.608 4.156 0 1.682-.554 2.769-1.416 2.769-.492 0-.772-.28-.772-.76V5.206H8.923v.834h-.11c-.266-.595-.881-.964-1.6-.964-1.4 0-2.378 1.162-2.378 2.823 0 1.737.957 2.906 2.379 2.906.8 0 1.415-.39 1.709-1.087h.11c.081.67.703 1.148 1.503 1.148 1.572 0 2.57-1.415 2.57-3.643zm-7.177.704c0-1.197.54-1.907 1.456-1.907.93 0 1.524.738 1.524 1.907S8.308 9.84 7.371 9.84c-.895 0-1.442-.725-1.442-1.914z">
                                </path>
                            </svg>
                            <input placeholder="请输入用户名" id="username" name="username" class="inputField" type="text">
                        </div>
                        <div class="inputContainer">
                            <svg viewBox="0 0 16 16" fill="#2e2e2e" height="16" width="16"
                                xmlns="http://www.w3.org/2000/svg" class="inputIcon">
                                <path
                                    d="M8 1a2 2 0 0 1 2 2v4H6V3a2 2 0 0 1 2-2zm3 6V3a3 3 0 0 0-6 0v4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2z">
                                </path>
                            </svg>
                            <input placeholder="请输入密码" id="password" name="pass" class="inputField" type="password">
                        </div>
                        <input type="button" id="login-button" class="login-button" value="登录">
                        <div style="display: none;margin-top: 5px;width: 100%;" id="updateLicense">
                            <form enctype="multipart/form-data" style="display: none;">
                                <input id="license" type="file" name="file" >
                            </form>
                            <input type="button" id="submitLicense" class="login-button" style="margin: 0;" value="更新许可证">
                        </div>
                    </div>
                </div>
                <div class="login-copyright">
                    <div class="copyright-text">Copyright Â©2023 æµ™æ±Ÿä¸­æ‰¬ç«‹åº“技术有限公司版权所有</div>
                    <div id="copyright-img1" class="copyright-img">
                        <img class="copyright-img-url" src="../static/image/weixin_qrcode.jpg" />
                        <div id="copyright-img-large1" class="copyright-img-large"><img class="copyright-img-url" src="../static/image/weixin_qrcode.jpg" /></div>
                    </div>
                </div>
            </div>
        </div>
        <script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
        <script type="text/javascript" src="../static/js/tools/md5.js"></script>
        <script type="text/javascript" src="../static/layer/layer.js"></script>
        <script type="text/javascript" src="../static/js/common.js"></script>
        <script>
            // èŽ·å–ä¿¡æ¯
            $(function () {
                $.ajax({
                    url: baseUrl+"/loginInformation",
                    data: {},
                    method: 'GET',
                    success: function (res) {
                        var data = res.data
                        $(".copyright-text").text(data.loginCopyrightText);
                        $(".copyright-img-url").attr("src", data.loginCopyrightImg1);
                        $(".loginLogoUrl").attr("src", data.loginLogo);
                        if (data.loginCopyrightImg1 == "") {
                            $(".copyright-img-url").hide()
                        }
                    }
                });
                var oldUserName = localStorage.getItem('oldUserName');
                var oldPass = localStorage.getItem('oldPass');
                if(oldUserName){
                    $('#username').val(oldUserName);
                }
                if(oldPass){
                    $('#password').val(oldPass);
                }
            })
            window.onload = function(){document.getElementById("username").focus();}
            $(document).on('click','#login-button', function () {
                let username = $("#username").val();
                if (username === "") {
                    layer.tips('请输入登录账号', '#username', {tips: [4, '#ff0000']});
                    return;
                }
                let password = $("#password").val();
                if (password === "") {
                    layer.tips('请输入密码', '#password', {tips: [4, '#ff0000']});
                    return;
                }
                $.ajax({
                    url: baseUrl+"/login.action",
                    data: {
                        username: username,
                        password: hex_md5(password),
                        wms: true
                    },
                    method: 'POST',
                    success: function (res) {
                        if (res.code === 200){
                            localStorage.setItem("token", res.data.token);
                            localStorage.setItem("username", res.data.username);
                            window.location.href = "index.html";
                        } else if (res.code === 10001) {
                            layer.tips(res.msg, '#username', {tips: [4, '#ff0000']});
                        } else if (res.code === 10002) {
                            layer.tips(res.msg, '#username', {tips: [4, '#ff0000']});
                        } else if (res.code === 10003) {
                            layer.tips(res.msg, '#password', {tips: [4, '#ff0000']});
                        } else if (res.code === 20001) {
                            layer.tips(res.msg, '#login-button', {tips: [3, '#ff0000']});
                            $("#updateLicense").show()
                        } else {
                            layer.tips(res.msg, '#login-button', {tips: [3, '#ff0000']});
                        }
                    }
                });
            });
            $(document).keydown(function () {
                if (event.keyCode === 13) {
                    $("#login-button").click();
                }
            });
            $("#copyright-img1").on("mouseover", () => {
                $("#copyright-img-large1").show()
            })
            $("#copyright-img1").on("mouseout", () => {
                $("#copyright-img-large1").hide()
            })
            //更新许可证
            $("#submitLicense").on("click",() => {
                $("#license").click()
            })
            //上传并更新许可证
            $("#license").on("change",(evt) => {
                var files = evt.target.files;
                console.log(files)
                let formData = new FormData();
                formData.append("file", files[0])
                $.ajax({
                    url: baseUrl+"/license/updateLicense",
                    data: formData,
                    method: 'POST',
                    cache: false,
                    processData: false,
                    contentType: false,
                    success: function (res) {
                        if (res.code == 200) {
                            layer.msg('更新成功', {time: 1000}, () => {
                                parent.location.reload()
                            });
                        }else{
                            layer.msg(res.msg,{time:2000},() => {
                                parent.location.reload()
                            })
                        }
                    }
                })
            })
        </script>
    </body>
</html>
    });
</script>
<script type></script>
</html>
zy-asrs-wms/src/main/webapp/views/login2.html
File was deleted
zy-asrs-wms/src/main/webapp/views/mat/mat.html
File was deleted
zy-asrs-wms/src/main/webapp/views/matCode/matCode.html
File was deleted
zy-asrs-wms/src/main/webapp/views/monitor/css/Pacifico.css
zy-asrs-wms/src/main/webapp/views/monitor/css/lunbo.css
zy-asrs-wms/src/main/webapp/views/monitor/css/monitor.css
zy-asrs-wms/src/main/webapp/views/monitor/data/map.json
zy-asrs-wms/src/main/webapp/views/monitor/echarts.js.map
zy-asrs-wms/src/main/webapp/views/monitor/img/a.png

zy-asrs-wms/src/main/webapp/views/monitor/img/a1.png

zy-asrs-wms/src/main/webapp/views/monitor/img/a2.png

zy-asrs-wms/src/main/webapp/views/monitor/img/b.png

zy-asrs-wms/src/main/webapp/views/monitor/img/b1.png

zy-asrs-wms/src/main/webapp/views/monitor/img/b2.png

zy-asrs-wms/src/main/webapp/views/monitor/img/background.png

zy-asrs-wms/src/main/webapp/views/monitor/img/banner/banner1.jpg

zy-asrs-wms/src/main/webapp/views/monitor/img/banner/banner2.jpg

zy-asrs-wms/src/main/webapp/views/monitor/img/banner/banner3.jpg

zy-asrs-wms/src/main/webapp/views/monitor/img/banner/banner4.jpg

zy-asrs-wms/src/main/webapp/views/monitor/img/banner/banner5.jpg

zy-asrs-wms/src/main/webapp/views/monitor/img/banner/test1.jpg

zy-asrs-wms/src/main/webapp/views/monitor/img/banner/test2.jpg

zy-asrs-wms/src/main/webapp/views/monitor/img/banner/test3.png

zy-asrs-wms/src/main/webapp/views/monitor/img/c.png

zy-asrs-wms/src/main/webapp/views/monitor/img/c1.png

zy-asrs-wms/src/main/webapp/views/monitor/img/c2.png

zy-asrs-wms/src/main/webapp/views/monitor/img/d.png

zy-asrs-wms/src/main/webapp/views/monitor/img/d1.png

zy-asrs-wms/src/main/webapp/views/monitor/img/d2.png

zy-asrs-wms/src/main/webapp/views/monitor/img/e.png

zy-asrs-wms/src/main/webapp/views/monitor/img/e1.png

zy-asrs-wms/src/main/webapp/views/monitor/img/e2.png

zy-asrs-wms/src/main/webapp/views/monitor/img/f.png

zy-asrs-wms/src/main/webapp/views/monitor/img/f1.png

zy-asrs-wms/src/main/webapp/views/monitor/img/f2.png

zy-asrs-wms/src/main/webapp/views/monitor/img/g.png

zy-asrs-wms/src/main/webapp/views/monitor/img/g1.png

zy-asrs-wms/src/main/webapp/views/monitor/img/g2.png

zy-asrs-wms/src/main/webapp/views/monitor/img/left.png

zy-asrs-wms/src/main/webapp/views/monitor/img/right.png

zy-asrs-wms/src/main/webapp/views/monitor/img/wxCode.jpg

zy-asrs-wms/src/main/webapp/views/monitor/js/echarts/echarts.min.js
zy-asrs-wms/src/main/webapp/views/monitor/js/jquery-3.3.1.min.js
zy-asrs-wms/src/main/webapp/views/monitor/js/jquery.countup.min.js
zy-asrs-wms/src/main/webapp/views/monitor/js/jquery.waypoints.min.js
zy-asrs-wms/src/main/webapp/views/monitor/js/md5.js
zy-asrs-wms/src/main/webapp/views/monitor/js/monitor.js
zy-asrs-wms/src/main/webapp/views/monitor/js/vincent.js
zy-asrs-wms/src/main/webapp/views/monitor/monitor.html
zy-asrs-wms/src/main/webapp/views/monitor/monitor0.html
zy-asrs-wms/src/main/webapp/views/news.html
zy-asrs-wms/src/main/webapp/views/node/node.html
File was deleted
zy-asrs-wms/src/main/webapp/views/operateLog/operateLog.html
File was deleted
zy-asrs-wms/src/main/webapp/views/order/order.html
File was deleted
zy-asrs-wms/src/main/webapp/views/order/out.html
File was deleted
zy-asrs-wms/src/main/webapp/views/orderDetl/orderDetl.html
File was deleted
zy-asrs-wms/src/main/webapp/views/orderDetlLog/orderDetlLog.html
File was deleted
zy-asrs-wms/src/main/webapp/views/orderLog/orderLog.html
File was deleted
zy-asrs-wms/src/main/webapp/views/orderSettle/orderSettle.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pakStore/emptyIn.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pakStore/emptyOut.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pakStore/locCheckOut.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pakStore/locDetlCheckQuery.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pakStore/locDetlQuery.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pakStore/locDetlQuery2.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pakStore/locMove.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pakStore/matQuery.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pakStore/pakStore.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pakStore/stockAdjust.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pakStore/stockOut.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pakStore/stockOut2.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pakStore/turnOver.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pakStore/turnOverQuery.html
File was deleted
zy-asrs-wms/src/main/webapp/views/password.html
File was deleted
zy-asrs-wms/src/main/webapp/views/pipeline.html
zy-asrs-wms/src/main/webapp/views/prior/prior.html
File was deleted
zy-asrs-wms/src/main/webapp/views/report/locDetl.html
File was deleted
zy-asrs-wms/src/main/webapp/views/report/viewInOut.html
File was deleted
zy-asrs-wms/src/main/webapp/views/report/viewLocMap.html
File was deleted
zy-asrs-wms/src/main/webapp/views/report/viewStayTime.html
File was deleted
zy-asrs-wms/src/main/webapp/views/report/viewStockUse.html
File was deleted
zy-asrs-wms/src/main/webapp/views/report/viewWorkCountIn.html
File was deleted
zy-asrs-wms/src/main/webapp/views/report/viewWorkCountOut.html
File was deleted
zy-asrs-wms/src/main/webapp/views/report/viewWorkIn.html
File was deleted
zy-asrs-wms/src/main/webapp/views/report/viewWorkOut.html
File was deleted
zy-asrs-wms/src/main/webapp/views/resource/resource.html
File was deleted
zy-asrs-wms/src/main/webapp/views/role/role.html
File was deleted
zy-asrs-wms/src/main/webapp/views/role/role_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/role/role_power_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/rowLastno/rowLastno.html
File was deleted
zy-asrs-wms/src/main/webapp/views/safeSto/safeSto.html
File was deleted
zy-asrs-wms/src/main/webapp/views/shuttle.html
zy-asrs-wms/src/main/webapp/views/shuttle2.html
zy-asrs-wms/src/main/webapp/views/shuttle_zs.html
zy-asrs-wms/src/main/webapp/views/staDesc/staDesc.html
File was deleted
zy-asrs-wms/src/main/webapp/views/staDesc/staDesc_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/ste.html
zy-asrs-wms/src/main/webapp/views/stoMan/stoQue.html
File was deleted
zy-asrs-wms/src/main/webapp/views/tag/tag.html
File was deleted
zy-asrs-wms/src/main/webapp/views/tpl/alarm-detl.html
File was deleted
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/ic_loading.gif
Binary files differ
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/icon_date.png
Binary files differ
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/icon_search.png
Binary files differ
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-admin.png
Binary files differ
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-blue.png
Binary files differ
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-colorful.png
Binary files differ
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-cyan.png
Binary files differ
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-green.png
Binary files differ
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-my.png
Binary files differ
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-pink.png
Binary files differ
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-purple.png
Binary files differ
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-red.png
Binary files differ
zy-asrs-wms/src/main/webapp/views/tpl/theme/img/theme-white.png
Binary files differ
zy-asrs-wms/src/main/webapp/views/tpl/tpl-note.html
File was deleted
zy-asrs-wms/src/main/webapp/views/tpl/tpl-theme.html
File was deleted
zy-asrs-wms/src/main/webapp/views/user/user.html
File was deleted
zy-asrs-wms/src/main/webapp/views/user/user_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/userLogin/userLogin.html
File was deleted
zy-asrs-wms/src/main/webapp/views/userLogin/userLogin_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/waitPakin/waitPakin.html
File was deleted
zy-asrs-wms/src/main/webapp/views/waitPakin/waitPakin_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/waitPakinLog/waitPakinLog.html
File was deleted
zy-asrs-wms/src/main/webapp/views/waitPakinLog/waitPakinLog_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/wrkDetl/wrkDetl.html
File was deleted
zy-asrs-wms/src/main/webapp/views/wrkDetl/wrkDetl_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/wrkDetlLog/wrkDetlLog.html
File was deleted
zy-asrs-wms/src/main/webapp/views/wrkDetlLog/wrkDetlLog_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/wrkLastno/wrkLastno.html
File was deleted
zy-asrs-wms/src/main/webapp/views/wrkMast/wrkDetl.html
File was deleted
zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast.html
File was deleted
zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast_detail.html
File was deleted
zy-asrs-wms/src/main/webapp/views/wrkMastLog/wrkDetlLog.html
File was deleted
zy-asrs-wms/src/main/webapp/views/wrkMastLog/wrkMastLog.html
File was deleted
zy-asrs-wms/src/main/webapp/views/wrkMastLog/wrkMastLog_detail.html
File was deleted
zy-asrs-wms/version/sql/react_admin_stable.rar
Binary files differ