智慧工地大屏
|
|
@ -0,0 +1,24 @@
|
|||
@font-face {
|
||||
font-family: 'zcoolqingkehuangyouti';
|
||||
src: url('../font/zcoolqingkehuangyouti-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: auto;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Alibaba PuHuiTi R';
|
||||
src: url('../font/Alibaba-PuHuiTi-R.ttf') format('truetype');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: auto;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'AlimamaShuHeiTi';
|
||||
src: url('../font/AlimamaShuHeiTi-Bold.ttf') format('truetype');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: auto;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
html,
|
||||
body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #000;
|
||||
font-family: 'Alibaba PuHuiTi R';
|
||||
}
|
||||
|
||||
html {
|
||||
background: url("../../img/back.png") no-repeat 0 0 / 100% 100%;
|
||||
background-position: center center !important;
|
||||
}
|
||||
|
||||
#nav-box {
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
#nav-left {
|
||||
width: 27%;
|
||||
height: 100%;
|
||||
}
|
||||
#nav-left p{
|
||||
margin-top: 50px;
|
||||
font-size: 20px;
|
||||
background-image: linear-gradient(to bottom, #DAF8F4FF, #44DEC9FA);
|
||||
background-clip: text;
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
#nav-icon {
|
||||
width: 120px;
|
||||
height: 30px;
|
||||
position: absolute;
|
||||
left: 81%;
|
||||
top: 0.5%;
|
||||
cursor: pointer;
|
||||
}
|
||||
#nav-icon img{
|
||||
margin-right: 10px;
|
||||
}
|
||||
#nav-right {
|
||||
width: 73%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#nav-right ul {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
#nav-right ul li {
|
||||
width: 120px;
|
||||
height: 50px;
|
||||
font-size: 18px;
|
||||
cursor: pointer;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.nocheck {
|
||||
background: url("../../img/navigation/no_check_nav.png") no-repeat 0 0 / 100% 100%;
|
||||
background-position: center center !important;
|
||||
color: #009B94;
|
||||
}
|
||||
|
||||
.checked {
|
||||
background: url("../../img/navigation/check_nav.png") no-repeat 0 0 / 100% 100% !important;
|
||||
background-position: center center !important;
|
||||
color: #00FFF4;
|
||||
}
|
||||
|
||||
#nav-right ul li p {
|
||||
margin-top: 7px;
|
||||
}
|
||||
|
||||
#ifr-box {
|
||||
width: 100%;
|
||||
height: calc(100vh - 100px)
|
||||
}
|
||||
|
||||
.layout {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
|
@ -0,0 +1,173 @@
|
|||
html,
|
||||
body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #fff;
|
||||
font-family: 'Alibaba PuHuiTi R';
|
||||
}
|
||||
|
||||
#main-box {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
|
||||
.layout {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#left-box {
|
||||
width: 49%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#pro-introduct {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 5% 2% 2% 2%;
|
||||
box-sizing: border-box;
|
||||
background: url("../../img/index/pro_brief.png") no-repeat 0 0 / 100% 100%;
|
||||
background-position: center center !important;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
#pro-desc {
|
||||
width: 100%;
|
||||
height: calc(100% - 380px);
|
||||
overflow-y: auto;
|
||||
position: relative;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#pro-desc p {
|
||||
/*首行缩进*/
|
||||
text-indent: 36px;
|
||||
/*字体间距*/
|
||||
line-height: 36px;
|
||||
font-size: 16px;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
#right-box {
|
||||
width: 47%;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
#real-time-monitor {
|
||||
width: 100%;
|
||||
height: 22.7%;
|
||||
background: url("../../img/index/real_time_monitor.png") no-repeat 0 0 / 100% 100%;
|
||||
background-position: center center !important;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.monitor-data {
|
||||
width: 16%;
|
||||
height: 60%;
|
||||
margin-top: 3%;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.monitor-data p:nth-child(1) span:nth-child(1) {
|
||||
font-size: 24px;
|
||||
color: #79FFFFFF;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.monitor-data p:nth-child(1) span:nth-child(2) {
|
||||
margin-left: 5px;
|
||||
color: #79FFFFFF;
|
||||
}
|
||||
|
||||
.monitor-icon {
|
||||
width: 100%;
|
||||
height: 60%;
|
||||
}
|
||||
|
||||
.monitor-data:nth-child(1) .monitor-icon {
|
||||
background: url("../../img/index/wd.png") no-repeat 0 0 / 100% 100%;
|
||||
background-position: center center !important;
|
||||
background-size: initial;
|
||||
}
|
||||
|
||||
.monitor-data:nth-child(2) .monitor-icon {
|
||||
background: url("../../img/index/sd.png") no-repeat 0 0 / 100% 100%;
|
||||
background-position: center center !important;
|
||||
background-size: initial;
|
||||
}
|
||||
|
||||
.monitor-data:nth-child(3) .monitor-icon {
|
||||
background: url("../../img/index/zs.png") no-repeat 0 0 / 100% 100%;
|
||||
background-position: center center !important;
|
||||
background-size: initial;
|
||||
}
|
||||
|
||||
.monitor-data:nth-child(4) .monitor-icon {
|
||||
background: url("../../img/index/gz.png") no-repeat 0 0 / 100% 100%;
|
||||
background-position: center center !important;
|
||||
background-size: initial;
|
||||
}
|
||||
|
||||
.monitor-data:nth-child(5) .monitor-icon {
|
||||
background: url("../../img/index/pm2.png") no-repeat 0 0 / 100% 100%;
|
||||
background-position: center center !important;
|
||||
background-size: initial;
|
||||
}
|
||||
|
||||
.monitor-data:nth-child(6) .monitor-icon {
|
||||
background: url("../../img/index/pm10.png") no-repeat 0 0 / 100% 100%;
|
||||
background-position: center center !important;
|
||||
background-size: initial;
|
||||
}
|
||||
|
||||
#pro-risk {
|
||||
width: 100%;
|
||||
height: 29.6%;
|
||||
background: url("../../img/index/pro_risk.png") no-repeat 0 0 / 100% 100%;
|
||||
background-position: center center !important;
|
||||
}
|
||||
|
||||
#pro-progress {
|
||||
width: 100%;
|
||||
height: 14.2%;
|
||||
background: url("../../img/index/pro_progress.png") no-repeat 0 0 / 100% 100%;
|
||||
background-position: center center !important;
|
||||
}
|
||||
|
||||
#pro-start,
|
||||
#pro-end {
|
||||
width: 15%;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#pro-start p:nth-child(1),
|
||||
#pro-end p:nth-child(1) {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#pro-start p:nth-child(2),
|
||||
#pro-end p:nth-child(2) {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#pro-progress-echarts {
|
||||
width: 70%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#pro-cost {
|
||||
width: 100%;
|
||||
height: 28.2%;
|
||||
background: url("../../img/index/pro_cost.png") no-repeat 0 0 / 100% 100%;
|
||||
background-position: center center !important;
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 373 B |
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 370 B |
|
|
@ -0,0 +1,18 @@
|
|||
let element, layer;
|
||||
layui.use(['layer', 'element'], function () {
|
||||
element = layui.element;
|
||||
layer = layui.layer;
|
||||
});
|
||||
|
||||
$('#indexIframe').attr('src', '../index/index.html');
|
||||
|
||||
$('#nav-right ul li').on('click', function () {
|
||||
$('#nav-right ul li').each(function (index, item) {
|
||||
if ($(this).hasClass('checked')) {
|
||||
$(this).removeClass('checked').addClass('nocheck');
|
||||
}
|
||||
})
|
||||
$(this).removeClass('nocheck').addClass('checked');
|
||||
const hrefValue = $(this).attr('hrefValue');
|
||||
$('#indexIframe').attr('src', hrefValue);
|
||||
})
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
let element, layer, carousel;
|
||||
layui.use(['layer', 'element', 'carousel'], function () {
|
||||
element = layui.element;
|
||||
layer = layui.layer;
|
||||
carousel = layui.carousel;
|
||||
// 渲染 - 图片轮播
|
||||
carousel.render({
|
||||
elem: '#ID-carousel-demo-image',
|
||||
width: '720px',
|
||||
height: '360px',
|
||||
interval: 3000
|
||||
});
|
||||
$("#pro-desc").niceScroll({cursorborder:"",cursorcolor:"#c0c4cc",boxzoom:true});
|
||||
$("body").niceScroll({cursorborder:"",cursorcolor:"#c0c4cc",boxzoom:true});
|
||||
loadEcharts();
|
||||
});
|
||||
|
||||
/* 加载首页Echarts */
|
||||
function loadEcharts(){
|
||||
initEchartsOne();
|
||||
initEchartsTwo();
|
||||
initEchartsThree();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,578 @@
|
|||
let myChart = echarts.init(document.getElementById('pro-risk'));
|
||||
let myChart2 = echarts.init(document.getElementById('pro-progress-echarts'));
|
||||
let myChart3 = echarts.init(document.getElementById('pro-cost'));
|
||||
|
||||
/* 项目风险 */
|
||||
function initEchartsOne() {
|
||||
let fontSize = '14', fontFamily = 'Alibaba PuHuiTi R', fontColor = '#fff';
|
||||
let xLabel = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'];
|
||||
let dataValue = [20, 30, 40, 35, 34, 15, 56, 15, 12, 25, 34, 42];
|
||||
let dataValue1 = [40, 35, 34, 15, 56, 15, 12, 25, 34, 42, 20, 30,];
|
||||
const tooltip = {
|
||||
show: true,
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
backgroundColor: 'rgba(75, 79, 82, 0.80)', //设置背景颜色
|
||||
textStyle: {
|
||||
color: fontColor,
|
||||
fontFamily: fontFamily
|
||||
},
|
||||
borderColor: "rgba(255,255,255, .5)",
|
||||
};
|
||||
let option = {
|
||||
backgroundColor: 'transparent',
|
||||
tooltip,
|
||||
legend: {
|
||||
show: true,
|
||||
top: '15%',
|
||||
right: '2%',
|
||||
itemWidth: 30, // 图例标记的图形宽度。
|
||||
// itemGap: 20, // 图例每项之间的间隔。
|
||||
itemHeight: 10, // 图例标记的图形高度。
|
||||
textStyle: {
|
||||
color: '#fff',
|
||||
fontSize: 14,
|
||||
padding: [0, 8, 0, 8]
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
top: '25%',
|
||||
left: '5%',
|
||||
right: '5%',
|
||||
bottom: '15%',
|
||||
},
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
boundaryGap: true,
|
||||
axisLine: {
|
||||
//坐标轴轴线相关设置。数学上的x轴
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#5A6E71',
|
||||
},
|
||||
},
|
||||
axisLabel: {
|
||||
//坐标轴刻度标签的相关设置
|
||||
textStyle: {
|
||||
color: fontColor,
|
||||
fontSize: fontSize,
|
||||
fontFamily: fontFamily
|
||||
},
|
||||
},
|
||||
splitLine: {
|
||||
show: false,
|
||||
lineStyle: {
|
||||
color: '#233653',
|
||||
},
|
||||
},
|
||||
axisTick: {
|
||||
show: false,
|
||||
},
|
||||
data: xLabel,
|
||||
},
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
name: "",
|
||||
nameTextStyle: {
|
||||
color: fontColor,
|
||||
fontSize: fontSize,
|
||||
padding: [0, 60, 0, 0],
|
||||
fontFamily: fontFamily
|
||||
},
|
||||
// minInterval: 1,
|
||||
type: 'value',
|
||||
splitLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#25393B',
|
||||
type: 'dashed'
|
||||
},
|
||||
},
|
||||
axisLine: {
|
||||
show: false,
|
||||
lineStyle: {
|
||||
color: '#008de7',
|
||||
},
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
textStyle: {
|
||||
color: fontColor,
|
||||
fontSize: fontSize,
|
||||
fontFamily: fontFamily
|
||||
}
|
||||
},
|
||||
axisTick: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
],
|
||||
series: [
|
||||
{
|
||||
name: '周计划数',
|
||||
type: 'line',
|
||||
symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
|
||||
smooth: true,
|
||||
lineStyle: {
|
||||
normal: {
|
||||
width: 3,
|
||||
color: '#1ED6FF', // 线条颜色
|
||||
},
|
||||
},
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: '#1ED6FF',//拐点颜色
|
||||
// borderColor: '#fff600',//拐点边框颜色
|
||||
// borderWidth: 13//拐点边框大小
|
||||
label: {
|
||||
show: true, //开启显示
|
||||
color: fontColor,
|
||||
fontFamily: fontFamily,
|
||||
position: 'top', //在上方显示
|
||||
formatter: function (res) {
|
||||
if (res.value) {
|
||||
return res.value
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
},
|
||||
symbolSize: 8, //设定实心点的大小
|
||||
areaStyle: {
|
||||
normal: {
|
||||
//线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
|
||||
color: new echarts.graphic.LinearGradient(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
[
|
||||
{
|
||||
offset: 0,
|
||||
color: '#1ED6FF30',
|
||||
},
|
||||
{
|
||||
offset: 0.6,
|
||||
color: '#1ED6FF20',
|
||||
},
|
||||
{
|
||||
offset: 1,
|
||||
color: '#1ED6FF10',
|
||||
},
|
||||
],
|
||||
false
|
||||
),
|
||||
},
|
||||
},
|
||||
data: dataValue,
|
||||
},
|
||||
{
|
||||
name: '风险数',
|
||||
type: 'line',
|
||||
symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
|
||||
smooth: true,
|
||||
lineStyle: {
|
||||
normal: {
|
||||
width: 3,
|
||||
color: '#FE533C', // 线条颜色
|
||||
},
|
||||
},
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: '#FE533C',//拐点颜色
|
||||
// borderColor: '#fff600',//拐点边框颜色
|
||||
// borderWidth: 13//拐点边框大小
|
||||
label: {
|
||||
show: true, //开启显示
|
||||
color: fontColor,
|
||||
fontFamily: fontFamily,
|
||||
position: 'top', //在上方显示
|
||||
formatter: function (res) {
|
||||
if (res.value) {
|
||||
return res.value
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
},
|
||||
symbolSize: 8, //设定实心点的大小
|
||||
areaStyle: {
|
||||
normal: {
|
||||
//线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
|
||||
color: new echarts.graphic.LinearGradient(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
[
|
||||
{
|
||||
offset: 0,
|
||||
color: '#FE533C30',
|
||||
},
|
||||
{
|
||||
offset: 0.6,
|
||||
color: '#FE533C20',
|
||||
},
|
||||
{
|
||||
offset: 1,
|
||||
color: '#ffba0010',
|
||||
},
|
||||
],
|
||||
false
|
||||
),
|
||||
},
|
||||
},
|
||||
data: dataValue1,
|
||||
}
|
||||
]
|
||||
}
|
||||
myChart.setOption(option, true);
|
||||
window.addEventListener("resize", function () {
|
||||
myChart.resize();
|
||||
});
|
||||
}
|
||||
|
||||
/* 计划进度 */
|
||||
function initEchartsTwo() {
|
||||
let fontSize = '14', fontFamily = 'Alibaba PuHuiTi R', fontColor = '#fff';
|
||||
let kg = 0.3
|
||||
// 计划进度、实际进度
|
||||
let total = 20;
|
||||
let total_add = 30;
|
||||
// 进度条占比
|
||||
let ljdata = total;
|
||||
let newdata = total_add - total > 0 ? total_add - total : 0;;
|
||||
let max = 100;
|
||||
var option = {
|
||||
backgroundColor: 'transparent',
|
||||
yAxis: {
|
||||
type: 'category',
|
||||
axisLine: {
|
||||
show: false, //坐标线
|
||||
},
|
||||
axisTick: {
|
||||
show: false, //小横线
|
||||
},
|
||||
axisLabel: {
|
||||
show: false, //小横线
|
||||
color: '#999', //坐标轴字颜色
|
||||
},
|
||||
},
|
||||
|
||||
xAxis: {
|
||||
show: false,
|
||||
max: max,
|
||||
},
|
||||
grid: {
|
||||
top: '20',
|
||||
right: '10',
|
||||
left: '20',
|
||||
bottom: '0', //图表尺寸大小
|
||||
},
|
||||
animationDuration: 2000,
|
||||
series: [
|
||||
// 框
|
||||
{
|
||||
name: '框',
|
||||
type: 'bar',
|
||||
barGap: '-100%',
|
||||
data: [max],
|
||||
barWidth: '30px',
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: 'none',
|
||||
borderColor: '#06DDDBFF',
|
||||
borderWidth: 1,
|
||||
barBorderRadius: 0,
|
||||
},
|
||||
},
|
||||
|
||||
},
|
||||
// 间隔
|
||||
{
|
||||
type: 'bar',
|
||||
barWidth: '25px',
|
||||
barGap: '-92%',
|
||||
stack: 'total',
|
||||
showBackground: false,
|
||||
backgroundStyle: {
|
||||
color: 'transparent',
|
||||
},
|
||||
label: {
|
||||
normal: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: 'transparent', //每个数据的颜色
|
||||
},
|
||||
},
|
||||
data: [kg],
|
||||
},
|
||||
{
|
||||
type: 'bar',
|
||||
barWidth: '25px',
|
||||
barGap: '-92%',
|
||||
stack: 'total',
|
||||
showBackground: false,
|
||||
backgroundStyle: {
|
||||
color: 'transparent',
|
||||
},
|
||||
label: {
|
||||
// normal: {
|
||||
// show: true,
|
||||
// position: 'insideBottomRight',
|
||||
// formatter: (params) => {
|
||||
// return total
|
||||
// },
|
||||
// distance: 0,
|
||||
// offset: [-20, -5],
|
||||
// color: '#fff',
|
||||
// fontSize: 12,
|
||||
// },
|
||||
normal: {
|
||||
show: true,
|
||||
position: 'insideBottomRight',
|
||||
formatter: '计划进度' + ' ' + `${total}` + '%',
|
||||
distance: 0,
|
||||
offset: [50, 35],
|
||||
color: fontColor,
|
||||
fontSize: fontSize,
|
||||
padding: [12, 12, 12, 12],
|
||||
},
|
||||
},
|
||||
itemStyle: {
|
||||
color: {
|
||||
x: 1,
|
||||
y: 0,
|
||||
x2: 0,
|
||||
y2: 0,
|
||||
colorStops: [{
|
||||
offset: 0,
|
||||
color: '#03FDBAFF' // 0% 处的颜色
|
||||
}, {
|
||||
offset: 1,
|
||||
color: '#A8FBE7FF' // 100% 处的颜色
|
||||
}],
|
||||
},
|
||||
},
|
||||
data: [ljdata],
|
||||
},
|
||||
{
|
||||
type: 'bar',
|
||||
barWidth: '25px',
|
||||
stack: 'total',
|
||||
silent: true,
|
||||
showBackground: false,
|
||||
backgroundStyle: {
|
||||
color: 'transparent',
|
||||
},
|
||||
label: {
|
||||
normal: {
|
||||
show: true,
|
||||
position: 'insideBottomRight',
|
||||
formatter: '实际进度' + ' ' + `${total_add}` + '%',
|
||||
distance: 0,
|
||||
offset: [50, -21],
|
||||
color: fontColor,
|
||||
fontSize: fontSize,
|
||||
padding: [12, 12, 12, 12],
|
||||
},
|
||||
},
|
||||
itemStyle: {
|
||||
color: {
|
||||
x: 1,
|
||||
y: 0,
|
||||
x2: 0,
|
||||
y2: 0,
|
||||
colorStops: [{
|
||||
offset: 0,
|
||||
color: '#FD9B02FF' // 0% 处的颜色
|
||||
}, {
|
||||
offset: 1,
|
||||
color: '#FFE0B0FF' // 100% 处的颜色
|
||||
}],
|
||||
},
|
||||
},
|
||||
data: [newdata],
|
||||
},
|
||||
{
|
||||
type: 'bar',
|
||||
barWidth: '25px',
|
||||
stack: 'total',
|
||||
silent: true,
|
||||
showBackground: false,
|
||||
backgroundStyle: {
|
||||
color: 'transparent',
|
||||
},
|
||||
label: {
|
||||
// normal: {
|
||||
// show: true,
|
||||
// position: 'insideBottomRight',
|
||||
// formatter: (params) => {
|
||||
// return total_add
|
||||
// },
|
||||
// distance: 0,
|
||||
// offset: [-20, -5],
|
||||
// color: '#fff',
|
||||
// fontSize: 12,
|
||||
// },
|
||||
},
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: 'transparent', //每个数据的颜色
|
||||
},
|
||||
},
|
||||
data: [kg],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
myChart2.setOption(option, true);
|
||||
window.addEventListener("resize", function () {
|
||||
myChart2.resize();
|
||||
});
|
||||
}
|
||||
|
||||
/* 项目成本 */
|
||||
function initEchartsThree() {
|
||||
let fontSize = '14', fontFamily = 'Alibaba PuHuiTi R', fontColor = '#fff';
|
||||
const tooltip = {
|
||||
show: true,
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
backgroundColor: 'rgba(75, 79, 82, 0.80)', //设置背景颜色
|
||||
textStyle: {
|
||||
color: fontColor,
|
||||
fontFamily: fontFamily
|
||||
},
|
||||
borderColor: "rgba(255,255,255, .5)",
|
||||
};
|
||||
option = {
|
||||
backgroundColor: 'transparent',
|
||||
tooltip,
|
||||
grid: {
|
||||
left: '5%',
|
||||
right: '6%',
|
||||
bottom: '15%',
|
||||
top: '25%',
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: ['黄家村', '曹家村', '吕家村', '大草坝村', '庙坡村', '廉家庄村', '莲花池村', '小西关村', '杜家漕村', '栗子园村', '翟家寺村'],
|
||||
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#FFFFFF66',
|
||||
// width: 1
|
||||
},
|
||||
},
|
||||
axisLabel: {
|
||||
interval: 0,
|
||||
// rotate: 50,
|
||||
textStyle: {
|
||||
color: fontColor,
|
||||
fontSize: fontSize,
|
||||
fontFamily: fontFamily
|
||||
},
|
||||
},
|
||||
axisTick: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value',
|
||||
// min: 0,
|
||||
// max: 140,
|
||||
splitLine: { //分割线配置
|
||||
lineStyle: {
|
||||
color: "#25393B",
|
||||
// type: 'dashed'
|
||||
}
|
||||
},
|
||||
axisLine: {
|
||||
show: false,
|
||||
lineStyle: {
|
||||
color: '#758FA6'
|
||||
}
|
||||
},
|
||||
axisTick: {
|
||||
show: false,
|
||||
},
|
||||
axisLabel: {
|
||||
textStyle: {
|
||||
color: fontColor,
|
||||
fontSize: fontSize,
|
||||
fontFamily: fontFamily
|
||||
},
|
||||
},
|
||||
},
|
||||
series: [{
|
||||
barWidth: 14,
|
||||
data: ['2', '3', '1', '1', '2', '2', '2', '6', '5', '3', '2'],
|
||||
type: 'bar',
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
|
||||
offset: 0,
|
||||
color: '#C9FFFAFF' // 0% 处的颜色
|
||||
}, {
|
||||
offset: 1,
|
||||
color: '#0AFFBFFF' // 100% 处的颜色
|
||||
}], false),
|
||||
// barBorderRadius: [30, 30, 30, 30],
|
||||
shadowColor: 'rgba(0,160,221,1)',
|
||||
shadowBlur: 4,
|
||||
label: {
|
||||
show: true, //开启显示
|
||||
color: fontColor,
|
||||
fontFamily: fontFamily,
|
||||
position: 'top', //在上方显示
|
||||
formatter: function (res) {
|
||||
if (res.value) {
|
||||
return res.value
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
markLine: {
|
||||
symbol: 'none',
|
||||
label: {
|
||||
position: "middle",
|
||||
formatter: '{b}:{c}',
|
||||
color: '#FF8845FF',
|
||||
fontSize: fontSize
|
||||
},
|
||||
data: [{
|
||||
silent: true,
|
||||
name: "阈值",
|
||||
yAxis: 5,//res.targetTwo,
|
||||
lineStyle: {
|
||||
color: "#FF8845FF"
|
||||
},
|
||||
}]
|
||||
}
|
||||
}]
|
||||
};
|
||||
myChart3.setOption(option, true);
|
||||
window.addEventListener("resize", function () {
|
||||
myChart3.resize();
|
||||
});
|
||||
}
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
!function(t,n){"object"==typeof exports?module.exports=exports=n():"function"==typeof define&&define.amd?define([],n):t.CryptoJS=n()}(this,function(){var t=t||function(t,n){var i=Object.create||function(){function t(){}return function(n){var i;return t.prototype=n,i=new t,t.prototype=null,i}}(),e={},r=e.lib={},o=r.Base=function(){return{extend:function(t){var n=i(this);return t&&n.mixIn(t),n.hasOwnProperty("init")&&this.init!==n.init||(n.init=function(){n.$super.init.apply(this,arguments)}),n.init.prototype=n,n.$super=this,n},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var n in t)t.hasOwnProperty(n)&&(this[n]=t[n]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),s=r.WordArray=o.extend({init:function(t,i){t=this.words=t||[],i!=n?this.sigBytes=i:this.sigBytes=4*t.length},toString:function(t){return(t||c).stringify(this)},concat:function(t){var n=this.words,i=t.words,e=this.sigBytes,r=t.sigBytes;if(this.clamp(),e%4)for(var o=0;o<r;o++){var s=i[o>>>2]>>>24-o%4*8&255;n[e+o>>>2]|=s<<24-(e+o)%4*8}else for(var o=0;o<r;o+=4)n[e+o>>>2]=i[o>>>2];return this.sigBytes+=r,this},clamp:function(){var n=this.words,i=this.sigBytes;n[i>>>2]&=4294967295<<32-i%4*8,n.length=t.ceil(i/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(n){for(var i,e=[],r=function(n){var n=n,i=987654321,e=4294967295;return function(){i=36969*(65535&i)+(i>>16)&e,n=18e3*(65535&n)+(n>>16)&e;var r=(i<<16)+n&e;return r/=4294967296,r+=.5,r*(t.random()>.5?1:-1)}},o=0;o<n;o+=4){var a=r(4294967296*(i||t.random()));i=987654071*a(),e.push(4294967296*a()|0)}return new s.init(e,n)}}),a=e.enc={},c=a.Hex={stringify:function(t){for(var n=t.words,i=t.sigBytes,e=[],r=0;r<i;r++){var o=n[r>>>2]>>>24-r%4*8&255;e.push((o>>>4).toString(16)),e.push((15&o).toString(16))}return e.join("")},parse:function(t){for(var n=t.length,i=[],e=0;e<n;e+=2)i[e>>>3]|=parseInt(t.substr(e,2),16)<<24-e%8*4;return new s.init(i,n/2)}},u=a.Latin1={stringify:function(t){for(var n=t.words,i=t.sigBytes,e=[],r=0;r<i;r++){var o=n[r>>>2]>>>24-r%4*8&255;e.push(String.fromCharCode(o))}return e.join("")},parse:function(t){for(var n=t.length,i=[],e=0;e<n;e++)i[e>>>2]|=(255&t.charCodeAt(e))<<24-e%4*8;return new s.init(i,n)}},f=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(u.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return u.parse(unescape(encodeURIComponent(t)))}},h=r.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=f.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(n){var i=this._data,e=i.words,r=i.sigBytes,o=this.blockSize,a=4*o,c=r/a;c=n?t.ceil(c):t.max((0|c)-this._minBufferSize,0);var u=c*o,f=t.min(4*u,r);if(u){for(var h=0;h<u;h+=o)this._doProcessBlock(e,h);var p=e.splice(0,u);i.sigBytes-=f}return new s.init(p,f)},clone:function(){var t=o.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0}),p=(r.Hasher=h.extend({cfg:o.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset()},reset:function(){h.reset.call(this),this._doReset()},update:function(t){return this._append(t),this._process(),this},finalize:function(t){t&&this._append(t);var n=this._doFinalize();return n},blockSize:16,_createHelper:function(t){return function(n,i){return new t.init(i).finalize(n)}},_createHmacHelper:function(t){return function(n,i){return new p.HMAC.init(t,i).finalize(n)}}}),e.algo={});return e}(Math);return t});
|
||||
//# sourceMappingURL=core.min.js.map
|
||||
!function(e,t,i){"object"==typeof exports?module.exports=exports=t(require("./core.min"),require("./sha1.min"),require("./hmac.min")):"function"==typeof define&&define.amd?define(["./core.min","./sha1.min","./hmac.min"],t):t(e.CryptoJS)}(this,function(e){return function(){var t=e,i=t.lib,r=i.Base,n=i.WordArray,o=t.algo,a=o.MD5,c=o.EvpKDF=r.extend({cfg:r.extend({keySize:4,hasher:a,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var i=this.cfg,r=i.hasher.create(),o=n.create(),a=o.words,c=i.keySize,f=i.iterations;a.length<c;){s&&r.update(s);var s=r.update(e).finalize(t);r.reset();for(var u=1;u<f;u++)s=r.finalize(s),r.reset();o.concat(s)}return o.sigBytes=4*c,o}});t.EvpKDF=function(e,t,i){return c.create(i).compute(e,t)}}(),e.EvpKDF});
|
||||
//# sourceMappingURL=evpkdf.min.js.map
|
||||
!function(r,e){"object"==typeof exports?module.exports=exports=e(require("./core.min")):"function"==typeof define&&define.amd?define(["./core.min"],e):e(r.CryptoJS)}(this,function(r){return function(){function e(r,e,t){for(var n=[],i=0,o=0;o<e;o++)if(o%4){var f=t[r.charCodeAt(o-1)]<<o%4*2,c=t[r.charCodeAt(o)]>>>6-o%4*2;n[i>>>2]|=(f|c)<<24-i%4*8,i++}return a.create(n,i)}var t=r,n=t.lib,a=n.WordArray,i=t.enc;i.Base64={stringify:function(r){var e=r.words,t=r.sigBytes,n=this._map;r.clamp();for(var a=[],i=0;i<t;i+=3)for(var o=e[i>>>2]>>>24-i%4*8&255,f=e[i+1>>>2]>>>24-(i+1)%4*8&255,c=e[i+2>>>2]>>>24-(i+2)%4*8&255,s=o<<16|f<<8|c,h=0;h<4&&i+.75*h<t;h++)a.push(n.charAt(s>>>6*(3-h)&63));var p=n.charAt(64);if(p)for(;a.length%4;)a.push(p);return a.join("")},parse:function(r){var t=r.length,n=this._map,a=this._reverseMap;if(!a){a=this._reverseMap=[];for(var i=0;i<n.length;i++)a[n.charCodeAt(i)]=i}var o=n.charAt(64);if(o){var f=r.indexOf(o);f!==-1&&(t=f)}return e(r,t,a)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),r.enc.Base64});
|
||||
//# sourceMappingURL=enc-base64.min.js.map
|
||||
!function(e,t,r){"object"==typeof exports?module.exports=exports=t(require("./core.min"),require("./evpkdf.min")):"function"==typeof define&&define.amd?define(["./core.min","./evpkdf.min"],t):t(e.CryptoJS)}(this,function(e){e.lib.Cipher||function(t){var r=e,i=r.lib,n=i.Base,c=i.WordArray,o=i.BufferedBlockAlgorithm,s=r.enc,a=(s.Utf8,s.Base64),f=r.algo,p=f.EvpKDF,d=i.Cipher=o.extend({cfg:n.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,r){this.cfg=this.cfg.extend(r),this._xformMode=e,this._key=t,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){e&&this._append(e);var t=this._doFinalize();return t},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?B:x}return function(t){return{encrypt:function(r,i,n){return e(i).encrypt(t,r,i,n)},decrypt:function(r,i,n){return e(i).decrypt(t,r,i,n)}}}}()}),h=(i.StreamCipher=d.extend({_doFinalize:function(){var e=this._process(!0);return e},blockSize:1}),r.mode={}),u=i.BlockCipherMode=n.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),l=h.CBC=function(){function e(e,r,i){var n=this._iv;if(n){var c=n;this._iv=t}else var c=this._prevBlock;for(var o=0;o<i;o++)e[r+o]^=c[o]}var r=u.extend();return r.Encryptor=r.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize;e.call(this,t,r,n),i.encryptBlock(t,r),this._prevBlock=t.slice(r,r+n)}}),r.Decryptor=r.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize,c=t.slice(r,r+n);i.decryptBlock(t,r),e.call(this,t,r,n),this._prevBlock=c}}),r}(),_=r.pad={},v=_.Pkcs7={pad:function(e,t){for(var r=4*t,i=r-e.sigBytes%r,n=i<<24|i<<16|i<<8|i,o=[],s=0;s<i;s+=4)o.push(n);var a=c.create(o,i);e.concat(a)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},y=(i.BlockCipher=d.extend({cfg:d.cfg.extend({mode:l,padding:v}),reset:function(){d.reset.call(this);var e=this.cfg,t=e.iv,r=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=r.createEncryptor;else{var i=r.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==i?this._mode.init(this,t&&t.words):(this._mode=i.call(r,this,t&&t.words),this._mode.__creator=i)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else{var t=this._process(!0);e.unpad(t)}return t},blockSize:4}),i.CipherParams=n.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}})),m=r.format={},k=m.OpenSSL={stringify:function(e){var t=e.ciphertext,r=e.salt;if(r)var i=c.create([1398893684,1701076831]).concat(r).concat(t);else var i=t;return i.toString(a)},parse:function(e){var t=a.parse(e),r=t.words;if(1398893684==r[0]&&1701076831==r[1]){var i=c.create(r.slice(2,4));r.splice(0,4),t.sigBytes-=16}return y.create({ciphertext:t,salt:i})}},x=i.SerializableCipher=n.extend({cfg:n.extend({format:k}),encrypt:function(e,t,r,i){i=this.cfg.extend(i);var n=e.createEncryptor(r,i),c=n.finalize(t),o=n.cfg;return y.create({ciphertext:c,key:r,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:i.format})},decrypt:function(e,t,r,i){i=this.cfg.extend(i),t=this._parse(t,i.format);var n=e.createDecryptor(r,i).finalize(t.ciphertext);return n},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),g=r.kdf={},S=g.OpenSSL={execute:function(e,t,r,i){i||(i=c.random(8));var n=p.create({keySize:t+r}).compute(e,i),o=c.create(n.words.slice(t),4*r);return n.sigBytes=4*t,y.create({key:n,iv:o,salt:i})}},B=i.PasswordBasedCipher=x.extend({cfg:x.cfg.extend({kdf:S}),encrypt:function(e,t,r,i){i=this.cfg.extend(i);var n=i.kdf.execute(r,e.keySize,e.ivSize);i.iv=n.iv;var c=x.encrypt.call(this,e,t,n.key,i);return c.mixIn(n),c},decrypt:function(e,t,r,i){i=this.cfg.extend(i),t=this._parse(t,i.format);var n=i.kdf.execute(r,e.keySize,e.ivSize,t.salt);i.iv=n.iv;var c=x.decrypt.call(this,e,t,n.key,i);return c}})}()});
|
||||
//# sourceMappingURL=cipher-core.min.js.map
|
||||
!function(e,i){"object"==typeof exports?module.exports=exports=i(require("./core.min")):"function"==typeof define&&define.amd?define(["./core.min"],i):i(e.CryptoJS)}(this,function(e){!function(){var i=e,t=i.lib,n=t.Base,s=i.enc,r=s.Utf8,o=i.algo;o.HMAC=n.extend({init:function(e,i){e=this._hasher=new e.init,"string"==typeof i&&(i=r.parse(i));var t=e.blockSize,n=4*t;i.sigBytes>n&&(i=e.finalize(i)),i.clamp();for(var s=this._oKey=i.clone(),o=this._iKey=i.clone(),a=s.words,f=o.words,c=0;c<t;c++)a[c]^=1549556828,f[c]^=909522486;s.sigBytes=o.sigBytes=n,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var i=this._hasher,t=i.finalize(e);i.reset();var n=i.finalize(this._oKey.clone().concat(t));return n}})}()});
|
||||
//# sourceMappingURL=hmac.min.js.map
|
||||
!function(e,o,r){"object"==typeof exports?module.exports=exports=o(require("./core.min"),require("./cipher-core.min")):"function"==typeof define&&define.amd?define(["./core.min","./cipher-core.min"],o):o(e.CryptoJS)}(this,function(e){return e.mode.ECB=function(){var o=e.lib.BlockCipherMode.extend();return o.Encryptor=o.extend({processBlock:function(e,o){this._cipher.encryptBlock(e,o)}}),o.Decryptor=o.extend({processBlock:function(e,o){this._cipher.decryptBlock(e,o)}}),o}(),e.mode.ECB});
|
||||
//# sourceMappingURL=mode-ecb.min.js.map
|
||||
!function(e,r,i){"object"==typeof exports?module.exports=exports=r(require("./core.min"),require("./cipher-core.min")):"function"==typeof define&&define.amd?define(["./core.min","./cipher-core.min"],r):r(e.CryptoJS)}(this,function(e){return e.pad.Pkcs7});
|
||||
//# sourceMappingURL=pad-pkcs7.min.js.map
|
||||
!function(e,r,i){"object"==typeof exports?module.exports=exports=r(require("./core.min"),require("./enc-base64.min"),require("./md5.min"),require("./evpkdf.min"),require("./cipher-core.min")):"function"==typeof define&&define.amd?define(["./core.min","./enc-base64.min","./md5.min","./evpkdf.min","./cipher-core.min"],r):r(e.CryptoJS)}(this,function(e){return function(){var r=e,i=r.lib,n=i.BlockCipher,o=r.algo,t=[],c=[],s=[],f=[],a=[],d=[],u=[],v=[],h=[],y=[];!function(){for(var e=[],r=0;r<256;r++)r<128?e[r]=r<<1:e[r]=r<<1^283;for(var i=0,n=0,r=0;r<256;r++){var o=n^n<<1^n<<2^n<<3^n<<4;o=o>>>8^255&o^99,t[i]=o,c[o]=i;var p=e[i],l=e[p],_=e[l],k=257*e[o]^16843008*o;s[i]=k<<24|k>>>8,f[i]=k<<16|k>>>16,a[i]=k<<8|k>>>24,d[i]=k;var k=16843009*_^65537*l^257*p^16843008*i;u[o]=k<<24|k>>>8,v[o]=k<<16|k>>>16,h[o]=k<<8|k>>>24,y[o]=k,i?(i=p^e[e[e[_^p]]],n^=e[e[n]]):i=n=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],l=o.AES=n.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,r=e.words,i=e.sigBytes/4,n=this._nRounds=i+6,o=4*(n+1),c=this._keySchedule=[],s=0;s<o;s++)if(s<i)c[s]=r[s];else{var f=c[s-1];s%i?i>6&&s%i==4&&(f=t[f>>>24]<<24|t[f>>>16&255]<<16|t[f>>>8&255]<<8|t[255&f]):(f=f<<8|f>>>24,f=t[f>>>24]<<24|t[f>>>16&255]<<16|t[f>>>8&255]<<8|t[255&f],f^=p[s/i|0]<<24),c[s]=c[s-i]^f}for(var a=this._invKeySchedule=[],d=0;d<o;d++){var s=o-d;if(d%4)var f=c[s];else var f=c[s-4];d<4||s<=4?a[d]=f:a[d]=u[t[f>>>24]]^v[t[f>>>16&255]]^h[t[f>>>8&255]]^y[t[255&f]]}}},encryptBlock:function(e,r){this._doCryptBlock(e,r,this._keySchedule,s,f,a,d,t)},decryptBlock:function(e,r){var i=e[r+1];e[r+1]=e[r+3],e[r+3]=i,this._doCryptBlock(e,r,this._invKeySchedule,u,v,h,y,c);var i=e[r+1];e[r+1]=e[r+3],e[r+3]=i},_doCryptBlock:function(e,r,i,n,o,t,c,s){for(var f=this._nRounds,a=e[r]^i[0],d=e[r+1]^i[1],u=e[r+2]^i[2],v=e[r+3]^i[3],h=4,y=1;y<f;y++){var p=n[a>>>24]^o[d>>>16&255]^t[u>>>8&255]^c[255&v]^i[h++],l=n[d>>>24]^o[u>>>16&255]^t[v>>>8&255]^c[255&a]^i[h++],_=n[u>>>24]^o[v>>>16&255]^t[a>>>8&255]^c[255&d]^i[h++],k=n[v>>>24]^o[a>>>16&255]^t[d>>>8&255]^c[255&u]^i[h++];a=p,d=l,u=_,v=k}var p=(s[a>>>24]<<24|s[d>>>16&255]<<16|s[u>>>8&255]<<8|s[255&v])^i[h++],l=(s[d>>>24]<<24|s[u>>>16&255]<<16|s[v>>>8&255]<<8|s[255&a])^i[h++],_=(s[u>>>24]<<24|s[v>>>16&255]<<16|s[a>>>8&255]<<8|s[255&d])^i[h++],k=(s[v>>>24]<<24|s[a>>>16&255]<<16|s[d>>>8&255]<<8|s[255&u])^i[h++];e[r]=p,e[r+1]=l,e[r+2]=_,e[r+3]=k},keySize:8});r.AES=n._createHelper(l)}(),e.AES});
|
||||
//# sourceMappingURL=aes.min.js.map
|
||||
!function(e,n){"object"==typeof exports?module.exports=exports=n(require("./core.min")):"function"==typeof define&&define.amd?define(["./core.min"],n):n(e.CryptoJS)}(this,function(e){return e.enc.Utf8});
|
||||
//# sourceMappingURL=enc-utf8.min.js.map
|
||||
/**
|
||||
* 加密(需要先加载lib/aes/aes.min.js文件)
|
||||
* @param word
|
||||
* @returns {*}
|
||||
*/
|
||||
function encrypt(word){
|
||||
var key = CryptoJS.enc.Utf8.parse("jjbns@jysoft1088");
|
||||
var srcs = CryptoJS.enc.Utf8.parse(word);
|
||||
var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
|
||||
return encrypted.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 解密
|
||||
* @param word
|
||||
* @returns {*}
|
||||
*/
|
||||
function decrypt(word){
|
||||
var key = CryptoJS.enc.Utf8.parse("jjbns@jysoft1088");
|
||||
var decrypt = CryptoJS.AES.decrypt(word, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
|
||||
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Object} word是视频加解密
|
||||
*/
|
||||
function videoEncrypt(word){
|
||||
var key = CryptoJS.enc.Utf8.parse("297796CCB81D2553");
|
||||
var srcs = CryptoJS.enc.Utf8.parse(word);
|
||||
var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
|
||||
return encrypted.toString();
|
||||
}
|
||||
|
||||
function videoDecrypt(word){
|
||||
var key = CryptoJS.enc.Utf8.parse("297796CCB81D2553");
|
||||
var decrypt = CryptoJS.AES.decrypt(word, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
|
||||
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 默认时间加密
|
||||
*/
|
||||
function getDefatData(){
|
||||
var date = dateFtt('yyyy-MM-dd hh:mm:ss',new Date());
|
||||
var key = CryptoJS.enc.Utf8.parse("jjbns@jysoft1088");
|
||||
var srcs = CryptoJS.enc.Utf8.parse(date);
|
||||
var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
|
||||
return encrypted.toString();
|
||||
}
|
||||
/**
|
||||
* @param {Object} fmt
|
||||
* @param {Object} date时间格式化工具类
|
||||
*/
|
||||
function dateFtt(fmt, date) { //author: meizz
|
||||
var o = {
|
||||
"M+": date.getMonth() + 1, //月份
|
||||
"d+": date.getDate(), //日
|
||||
"h+": date.getHours(), //小时
|
||||
"m+": date.getMinutes(), //分
|
||||
"s+": date.getSeconds(), //秒
|
||||
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
|
||||
"S": date.getMilliseconds() //毫秒
|
||||
};
|
||||
if(/(y+)/.test(fmt))
|
||||
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
|
||||
for(var k in o)
|
||||
if(new RegExp("(" + k + ")").test(fmt))
|
||||
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
|
||||
return fmt;
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
!function(r,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.sm3=t():r.sm3=t()}("undefined"!=typeof self?self:this,function(){return function(r){function t(e){if(n[e])return n[e].exports;var o=n[e]={i:e,l:!1,exports:{}};return r[e].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=r,t.c=n,t.d=function(r,n,e){t.o(r,n)||Object.defineProperty(r,n,{configurable:!1,enumerable:!0,get:e})},t.n=function(r){var n=r&&r.__esModule?function(){return r.default}:function(){return r};return t.d(n,"a",n),n},t.o=function(r,t){return Object.prototype.hasOwnProperty.call(r,t)},t.p="",t(t.s=6)}({1:function(r,t,n){"use strict";function e(r,t){for(var n=[],e=~~(t/8),o=t%8,u=0,i=r.length;u<i;u++)n[u]=(r[(u+e)%i]<<o&255)+(r[(u+e+1)%i]>>>8-o&255);return n}function o(r,t){for(var n=[],e=r.length-1;e>=0;e--)n[e]=255&(r[e]^t[e]);return n}function u(r,t){for(var n=[],e=r.length-1;e>=0;e--)n[e]=r[e]&t[e]&255;return n}function i(r,t){for(var n=[],e=r.length-1;e>=0;e--)n[e]=255&(r[e]|t[e]);return n}function f(r,t){for(var n=[],e=0,o=r.length-1;o>=0;o--){var u=r[o]+t[o]+e;u>255?(e=1,n[o]=255&u):(e=0,n[o]=255&u)}return n}function s(r){for(var t=[],n=r.length-1;n>=0;n--)t[n]=255&~r[n];return t}function c(r){return o(o(r,e(r,9)),e(r,17))}function l(r){return o(o(r,e(r,15)),e(r,23))}function p(r,t,n,e){return e>=0&&e<=15?o(o(r,t),n):i(i(u(r,t),u(r,n)),u(t,n))}function a(r,t,n,e){return e>=0&&e<=15?o(o(r,t),n):i(u(r,t),u(s(r),n))}function h(r,t){for(var n=[],u=[],i=0;i<16;i++){var s=4*i;n.push(t.slice(s,s+4))}for(var h=16;h<68;h++)n.push(o(o(l(o(o(n[h-16],n[h-9]),e(n[h-3],15))),e(n[h-13],7)),n[h-6]));for(var v=0;v<64;v++)u.push(o(n[v],n[v+4]));for(var d=[121,204,69,25],g=[122,135,157,138],y=r.slice(0,4),x=r.slice(4,8),b=r.slice(8,12),m=r.slice(12,16),j=r.slice(16,20),w=r.slice(20,24),A=r.slice(24,28),O=r.slice(28,32),P=void 0,I=void 0,S=void 0,_=void 0,E=0;E<64;E++){var M=E>=0&&E<=15?d:g;P=e(f(f(e(y,12),j),e(M,E)),7),I=o(P,e(y,12)),S=f(f(f(p(y,x,b,E),m),I),u[E]),_=f(f(f(a(j,w,A,E),O),P),n[E]),m=b,b=e(x,9),x=y,y=S,O=A,A=e(w,19),w=j,j=c(_)}return o([].concat(y,x,b,m,j,w,A,O),r)}r.exports=function(r){var t=8*r.length,n=t%512;n=n>=448?512-n%448-1:448-n-1;for(var e=new Array((n-7)/8),o=0,u=e.length;o<u;o++)e[o]=0;var i=[];t=t.toString(2);for(var f=7;f>=0;f--)if(t.length>8){var s=t.length-8;i[f]=parseInt(t.substr(s),2),t=t.substr(0,s)}else t.length>0?(i[f]=parseInt(t,2),t=""):i[f]=0;for(var c=[].concat(r,[128],e,i),l=c.length/64,p=[115,128,22,111,73,20,178,185,23,36,66,215,218,138,6,0,169,111,48,188,22,49,56,170,227,141,238,77,176,251,14,78],a=0;a<l;a++){var v=64*a;p=h(p,c.slice(v,v+64))}return p}},6:function(r,t,n){"use strict";function e(r){return r.map(function(r){return r=r.toString(16),1===r.length?"0"+r:r}).join("")}function o(r){for(var t=[],n=0,e=r.length;n<e;n++){var o=r.codePointAt(n);if(o<=127)t.push(o);else if(o<=2047)t.push(192|o>>>6),t.push(128|63&o);else if(o<=55295||o>=57344&&o<=65535)t.push(224|o>>>12),t.push(128|o>>>6&63),t.push(128|63&o);else{if(!(o>=65536&&o<=1114111))throw t.push(o),new Error("input is not supported");n++,t.push(240|o>>>18&28),t.push(128|o>>>12&63),t.push(128|o>>>6&63),t.push(128|63&o)}}return t}var u=n(1);r.exports=function(r){return r="string"==typeof r?o(r):Array.prototype.slice.call(r),e(u(r))}}})});
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>出入管理</title>
|
||||
</head>
|
||||
<body>
|
||||
出入管理
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>告警管理</title>
|
||||
</head>
|
||||
<body>
|
||||
告警管理
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>施工质量</title>
|
||||
</head>
|
||||
<body>
|
||||
施工质量
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>数据操作</title>
|
||||
</head>
|
||||
<body>
|
||||
数据操作
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="../../css/font.css">
|
||||
<link rel="stylesheet" href="../../plugin/layui-v2.9.7/layui/css/layui.css">
|
||||
<link rel="stylesheet" href="../../css/home/navigation.css">
|
||||
<link rel="stylesheet" href="../../plugin/toolTip/mTips.css">
|
||||
<script src="../../js/publics/jquery-3.6.0.min.js" type="text/javascript"></script>
|
||||
<script src="../../js/publics/public.js"></script>
|
||||
<script src="../../plugin/layui-v2.9.7/layui/layui.js"></script>
|
||||
<script src="../../plugin/toolTip/mTips.js"></script>
|
||||
<script src="../../js/publics/aes.js"></script>
|
||||
<script src="../../js/publics/sm3.js"></script>
|
||||
<title>导航页</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="nav-box" class="layout">
|
||||
<div id="nav-icon">
|
||||
<img src="../../img/navigation/talk.png" alt="对讲" data-mtpis="对讲">
|
||||
<img src="../../img/navigation/logout.png" alt="退出" data-mtpis="退出">
|
||||
</div>
|
||||
<div id="nav-left" class="layout">
|
||||
<p>汪墩—挥手π入高皇变220kV线路工程</p>
|
||||
</div>
|
||||
<div id="nav-right" class="layout">
|
||||
<ul class="layout">
|
||||
<li class="layout checked" hrefValue="../index/index.html"><p>首页</p></li>
|
||||
<li class="layout nocheck" hrefValue="../video/video.html"><p>视频监控</p></li>
|
||||
<li class="layout nocheck" hrefValue="../towerAssInspect/towerAssInspect.html"><p>组塔检测</p></li>
|
||||
<li class="layout nocheck" hrefValue="../operEnvironment/operEnvironment.html"><p>作业环境</p></li>
|
||||
<li class="layout nocheck" hrefValue="../consQuality/consQuality.html"><p>施工质量</p></li>
|
||||
<li class="layout nocheck" hrefValue="../personnelControl/personnelControl.html"><p>人员管控</p></li>
|
||||
<li class="layout nocheck" hrefValue="../accessMge/accessMge.html"><p>出入管理</p></li>
|
||||
<li class="layout nocheck" hrefValue="../alarmMge/alarmMge.html"><p>告警管理</p></li>
|
||||
<li class="layout nocheck" hrefValue="../dataOprea/dataOprea.html"><p>数据操作</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ifr-box">
|
||||
<iframe id="indexIframe" width="100%" height="99%" frameborder="0"></iframe>
|
||||
</div>
|
||||
</body>
|
||||
<script src="../../js/pages/home/navigation.js" type="text/javascript"></script>
|
||||
|
||||
</html>
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="../../css/font.css">
|
||||
<link rel="stylesheet" href="../../plugin/layui-v2.9.7/layui/css/layui.css">
|
||||
<link rel="stylesheet" href="../../css/index/index.css">
|
||||
<script src="../../js/publics/jquery-3.6.0.min.js" type="text/javascript"></script>
|
||||
<script src="../../js/publics/public.js"></script>
|
||||
<script src="../../plugin/scroll/jquery.nicescroll.min.js"></script>
|
||||
<script src="../../js/publics/echarts.js"></script>
|
||||
<script src="../../plugin/layui-v2.9.7/layui/layui.js"></script>
|
||||
<script src="../../js/publics/aes.js"></script>
|
||||
<script src="../../js/publics/sm3.js"></script>
|
||||
<title>首页</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="main-box" class="layout">
|
||||
<div id="left-box">
|
||||
<!-- 项目简介 -->
|
||||
<div id="pro-introduct" class="layout">
|
||||
<div class="layui-carousel" id="ID-carousel-demo-image">
|
||||
<div carousel-item>
|
||||
<div><img src="https://unpkg.com/outeres/demo/carousel/720x360-1.jpg"></div>
|
||||
<div><img src="https://unpkg.com/outeres/demo/carousel/720x360-2.jpg"></div>
|
||||
<div><img src="https://unpkg.com/outeres/demo/carousel/720x360-3.jpg"></div>
|
||||
<div><img src="https://unpkg.com/outeres/demo/carousel/720x360-4.jpg"></div>
|
||||
<div><img src="https://unpkg.com/outeres/demo/carousel/720x360-5.jpg"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pro-desc">
|
||||
<p>
|
||||
变电工程建设项目是为了满足电力系统的需求,并提供可靠稳定的电力供应而进行的工程项目。它涉及到变电站的建设、改造或扩建。
|
||||
首先,在变电工程建设项目中,选址是一个重要的环节。通过科学的评估和分析,选择适合建设变电站的地点。选址需要考虑到地理条件、周边环境、输电线路的布局等因素,以确保变电站的正常运行,并最大限度地降低对周围环境和居民的影响。
|
||||
其次,变电工程建设项目还需要进行详细的设计。设计阶段包括确定变电站的容量、类型和配置各种设备的布局。通过合理的设计,确保变电站能够满足电力系统的要求,提高输电效率和能源利用率。
|
||||
然后,施工阶段是将设计方案付诸实践的阶段。施工过程中,需要进行基础设施建设、设备安装、线路连接等工作。施工单位需要按照相关的标准和规范进行操作,保证工程质量,并严格落实安全管理措施,确保施工过程的安全性。
|
||||
变电工程建设项目是为了满足电力系统的需求,并提供可靠稳定的电力供应而进行的工程项目。它涉及到变电站的建设、改造或扩建。
|
||||
首先,在变电工程建设项目中,选址是一个重要的环节。通过科学的评估和分析,选择适合建设变电站的地点。选址需要考虑到地理条件、周边环境、输电线路的布局等因素,以确保变电站的正常运行,并最大限度地降低对周围环境和居民的影响。
|
||||
其次,变电工程建设项目还需要进行详细的设计。设计阶段包括确定变电站的容量、类型和配置各种设备的布局。通过合理的设计,确保变电站能够满足电力系统的要求,提高输电效率和能源利用率。
|
||||
然后,施工阶段是将设计方案付诸实践的阶段。施工过程中,需要进行基础设施建设、设备安装、线路连接等工作。施工单位需要按照相关的标准和规范进行操作,保证工程质量,并严格落实安全管理措施,确保施工过程的安全性。
|
||||
变电工程建设项目是为了满足电力系统的需求,并提供可靠稳定的电力供应而进行的工程项目。它涉及到变电站的建设、改造或扩建。
|
||||
首先,在变电工程建设项目中,选址是一个重要的环节。通过科学的评估和分析,选择适合建设变电站的地点。选址需要考虑到地理条件、周边环境、输电线路的布局等因素,以确保变电站的正常运行,并最大限度地降低对周围环境和居民的影响。
|
||||
其次,变电工程建设项目还需要进行详细的设计。设计阶段包括确定变电站的容量、类型和配置各种设备的布局。通过合理的设计,确保变电站能够满足电力系统的要求,提高输电效率和能源利用率。
|
||||
然后,施工阶段是将设计方案付诸实践的阶段。施工过程中,需要进行基础设施建设、设备安装、线路连接等工作。施工单位需要按照相关的标准和规范进行操作,保证工程质量,并严格落实安全管理措施,确保施工过程的安全性。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="right-box" class="layout">
|
||||
<div id="real-time-monitor" class="layout">
|
||||
<div class="layout monitor-data">
|
||||
<p><span>45</span><span>℃</span></p>
|
||||
<p>温度</p>
|
||||
<div class="monitor-icon"></div>
|
||||
</div>
|
||||
<div class="layout monitor-data">
|
||||
<p><span>45</span><span>%</span></p>
|
||||
<p>湿度</p>
|
||||
<div class="monitor-icon"></div>
|
||||
</div>
|
||||
<div class="layout monitor-data">
|
||||
<p><span>45</span><span>分贝</span></p>
|
||||
<p>噪声</p>
|
||||
<div class="monitor-icon"></div>
|
||||
</div>
|
||||
<div class="layout monitor-data">
|
||||
<p><span>45</span><span>kwh</span></p>
|
||||
<p>光照</p>
|
||||
<div class="monitor-icon"></div>
|
||||
</div>
|
||||
<div class="layout monitor-data">
|
||||
<p><span>45</span><span>μg/m³</span></p>
|
||||
<p>PM2.5</p>
|
||||
<div class="monitor-icon"></div>
|
||||
</div>
|
||||
<div class="layout monitor-data">
|
||||
<p><span>45</span><span>μg/m³</span></p>
|
||||
<p>PM10</p>
|
||||
<div class="monitor-icon"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pro-risk"></div>
|
||||
<div id="pro-progress" class="layout">
|
||||
<div id="pro-start" class="layout">
|
||||
<p>2024-03-15</p>
|
||||
<p>开始日期</p>
|
||||
</div>
|
||||
<div id="pro-progress-echarts"></div>
|
||||
<div id="pro-end" class="layout">
|
||||
<p>2024-03-20</p>
|
||||
<p>计划结束</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pro-cost"></div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script src="../../js/pages/index/indexEcharts.js" type="text/javascript"></script>
|
||||
<script src="../../js/pages/index/index.js" type="text/javascript"></script>
|
||||
|
||||
</html>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>作业环境</title>
|
||||
</head>
|
||||
<body>
|
||||
作业环境
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>人员管控</title>
|
||||
</head>
|
||||
<body>
|
||||
人员管控
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>组塔检测</title>
|
||||
</head>
|
||||
<body>
|
||||
组塔检测
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>视频监控</title>
|
||||
</head>
|
||||
<body>
|
||||
视频监控
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 322 KiB |
|
|
@ -0,0 +1,177 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||