33 changed files with 1732 additions and 211 deletions
@ -0,0 +1,137 @@ |
|||
@charset "UTF-8"; |
|||
|
|||
/* CSS Document */ |
|||
|
|||
|
|||
|
|||
|
|||
* { |
|||
margin: 0; |
|||
padding: 0; |
|||
font-family: 'Microsoft Yahei', Arial, Verdana, sans-serif; |
|||
} |
|||
|
|||
html { |
|||
width: 100%; |
|||
height: 100%; |
|||
overflow: hidden; |
|||
} |
|||
|
|||
body { |
|||
height: 100%; |
|||
width: 100%; |
|||
background: url(../img/bg_login.jpg) no-repeat #dde1e2 center -130px; |
|||
color: #4c4c4c; |
|||
font-size: 14px; |
|||
} |
|||
|
|||
.logsty { |
|||
position: absolute; |
|||
top: 5%; |
|||
left: 5%; |
|||
width: 35%; |
|||
height: 60px; |
|||
background: url(../img/logo.png) no-repeat; |
|||
background-size: 70%; |
|||
} |
|||
|
|||
.loginwrap { |
|||
position: absolute; |
|||
z-index: 9; |
|||
top: 50%; |
|||
left: 50%; |
|||
-webkit-transform: translate(-50%, -50%); |
|||
transform: translate(-50%, -50%); |
|||
width: 50%; |
|||
height: 50%; |
|||
padding: 3%; |
|||
background: #fff url(../img/login_pic.png) no-repeat left -10% top -10px; |
|||
background-size: auto 105%; |
|||
border-radius: 20px; |
|||
box-shadow: 0 0 15px rgba(0, 10, 51, .35); |
|||
} |
|||
|
|||
.loginbox { |
|||
position: absolute; |
|||
top: 10%; |
|||
right: 5%; |
|||
width: 35%; |
|||
letter-spacing: 2px; |
|||
} |
|||
|
|||
.loginbox h1 { |
|||
font-size: 24px; |
|||
font-weight: 550; |
|||
line-height: 3; |
|||
text-align: center; |
|||
} |
|||
|
|||
.inptit { |
|||
margin: 5% 0 2% 5%; |
|||
font-size: 16px; |
|||
color: #000; |
|||
} |
|||
|
|||
.loginbox input, .loginbtn { |
|||
color: #999999; |
|||
margin: 0 5%; |
|||
height: 40px; |
|||
line-height: 32px; |
|||
width: 90%; |
|||
padding: 0 3%; |
|||
border: 0 none; |
|||
box-sizing: border-box; |
|||
} |
|||
|
|||
.loginbox input.usersty, .loginbox input.pwsty, .loginbox input.checksty { |
|||
border-bottom: 1px solid #ddd; |
|||
} |
|||
|
|||
.loginbox input.checksty { |
|||
width: 16px; |
|||
margin-top: 16px; |
|||
} |
|||
|
|||
.remtxt { |
|||
display: inherit; |
|||
margin: -30px 0 0 42px; |
|||
color: #666666; |
|||
} |
|||
|
|||
.fortxt { |
|||
display: inline-block; |
|||
float: right; |
|||
margin: -20px 10px 0 0; |
|||
color: #2380fe; |
|||
text-decoration: none; |
|||
} |
|||
|
|||
.loginbtn { |
|||
margin: 20% auto 0; |
|||
background-color: #1367fe; |
|||
border-radius: 50px; |
|||
color: #fff; |
|||
font-size: 16px; |
|||
line-height: 40px; |
|||
text-align: center; |
|||
box-shadow: 0 0 10px rgba(19, 103, 254, .8); |
|||
} |
|||
|
|||
.loginbtn:hover { |
|||
opacity: 0.8; |
|||
cursor: pointer; |
|||
} |
|||
@media screen and (max-width: 1600px) { |
|||
|
|||
.loginwrap { |
|||
width: 60%; |
|||
background-position: left -12% top -10px; |
|||
} |
|||
} |
|||
@media screen and (max-width: 1024px) { |
|||
|
|||
.loginwrap { |
|||
width: 65%; |
|||
background-position: left -15% top -10px; |
|||
} |
|||
} |
|||
@ -0,0 +1,200 @@ |
|||
|
|||
|
|||
/* CSS Document */ |
|||
|
|||
|
|||
* { |
|||
margin: 0; |
|||
padding: 0; |
|||
font-family: 'Microsoft Yahei', Arial, Verdana, sans-serif; |
|||
} |
|||
|
|||
html { |
|||
width: 100%; |
|||
height: 100%; |
|||
overflow: hidden; |
|||
} |
|||
|
|||
body { |
|||
height: 100%; |
|||
width: 100%; |
|||
color: #4c4c4c; |
|||
font-size: 14px; |
|||
} |
|||
|
|||
.statwrap { |
|||
padding: 1.5% 1%; |
|||
width: 100%; |
|||
height: 100%; |
|||
box-sizing: border-box; |
|||
} |
|||
|
|||
.headtit { |
|||
height: 3rem; |
|||
} |
|||
|
|||
.seltime { |
|||
display: flex; |
|||
position: absolute; |
|||
top: 110px; |
|||
right: 1%; |
|||
align-items: center; |
|||
} |
|||
|
|||
.seltime > i { |
|||
display: inline-block; |
|||
margin: 0 5px 0 0; |
|||
width: 24px; |
|||
height: 24px; |
|||
background: url(../images/icon_can.png) no-repeat; |
|||
background-size: 100%; |
|||
opacity: .5; |
|||
} |
|||
|
|||
.seltime > span { |
|||
display: inline-block; |
|||
margin: 0 10px; |
|||
} |
|||
|
|||
.seltime > span > select { |
|||
display: inline-block; |
|||
margin: 0 8px 0 0; |
|||
padding: 6px; |
|||
background: #FFFFFF none; |
|||
border: 1px solid #e5e6e7; |
|||
border-radius: 6px; |
|||
} |
|||
|
|||
.statit { |
|||
display: flex; |
|||
margin: 1% 0; |
|||
width: 60%; |
|||
} |
|||
|
|||
.statit > span { |
|||
display: inline-block; |
|||
margin: 1% 2% 0 0; |
|||
min-width: 6%; |
|||
height: 2.25rem; |
|||
line-height: 1.75; |
|||
color: rgba(0,0,0,0.4); |
|||
font-size: 1.15rem; |
|||
font-weight: 600; |
|||
text-align: center; |
|||
white-space: nowrap; |
|||
cursor: pointer; |
|||
} |
|||
|
|||
.statit>span.actit { |
|||
background: url(../images/sel_tab.png) no-repeat center bottom; |
|||
border-bottom: 3px solid rgba(12, 94, 249,1); |
|||
color: rgb(12, 94, 249); |
|||
} |
|||
|
|||
.tab_item { |
|||
display: none; |
|||
position: relative; |
|||
margin: 2.0rem 0 0; |
|||
height: calc(100% - 9rem); |
|||
clear: both; |
|||
} |
|||
|
|||
.desktab { |
|||
margin: auto; |
|||
border: 1px solid #ddd; |
|||
border-bottom: 0; |
|||
border-right: 0; |
|||
table-layout: fixed; |
|||
} |
|||
|
|||
.desktab tr { |
|||
border-bottom: 1px solid #ddd; |
|||
} |
|||
|
|||
.desktab tr:last-child { |
|||
border-bottom: 0; |
|||
} |
|||
|
|||
.desktab td, .desktab th, .noborder td { |
|||
padding: 8px 20px; |
|||
height: 42px; |
|||
border: 1px solid #ddd; |
|||
border-top: 0; |
|||
border-left: 0; |
|||
color: #666; |
|||
line-height: 20px; |
|||
word-break: keep-all; |
|||
white-space: nowrap; |
|||
text-overflow: ellipsis; |
|||
text-align: center; |
|||
overflow: hidden; |
|||
} |
|||
|
|||
.trodd th { |
|||
height: 40px; |
|||
background: #eaebec; |
|||
color: #4c4c4c; |
|||
} |
|||
|
|||
.line-clamp { |
|||
height: 20px; |
|||
overflow: hidden; |
|||
white-space: nowrap; |
|||
-webkit-line-clamp: 1; |
|||
-webkit-box-orient: vertical; |
|||
text-align: left; |
|||
text-overflow: ellipsis; |
|||
} |
|||
|
|||
.listhead { |
|||
width: 100%; |
|||
} |
|||
|
|||
.listbody { |
|||
position: relative; |
|||
height: calc(100% - 60px); |
|||
overflow: hidden; |
|||
} |
|||
|
|||
.inner { |
|||
position: absolute; |
|||
left: 0; |
|||
top: 0; |
|||
right: -6px; |
|||
bottom: 0; |
|||
overflow-x: hidden; |
|||
overflow-y: scroll; |
|||
} |
|||
|
|||
.chartbox { |
|||
float: left; |
|||
margin: 2% 2%; |
|||
width: 45%; |
|||
height: 90%; |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
/** 滚动条样式 **/ |
|||
::-webkit-scrollbar-track { |
|||
background-color: #F5F5F5; |
|||
} |
|||
|
|||
::-webkit-scrollbar { |
|||
width: 6px; |
|||
height: 10px; |
|||
background-color: #F5F5F5; |
|||
} |
|||
|
|||
::-webkit-scrollbar-thumb { |
|||
border-radius: 6px; |
|||
background-color: #999; |
|||
} |
|||
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 24 KiB |
@ -0,0 +1,257 @@ |
|||
//*****************统计分析图表
|
|||
|
|||
var echartUtil = { |
|||
echartRingData: [ |
|||
{ value: 1048, name: '生态环境检查' }, |
|||
{ value: 735, name: '卫生健康检查' }, |
|||
{ value: 580, name: '商务领域检查' }, |
|||
{ value: 484, name: '财务领域检查' }, |
|||
{ value: 300, name: '水务领域检查' } |
|||
], |
|||
|
|||
/** |
|||
* 初始化echarts |
|||
* @param targetId |
|||
*/ |
|||
initEchartRing:function (targetId) { |
|||
var myChart = echarts.init(document.getElementById(targetId)); |
|||
// 圆环图各环节的颜色
|
|||
var option = { |
|||
tooltip: { |
|||
trigger: 'item' |
|||
}, |
|||
series: [ |
|||
{ |
|||
name: '统计图表', |
|||
type: 'pie', |
|||
radius: ['43%', '60%'], |
|||
avoidLabelOverlap: false, |
|||
itemStyle: { |
|||
borderRadius: 0, |
|||
borderColor: '#fff', |
|||
borderWidth: 1 |
|||
}, |
|||
emphasis: { |
|||
label: { |
|||
show: true, |
|||
fontSize: '14', |
|||
fontWeight: 'bold' |
|||
} |
|||
}, |
|||
data: echartUtil.echartRingData, |
|||
color: ['#0038bb','#0047eb','#1c60ff','#3f78ff','#6592ff','#8aadff'], |
|||
} |
|||
] |
|||
}; |
|||
|
|||
// 使用刚指定的配置项和数据显示图表。
|
|||
myChart.setOption(option); |
|||
window.addEventListener("resize",function(){ |
|||
myChart.resize(); |
|||
}); |
|||
}, |
|||
|
|||
dataX: ['生态环境检查', '卫生健康检查', '商务领域检查', '财务领域检查', '水务领域检查'], |
|||
dataY: ['30', '20', '15', '25', '10'], |
|||
dataPercent: ['30', '20', '15', '25', '10'], |
|||
dataSum: new Array(echartUtil.dataX.length).fill(100) |
|||
} |
|||
|
|||
/*******1.检查类别***********/ |
|||
var dataX = ['生态环境检查', '卫生健康检查', '商务领域检查', '财务领域检查', '水务领域检查'] |
|||
var dataY = ['30', '20', '15', '25', '10']; |
|||
var dataPercent = ['30', '20', '15', '25', '10']; |
|||
var dataSum = new Array(dataX.length).fill(100); |
|||
var data = { |
|||
dataX: dataX, |
|||
dataY: dataY, |
|||
dataSum: dataSum, |
|||
dataPercent: dataPercent, |
|||
} |
|||
initSchedule(data); |
|||
|
|||
function initSchedule (dataAll) { |
|||
var _this = this; |
|||
var myChartLine = echarts.init(document.getElementById('echartLine')); |
|||
var myColor = ['#3C83FF'] |
|||
var option = { |
|||
grid: { //直角坐标系内绘图网格
|
|||
top: '10%', |
|||
bottom: '10%', |
|||
left: '35%', //grid 组件离容器左侧的距离,
|
|||
//left的值可以是80这样具体像素值,
|
|||
//也可以是'80%'这样相对于容器高度的百分比
|
|||
right: '15%', |
|||
//containLabel: true //gid区域是否包含坐标轴的刻度标签。为true的时候,
|
|||
// left/right/top/bottom/width/height决定的是包括了坐标轴标签在内的
|
|||
//所有内容所形成的矩形的位置.常用于【防止标签溢出】的场景
|
|||
}, |
|||
xAxis: { //直角坐标系grid中的x轴,
|
|||
//一般情况下单个grid组件最多只能放上下两个x轴,
|
|||
//多于两个x轴需要通过配置offset属性防止同个位置多个x轴的重叠。
|
|||
type: 'value', //坐标轴类型,分别有:
|
|||
//'value'-数值轴;'category'-类目轴;
|
|||
//'time'-时间轴;'log'-对数轴
|
|||
splitLine: { |
|||
show: false |
|||
}, //坐标轴在 grid 区域中的分隔线
|
|||
axisLabel: { |
|||
show: false |
|||
}, //坐标轴刻度标签
|
|||
axisTick: { |
|||
show: false |
|||
}, //坐标轴刻度
|
|||
axisLine: { |
|||
show: false |
|||
}, //坐标轴轴线
|
|||
}, |
|||
yAxis: { |
|||
type: 'category', |
|||
axisTick: { |
|||
show: false |
|||
}, |
|||
axisLine: { |
|||
show: false |
|||
}, |
|||
axisLabel: { |
|||
color: 'rgba(0,0,0,.7)', |
|||
fontSize: 14, |
|||
formatter: function(data) { |
|||
var traceValue; |
|||
for (var i = 0; i < dataAll.dataX.length; i++) { |
|||
if (data === dataAll.dataX[i]) { |
|||
traceValue = dataAll.dataY[i] |
|||
break |
|||
} |
|||
} |
|||
var arr = [ |
|||
'{a|' + data + '}', |
|||
'{b|' + traceValue + '}', |
|||
'{c|件}' |
|||
] |
|||
return arr.join('') |
|||
}, |
|||
textStyle: { |
|||
rich: { |
|||
a: { |
|||
fontSize: 14, |
|||
width: 100 |
|||
}, |
|||
b: { |
|||
fontSize: 14, |
|||
align: 'center', |
|||
color: '#3C83FF', |
|||
fontWeight: 600, |
|||
}, |
|||
c: { |
|||
padding: [0, 0, 0, 5], |
|||
fontSize: 14, |
|||
align: 'center', |
|||
} |
|||
} |
|||
}, |
|||
}, |
|||
data: dataAll.dataX //类目数据,在类目轴(type: 'category')中有效。
|
|||
//如果没有设置 type,但是设置了axis.data,则认为type 是 'category'。
|
|||
}, |
|||
series: [ //系列列表。每个系列通过 type 决定自己的图表类型
|
|||
{ |
|||
name: '%', //系列名称
|
|||
type: 'bar', //柱状、条形图
|
|||
barWidth: 15, //柱条的宽度,默认自适应
|
|||
data: dataAll.dataPercent, //系列中数据内容数组
|
|||
label: { //图形上的文本标签
|
|||
show: true, |
|||
position: 'right', //标签的位置
|
|||
offset: [0, 40], //标签文字的偏移,此处表示向上偏移40
|
|||
//formatter: '{c}{a}',//标签内容格式器 {a}-系列名,{b}-数据名,{c}-数据值
|
|||
formatter: function(data) { |
|||
//.toFixed(0)去掉小数位,如果为2就是保留两位小数
|
|||
//let b = data.percent.toFixed(0) + "%";
|
|||
//subText = b;
|
|||
return ''; |
|||
}, |
|||
color: 'rgba(0,0,0,.7)', //标签字体颜色
|
|||
fontSize: 26 //标签字号
|
|||
}, |
|||
itemStyle: { //图形样式
|
|||
normal: { //normal 图形在默认状态下的样式;
|
|||
//emphasis图形在高亮状态下的样式
|
|||
barBorderRadius: 10, //柱条圆角半径,单位px.
|
|||
//此处统一设置4个角的圆角大小;
|
|||
//也可以分开设置[10,10,10,10]顺时针左上、右上、右下、左下
|
|||
color: function(params) { |
|||
var num = myColor.length; //得到myColor颜色数组的长度
|
|||
return myColor[params.dataIndex % num]; //返回颜色数组中的一个对应的颜色值
|
|||
}, |
|||
} |
|||
}, |
|||
zlevel: 1 //柱状图所有图形的 zlevel 值,
|
|||
//zlevel 大的 Canvas 会放在 zlevel 小的 Canvas 的上面
|
|||
}, |
|||
{ |
|||
name: '进度条背景', |
|||
type: 'bar', |
|||
label: { //图形上的文本标签
|
|||
show: true, |
|||
position: 'right', //标签的位置
|
|||
offset: [0, 0], //标签文字的偏移,此处表示向上偏移40
|
|||
//formatter: '{c}{a}',//标签内容格式器 {a}-系列名,{b}-数据名,{c}-数据值
|
|||
formatter: function(data) { |
|||
//.toFixed(0)去掉小数位,如果为2就是保留两位小数
|
|||
var traceValue; |
|||
for (var i = 0; i < dataAll.dataX.length; i++) { |
|||
if (data.name === dataAll.dataX[i]) { |
|||
traceValue = dataAll.dataPercent[i] |
|||
break |
|||
} |
|||
} |
|||
var arr = [ |
|||
'{a|' + traceValue + '}', |
|||
'{b|%}' |
|||
] |
|||
return arr.join(''); |
|||
}, |
|||
textStyle: { |
|||
rich: { |
|||
a: { |
|||
fontSize: 14, |
|||
color: 'rgba(0,0,0,0.7)', |
|||
fontWeight: 560, |
|||
padding: [0, 0, 0, 15], |
|||
}, |
|||
b: { |
|||
fontSize: 14, |
|||
color: 'rgba(0,0,0,0.7)', |
|||
padding: [0, 0, 0, 3], |
|||
align: 'center', |
|||
}, |
|||
} |
|||
}, |
|||
}, |
|||
barGap: '-100%', //不同系列的柱间距离,为百分比。
|
|||
// 在同一坐标系上,此属性会被多个 'bar' 系列共享。
|
|||
// 此属性应设置于此坐标系中最后一个 'bar' 系列上才会生效,
|
|||
//并且是对此坐标系中所有 'bar' 系列生效。
|
|||
barWidth: 15, |
|||
data: dataAll.dataSum, |
|||
|
|||
color: '#DEE0E3', //柱条颜色
|
|||
itemStyle: { |
|||
normal: { |
|||
barBorderRadius: 10 |
|||
} |
|||
} |
|||
}, |
|||
|
|||
] |
|||
}; |
|||
myChartLine.setOption(option, true); |
|||
}; |
|||
|
|||
|
|||
// 使用刚指定的配置项和数据显示图表。
|
|||
myChart.setOption(option); |
|||
window.addEventListener("resize",function(){ |
|||
myChart.resize(); |
|||
}); |
|||
File diff suppressed because one or more lines are too long
@ -0,0 +1,203 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org"> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> |
|||
|
|||
<title>登录智慧应急管理云平台</title> |
|||
<meta name="description" content="后台管理框架"> |
|||
|
|||
<link href="../static/css/bootstrap-4.2.1/css/bootstrap.css" th:href="@{/css/bootstrap-4.2.1/css/bootstrap.css}" rel="stylesheet"/> |
|||
<!--<link href="../static/css/font-awesome.min.css" th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>--> |
|||
<!--<link href="../static/css/style.css" th:href="@{/css/style.css}" rel="stylesheet"/>--> |
|||
<!--<link href="../static/css/login.min.css" th:href="@{/css/login.min.css}" rel="stylesheet"/>--> |
|||
<!--<link href="../static/ruoyi/css/ry-ui.css" th:href="@{/ruoyi/css/ry-ui.css?v=4.1.0}" rel="stylesheet"/>--> |
|||
<!-- 360浏览器急速模式 --> |
|||
<meta name="renderer" content="webkit"> |
|||
<!-- 避免IE使用兼容模式 --> |
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
|||
<!--<link rel="shortcut icon" href="../static/favicon.ico" th:href="@{favicon.ico}"/>--> |
|||
<style type="text/css">label.error { position:inherit; }</style> |
|||
<link href="../static/css/style.default.css" th:href="@{/css/style.default.css}" rel="stylesheet"/> |
|||
|
|||
<script> |
|||
if(window.top!==window.self){window.top.location=window.location}; |
|||
</script> |
|||
</head> |
|||
|
|||
<body> |
|||
<div class="page login-page"> |
|||
<div class="container d-flex align-items-center"> |
|||
<div class="form-holder has-shadow"> |
|||
<div class="row"> |
|||
|
|||
<div class="col-lg-6"> |
|||
<div class="info d-flex align-items-center"> |
|||
<div class="content"> |
|||
<div class="logo"> |
|||
|
|||
</div> |
|||
<div class="logosys">执法监督码管理系统</div> |
|||
|
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="col-lg-6 bg-white"> |
|||
<!--<div class="form d-flex align-items-center" style="background: url(../img/ztf.jpg) no-repeat bottom 10% right 10%;--> |
|||
<!--background-size: 30%;">--> |
|||
<div class="form d-flex align-items-center"> |
|||
<div class="content"> |
|||
<h1>欢迎登录</h1> |
|||
<!--<form id="loginFrom">--> |
|||
<div class="form-group"> |
|||
<input id="login-username" type="text" name="username" required data-msg="请输入用户名" placeholder="用户名" class="input-material"> |
|||
</div> |
|||
<div class="form-group"> |
|||
<input id="login-password" type="password" name="password" required data-msg="请输入密码" placeholder="密码" class="input-material"> |
|||
</div> |
|||
<!--<div class="form-group" th:if="${captchaEnabled==true}">--> |
|||
<!--<!–<div class="col-xs-6">–>--> |
|||
<!--<input type="text" name="validateCode" class="form-control code" placeholder="验证码" maxlength="5" autocomplete="off">--> |
|||
<!--<a href="javascript:void(0);" title="点击更换验证码">--> |
|||
<!--<img th:src="@{captcha/captchaImage(type=${captchaType})}" class="imgcode" width="85%"/>--> |
|||
<!--</a>--> |
|||
<!--</div>--> |
|||
<!--<div class="col-xs-6">--> |
|||
|
|||
<!--</div>--> |
|||
<!--</div>--> |
|||
<button id="login" type="submit" class="btn btn-primary">登录</button> |
|||
<div style="margin-top: -40px;"> |
|||
|
|||
<!--<div class="custom-control custom-checkbox " style="float: right;">--> |
|||
<!--<input type="checkbox" class="custom-control-input" id="check2">--> |
|||
<!--<label class="custom-control-label" for="check2">自动登录</label>--> |
|||
<!--</div>--> |
|||
<!--<div class="custom-control custom-checkbox " style="float: right;"> |
|||
<input type="checkbox" class="custom-control-input" id="check1"> |
|||
<label class="custom-control-label" for="check1">记住密码 </label> |
|||
</div>--> |
|||
</div> |
|||
<!--</form>--> |
|||
<br /> |
|||
<!-- <small>没有账号?</small><a target=“_blank” href="/safety/enterprise/register" class="signup"> 注册</a>--> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<!--<script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script>--> |
|||
<!--<script src="https://www.jq22.com/jquery/bootstrap-3.3.4.js"></script>--> |
|||
<!--<script src="vendor/jquery-validation/jquery.validate.min.js"></script>--> |
|||
<script th:inline="javascript"> var ctx = [[@{/}]]; var captchaType = [[${captchaType}]]; </script> |
|||
|
|||
<!--<script src="js/front.js"></script>--> |
|||
<script src="../static/js/jquery.min.js" th:src="@{/js/jquery.min.js}"></script> |
|||
<!--<script src="../static/js/bootstrap.min.js" th:src="@{/js/bootstrap.min.js}"></script>--> |
|||
<!-- 验证插件 --> |
|||
<!--<script src="../static/ajax/libs/validate/jquery.validate.min.js" th:src="@{/ajax/libs/validate/jquery.validate.min.js}"></script>--> |
|||
<!--<script src="../static/ajax/libs/validate/messages_zh.min.js" th:src="@{/ajax/libs/validate/messages_zh.min.js}"></script>--> |
|||
<script src="../static/ajax/libs/layer/layer.min.js" th:src="@{/ajax/libs/layer/layer.min.js}"></script> |
|||
<script src="../static/ajax/libs/blockUI/jquery.blockUI.js" th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script> |
|||
<!--<script src="../static/ruoyi/js/ry-ui.js" th:src="@{/ruoyi/js/ry-ui.js?v=4.1.0}"></script>--> |
|||
<!--<script src="../static/ruoyi/login.js" th:src="@{/ruoyi/login.js}"></script>--> |
|||
<!--<script src="../static/js/crypto-js.js" type="text/javascript"></script>--> |
|||
<script src="../static/js/crypto-js.js" th:src="@{/js/crypto-js.js}"></script> |
|||
<script> |
|||
let data = { |
|||
from: 'iframe logout', |
|||
code: 403, |
|||
data: '退出登录' |
|||
}; |
|||
window.top.postMessage(data, '*'); |
|||
</script> |
|||
<script> |
|||
$(function(){ |
|||
/*判断上次是否勾选记住密码和自动登录*/ |
|||
/*var check1s=localStorage.getItem("check1"); |
|||
var check2s=localStorage.getItem("check2"); |
|||
var oldName=localStorage.getItem("userName"); |
|||
var oldPass=localStorage.getItem("passWord"); |
|||
if(check1s=="true"){ |
|||
$("#login-username").val(oldName); |
|||
$("#login-password").val(oldPass); |
|||
$("#check1").prop('checked',true); |
|||
}else{ |
|||
$("#login-username").val(''); |
|||
$("#login-password").val(''); |
|||
$("#check1").prop('checked',false); |
|||
} |
|||
if(check2s=="true"){ |
|||
$("#check2").prop('checked',true); |
|||
$("#loginFrom").submit(); |
|||
//location="https://www.baidu.com?userName="+oldName+"&passWord="+oldPass;//添加退出当前账号功能 |
|||
}else{ |
|||
$("#check2").prop('checked',false); |
|||
}*/ |
|||
/*拿到刚刚注册的账号*/ |
|||
/*if(localStorage.getItem("name")!=null){ |
|||
$("#login-username").val(localStorage.getItem("name")); |
|||
}*/ |
|||
/*登录*/ |
|||
$("#login").click(function(){ |
|||
login(); |
|||
}) |
|||
|
|||
$(document).keypress(function (e) { |
|||
if (e.keyCode == 13){ |
|||
login(); |
|||
} |
|||
}) |
|||
}) |
|||
|
|||
/** |
|||
* 登录 |
|||
*/ |
|||
function login() { |
|||
//var rememberMe = $("#check1").prop('checked'); |
|||
//var rememberMe = false; |
|||
var userName=$("#login-username").val(); |
|||
var passWord=$("#login-password").val(); |
|||
$.ajax({ |
|||
type: "post", |
|||
url: ctx + "login-1.html", |
|||
data: { |
|||
"username": userName, |
|||
"password": Encrypt(passWord) |
|||
//"rememberMe": rememberMe |
|||
}, |
|||
success: function(r) { |
|||
if (r.code == 0) { |
|||
location.href = ctx + 'index'; |
|||
} else { |
|||
layer.msg(r.msg) |
|||
} |
|||
} |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* 加密密码 |
|||
* @param passWord |
|||
* @constructor |
|||
*/ |
|||
function Encrypt(passWord) { |
|||
var keyStr = '1234567898745621'; |
|||
var ivStr = keyStr; |
|||
var key = CryptoJS.enc.Utf8.parse(keyStr); |
|||
var iv = CryptoJS.enc.Utf8.parse(ivStr); |
|||
var srcs = CryptoJS.enc.Utf8.parse(passWord); |
|||
var encrypted = CryptoJS.AES.encrypt(srcs, key, { |
|||
iv: iv, |
|||
mode: CryptoJS.mode.CBC, |
|||
padding: CryptoJS.pad.ZeroPadding |
|||
}); |
|||
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext); |
|||
} |
|||
</script> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,138 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> |
|||
<head> |
|||
<th:block th:include="zdxtInclude :: header('执法预警列表列表')" /> |
|||
</head> |
|||
<body class="gray-bg"> |
|||
<div class="container-div"> |
|||
<div class="row"> |
|||
<div class="col-sm-12 search-collapse"> |
|||
<form id="formId"> |
|||
<div class="select-list"> |
|||
<ul> |
|||
<li> |
|||
<p>企业名称:</p> |
|||
<input type="text" name="enterpriseName"/> |
|||
</li> |
|||
<li> |
|||
<p>预警级别:</p> |
|||
<!-- <select name="warningLevel">--> |
|||
<!-- <option value="">请选择</option>--> |
|||
<!-- <option value="1">一级</option>--> |
|||
<!-- <option value="2">二级</option>--> |
|||
<!-- </select>--> |
|||
<select name="warningLevel" th:with="type=${@dict.getType('warnLevel')}"> |
|||
<option value="">所有</option> |
|||
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option> |
|||
</select> |
|||
</li> |
|||
<li class="select-time"> |
|||
<p>预警时间:</p> |
|||
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginWarningTime]"/> |
|||
<span>-</span> |
|||
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endWarningTime]"/> |
|||
</li> |
|||
<li> |
|||
<a class="btn btn-success btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a> |
|||
<a class="btn btn-reset btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i> 重置</a> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
|
|||
<div class="btn-group-sm" id="toolbar" role="group"> |
|||
<!-- <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="code:LawEnforcementWarningList:add">--> |
|||
<!-- <i class="fa fa-plus"></i> 添加--> |
|||
<!-- </a>--> |
|||
<!-- <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="code:LawEnforcementWarningList:edit">--> |
|||
<!-- <i class="fa fa-edit"></i> 修改--> |
|||
<!-- </a>--> |
|||
<!-- <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="code:LawEnforcementWarningList:remove">--> |
|||
<!-- <i class="fa fa-remove"></i> 删除--> |
|||
<!-- </a>--> |
|||
<!-- <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="code:LawEnforcementWarningList:export">--> |
|||
<!-- <i class="fa fa-download"></i> 导出--> |
|||
<!-- </a>--> |
|||
</div> |
|||
<div class="col-sm-12 select-table table-bordered"> |
|||
<table id="bootstrap-table"></table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<th:block th:include="zdxtInclude :: footer" /> |
|||
<script th:inline="javascript"> |
|||
var editFlag = [[${@permission.hasPermi('code:LawEnforcementWarningList:edit')}]]; |
|||
var prefix = ctx + "code/LawEnforcementWarningList"; |
|||
var warnLevel = [[${@dict.getType('warnLevel')}]] |
|||
console.log(warnLevel); |
|||
$(function() { |
|||
var options = { |
|||
url: prefix + "/list", |
|||
createUrl: prefix + "/add", |
|||
updateUrl: prefix + "/edit/{id}", |
|||
removeUrl: prefix + "/remove", |
|||
exportUrl: prefix + "/export", |
|||
modalName: "执法预警列表", |
|||
columns: [{ |
|||
checkbox: true |
|||
}, |
|||
{ |
|||
field : 'id', |
|||
title : '主键ID', |
|||
visible: false |
|||
}, |
|||
{ |
|||
field : 'warningTime', |
|||
title : '预警时间' |
|||
}, |
|||
{ |
|||
field : 'warningLevel', |
|||
title : '预警等级', |
|||
formatter:function (value,row,index) { |
|||
var map=getColor(); |
|||
for (let i = 0; i < warnLevel.length; i++) { |
|||
// if(warnLevel[i].dictValue == value){ |
|||
// return warnLevel[i].dictLabel |
|||
// } |
|||
if(value == warnLevel[i].dictValue){ |
|||
var color=map.get(warnLevel[i].dictValue) |
|||
return '<a style="'+color+'"><i class="fa fa-exclamation-triangle" aria-hidden="true"></i>'+' '+warnLevel[i].dictLabel+'</a>' |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
{ |
|||
field : 'enterpriseName', |
|||
title : '企业名称' |
|||
}, |
|||
{ |
|||
field : 'warningCause', |
|||
title : '预警原因' |
|||
}, |
|||
/*{ |
|||
title: '操作', |
|||
align: 'center', |
|||
formatter: function(value, row, index) { |
|||
var actions = []; |
|||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> '); |
|||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>'); |
|||
return actions.join(''); |
|||
} |
|||
}*/ |
|||
] |
|||
}; |
|||
$.table.init(options); |
|||
}); |
|||
function getColor(){ |
|||
var map=new Map([ |
|||
["1","color:#f33"], |
|||
["2","color:#e7880e"], |
|||
["3","color:#edc41e"], |
|||
["4","color:#5195fe"], |
|||
]) |
|||
return map; |
|||
} |
|||
</script> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,65 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
|||
<head> |
|||
<th:block th:include="zdxtInclude :: header('新增执法预警列表')" /> |
|||
<th:block th:include="zdxtInclude :: datetimepicker-css" /> |
|||
</head> |
|||
<body class="white-bg"> |
|||
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
|||
<form class="form-horizontal m" id="form-LawEnforcementWarningList-add"> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">预警时间:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="input-group date"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
<input name="warningTime" class="form-control" placeholder="yyyy-MM-dd" type="text"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">预警原因:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="warningCause" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">预警级别:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="warningLevel" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">企业名称:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="enterpriseName" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">企业统一信用编码:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="enterpriseNumber" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
<th:block th:include="include :: footer" /> |
|||
<th:block th:include="include :: datetimepicker-js" /> |
|||
<script type="text/javascript"> |
|||
var prefix = ctx + "code/LawEnforcementWarningList" |
|||
$("#form-LawEnforcementWarningList-add").validate({ |
|||
focusCleanup: true |
|||
}); |
|||
|
|||
function submitHandler() { |
|||
if ($.validate.form()) { |
|||
$.operate.save(prefix + "/add", $('#form-LawEnforcementWarningList-add').serialize()); |
|||
} |
|||
} |
|||
$("input[name='warningTime']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
</script> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,67 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
|||
<head> |
|||
<th:block th:include="include :: header('修改执法预警列表')" /> |
|||
<th:block th:include="include :: datetimepicker-css" /> |
|||
</head> |
|||
<body class="white-bg"> |
|||
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
|||
<form class="form-horizontal m" id="form-LawEnforcementWarningList-edit" th:object="${lawEnforcementWarningList}"> |
|||
<input name="id" th:field="*{id}" type="hidden"> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">预警时间:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="input-group date"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
<input name="warningTime" th:value="${#dates.format(lawEnforcementWarningList.warningTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">预警原因:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="warningCause" th:field="*{warningCause}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">预警级别: 1 一级 2 二级 3 三级:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="warningLevel" th:field="*{warningLevel}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">企业名称:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="enterpriseName" th:field="*{enterpriseName}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">企业统一信用编码:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="enterpriseNumber" th:field="*{enterpriseNumber}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
<th:block th:include="include :: footer" /> |
|||
<th:block th:include="include :: datetimepicker-js" /> |
|||
<script type="text/javascript"> |
|||
var prefix = ctx + "code/LawEnforcementWarningList"; |
|||
$("#form-LawEnforcementWarningList-edit").validate({ |
|||
focusCleanup: true |
|||
}); |
|||
|
|||
function submitHandler() { |
|||
if ($.validate.form()) { |
|||
$.operate.save(prefix + "/edit", $('#form-LawEnforcementWarningList-edit').serialize()); |
|||
} |
|||
} |
|||
|
|||
$("input[name='warningTime']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
</script> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,55 @@ |
|||
<!DOCTYPE html> |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> |
|||
<head> |
|||
<th:block th:include="zdxtInclude :: header('图表分析')"/> |
|||
<link type="text/css" href="/css/stat.css" rel="stylesheet" /> |
|||
</head> |
|||
|
|||
<body> |
|||
<div class="statwrap"> |
|||
<h1 class="headtit">深圳市各类行政检查实施情况分析</h1> |
|||
<div class="seltime"><i class="icsty"></i><span><select name="year"> |
|||
<option>2024</option> |
|||
<option>2023</option> |
|||
<option>2022</option> |
|||
</select>年度</span> |
|||
<span><select name="quarter"> |
|||
<option>2024-01</option> |
|||
</select>季度</span> |
|||
<span><select name="month"> |
|||
<option>2024-01</option> |
|||
<option>2024-02</option> |
|||
<option>2024-03</option> |
|||
</select>月度</span> |
|||
</div> |
|||
<div class="statit"><span id="one1" class="actit" onclick="setTab('one',1,4)">检查事项</span><span id="one2" onclick="setTab('one',2,4)">执法人员</span><span id="one3" onclick="setTab('one',3,4)">案件数量</span><span id="one4" onclick="setTab('one',4,4)" class="hover">企业类型</span></div> |
|||
<div id="con_one_1" class="tab_item" style="display: block;"> |
|||
<div class="chartbox" id="echartRing"></div> |
|||
<div class="chartbox" id="echartLine"></div> |
|||
|
|||
</div> |
|||
<div id="con_one_2" class="tab_item"> |
|||
</div> |
|||
|
|||
<div id="con_one_3" class="tab_item"> |
|||
</div> |
|||
|
|||
<div id="con_one_4" class="tab_item"> |
|||
</div> |
|||
</div> |
|||
<th:block th:include="zdxtInclude :: footer"/> |
|||
<script type="text/javascript" src="/js/echarts.min.js" ></script> |
|||
<script type="text/javascript" src="/js/charts-analy.js" ></script> |
|||
<script> |
|||
function setTab(name,cursel,n){ |
|||
for(i=1;i<=n;i++){ |
|||
var menu=document.getElementById(name+i); |
|||
var con=document.getElementById("con_"+name+"_"+i); |
|||
menu.className=i==cursel?"actit":""; |
|||
con.style.display=i==cursel?"block":"none"; |
|||
} |
|||
} |
|||
</script> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,132 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
|||
<head> |
|||
<th:block th:include="zdxtInclude :: header('修改企业端-执法部门预约记录')" /> |
|||
<th:block th:include="zdxtInclude :: datetimepicker-css" /> |
|||
</head> |
|||
<body class="white-bg"> |
|||
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
|||
<form class="form-horizontal m" id="form-registration-edit" th:object="${enforcementRegistration}"> |
|||
<input name="id" th:field="*{id}" type="hidden"> |
|||
<div class="form-group"> |
|||
<label class="col-sm-2 control-label">登记编号:</label> |
|||
<div class="col-sm-4"> |
|||
<input name="lawEnforcementCode" th:field="*{lawEnforcementCode}" class="form-control" type="text"> |
|||
</div> |
|||
<label class="col-sm-2 control-label">执法部门:</label> |
|||
<div class="col-sm-4"> |
|||
<input name="lawEnforcement" th:field="*{lawEnforcement}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-2 control-label">企业名称:</label> |
|||
<div class="col-sm-4"> |
|||
<input name="enterpriseName" th:field="*{enterpriseName}" class="form-control" type="text"> |
|||
</div> |
|||
<label class="col-sm-2 control-label">企业税号:</label> |
|||
<div class="col-sm-4"> |
|||
<input name="enterpriseNumber" th:field="*{enterpriseNumber}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-2 control-label">执法时间:</label> |
|||
<div class="col-sm-4"> |
|||
<div class="input-group date"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
<input name="enforcementTime" th:value="${#dates.format(enforcementRegistration.enforcementTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-2 control-label">执法人员姓名:</label> |
|||
<div class="col-sm-4"> |
|||
<input name="lawEnforcer" th:field="*{lawEnforcer}" class="form-control" type="text"> |
|||
</div> |
|||
<label class="col-sm-2 control-label">执法人员联系方式:</label> |
|||
<div class="col-sm-4"> |
|||
<input name="lawEnforcerTel" th:field="*{lawEnforcerTel}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-2 control-label">执法人员2:</label> |
|||
<div class="col-sm-4"> |
|||
<input name="lawEnforcerTwo" th:field="*{lawEnforcerTwo}" class="form-control" type="text"> |
|||
</div> |
|||
<label class="col-sm-2 control-label">执法人员联系方式2:</label> |
|||
<div class="col-sm-4"> |
|||
<input name="lawEnforcerTelTwo" th:field="*{lawEnforcerTelTwo}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-2 control-label">辅助人员姓名:</label> |
|||
<div class="col-sm-4"> |
|||
<input name="subsidiaryer" th:field="*{subsidiaryer}" class="form-control" type="text"> |
|||
</div> |
|||
<label class="col-sm-2 control-label">辅助人员联系方式:</label> |
|||
<div class="col-sm-4"> |
|||
<input name="subsidiaryerTel" th:field="*{subsidiaryerTel}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-2 control-label">执法事项:</label> |
|||
<div class="col-sm-10"> |
|||
<textarea name="lawEnforcementItem" class="form-control">[[*{lawEnforcementItem}]]</textarea> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-2 control-label">执法依据:</label> |
|||
<div class="col-sm-10"> |
|||
<textarea name="lawEnforcementBasis" class="form-control">[[*{lawEnforcementBasis}]]</textarea> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-2 control-label">执法结果:</label> |
|||
<div class="col-sm-4"> |
|||
<select class="form-control m-b" name="reslut" th:field="*{reslut}" > |
|||
<option value="0">合格</option> |
|||
<option value="1">不合格</option> |
|||
</select> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
<th:block th:include="zdxtInclude :: footer" /> |
|||
<th:block th:include="zdxtInclude :: datetimepicker-js" /> |
|||
<script th:inline="javascript"> |
|||
var prefix = ctx + "system/registration"; |
|||
$("#form-registration-edit").validate({ |
|||
focusCleanup: true |
|||
}); |
|||
|
|||
function submitHandler() { |
|||
if ($.validate.form()) { |
|||
$.operate.save(prefix + "/edit", $('#form-registration-edit').serialize()); |
|||
} |
|||
} |
|||
|
|||
$("input[name='enforcementTime']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
$(function () { |
|||
setReadonly(); |
|||
}) |
|||
|
|||
function setReadonly() { |
|||
var inputs = document.getElementsByTagName("input"); |
|||
for (var i = 0; i < inputs.length; i++) { |
|||
$(inputs[i]).attr("readonly", true); |
|||
} |
|||
var textareas = document.getElementsByTagName("textarea"); |
|||
for (var i = 0; i < textareas.length; i++) { |
|||
$(textareas[i]).attr("readonly", true); |
|||
} |
|||
var selects = document.getElementsByTagName("select"); |
|||
for (var i = 0; i < selects.length; i++) { |
|||
$(selects[i]).attr("readonly", true); |
|||
} |
|||
} |
|||
</script> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,131 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> |
|||
<head> |
|||
<th:block th:include="zdxtInclude :: header('登陆记录')"/> |
|||
<link type="text/css" href="/css/stat.css" rel="stylesheet" /> |
|||
</head> |
|||
<body> |
|||
<div class="statwrap"> |
|||
<h1 class="headtit">深圳市各类行政检查实施情况统计表</h1> |
|||
<div class="seltime"><i class="icsty"></i><span><select name="year"> |
|||
<option>2024</option> |
|||
<option>2023</option> |
|||
<option>2022</option> |
|||
</select>年度</span> |
|||
<span><select name="quarter"> |
|||
<option>2024-01</option> |
|||
</select>季度</span> |
|||
<span><select name="month"> |
|||
<option>2024-01</option> |
|||
<option>2024-02</option> |
|||
<option>2024-03</option> |
|||
</select>月度</span> |
|||
</div> |
|||
<div class="statit"><span id="one1" class="actit" onclick="setTab('one',1,4)">检查事项</span><span id="one2" onclick="setTab('one',2,4)">执法人员</span><span id="one3" onclick="setTab('one',3,4)">案件数量</span><span id="one4" onclick="setTab('one',4,4)" class="hover">企业类型</span></div> |
|||
<div id="con_one_1" class="tab_item" style="display: block;"> |
|||
<div class="listhead"> |
|||
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="desktab"> |
|||
<colgroup> |
|||
<col width="20%" /> |
|||
<col width="75%" /> |
|||
</colgroup> |
|||
<tr class="trodd"> |
|||
<th>行政检查事项</th> |
|||
<th>行政检查次数</th> |
|||
</tr> |
|||
</table> |
|||
</div> |
|||
<div class="listbody"> |
|||
<div class="inner"> |
|||
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="desktab"> |
|||
<colgroup> |
|||
<col width="20%" /> |
|||
<col width="75%" /> |
|||
</colgroup> |
|||
<tr> |
|||
<td>生态环境检查</td> |
|||
<td>35</td> |
|||
</tr> |
|||
<tr> |
|||
<td>商务领域检查</td> |
|||
<td>22</td> |
|||
</tr> |
|||
<tr> |
|||
<td>财务领域检查</td> |
|||
<td>18</td> |
|||
</tr> |
|||
<tr> |
|||
<td>水务领域检查</td> |
|||
<td>19</td> |
|||
</tr> |
|||
<tr> |
|||
<td>卫生健康检查</td> |
|||
<td>43</td> |
|||
</tr> |
|||
<tr> |
|||
<td>生态环境检查</td> |
|||
<td>35</td> |
|||
</tr> |
|||
<tr> |
|||
<td>商务领域检查</td> |
|||
<td>22</td> |
|||
</tr> |
|||
<tr> |
|||
<td>财务领域检查</td> |
|||
<td>18</td> |
|||
</tr> |
|||
<tr> |
|||
<td>水务领域检查</td> |
|||
<td>19</td> |
|||
</tr> |
|||
<tr> |
|||
<td>卫生健康检查</td> |
|||
<td>43</td> |
|||
</tr> |
|||
<tr> |
|||
<td>生态环境检查</td> |
|||
<td>35</td> |
|||
</tr> |
|||
<tr> |
|||
<td>商务领域检查</td> |
|||
<td>22</td> |
|||
</tr> |
|||
<tr> |
|||
<td>财政领域检查</td> |
|||
<td>18</td> |
|||
</tr> |
|||
<tr> |
|||
<td>水务领域检查</td> |
|||
<td>19</td> |
|||
</tr> |
|||
<tr> |
|||
<td>卫生健康检查</td> |
|||
<td>43</td> |
|||
</tr> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
<div id="con_one_2" class="tab_item"> |
|||
</div> |
|||
|
|||
<div id="con_one_3" class="tab_item"> |
|||
</div> |
|||
|
|||
<div id="con_one_4" class="tab_item"> |
|||
</div> |
|||
</div> |
|||
<th:block th:include="zdxtInclude :: footer"/> |
|||
<script> |
|||
function setTab(name,cursel,n){ |
|||
for(i=1;i<=n;i++){ |
|||
var menu=document.getElementById(name+i); |
|||
var con=document.getElementById("con_"+name+"_"+i); |
|||
menu.className=i==cursel?"actit":""; |
|||
con.style.display=i==cursel?"block":"none"; |
|||
} |
|||
} |
|||
</script> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,32 @@ |
|||
package com.zdxt.code.controller; |
|||
|
|||
import org.springframework.stereotype.Controller; |
|||
import org.springframework.ui.ModelMap; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
|
|||
@Controller |
|||
@RequestMapping("/statistical") |
|||
public class StatisticalController { |
|||
|
|||
private String prefix = "project/code/statistical"; |
|||
|
|||
private String prefix2 = "project/code/analysis"; |
|||
|
|||
@GetMapping("/view") |
|||
public String statistical(ModelMap mmp){ |
|||
|
|||
|
|||
return prefix + "/statistical"; |
|||
} |
|||
|
|||
/** |
|||
* 统计分析 |
|||
* @param mmp |
|||
* @return |
|||
*/ |
|||
@GetMapping("/analysis") |
|||
public String analysis(ModelMap mmp){ |
|||
return prefix2 + "/analysis"; |
|||
} |
|||
} |
|||
@ -0,0 +1,76 @@ |
|||
package com.zdxt.code.service.impl; |
|||
|
|||
import cn.hutool.core.util.ObjectUtil; |
|||
import com.alibaba.fastjson.JSONArray; |
|||
import com.alibaba.fastjson.JSONObject; |
|||
import com.zdxt.code.service.IAccessTokenService; |
|||
import com.zdxt.code.service.SRZApiService; |
|||
import com.zdxt.code.utils.HttpUtil; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
|
|||
@Service |
|||
public class SRZApiServiceImpl implements SRZApiService { |
|||
|
|||
@Autowired |
|||
private IAccessTokenService tokenService; |
|||
|
|||
@Override |
|||
public void querySRZUserList(Integer page,Integer pageSize) { |
|||
String srzToken = tokenService.getSRZToken(new HashMap<>()); |
|||
Map<String,Object> params = new HashMap<>(); |
|||
Integer pageIndex = 0; |
|||
Integer pageSizeIndex = 1; |
|||
params.put("page",page * pageIndex); |
|||
params.put("pageSize",pageSize * pageSizeIndex); |
|||
try { |
|||
String s = HttpUtil.HttpSendPost("/ebus/sfrzhqxglmk/sysPullTacc", params, null, srzToken); |
|||
JSONObject jsonObject = JSONObject.parseObject(s); |
|||
String data = jsonObject.getString("data"); |
|||
if(ObjectUtil.isNotEmpty(data)){ |
|||
JSONArray objects = JSONArray.parseArray(data); |
|||
//判断data不为空,继续迭代调用
|
|||
pageIndex++; |
|||
pageSizeIndex++; |
|||
this.querySRZUserList(page * pageIndex,pageSize * pageSizeIndex); |
|||
} |
|||
}catch (Exception e){ |
|||
e.printStackTrace(); |
|||
}finally { |
|||
//调用结束之后,注销token
|
|||
tokenService.destroySRZToken(srzToken); |
|||
} |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void querySRZOrg(Integer page,Integer pageSize) { |
|||
String srzToken = tokenService.getSRZToken(new HashMap<>()); |
|||
Map<String,Object> params = new HashMap<>(); |
|||
Integer pageIndex = 0; |
|||
Integer pageSizeIndex = 1; |
|||
params.put("page",page * pageIndex); |
|||
params.put("pageSize",pageSize * pageSizeIndex); |
|||
try { |
|||
String s = HttpUtil.HttpSendPost("/ebus/sfrzhqxglmk/sysPullOrg", params, null, srzToken); |
|||
JSONObject jsonObject = JSONObject.parseObject(s); |
|||
String data = jsonObject.getString("data"); |
|||
if(ObjectUtil.isNotEmpty(data)){ |
|||
JSONArray objects = JSONArray.parseArray(data); |
|||
//判断data不为空,继续迭代调用
|
|||
pageIndex++; |
|||
pageSizeIndex++; |
|||
this.querySRZOrg(page * pageIndex,pageSize * pageSizeIndex); |
|||
} |
|||
}catch (Exception e){ |
|||
e.printStackTrace(); |
|||
}finally { |
|||
//调用结束之后,注销token
|
|||
tokenService.destroySRZToken(srzToken); |
|||
} |
|||
|
|||
} |
|||
} |
|||
Loading…
Reference in new issue