add - initial project version

main
wenjy 3 years ago
parent 88dfbfb8c0
commit ee5cbc6f31

@ -0,0 +1,20 @@
package com.ruoyi;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
/**
* @author WenJY
* @date 20220124 9:47
*/
@Configuration
public class CrossDomain extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry){
registry.addMapping("/**").allowedOrigins("*")
.allowedMethods("GET", "HEAD", "POST","PUT", "DELETE", "OPTIONS")
.allowCredentials(false).maxAge(3600);
}
}

@ -27,4 +27,6 @@ public class RuoYiApplication
" | | \\ / \\ / \n" +
" ''-' `'-' `-..-' ");
}
}

@ -0,0 +1,123 @@
package com.ruoyi.web.controller.system;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.entity.SysMenu;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.shiro.service.SysPasswordService;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.Cookie;
import java.util.Date;
import java.util.List;
/**
* @author WenJY
* @date 20220127 9:36
*/
@Controller
@RequestMapping("/indexInfo")
public class SysIndexInfoController extends BaseController {
@Autowired
private ISysMenuService menuService;
@Autowired
private ISysConfigService configService;
@Autowired
private SysPasswordService passwordService;
// 系统首页
@GetMapping("/index")
public String index(ModelMap mmap)
{
// 取身份信息
SysUser user = getSysUser();
// 根据用户id取出菜单
List<SysMenu> menus = menuService.selectMenusByUser(user);
mmap.put("menus", menus);
mmap.put("user", user);
mmap.put("sideTheme", configService.selectConfigByKey("sys.index.sideTheme"));
mmap.put("skinName", configService.selectConfigByKey("sys.index.skinName"));
Boolean footer = Convert.toBool(configService.selectConfigByKey("sys.index.footer"), true);
Boolean tagsView = Convert.toBool(configService.selectConfigByKey("sys.index.tagsView"), true);
mmap.put("footer", footer);
mmap.put("tagsView", tagsView);
mmap.put("mainClass", contentMainClass(footer, tagsView));
mmap.put("copyrightYear", RuoYiConfig.getCopyrightYear());
mmap.put("demoEnabled", RuoYiConfig.isDemoEnabled());
mmap.put("isDefaultModifyPwd", initPasswordIsModify(user.getPwdUpdateDate()));
mmap.put("isPasswordExpired", passwordIsExpiration(user.getPwdUpdateDate()));
mmap.put("isMobile", ServletUtils.checkAgentIsMobile(ServletUtils.getRequest().getHeader("User-Agent")));
// 菜单导航显示风格
String menuStyle = configService.selectConfigByKey("sys.index.menuStyle");
// 移动端,默认使左侧导航菜单,否则取默认配置
String indexStyle = ServletUtils.checkAgentIsMobile(ServletUtils.getRequest().getHeader("User-Agent")) ? "index" : menuStyle;
// 优先Cookie配置导航菜单
Cookie[] cookies = ServletUtils.getRequest().getCookies();
for (Cookie cookie : cookies)
{
if (StringUtils.isNotEmpty(cookie.getName()) && "nav-style".equalsIgnoreCase(cookie.getName()))
{
indexStyle = cookie.getValue();
break;
}
}
String webIndex = "topnav".equalsIgnoreCase(indexStyle) ? "index-topnav" : "index";
return "index-topnav";
}
// content-main class
public String contentMainClass(Boolean footer, Boolean tagsView)
{
if (!footer && !tagsView)
{
return "tagsview-footer-hide";
}
else if (!footer)
{
return "footer-hide";
}
else if (!tagsView)
{
return "tagsview-hide";
}
return StringUtils.EMPTY;
}
// 检查初始密码是否提醒修改
public boolean initPasswordIsModify(Date pwdUpdateDate)
{
Integer initPasswordModify = Convert.toInt(configService.selectConfigByKey("sys.account.initPasswordModify"));
return initPasswordModify != null && initPasswordModify == 1 && pwdUpdateDate == null;
}
// 检查密码是否过期
public boolean passwordIsExpiration(Date pwdUpdateDate)
{
Integer passwordValidateDays = Convert.toInt(configService.selectConfigByKey("sys.account.passwordValidateDays"));
if (passwordValidateDays != null && passwordValidateDays > 0)
{
if (StringUtils.isNull(pwdUpdateDate))
{
// 如果从未修改过初始密码,直接提醒过期
return true;
}
Date nowDate = DateUtils.getNowDate();
return DateUtils.differentDaysByMillisecond(nowDate, pwdUpdateDate) > passwordValidateDays;
}
return false;
}
}

@ -41,10 +41,11 @@ public class SysLoginController extends BaseController
public String login(HttpServletRequest request, HttpServletResponse response, ModelMap mmap)
{
// 如果是Ajax请求返回Json字符串。
if (ServletUtils.isAjaxRequest(request))
/*if (ServletUtils.isAjaxRequest(request))
{
return ServletUtils.renderString(response, "{\"code\":\"1\",\"msg\":\"未登录或登录超时。请重新登录\"}");
}
}*/
// 是否开启记住我
mmap.put("isRemembered", rememberMe);
// 是否开启用户注册

@ -7,7 +7,7 @@ ruoyi:
# 版权年份
copyrightYear: 2021
# 实例演示开关
demoEnabled: true
demoEnabled: false
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath
profile: D:/ruoyi/uploadPath
# 获取ip地址开关

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

@ -9,32 +9,32 @@ $(()=>{
showRefresh: false,
columns: [{
field: 'id',
title: 'Item ID',
title: '测试列一',
align: 'center',
}, {
field: 'name',
title: 'Item Name',
title: '测试列二',
align: 'center',
}, {
field: 'price',
title: 'Item Price',
title: '测试列三',
align: 'center',
}, {
field: 'column1',
title: '列1',
title: '测试列四',
align: 'center',
}, {
field: 'column2',
title: '列2',
title: '测试列五',
align: 'center',
}, {
field: 'column3',
title: '列3',
title: '测试列六',
align: 'center',
}, {
field: 'column4',
title: '列4',
title: '测试列七',
align: 'center',
}]
});

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -0,0 +1,102 @@
.autoscroll-table {
width: 100%;
}
.autoscroll-table th {
font-size: 80%;
text-align: center;
padding: 0.6% 0;
}
.autoscroll-table td {
font-size: 88%;
text-align: center;
padding: 0.8% 0;
}
.autoscroll-table > thead {
position: fixed;
background-color: #103BBD;
color: #FFFFFF;
outline: #103BBD solid 1px;
transition: background-color 150ms ease, outline-color 150ms ease;
}
.autoscroll-table > tbody > tr {
color: #FFFFFF;
}
.autoscroll-table > tbody > tr:nth-child(odd) > td {
background-color: #0E34B6;
outline: #0E34B6 solid 0.1044444444em;
}
.autoscroll-table > tbody > tr:nth-child(even) > td {
background-color: #0E3FB0;
outline: #0E3FB0 solid 0.1044444445em;
}
.hide-scrollbar::-webkit-scrollbar {
display: none;
}
.loading-splash {
font-size: 16px;
display: none;
text-align: center;
}
.autoscroll-table caption {
font-size: 80%;
position: fixed;
padding-bottom: 0.6%;
}
.autoscroll-table .fake-caption {
text-align: center;
}
/* Override */
.autoscroll-table {
background-color: #1077BC19;
}
.autoscroll-table > thead {
background-color: #1077BC19;
outline: #1077BC19 solid 1px;
font-size: 0.9rem;
}
.autoscroll-table > tbody > tr:nth-child(odd) > td {
background-color: rgba(9, 63, 98, 0.1);
outline: rgba(9, 63, 98, 0.1) solid 0.1044444444em;
}
.autoscroll-table > tbody > tr:nth-child(even) > td {
background-color: #1077BC19;
outline: #1077BC19 solid 0.1044444445em;
}
.thead-scroll-override {
background-color: #091a37 !important;
outline: #091a37 solid 1px !important;
}
.autoscroll-table * {
color: #89d5ff;
}
/* Font size readjust */
.autoscroll-table th {
font-size: 10%;
}
.autoscroll-table td {
font-size: 11%;
}
.autoscroll-table caption {
font-size: 10%;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,171 @@
html {
height:100%
}
body.signin {
height:auto;
background:url(../img/login-background.jpg) no-repeat center fixed;
-webkit-background-size:cover;
-moz-background-size:cover;
-o-background-size:cover;
background-size:cover
}
.signinpanel {
width:750px;
margin:10% auto 0;
color:rgba(255,255,255,.95)
}
.signinpanel .logopanel {
float:none;
width:auto;
padding:0;
background:0 0
}
.signinpanel .signin-info ul {
list-style:none;
padding:0;
margin:20px 0
}
.signinpanel .form-control {
display:block;
margin-top:15px
}
.signinpanel .uname {
background:#fff url(../img/user.png) no-repeat 95% center;
color:#333
}
.signinpanel .pword {
background:#fff url(../img/locked.png) no-repeat 95% center;
color:#333
}
.signinpanel .code {
background: #fff no-repeat 95% center;color:#333; margin:0 0 15px 0;
}
.signinpanel .btn {
margin-top:15px
}
.signinpanel form {
background:rgba(255,255,255,.2);
border:1px solid rgba(255,255,255,.3);
-moz-box-shadow:0 3px 0 rgba(12,12,12,.03);
-webkit-box-shadow:0 3px 0 rgba(12,12,12,.03);
box-shadow:0 3px 0 rgba(12,12,12,.03);
-moz-border-radius:3px;
-webkit-border-radius:3px;
border-radius:3px;
padding:30px
}
.signup-footer {
border-top:solid 1px rgba(255,255,255,.3);
margin:20px 0;
padding-top:15px
}
@media screen and (max-width:768px) {
.signinpanel,.signuppanel {
margin:0 auto;
width:380px!important;
padding:20px
}
.signinpanel form {
margin-top:20px
}
.signup-footer,.signuppanel .form-control {
margin-bottom:10px
}
.signup-footer .pull-left,.signup-footer .pull-right {
float:none!important;
text-align:center
}
.signinpanel .signin-info ul {
display:none
}
}@media screen and (max-width:320px) {
.signinpanel,.signuppanel {
margin:0 20px;
width:auto
}
}
/*
check
*/
.checkbox-custom {
position: relative;
padding: 0 15px 0 25px;
margin-bottom: 7px;
display: inline-block;
}
/*
checkbox
*/
.checkbox-custom input[type="checkbox"] {
opacity: 0; /*将初始的checkbox隐藏起来*/
position: absolute;
cursor: pointer;
z-index: 2;
margin: -6px 0 0 0;
top: 50%;
left: 3px;
}
/*
checkbox
*/
.checkbox-custom label:before {
content: '';
position: absolute;
top: 50%;
left: 0;
margin-top: -9px;
width: 18px;
height: 17px;
display: inline-block;
border-radius: 2px;
border: 1px solid #bbb;
background: #fff;
}
/*
checkboxcheckbox
*/
.checkbox-custom input[type="checkbox"]:checked +label:after {
position: absolute;
display: inline-block;
font-family: 'Glyphicons Halflings';
content: "\e013";
top: 42%;
left: 3px;
margin-top: -5px;
font-size: 11px;
line-height: 1;
width: 16px;
height: 16px;
color: #333;
}
.checkbox-custom label {
cursor: pointer;
line-height: 1.2;
font-weight: normal; /*改变了rememberme的字体*/
margin-bottom: 0;
text-align: left;
}
.form-control, .form-control:focus, .has-error .form-control:focus, .has-success .form-control:focus, .has-warning .form-control:focus, .navbar-collapse, .navbar-form, .navbar-form-custom .form-control:focus, .navbar-form-custom .form-control:hover, .open .btn.dropdown-toggle, .panel, .popover, .progress, .progress-bar {
box-shadow: none;
}
.form-control{
border-radius: 1px!important;
padding: 6px 12px!important;
height: 34px!important;
}
.form-control:focus{
border-color: #1ab394 !important;
}
body.UShellMetalPlate {
height: auto;
background: url(../img/ukbj.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
color: rgba(255,255,255,.95);
}

@ -0,0 +1,423 @@
* {
font-family: Arial, "DengXian", "Microsoft YaHei", "新宋体", monospace;
}
html {
height: 100%
}
body.signin {
height: auto;
background: url(../img/login-background.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover
}
.signinpanel {
width: 750px;
margin: 10% auto 0;
color: rgba(255, 255, 255, .95)
}
.signinpanel .logopanel {
float: none;
width: auto;
padding: 0;
background: 0
}
.signinpanel .signin-info ul {
list-style: none;
padding: 0;
margin: 20px 0
}
.signinpanel .form-control {
display: block;
margin-top: 15px
}
.signinpanel .uname {
background: #fff url(../img/user.png) no-repeat 95% center;
color: #333
}
.signinpanel .pword {
background: #fff url(../img/locked.png) no-repeat 95% center;
color: #333
}
.signinpanel .code {
background: #fff no-repeat 95% center;
color: #333;
margin: 0 0 15px 0
}
.signinpanel .btn {
margin-top: 15px
}
.signinpanel form {
background: rgba(255, 255, 255, .2);
border: 1px solid rgba(255, 255, 255, .3);
-moz-box-shadow: 0 3px 0 rgba(12, 12, 12, .03);
-webkit-box-shadow: 0 3px 0 rgba(12, 12, 12, .03);
box-shadow: 0 3px 0 rgba(12, 12, 12, .03);
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
padding: 30px
}
.signup-footer {
border-top: solid 1px rgba(255, 255, 255, .3);
margin: 20px 0;
padding-top: 15px
}
@media screen and (max-width: 768px) {
.signinpanel, .signuppanel {
margin: 0 auto;
width: 380px !important;
padding: 20px
}
.signinpanel form {
margin-top: 20px
}
.signup-footer, .signuppanel .form-control {
margin-bottom: 10px
}
.signup-footer .pull-left, .signup-footer .pull-right {
float: none !important;
text-align: center
}
.signinpanel .signin-info ul {
display: none
}
}
@media screen and (max-width: 320px) {
.signinpanel, .signuppanel {
margin: 0 20px;
width: auto
}
}
.checkbox-custom {
position: relative;
padding: 0 15px 0 25px;
margin-bottom: 7px;
display: inline-block
}
.checkbox-custom input[type="checkbox"] {
opacity: 0;
position: absolute;
cursor: pointer;
z-index: 2;
margin: -6px 0 0 0;
top: 50%;
left: 3px
}
.checkbox-custom label:before {
content: '';
position: absolute;
top: 50%;
left: 0;
margin-top: -9px;
width: 18px;
height: 17px;
display: inline-block;
border-radius: 2px;
border: 1px solid #bbb;
background: #fff
}
.checkbox-custom input[type="checkbox"]:checked + label:after {
position: absolute;
display: inline-block;
font-family: 'Glyphicons Halflings';
content: "\e013";
top: 42%;
left: 3px;
margin-top: -5px;
font-size: 11px;
line-height: 1;
width: 16px;
height: 16px;
color: #333
}
.checkbox-custom label {
cursor: pointer;
line-height: 1.2;
font-weight: normal;
margin-bottom: 0;
text-align: left
}
.form-control, .form-control:focus, .has-error .form-control:focus, .has-success .form-control:focus, .has-warning .form-control:focus, .navbar-collapse, .navbar-form, .navbar-form-custom .form-control:focus, .navbar-form-custom .form-control:hover, .open .btn.dropdown-toggle, .panel, .popover, .progress, .progress-bar {
box-shadow: none
}
.form-control {
border-radius: 1px !important;
padding: 6px 12px !important;
height: 34px !important
}
.form-control:focus {
border-color: #1ab394 !important
}
body.UShellMetalPlate {
height: auto;
width: auto;
background: url(../img/ukbj.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
font:normal 100% Arial,sans-serif;
}
body.UShellMetalPlateScada {
height: auto;
width: auto;
background: url(../img/ukbjScada.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
font:normal 100% Arial,sans-serif;
}
body.SouthWareHouse {
height: auto;
width: auto;
background: url(../img/warehouse.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
font:normal 100% Arial,sans-serif;
}
body.SouthWareHouse2 {
height: auto;
width: auto;
background: url(../img/warehouse.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
font:normal 100% Arial,sans-serif;
}
body.Foamer {
height: auto;
width: auto;
background: url(../img/fpx.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
font:normal 100% Arial,sans-serif;
}
body.FoamerScada {
height: auto;
width: auto;
background: url(../img/fpxScada.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
font:normal 100% Arial,sans-serif;
}
body.FoamerScada {
height: auto;
width: auto;
background: url(../img/scada/FoameScada.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
font:normal 100% Arial,sans-serif;
}
body.Foamer2 {
height: auto;
width: auto;
background: url(../img/foamer2.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
font:normal 100% Arial,sans-serif;
}
body.Foamer3 {
height: auto;
width: auto;
background: url(../img/foamer3.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
font:normal 100% Arial,sans-serif;
}
body.Foamer4 {
height: auto;
width: auto;
background: url(../img/foamer4.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: #FFFFFF;
}
body.Liner {
height: auto;
width: auto;
background: url(../img/ndbj.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
font:normal 100% Arial,sans-serif;
}
body.LinerScada {
height: auto;
width: auto;
background: url(../img/ndbjScada.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
font:normal 100% Arial,sans-serif;
}
body.Evacuate {
height: auto;
width: auto;
background: url(../img/ckxs.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
font:normal 100% Arial,sans-serif;
}
body.Evacuate2 {
height: auto;
width: auto;
background: url(../img/evacuation.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
font:normal 100% Arial,sans-serif;
}
body.Absorb {
height: auto;
width: auto;
background: url(../img/absorb.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
font:normal 100% Arial,sans-serif;
}
body.AbsorbScada {
height: auto;
width: auto;
background: url(../img/absorbScada.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
}
body.AbsorbPreinstall {
height: auto;
width: auto;
background: url(../img/absorbPreinstall.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
}
body.Aluminum {
height: auto;
width: auto;
background: url(../img/aluminum-liner.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
}
body.AbsorbLiner2 {
height: auto;
width: auto;
background: url(../img/absorbLinerDevice.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
}
body.UShellDevice {
height: auto;
width: auto;
background: url(../img/ushell-device.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
}
body.LinerDevice {
height: auto;
width: auto;
background: url(../img/liner-device.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
color: rgba(255,255,255,.95);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,260 @@
.chartDiv {
outline: #00a65a 0px solid;
position: absolute;
width:33.2%;
height:38%;
top: 14.85%;
left: 3.4%;
}
.materInfo{
border: 0px solid red;
width:33.2%;
height:30%;
position:absolute;
top: 62%;
left: 3.4%;
text-align:center;
font-size:1rem;
}
.inleft1{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 42.5%;
}
.inleft2{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.4%;
left: 45.4%;
}
.inleft3{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 48.4%;
}
.inleft4{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 51.4%;
}
.outleft1{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 55.65%;
}
.outleft2{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 58.6%;
}
.outleft3{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 61.6%;
}
.outleft4{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 64.45%;
}
.inright1{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 70.2%;
}
.inright2{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 73.2%;
}
.inright3{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 76.2%;
}
.inright4{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 79%;
}
.outright1{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 83.4%;
}
.outright2{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 86.4%;
}
.outright3{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 89.4%;
}
.outright4{
border: 0px solid red;
text-align: center;
font-size:0.2rem;
color: #61BDEF;
position:absolute;
top: 24.5%;
left: 92.3%;
}
.leftk{
text-align: center;
font-size:0.2rem;
color: #68FA81;
border: 0px solid red;
position:absolute;
height:0.2rem;
width:0.33rem;
top:48%;
left:43%;
}
.lefty{
text-align: center;
font-size:0.2rem;
color: #68FA81;
border: 0px solid red;
position:absolute;
height:0.2rem;
width:0.33rem;
top:64.5%;
left:43%;
}
.rightk{
text-align: center;
font-size:0.2rem;
color: #68FA81;
border: 0px solid red;
position:absolute;
height:0.2rem;
width:0.33rem;
top:48%;
left:88%;
}
.righty{
text-align: center;
font-size:0.2rem;
color: #68FA81;
border: 0px solid red;
position:absolute;
height:0.2rem;
width:0.33rem;
top:64.5%;
left:88%;
}
.kkw{
text-align: center;
font-size:0.2rem;
color: #61BDEF;
border: 0px solid red;
position:absolute;
height:0.2rem;
width:1rem;
bottom: 10.5%;
right: 34%;
}
.yykw{
text-align: center;
font-size:0.2rem;
color: #61BDEF;
border: 0px solid red;
position:absolute;
height:0.2rem;
width:1rem;
bottom: 10.5%;
right: 14.5%;
}
.div-c{
border: 0px solid red;
width:3.5rem;
height:2.5rem;
position:absolute;
top: 35%;
left: 48%;
z-index:70;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,138 @@

.lunbo_div {
width: 736px;
height: 365px;
background-color: #132742;
position: fixed;
border-radius: 10px;
margin: auto;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
.historyLunbo_div {
width: 480px;
height: 545px;
background-color: #143252;
position: fixed;
border-radius: 10px;
margin: auto;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
.rfidReadLunbo_div {
width: 1200px;
height: 270px;
background-color: #132742;
position: fixed;
border-radius: 10px;
margin: auto;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
.cup {
width: 70px;
height: auto;
margin-top: -17px;
margin-left: 20px;
}
.span_bm {
/*display: grid;*/
float: right;
}
.today_title {
display: inline-block;
color: white;
font-size: 14px;
margin-right: 20px;
margin-top: 10px;
}
.totady_pers {
font-size: 30px;
color: white;
font-weight: 600;
}
.bm_content {
width: 727px;
height: 295px;
background-color: white;
margin: 0px 5px 0 5px;
border-radius: 3px;
/*font-size: 14px;*/
overflow: hidden;
position: relative;
top: -5px;
}
.bm_content_history {
width: 480px;
height: 540px;
background-color: #143252;
margin: 0px 5px 0 5px;
border-radius: 3px;
font-size: 14px;
overflow: hidden;
position: relative;
top: 1px;
}
.bm_content_rfidRead {
width: 630px;
height: 345px;
/*background-color: #143252;*/
margin: 0px 0px 0 0px;
border-radius: 3px;
font-size: 14px;
overflow: hidden;
position: relative;
top: 0px;
}
table {
table-layout: fixed;
font-size: 12px;
}
thead {
font-size: 12px;
}
.table > thead > tr > th {
border-bottom: 1px solid #eeeeee;
text-align: center;
}
.table > tbody + tbody {
border-top: 0px;
}
.table img {
width: 15px;
border-radius: 50%;
}
.ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.table {
table-layout: fixed;
}
.center {
vertical-align: middle;
}

@ -0,0 +1,9 @@
#__tt_shared-tooltip__ {
display: none;
border-radius: 0.3rem;
padding: 0.2% 0.3%;
background: #000000b0;
position: absolute;
color: white;
transition: top 300ms ease, left 300ms ease;
}

@ -0,0 +1,149 @@
@font-face {
font-family:ZenIcon;src:url(../fonts/zenicon.woff?v=2.2.0) format('woff')
}
.checkbox-primary,.radio-primary {
position: relative;
display: block
}
.checkbox-primary>input,.radio-primary>input {
position: absolute;
top: 0;
left: 0;
z-index: 3;
width: 100%;
width: 20px;
height: 100%;
margin: 0;
opacity: 0
}
.checkbox-primary>label,.radio-primary>label {
padding-left: 25px;
font-weight: 400;
cursor: pointer
}
.checkbox-primary>label:after,.checkbox-primary>label:before,.radio-primary>label:after,.radio-primary>label:before {
position: absolute;
top: 2px;
right: 0;
left: 0;
display: block;
width: 16px;
height: 16px;
line-height: 16px;
text-align: center;
content: ' ';
border-radius: 2px
}
.checkbox-primary>label:after,.radio-primary>label:after {
z-index: 1;
border: 1px solid gray;
-webkit-transition: .4s cubic-bezier(.175,.885,.32,1);
-o-transition: .4s cubic-bezier(.175,.885,.32,1);
transition: .4s cubic-bezier(.175,.885,.32,1);
-webkit-transition-property: border,background-color;
-o-transition-property: border,background-color;
transition-property: border,background-color
}
.checkbox-primary>label:before,.radio-primary>label:before {
top: 3px;
z-index: 2;
font-family: ZenIcon;
font-size: 14px;
font-style: normal;
font-weight: 400;
font-variant: normal;
line-height: 1;
text-transform: none;
content: '\e60d';
opacity: 0;
-webkit-transition: .2s cubic-bezier(.175,.885,.32,1);
-o-transition: .2s cubic-bezier(.175,.885,.32,1);
transition: .2s cubic-bezier(.175,.885,.32,1);
-webkit-transition-property: opacity,-webkit-transform;
-o-transition-property: opacity,-o-transform;
transition-property: opacity,-webkit-transform;
transition-property: opacity,transform;
transition-property: opacity,transform,-webkit-transform,-o-transform;
-webkit-transform: scale(0);
-ms-transform: scale(0);
-o-transform: scale(0);
transform: scale(0);
speak: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale
}
.checkbox-primary.checked>label:after,.checkbox-primary>input:checked+label:after,.radio-primary.checked>label:after,.radio-primary>input:checked+label:after {
background-color: #3280fc;
border-color: #3280fc;
border-width: 4px
}
.checkbox-primary.checked>label:before,.checkbox-primary>input:checked+label:before,.radio-primary.checked>label:before,.radio-primary>input:checked+label:before {
color: #fff;
opacity: 1;
-webkit-transform: scale(1);
-ms-transform: scale(1);
-o-transform: scale(1);
transform: scale(1)
}
.checkbox-primary.focus>label:after,.checkbox-primary>input:focus+label:after,.radio-primary.focus>label:after,.radio-primary>input:focus+label:after {
border-color: #3280fc;
-webkit-box-shadow: 0 0 8px #3280fc;
box-shadow: 0 0 8px #3280fc
}
.checkbox-primary input:disabled+label:after,.checkbox-primary.disabled>label:after,.radio-primary input:disabled+label:after,.radio-primary.disabled>label:after {
background-color: #e5e5e5;
border-color: #bbb
}
.checkbox-primary input:disabled:checked+label:after,.checkbox-primary.checked.disabled>label:after,.radio-primary input:disabled:checked+label:after,.radio-primary.checked.disabled>label:after {
background-color: #bbb
}
.radio-primary>label:after {
border-radius: 50%
}
.radio-primary>label:before {
top: 7px;
left: 5px;
width: 6px;
height: 6px;
content: ' ';
border: 0;
border-radius: 50%
}
.radio-primary.checked>label:after,.radio-primary>input:checked+label:after {
background-color: transparent;
border-color: #3280fc;
border-width: 2px
}
.radio-primary.checked>label:before,.radio-primary>input:checked+label:before {
background-color: #3280fc
}
.radio-primary input:disabled:checked+label:after,.radio-primary.checked.disabled>label:after {
background-color: transparent;
border-color: #bbb
}
.radio-primary input:disabled:checked+label:before,.radio-primary.checked.disabled>label:before {
background-color: #bbb
}
.tab-cron .tab-pane .tabsecondchk .checkbox-primary,.tab-qqskey .tab-pane .tabsecondchk .checkbox-primary {
width: 50px;
display: inline-block;
margin-bottom: 10px
}

@ -6,12 +6,12 @@
<meta name="keywords" content="">
<meta name="description" content="">
<title th:text="${title}"></title>
<link th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
<link th:href="@{/css/font-awesome.min.css?v=4.7.1}" rel="stylesheet"/>
<link th:href="@{/styleCss/bootstrap.min.css}" rel="stylesheet"/>
<link th:href="@{/styleCss/font-awesome.min.css?v=4.7.1}" rel="stylesheet"/>
<!-- bootstrap-table 表格插件样式 -->
<link th:href="@{/ajax/libs/bootstrap-table/bootstrap-table.min.css?v=1.18.3}" rel="stylesheet"/>
<link th:href="@{/css/animate.min.css?v=20210831}" rel="stylesheet"/>
<link th:href="@{/css/style.min.css?v=20210831}" rel="stylesheet"/>
<link th:href="@{/styleCss/animate.min.css?v=20210831}" rel="stylesheet"/>
<link th:href="@{/styleCss/style.min.css?v=20210831}" rel="stylesheet"/>
<link th:href="@{/ruoyi/css/ry-ui.css?v=4.7.1}" rel="stylesheet"/>
</head>

@ -8,12 +8,12 @@
<!-- 避免IE使用兼容模式 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link th:href="@{favicon.ico}" rel="shortcut icon"/>
<link th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
<link th:href="@{/css/jquery.contextMenu.min.css}" rel="stylesheet"/>
<link th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
<link th:href="@{/css/animate.min.css}" rel="stylesheet"/>
<link th:href="@{/css/style.min.css}" rel="stylesheet"/>
<link th:href="@{/css/skins.css?v=20200902}" rel="stylesheet"/>
<link th:href="@{/styleCss/bootstrap.min.css}" rel="stylesheet"/>
<link th:href="@{/styleCss/jquery.contextMenu.min.css}" rel="stylesheet"/>
<link th:href="@{/styleCss/font-awesome.min.css}" rel="stylesheet"/>
<link th:href="@{/styleCss/animate.min.css}" rel="stylesheet"/>
<link th:href="@{/styleCss/style.min.css}" rel="stylesheet"/>
<link th:href="@{/styleCss/skins.css?v=20200902}" rel="stylesheet"/>
<link th:href="@{/ruoyi/css/ry-ui.css?v=4.7.1}" rel="stylesheet"/>
</head>
<body class="fixed-sidebar full-height-layout gray-bg" th:classappend="${isMobile} ? 'canvas-menu'" style="overflow: hidden">
@ -30,7 +30,7 @@
</li>
</a>
<div class="sidebar-collapse tab-content" id="side-menu">
<div class="user-panel">
<!--<div class="user-panel">
<a class="menuItem noactive" title="个人中心" th:href="@{/system/user/profile}">
<div class="hide" th:text="个人中心"></div>
<div class="pull-left image">
@ -42,7 +42,7 @@
<a href="#"><i class="fa fa-circle text-success"></i> 在线</a>
<a th:href="@{logout}" style="padding-left:5px;"><i class="fa fa-sign-out text-danger"></i> 注销</a>
</div>
</div>
</div>-->
<!-- 左侧菜单 -->
<th:block th:each="menu : ${menus}">
@ -79,14 +79,14 @@
</th:block>
<!-- 首页菜单 -->
<div class="tab-pane fade height-full" id="index">
<!--<div class="tab-pane fade height-full" id="index">
<ul class="nav">
<li>
<a class="menuItem" th:href="@{/system/main}">
<i class="fa fa-home"></i> <span class="nav-label">首页</span></a>
</li>
</ul>
</div>
</div>-->
<!-- 实例演示菜单 -->
<div class="tab-pane fade height-full" id="demo" th:if="${demoEnabled}">
@ -228,11 +228,11 @@
</li>
</th:block>
<li role="presentation" id="tab_index">
<!--<li role="presentation" id="tab_index">
<a data-toggle="tab" href="#index">
<i class="fa fa-area-chart"></i> <span>统计报表</span>
</a>
</li>
</li>-->
<li role="presentation" id="tab_demo" th:if="${demoEnabled}">
<a data-toggle="tab" href="#demo">
@ -243,13 +243,13 @@
</div>
<!-- 右侧栏 -->
<ul class="nav navbar-top-links navbar-right welcome-message">
<li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="开发文档" href="http://doc.ruoyi.vip/ruoyi" target="_blank"><i class="fa fa-question-circle"></i> 文档</a></li>
<!--<li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="开发文档" href="http://doc.ruoyi.vip/ruoyi" target="_blank"><i class="fa fa-question-circle"></i> 文档</a></li>
<li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="锁定屏幕" href="#" id="lockScreen"><i class="fa fa-lock"></i> 锁屏</a></li>
<li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="全屏显示" href="#" id="fullScreen"><i class="fa fa-arrows-alt"></i> 全屏</a></li>
<li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="全屏显示" href="#" id="fullScreen"><i class="fa fa-arrows-alt"></i> 全屏</a></li>-->
<li class="dropdown user-menu">
<a href="javascript:void(0)" class="dropdown-toggle" data-hover="dropdown">
<img th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/profile.jpg} : @{${user.avatar}}" th:onerror="this.src='img/profile.jpg'" class="user-image">
<!--<img th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/profile.jpg} : @{${user.avatar}}" th:onerror="this.src='img/profile.jpg'" class="user-image">-->
<span class="hidden-xs">[[${#strings.defaultString(user.userName, '-')}]]</span>
</a>
<ul class="dropdown-menu">
@ -257,21 +257,21 @@
<a th:href="@{/system/user/profile}" class="menuItem noactive">
<i class="fa fa-user"></i> 个人中心</a>
</li>
<li>
<!--<li>
<a onclick="resetPwd()">
<i class="fa fa-key"></i> 修改密码</a>
</li>
</li>-->
<li>
<a onclick="switchSkin()">
<i class="fa fa-dashboard"></i> 切换主题</a>
<a th:href="@{/index}">
<i class="fa fa-dashboard"></i> 监控中心</a>
</li>
<li>
<!--<li>
<a onclick="toggleMenu()">
<i class="fa fa-toggle-off"></i> 左侧菜单</a>
</li>
</li>-->
<li class="divider"></li>
<li>
<a th:href="@{logout}">
<a th:href="@{/logout}">
<i class="fa fa-sign-out"></i> 退出登录</a>
</li>
</ul>

@ -4,7 +4,7 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="renderer" content="webkit">
<title>输电智慧物联监控平台</title>
<title>智慧物联监控平台</title>
<!-- 避免IE使用兼容模式 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link th:href="@{favicon.ico}" rel="shortcut icon"/>
@ -27,6 +27,7 @@
left: 2.5%;
height: 87%;
}
</style>
</head>
<body class="body-bg-1">
@ -37,6 +38,19 @@
<button class="btn section-button">分类监测</button>
</div>
<div class="main-title">智慧物联监控平台</div>
<div style="position: absolute;
border: 0px solid red;
width: 28%;
height: 5%;
top: 3%;
right: 2.7%;">
<div style="position: absolute;width: 10%;height:100%;right:15%;border: 0px solid yellow;">
<img onclick="userInfoOnclick()" th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/userInfo.png} : @{${user.avatar}}" th:onerror="this.src='img/userInfo.png'" alt="User Image" title="用户信息" style="height:80%;width:80%;cursor: pointer;">
</div>
<div style="position: absolute;width: 10%;height:100%;right:5%;border: 0px solid yellow;">
<a th:href="@{logout}" style="padding-left:5px;" title="注销"><i class="fa fa-sign-out text-danger"></i> </a>
</div>
</div>
</header>
<div class="nav nav-tabs tab-group" id="tab-group">
@ -149,5 +163,11 @@
resize()
})
</script>
<script type="text/javascript">
function userInfoOnclick() {
location.href = '/indexInfo/index';
}
</script>
</body>
</html>

@ -53,7 +53,9 @@
<input type="checkbox" class="form-check-input" id="rememberme" name="rememberme">
<label for="rememberme" class="form-check-label">记住我</label>
</div>
<button class="btn btn-success btn-block" id="btnSubmit" data-loading="正在验证登录,请稍候...">登录</button>
<div style="width:100%;height:20%;text-align:center;">
<button class="btn btn-success btn-block" style="width:50%;margin: 0 auto;dis" id="btnSubmit" data-loading="正在验证登录,请稍候...">登录</button>
</div>
</form>
</div>
</div>

@ -12,7 +12,7 @@
</head>
<body class="gray-bg">
<div class="row border-bottom white-bg dashboard-header">
<!--<div class="row border-bottom white-bg dashboard-header">
<div class="col-sm-12">
<blockquote class="text-warning" style="font-size:14px">
领取阿里云通用云产品1888优惠券
@ -1410,7 +1410,7 @@
</div>
</div>
</div>
</div>
</div>-->
<script th:src="@{/js/jquery.min.js}"></script>
<script th:src="@{/js/bootstrap.min.js}"></script>
<script th:src="@{/ajax/libs/layer/layer.min.js}"></script>

@ -280,6 +280,7 @@ public class ShiroConfig
filterChainDefinitionMap.put("/ruoyi.png**", "anon");
filterChainDefinitionMap.put("/html/**", "anon");
filterChainDefinitionMap.put("/css/**", "anon");
filterChainDefinitionMap.put("/styleCss/**", "anon");
filterChainDefinitionMap.put("/docs/**", "anon");
filterChainDefinitionMap.put("/fonts/**", "anon");
filterChainDefinitionMap.put("/img/**", "anon");

Loading…
Cancel
Save