首页及后台

This commit is contained in:
skjia 2024-07-26 09:03:34 +08:00
parent 9bdd98f2a9
commit 61fffac96b
11 changed files with 431 additions and 28 deletions

View File

@ -0,0 +1,77 @@
package com.bonus.aqgqj.basis.controller;
import com.bonus.aqgqj.annotation.DecryptAndVerify;
import com.bonus.aqgqj.basis.entity.dto.ToolsManageDto;
import com.bonus.aqgqj.basis.entity.vo.HomeVo;
import com.bonus.aqgqj.basis.service.HomeService;
import io.swagger.annotations.Api;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* 工器具个体管理
* @author hay
*/
@Api(tags = "首页")
@RestController
@RequestMapping("/home/")
public class HomeController {
private static final Logger log = LoggerFactory.getLogger("adminLogger");
@Autowired
private HomeService service;
@PostMapping(value = "getApprovalNum")
@DecryptAndVerify(decryptedClass = ToolsManageDto.class)
public Map<String,Object> getApprovalNum(HomeVo vo) {
Map<String,Object> map=new HashMap<>();
try{
map=service.getApprovalNum(vo);
}catch (Exception e){
e.printStackTrace();
}
return map;
}
@PostMapping(value = "getATeamNumForEcharts")
@DecryptAndVerify(decryptedClass = ToolsManageDto.class)
public Map<String,Object> getATeamNumForEcharts(HomeVo vo) {
Map<String,Object> map=new HashMap<>();
try{
map=service.getATeamNumForEcharts(vo);
}catch (Exception e){
e.printStackTrace();
}
return map;
}
@PostMapping(value = "getATeamCostForEcharts")
@DecryptAndVerify(decryptedClass = ToolsManageDto.class)
public Map<String,Object> getATeamCostForEcharts(HomeVo vo) {
Map<String,Object> map=new HashMap<>();
try{
map=service.getATeamCostForEcharts(vo);
}catch (Exception e){
e.printStackTrace();
}
return map;
}
@PostMapping(value = "getCostRank")
@DecryptAndVerify(decryptedClass = ToolsManageDto.class)
public Map<String,Object> getCostRank(HomeVo vo) {
Map<String,Object> map=new HashMap<>();
try{
map=service.getCostRank(vo);
}catch (Exception e){
e.printStackTrace();
}
return map;
}
}

View File

@ -0,0 +1,36 @@
package com.bonus.aqgqj.basis.dao;
import com.bonus.aqgqj.basis.entity.dto.ToolsManageDto;
import com.bonus.aqgqj.basis.entity.vo.HomeVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
@Mapper
public interface HomeDao {
/**
* 查询审批数
* @param vo
* @return
*/
List<HomeVo> getApprovalNum(HomeVo vo);
/**
* 查询试验班组echarts
* @param vo
* @return
*/
List<HomeVo> getATeamNumForEcharts(HomeVo vo);
/**
* 查询试验费用echarts
* @param vo
* @return
*/
List<HomeVo> getATeamCostForEcharts(HomeVo vo);
/**
* 查询费用排名
* @param vo
* @return
*/
List<HomeVo> getCostRank(HomeVo vo);
}

View File

@ -0,0 +1,83 @@
package com.bonus.aqgqj.basis.entity.vo;
import com.bonus.aqgqj.utils.UserUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.Date;
/**
* @className:ExperDeviceVo
* @author:cwchen
* @date:2024-07-19-13:29
* @version:1.0
* @description:试验设备-vo
*/
@Data
public class HomeVo {
/**
* 待派工
*/
private String dispatchWorkNum;
/**
* 待试验/实验数
*/
private String testNum;
/**
* 待重新审阅
*/
private String reloadReviewNUm;
/**
* 待审阅
*/
private String reviewNUm;
/**
* 待审核
*/
private String examineNum;
/**
* 待审批
*/
private String approvalNum;
/**
* 班组名称
*/
private String teamName;
/**
* 试验日期
*/
private String testData;
/**
* 试验费用
*/
private String testCost;
/**
* 排名
*/
private String sortNum;
/**
* 用户名称
*/
private String userName;
/**
* 总费用
*/
private String totalCost;
/**
* 订单量
*/
private String orderNum;
/**
* 联系人
*/
private String contacts;
/**
* 联系电话
*/
private String contactPhone;
/**
* 合作时间
*/
private String cooperateDate;
}

View File

@ -0,0 +1,38 @@
package com.bonus.aqgqj.basis.service;
import com.bonus.aqgqj.basis.entity.dto.ToolsManageDto;
import com.bonus.aqgqj.basis.entity.vo.HomeVo;
import java.util.List;
import java.util.Map;
/**
* 工器具个体管理
* @author hay
*/
public interface HomeService {
/**
* 查询审批数
* @param vo
* @return
*/
Map<String,Object> getApprovalNum(HomeVo vo);
/**
* 查询试验班组echarts
* @param vo
* @return
*/
Map<String,Object> getATeamNumForEcharts(HomeVo vo);
/**
* 查询试验费用echarts
* @param vo
* @return
*/
Map<String,Object> getATeamCostForEcharts(HomeVo vo);
/**
* 查询费用排名
* @param vo
* @return
*/
Map<String,Object> getCostRank(HomeVo vo);
}

View File

@ -0,0 +1,82 @@
package com.bonus.aqgqj.basis.service.impl;
import com.bonus.aqgqj.basis.dao.HomeDao;
import com.bonus.aqgqj.basis.dao.ToolsManageDao;
import com.bonus.aqgqj.basis.entity.dto.ToolsManageDto;
import com.bonus.aqgqj.basis.entity.vo.HomeVo;
import com.bonus.aqgqj.basis.service.HomeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @description 工器具个体管理
* @author hay
* @date 2024/7/20 16:10
*/
@Slf4j
@Service
public class HomeServiceImpl implements HomeService {
@Resource
private HomeDao dao;
@Override
public Map<String, Object> getApprovalNum(HomeVo vo) {
Map<String, Object> map=new HashMap<>();
try{
List<HomeVo> list=dao.getApprovalNum(vo);
HomeVo hvo=new HomeVo();
map.put("data",hvo);
map.put("code","200");
}catch (Exception e){
e.printStackTrace();
map.put("code","400");
}
return map;
}
@Override
public Map<String, Object> getATeamNumForEcharts(HomeVo vo) {
Map<String, Object> map=new HashMap<>();
try{
List<HomeVo> list=dao.getATeamNumForEcharts(vo);
HomeVo hvo=new HomeVo();
map.put("data",hvo);
map.put("code","200");
}catch (Exception e){
e.printStackTrace();
map.put("code","400");
}
return map;
}
@Override
public Map<String, Object> getATeamCostForEcharts(HomeVo vo) {
Map<String, Object> map=new HashMap<>();
try{
List<HomeVo> list=dao.getATeamCostForEcharts(vo);
HomeVo hvo=new HomeVo();
map.put("data",hvo);
map.put("code","200");
}catch (Exception e){
e.printStackTrace();
map.put("code","400");
}
return map;
}
@Override
public Map<String, Object> getCostRank(HomeVo vo) {
Map<String, Object> map=new HashMap<>();
try{
List<HomeVo> list=dao.getCostRank(vo);
HomeVo hvo=new HomeVo();
map.put("data",hvo);
map.put("code","200");
}catch (Exception e){
e.printStackTrace();
map.put("code","400");
}
return map;
}
}

View File

@ -67,7 +67,7 @@ public class TokenFilter extends OncePerRequestFilter {
@Autowired @Autowired
private RedisUtil redisUtil; private RedisUtil redisUtil;
private static String url="/zhly/login.html"; private static String url="/szgqj/login.html";
private static final Long MINUTES_10 = 10 * 60 * 1000L; private static final Long MINUTES_10 = 10 * 60 * 1000L;

View File

@ -9,12 +9,15 @@ server.port=11997
#\u8BBF\u95EE\u8DEF\u5F84 #\u8BBF\u95EE\u8DEF\u5F84
server.servlet.context-path=/szgqj server.servlet.context-path=/szgqj
#mysql\u6570\u636E\u5E93\u8FDE\u63A5 #mysql\u6570\u636E\u5E93\u8FDE\u63A5
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/bns_zhly?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 #spring.datasource.url=jdbc:mysql://127.0.0.1:3306/bns_zhly?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
spring.datasource.username=root #spring.datasource.username=root
spring.datasource.password=bonus@admin123 #spring.datasource.password=bonus@admin123
#spring.datasource.url=jdbc:mysql://192.168.0.7:13306/bns_zhly?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 #spring.datasource.url=jdbc:mysql://192.168.0.7:13306/sz_aqgqj?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
#spring.datasource.username=root #spring.datasource.username=root
#spring.datasource.password=Bonus@admin123! #spring.datasource.password=Bonus@admin123!
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/sz_aqgqj ?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=jsk@131551
#spring.datasource.url=jdbc:mysql://192.168.0.14:2000/bns_zhly?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 #spring.datasource.url=jdbc:mysql://192.168.0.14:2000/bns_zhly?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
#spring.datasource.username=root #spring.datasource.username=root
#spring.datasource.password=zhly@mysql14! #spring.datasource.password=zhly@mysql14!
@ -32,10 +35,12 @@ mybatis.type-aliases-package=com.bonus.aqgqj.*.vo
#spring.redis.host=localhost #spring.redis.host=localhost
#spring.redis.host=127.0.0.1
#spring.redis.port=6379
#spring.redis.database=4
spring.redis.host=127.0.0.1 spring.redis.host=127.0.0.1
spring.redis.port=6379 spring.redis.port=6379
spring.redis.database=4 spring.redis.password=123456
#spring.redis.host=192.168.0.14 #spring.redis.host=192.168.0.14
#spring.redis.port=2002 #spring.redis.port=2002

View File

@ -35,7 +35,7 @@
.two table td .daiban div:nth-child(2){ .two table td .daiban div:nth-child(2){
margin-left: 2%; margin-left: 2%;
color: #0000FF; color: #0000FF;
font-size: 18px; font-size: 40px;
padding-top: 10px; padding-top: 10px;
} }
.two table td .daiban div:nth-child(3){ .two table td .daiban div:nth-child(3){
@ -81,9 +81,12 @@
} }
.three-one button:nth-child(2){ .three-one button:nth-child(2){
float: right; float: right;
width: 80px;
} }
.three-one button:nth-child(3){ .three-one button:nth-child(3){
float: right; float: right;
margin-right: 20px;
width: 80px;
} }
.three-two div:nth-child(1){ .three-two div:nth-child(1){
margin-top: 2%; margin-top: 2%;

View File

@ -25,10 +25,17 @@ var data=[{"numbers":1,"username":"测试","fee":"测试","dingdan":"测试","na
,{"numbers":12,"username":"测试","fee":"测试","dingdan":"测试","name":"测试","phone":"测试","gettime":"测试"} ,{"numbers":12,"username":"测试","fee":"测试","dingdan":"测试","name":"测试","phone":"测试","gettime":"测试"}
,{"numbers":13,"username":"测试","fee":"测试","dingdan":"测试","name":"测试","phone":"测试","gettime":"测试"} ,{"numbers":13,"username":"测试","fee":"测试","dingdan":"测试","name":"测试","phone":"测试","gettime":"测试"}
] ]
var intervalId;
var scrollableDiv ; // 假设你的滚动容器类名为.scrollable
var totalHeight ;
var visibleHeight ;
var currentScrollTop = 0;
function iniTable(){ function iniTable(){
table.render({ table.render({
elem: '#table-box', elem: '#table-box',
data:data, data:data,
limit: 10000,
page:false,
cols: [[ cols: [[
{type: 'numbers', title: '排名', width: '10%',align:"center"}//序号列 {type: 'numbers', title: '排名', width: '10%',align:"center"}//序号列
,{field: 'username', title: '用户名称', width: '20%',align:"center"} ,{field: 'username', title: '用户名称', width: '20%',align:"center"}
@ -39,6 +46,32 @@ function iniTable(){
,{field: 'gettime', title: '最近合作时间', width: '15%',align:"center"} ,{field: 'gettime', title: '最近合作时间', width: '15%',align:"center"}
]] ]]
}); });
scrollableDiv = $('#table-box + div .layui-table-body'); // 假设你的滚动容器类名为.scrollable
totalHeight = scrollableDiv[0].scrollHeight;
visibleHeight = scrollableDiv.innerHeight();
currentScrollTop = 0;
console.log(totalHeight,"totalHeight")
console.log(visibleHeight,"visibleHeight")
intervalId = setInterval(scrolldiv, 40);
monveinout();
}
function monveinout(){
$('#table-box + div .layui-table-body').on("mouseenter",function(){
clearInterval(intervalId);
}).on("mouseleave",function(){
intervalId = setInterval(scrolldiv, 40);
})
}
function scrolldiv() {
// 如果滚动到最底部,重置到顶部
if (currentScrollTop + visibleHeight >= totalHeight) {
currentScrollTop = 0;
scrollableDiv.scrollTop(currentScrollTop);
} else {
// 否则,向下滚动一定的像素数
currentScrollTop += 1; // 调整这个数字来改变滚动速度
scrollableDiv.scrollTop(currentScrollTop);
}
} }
function echartsone(){ function echartsone(){
var myChart = echarts.init(document.getElementById('echartsone')); var myChart = echarts.init(document.getElementById('echartsone'));
@ -48,12 +81,23 @@ function echartsone(){
}, },
legend: {}, legend: {},
tooltip: { tooltip: {
trigger: 'axis' // 修改tooltip的触发方式例如改为'axis'轴触发
trigger: 'axis',
// 自定义内容格式化函数
// 其他tooltip样式和行为
extraCssText: 'width:160px;height:100px;',
backgroundColor: 'rgba(50,50,50,0.7)', // 背景颜色
borderColor: '#333', // 边框颜色
borderWidth: 1, // 边框宽度
padding: 0, // 内边距
textStyle: {
color: '#fff' // 文本颜色
},
}, },
xAxis: { xAxis: {
type: 'category', type: 'category',
boundaryGap: false, boundaryGap: false,
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] data: ['2024-07-01', '2024-07-02', '2024-07-03', '2024-07-04', '2024-07-05', '2024-07-06', '2024-07-07']
}, },
yAxis: { yAxis: {
type: 'value', type: 'value',
@ -66,12 +110,29 @@ function echartsone(){
name: '实验一班', name: '实验一班',
type: 'line', type: 'line',
data: [10, 11, 13, 11, 12, 12, 9], data: [10, 11, 13, 11, 12, 12, 9],
lineStyle: {
color: '#0052D9',
width: 2,
type: 'solid'
},
// 设置散点(线中的点)颜色
itemStyle: {
color: '#0052D9'
}
}, },
{ {
name: '实验二班', name: '实验二班',
type: 'line', type: 'line',
data: [1, 2, 2, 5, 3, 2, 4], data: [1, 2, 2, 5, 3, 2, 4],
lineStyle: {
color: '#B5C7FF',
width: 2,
type: 'solid'
},
// 设置散点(线中的点)颜色
itemStyle: {
color: '#B5C7FF'
}
} }
] ]
}; };
@ -81,7 +142,8 @@ function echartstwo(){
var myChart = echarts.init(document.getElementById('echartstwo')); var myChart = echarts.init(document.getElementById('echartstwo'));
option = { option = {
tooltip: { tooltip: {
trigger: 'item' trigger: 'item',
extraCssText: 'width:160px;height:100px;',
}, },
// legend: { // legend: {
// orient: 'vertical', // orient: 'vertical',
@ -90,20 +152,14 @@ function echartstwo(){
legend: {}, legend: {},
series: [ series: [
{ {
name: 'Access From', name: '',
type: 'pie', type: 'pie',
radius: '50%', radius: '50%',
color: ['#0052D9', '#B5C7FF'],
data: [ data: [
{ value: 1048, name: '试验一班' }, { value: 1048, name: '试验一班' },
{ value: 735, name: '试验二班' } { value: 735, name: '试验二班' }
], ]
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.3)'
}
}
} }
] ]
}; };

View File

@ -35,10 +35,10 @@ function error(xhr) {
icon: 5, icon: 5,
move: false, move: false,
cancel: function (index, layero) { cancel: function (index, layero) {
location.href = '/zhly/login.html'; location.href = '/szgqj/login.html';
} }
}, function () { }, function () {
location.href = '/zhly/login.html'; location.href = '/szgqj/login.html';
}) })
} else if (code == 403) { } else if (code == 403) {
console.log("未授权:" + message); console.log("未授权:" + message);

View File

@ -6,6 +6,29 @@
<link rel="stylesheet" type="text/css" media="screen" href="../../js/layui-v2.6.8/css/layui.css"> <link rel="stylesheet" type="text/css" media="screen" href="../../js/layui-v2.6.8/css/layui.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../css/home/home.css"> <link rel="stylesheet" type="text/css" media="screen" href="../../css/home/home.css">
</head> </head>
<style>
#table-box + div .layui-table-body {
height: 392px;
overflow-y: auto;
}
/* 自定义整个滚动条 */
::-webkit-scrollbar {
width: 10px; /* 设置滚动条的宽度 */
}
/* 自定义滚动条轨道 */
::-webkit-scrollbar-track {
background: #f1f1f1; /* 设置轨道的背景颜色 */
}
/* 自定义滚动条的滑块thumb */
::-webkit-scrollbar-thumb {
background: #F2F2F2; /* 设置滑块的背景颜色 */
}
/* 当滑块悬停或活动时自定义滚动条的滑块 */
::-webkit-scrollbar-thumb:hover {
background: #888; /* 设置滑块在悬停状态下的背景颜色 */
box-shadow: 0 0 10px #fff;
}
</style>
<body style="width: 99% !important;"> <body style="width: 99% !important;">
<div class="container"> <div class="container">
<div class="one"><span>待办任务统计</span></div> <div class="one"><span>待办任务统计</span></div>
@ -21,14 +44,14 @@
</td> </td>
<td> <td>
<div class="daiban"> <div class="daiban">
<div><span>派工</span></div> <div><span>试验</span></div>
<div><span>24</span></div> <div><span>24</span></div>
<div><span>更新至</span><span>2024-07-18</span></div> <div><span>更新至</span><span>2024-07-18</span></div>
</div> </div>
</td> </td>
<td> <td>
<div class="daiban"> <div class="daiban">
<div><span>派工</span></div> <div><span>重新审阅</span></div>
<div><span>24</span></div> <div><span>24</span></div>
<div><span>更新至</span><span>2024-07-18</span></div> <div><span>更新至</span><span>2024-07-18</span></div>
</div> </div>
@ -37,21 +60,21 @@
<tr> <tr>
<td> <td>
<div class="daiban"> <div class="daiban">
<div><span>派工</span></div> <div><span>审阅</span></div>
<div><span>24</span></div> <div><span>24</span></div>
<div><span>更新至</span><span>2024-07-18</span></div> <div><span>更新至</span><span>2024-07-18</span></div>
</div> </div>
</td> </td>
<td> <td>
<div class="daiban"> <div class="daiban">
<div><span>派工</span></div> <div><span>审核</span></div>
<div><span>24</span></div> <div><span>24</span></div>
<div><span>更新至</span><span>2024-07-18</span></div> <div><span>更新至</span><span>2024-07-18</span></div>
</div> </div>
</td> </td>
<td> <td>
<div class="daiban"> <div class="daiban">
<div><span>派工</span></div> <div><span>审批</span></div>
<div><span>24</span></div> <div><span>24</span></div>
<div><span>更新至</span><span>2024-07-18</span></div> <div><span>更新至</span><span>2024-07-18</span></div>
</div> </div>