@ -0,0 +1,13 @@ |
|||
package com.dreamchaser.depository_manage.pojo; |
|||
|
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class InventoryByMTAndDepository { |
|||
// 类型id
|
|||
private Long mtId; |
|||
// 仓库id
|
|||
private Integer depositoryId; |
|||
// 库存数
|
|||
private Double inventory; |
|||
} |
|||
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
@ -1,530 +0,0 @@ |
|||
<!DOCTYPE html> |
|||
<html> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
<title>首页三</title> |
|||
<meta name="renderer" content="webkit"> |
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> |
|||
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all"> |
|||
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all"> |
|||
<link rel="stylesheet" href="/static/css/public.css" media="all"> |
|||
<style> |
|||
.top-panel { |
|||
border: 1px solid #eceff9; |
|||
border-radius: 5px; |
|||
text-align: center; |
|||
} |
|||
.top-panel > .layui-card-body{ |
|||
height: 60px; |
|||
} |
|||
.top-panel-number{ |
|||
line-height:60px; |
|||
font-size: 30px; |
|||
border-right:1px solid #eceff9; |
|||
} |
|||
.top-panel-tips{ |
|||
line-height:30px; |
|||
font-size: 12px |
|||
} |
|||
</style> |
|||
</head> |
|||
<body> |
|||
<!--<div class="layuimini-container">--> |
|||
<div class="layuimini-main"> |
|||
|
|||
<div class="layui-row layui-col-space15"> |
|||
<div class="layui-col-xs12 layui-col-md9"> |
|||
<button class="layui-btn" lay-submit lay-filter="thisWeek"> |
|||
 本周  |
|||
</button> |
|||
<button class="layui-btn" lay-submit lay-filter="lastWeek" > |
|||
 上周  |
|||
</button> |
|||
<div id="echarts-records" style="background-color:#ffffff;min-height:400px;padding: 10px"></div> |
|||
</div> |
|||
<div class="layui-col-xs12 layui-col-md3"> |
|||
<div id="echarts-pies" style="background-color:#ffffff;min-height:400px;padding: 10px"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
<div class="layui-row layui-col-space15"> |
|||
<div class="layui-col-xs12 layui-col-md6"> |
|||
<div id="echarts-dataset" style="background-color:#ffffff;min-height:300px;padding: 10px"></div> |
|||
</div> |
|||
<div class="layui-col-xs12 layui-col-md6"> |
|||
<div id="echarts-map" style="background-color:#ffffff;min-height:300px;padding: 10px"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
</div> |
|||
<!--</div>--> |
|||
|
|||
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> |
|||
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script> |
|||
<script> |
|||
layui.use(['layer'], function () { |
|||
var $ = layui.jquery, |
|||
layer = layui.layer, |
|||
form = layui.form; |
|||
/** |
|||
* 折线图 |
|||
*/ |
|||
var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden'); |
|||
|
|||
var optionRecords = { |
|||
title: { |
|||
text: '仓库库存-报表图' |
|||
}, |
|||
tooltip: { |
|||
trigger: 'axis', |
|||
axisPointer: { |
|||
type: 'cross', |
|||
label: { |
|||
backgroundColor: '#6a7985' |
|||
} |
|||
} |
|||
}, |
|||
legend: { |
|||
data: [] |
|||
}, |
|||
toolbox: { |
|||
feature: { |
|||
saveAsImage: {} |
|||
} |
|||
}, |
|||
grid: { |
|||
left: '3%', |
|||
right: '4%', |
|||
bottom: '3%', |
|||
containLabel: true |
|||
}, |
|||
xAxis: [ |
|||
{ |
|||
type: 'category', |
|||
boundaryGap: false, |
|||
data: [] |
|||
} |
|||
], |
|||
yAxis: [ |
|||
{ |
|||
type: 'value' |
|||
} |
|||
], |
|||
series: [ |
|||
{ |
|||
name: '北京仓库', |
|||
type: 'line', |
|||
stack: '金额', |
|||
label: { |
|||
normal: { |
|||
show: true, |
|||
position: 'top' |
|||
} |
|||
}, |
|||
areaStyle: {}, |
|||
data: [] |
|||
} |
|||
] |
|||
}; |
|||
|
|||
/** |
|||
* 玫瑰图表 |
|||
*/ |
|||
var echartsPies = echarts.init(document.getElementById('echarts-pies'), 'walden'); |
|||
var optionPies = { |
|||
title: { |
|||
text: '仓库分布图', |
|||
left: 'center' |
|||
}, |
|||
tooltip: { |
|||
trigger: 'item', |
|||
formatter: '{a} <br/>{b} : {c} ({d}%)' |
|||
}, |
|||
legend: { |
|||
orient: 'vertical', |
|||
left: 'left', |
|||
data: ['外芯仓库', '义乌仓库', '宁波仓库', '杭州仓库', '北京仓库'] |
|||
}, |
|||
series: [ |
|||
{ |
|||
name: '昨日占比', |
|||
type: 'pie', |
|||
radius: '55%', |
|||
center: ['50%', '60%'], |
|||
roseType: 'radius', |
|||
data: [ |
|||
{value: 335, name: '外芯仓库'}, |
|||
{value: 310, name: '义乌仓库'}, |
|||
{value: 234, name: '宁波仓库'}, |
|||
{value: 135, name: '杭州仓库'}, |
|||
{value: 368, name: '北京仓库'} |
|||
], |
|||
emphasis: { |
|||
itemStyle: { |
|||
shadowBlur: 10, |
|||
shadowOffsetX: 0, |
|||
shadowColor: 'rgba(0, 0, 0, 0.5)' |
|||
} |
|||
} |
|||
} |
|||
] |
|||
}; |
|||
|
|||
|
|||
/** |
|||
* 柱状图 |
|||
*/ |
|||
var echartsDataset = echarts.init(document.getElementById('echarts-dataset'), 'walden'); |
|||
var optionDataset = { |
|||
legend: {}, |
|||
tooltip: {}, |
|||
dataset: { |
|||
dimensions: [], |
|||
source: [ |
|||
] |
|||
}, |
|||
xAxis: {type: 'category'}, |
|||
yAxis: {}, |
|||
series: [ |
|||
{type: 'bar'}, |
|||
{type: 'bar'}, |
|||
{type: 'bar'} |
|||
] |
|||
}; |
|||
|
|||
|
|||
/** |
|||
* 中国地图 |
|||
*/ |
|||
var echartsMap = echarts.init(document.getElementById('echarts-map'), 'walden'); |
|||
var optionMap = { |
|||
legend: {}, |
|||
tooltip: { |
|||
trigger: 'axis', |
|||
showContent: false |
|||
}, |
|||
dataset: { |
|||
source: [ |
|||
] |
|||
}, |
|||
xAxis: {type: 'category'}, |
|||
yAxis: {gridIndex: 0}, |
|||
grid: {top: '55%'}, |
|||
series: [ |
|||
] |
|||
}; |
|||
|
|||
|
|||
//动态加载相关数据 |
|||
$.ajax({ |
|||
url:'/repository/layui/echart_back?type=0', |
|||
type:'get', |
|||
async:true, |
|||
dataType: "json", |
|||
complete:function (XHR,TS){ |
|||
if(XHR.status != 200){ |
|||
layer.alert("系统繁忙,稍后重试"); |
|||
} |
|||
}, |
|||
beforeSend: function () { |
|||
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']}); |
|||
}, |
|||
success:function (result){ |
|||
layer.close(this.layerIndex); |
|||
if(result.code === 0){ |
|||
echartsRecords.setOption(optionRecords); |
|||
echartsPies.setOption(optionPies); |
|||
echartsDataset.setOption(optionDataset); |
|||
echartsMap.setOption(optionMap); |
|||
|
|||
// 折线图 |
|||
var optionRecordsSeries=[]; |
|||
// 饼状图 |
|||
var optionPiesSeries = { |
|||
name: '昨日占比', |
|||
type: 'pie', |
|||
radius: '55%', |
|||
center: ['50%', '60%'], |
|||
roseType: 'radius', |
|||
emphasis: { |
|||
itemStyle: { |
|||
shadowBlur: 10, |
|||
shadowOffsetX: 0, |
|||
shadowColor: 'rgba(0, 0, 0, 0.5)' |
|||
} |
|||
}, |
|||
data:[] |
|||
} |
|||
// 柱状图 |
|||
optionDataset = { |
|||
legend: {}, |
|||
tooltip: {}, |
|||
dataset: { |
|||
dimensions:[], |
|||
source:[] |
|||
}, |
|||
series:[] |
|||
}; |
|||
for (let i = 0; i < result.data.depository_name.length; i++) { |
|||
optionRecordsSeries.push({ |
|||
name: result.data.depository_name[i], |
|||
type: 'line', |
|||
stack: '金额', |
|||
data:result.data.depository_data.ThisWeekInventory[result.data.depository_name[i]], |
|||
areaStyle: {} |
|||
}); |
|||
optionPiesSeries.data.push({ |
|||
value:result.data.depository_data.todayInventory[result.data.depository_name[i]],name:result.data.depository_name[i] |
|||
}) |
|||
} |
|||
var dimensions = result.data.depository_data.sourceListByMonth[result.data.depository_data.sourceListByMonth.length - 1] |
|||
optionDataset.dataset.dimensions = dimensions |
|||
for (let i = result.data.depository_data.sourceListByMonth.length - 2; i >= 0; i--) { |
|||
optionDataset.dataset.source.push(result.data.depository_data.sourceListByMonth[i]) |
|||
} |
|||
for (let i = 0; i < dimensions.length - 1; i++) { |
|||
optionDataset.series.push({type:'bar'}) |
|||
} |
|||
|
|||
for (let i = 0; i < result.data.depository_data.MapInventory.mapDataList.length ; i++) { |
|||
optionMap.dataset.source.push(result.data.depository_data.MapInventory.mapDataList[i]) |
|||
if(i < result.data.depository_data.MapInventory.mapDataList.length - 1) { |
|||
optionMap.series.push({type: 'line', smooth: true, seriesLayoutBy: 'row'}) |
|||
} |
|||
|
|||
} |
|||
var month = new Date().getMonth() + 1; |
|||
optionMap.series.push( |
|||
{ |
|||
type: 'pie', |
|||
// id: 'pie', |
|||
radius: '30%', |
|||
center: ['50%', '25%'], |
|||
label: { |
|||
formatter: '{b}: {@'+month+'月} ({d}%)' |
|||
}, |
|||
encode: { |
|||
itemName: 'product', |
|||
value: month+'月', |
|||
tooltip: month+'月' |
|||
} |
|||
} |
|||
); |
|||
optionRecords = { |
|||
title: { |
|||
text: '仓库库存-报表图' |
|||
}, |
|||
tooltip: { |
|||
trigger: 'axis', |
|||
axisPointer: { |
|||
type: 'cross', |
|||
label: { |
|||
backgroundColor: '#6a7985' |
|||
} |
|||
} |
|||
}, |
|||
legend: { |
|||
data: result.data.depository_name |
|||
}, |
|||
toolbox: { |
|||
feature: { |
|||
saveAsImage: {} |
|||
} |
|||
}, |
|||
grid: { |
|||
left: '3%', |
|||
right: '4%', |
|||
bottom: '3%', |
|||
containLabel: true |
|||
}, |
|||
xAxis: [ |
|||
{ |
|||
type: 'category', |
|||
boundaryGap: false, |
|||
data: result.data.depository_data.week |
|||
} |
|||
], |
|||
yAxis: [ |
|||
{ |
|||
type: 'value' |
|||
} |
|||
], |
|||
series: optionRecordsSeries |
|||
}; |
|||
optionPies = { |
|||
title: { |
|||
text: '仓库分布图', |
|||
left: 'center' |
|||
}, |
|||
tooltip: { |
|||
trigger: 'item', |
|||
formatter: '{a} <br/>{b} : {c} ({d}%)' |
|||
}, |
|||
legend: { |
|||
orient: 'vertical', |
|||
left: 'left', |
|||
data: result.data.depository_name |
|||
}, |
|||
series: optionPiesSeries |
|||
}; |
|||
echartsRecords.setOption(optionRecords); |
|||
echartsPies.setOption(optionPies); |
|||
echartsDataset.setOption(optionDataset); |
|||
echartsMap.setOption(optionMap); |
|||
} |
|||
} |
|||
}); |
|||
|
|||
|
|||
// echarts 窗口缩放自适应 |
|||
window.onresize = function () { |
|||
echartsRecords.resize(); |
|||
}; |
|||
|
|||
|
|||
form.on('submit(thisWeek)', function () { |
|||
$.ajax({ |
|||
url:'/repository/layui/echart_back?type=0', |
|||
type:'get', |
|||
async:true, |
|||
dataType: "json", |
|||
complete:function (XHR,TS){ |
|||
if(XHR.status != 200){ |
|||
layer.alert("系统繁忙,稍后重试"); |
|||
} |
|||
}, |
|||
success:function (result){ |
|||
echartsRecords.setOption(optionRecords); |
|||
// 折线图 |
|||
var optionRecordsSeries=[]; |
|||
for (let i = 0; i < result.data.depository_name.length; i++) { |
|||
optionRecordsSeries.push({ |
|||
name: result.data.depository_name[i], |
|||
type: 'line', |
|||
stack: '金额', |
|||
data:result.data.depository_data.ThisWeekInventory[result.data.depository_name[i]], |
|||
areaStyle: {} |
|||
}); |
|||
} |
|||
optionRecords = { |
|||
title: { |
|||
text: '仓库库存-报表图' |
|||
}, |
|||
tooltip: { |
|||
trigger: 'axis', |
|||
axisPointer: { |
|||
type: 'cross', |
|||
label: { |
|||
backgroundColor: '#6a7985' |
|||
} |
|||
} |
|||
}, |
|||
legend: { |
|||
data: result.data.depository_name |
|||
}, |
|||
toolbox: { |
|||
feature: { |
|||
saveAsImage: {} |
|||
} |
|||
}, |
|||
grid: { |
|||
left: '3%', |
|||
right: '4%', |
|||
bottom: '3%', |
|||
containLabel: true |
|||
}, |
|||
xAxis: [ |
|||
{ |
|||
type: 'category', |
|||
boundaryGap: false, |
|||
data: result.data.depository_data.week |
|||
} |
|||
], |
|||
yAxis: [ |
|||
{ |
|||
type: 'value' |
|||
} |
|||
], |
|||
series: optionRecordsSeries |
|||
}; |
|||
echartsRecords.setOption(optionRecords); |
|||
} |
|||
}) |
|||
}) |
|||
|
|||
form.on('submit(lastWeek)', function () { |
|||
$.ajax({ |
|||
url:'/repository/layui/echart_back?type=0&last=1', |
|||
type:'get', |
|||
async:true, |
|||
dataType: "json", |
|||
complete:function (XHR,TS){ |
|||
if(XHR.status != 200){ |
|||
layer.alert("系统繁忙,稍后重试"); |
|||
} |
|||
}, |
|||
success:function (result){ |
|||
echartsRecords.setOption(optionRecords); |
|||
// 折线图 |
|||
var optionRecordsSeries=[]; |
|||
for (let i = 0; i < result.data.depository_name.length; i++) { |
|||
optionRecordsSeries.push({ |
|||
name: result.data.depository_name[i], |
|||
type: 'line', |
|||
stack: '金额', |
|||
data:result.data.depository_data.BeforeInventory[result.data.depository_name[i]], |
|||
areaStyle: {} |
|||
}); |
|||
} |
|||
optionRecords = { |
|||
title: { |
|||
text: '仓库库存-报表图' |
|||
}, |
|||
tooltip: { |
|||
trigger: 'axis', |
|||
axisPointer: { |
|||
type: 'cross', |
|||
label: { |
|||
backgroundColor: '#6a7985' |
|||
} |
|||
} |
|||
}, |
|||
legend: { |
|||
data: result.data.depository_name |
|||
}, |
|||
toolbox: { |
|||
feature: { |
|||
saveAsImage: {} |
|||
} |
|||
}, |
|||
grid: { |
|||
left: '3%', |
|||
right: '4%', |
|||
bottom: '3%', |
|||
containLabel: true |
|||
}, |
|||
xAxis: [ |
|||
{ |
|||
type: 'category', |
|||
boundaryGap: false, |
|||
data: result.data.depository_data.week |
|||
} |
|||
], |
|||
yAxis: [ |
|||
{ |
|||
type: 'value' |
|||
} |
|||
], |
|||
series: optionRecordsSeries |
|||
}; |
|||
echartsRecords.setOption(optionRecords); |
|||
} |
|||
}) |
|||
}) |
|||
}); |
|||
</script> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,256 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="en" xmlns:th="http://www.thymeleaf.org"> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
<title>首页三</title> |
|||
<meta name="renderer" content="webkit"> |
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> |
|||
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all"> |
|||
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all"> |
|||
<link rel="stylesheet" href="/static/lib/bootstrap-3.4.1-dist/css/bootstrap.min.css" media="all"> |
|||
<link rel="stylesheet" href="/static/css/public.css" media="all"> |
|||
|
|||
<style> |
|||
.top-panel { |
|||
border: 1px solid #eceff9; |
|||
border-radius: 5px; |
|||
text-align: center; |
|||
} |
|||
|
|||
.top-panel-number { |
|||
line-height: 60px; |
|||
font-size: 30px; |
|||
border-right: 1px solid #eceff9; |
|||
} |
|||
|
|||
.top-panel-tips { |
|||
line-height: 30px; |
|||
font-size: 12px |
|||
} |
|||
|
|||
|
|||
</style> |
|||
</head> |
|||
<body> |
|||
<div class="layuimini-main"> |
|||
|
|||
<div class="layui-collapse" lay-accordion> |
|||
|
|||
<div class="layui-colla-item"> |
|||
<h2 class="layui-colla-title">面积图</h2> |
|||
<div class="layui-colla-content layui-show"> |
|||
<button class="layui-btn" lay-submit lay-filter="thisWeek"> |
|||
 本周  |
|||
</button> |
|||
<button class="layui-btn" lay-submit lay-filter="lastWeek"> |
|||
 上周  |
|||
</button> |
|||
<select id="selectDepositoryForChart" class="form-control"> |
|||
|
|||
</select> |
|||
<div id="echarts-line" style="background-color:#ffffff;padding: 10px;height: 400px"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-colla-item"> |
|||
<h2 class="layui-colla-title">旭日图</h2> |
|||
<div class="layui-colla-content layui-show"> |
|||
<div id="echarts-sunburst-chart" style="background-color:#ffffff;padding: 10px;height:400px;"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
|
|||
</div> |
|||
<!--</div>--> |
|||
|
|||
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> |
|||
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script> |
|||
<script src="/static/lib/echarts/echarts.js" charset="utf-8"></script> |
|||
<script> |
|||
layui.use(['layer', 'element'], function () { |
|||
var $ = layui.jquery, |
|||
layer = layui.layer, |
|||
element = layui.element, |
|||
form = layui.form; |
|||
|
|||
// 旭日图 |
|||
var echartSunburstChart = echarts.init(document.getElementById('echarts-sunburst-chart')); |
|||
var optionSunburstChart = { |
|||
title: { |
|||
textStyle: { |
|||
fontSize: 14, |
|||
align: 'center' |
|||
}, |
|||
subtextStyle: { |
|||
align: 'center' |
|||
}, |
|||
}, |
|||
series: { |
|||
type: 'sunburst', |
|||
data: [], |
|||
radius: [0, '95%'], |
|||
sort: undefined, |
|||
emphasis: { |
|||
focus: 'ancestor' |
|||
}, |
|||
levels: [ |
|||
{}, |
|||
{ |
|||
r0: '15%', |
|||
r: '35%', |
|||
itemStyle: { |
|||
borderWidth: 2 |
|||
}, |
|||
label: { |
|||
rotate: 'tangential' |
|||
} |
|||
}, |
|||
{ |
|||
r0: '35%', |
|||
r: '70%', |
|||
label: { |
|||
align: 'right' |
|||
} |
|||
}, |
|||
{ |
|||
r0: '70%', |
|||
r: '72%', |
|||
label: { |
|||
position: 'outside', |
|||
padding: 3, |
|||
silent: false |
|||
}, |
|||
itemStyle: { |
|||
borderWidth: 3 |
|||
} |
|||
} |
|||
] |
|||
} |
|||
}; |
|||
|
|||
|
|||
let LineChartData = {}; |
|||
|
|||
// 柱状图 |
|||
var echartLineChart = echarts.init(document.getElementById('echarts-line')); |
|||
var optionLineChart = { |
|||
xAxis: { |
|||
type: 'category', |
|||
boundaryGap: false, |
|||
data: [] |
|||
}, |
|||
yAxis: { |
|||
type: 'value' |
|||
}, |
|||
series: [] |
|||
|
|||
}; |
|||
|
|||
|
|||
|
|||
//动态加载相关数据 |
|||
$.ajax({ |
|||
url: '/repository/layui/echart_back?type=0', |
|||
type: 'get', |
|||
async: true, |
|||
dataType: "json", |
|||
complete: function (XHR, TS) { |
|||
if (XHR.status !== 200) { |
|||
layer.alert("系统繁忙,稍后重试"); |
|||
} |
|||
}, |
|||
beforeSend: function () { |
|||
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']}); |
|||
}, |
|||
success: function (result) { |
|||
layer.close(this.layerIndex); |
|||
|
|||
if (result.code === 0) { |
|||
let data = result.data; |
|||
|
|||
let depositoryItem = data.depository; |
|||
let keys = Object.keys(depositoryItem); |
|||
for (let i = 0; i < keys.length; i++) { |
|||
let key = keys[i]; |
|||
$("#selectDepositoryForChart").append(new Option(key,depositoryItem[key])); |
|||
} |
|||
|
|||
|
|||
optionSunburstChart.series.data =data.depository_data.sunburstChartData; |
|||
echartSunburstChart.setOption(optionSunburstChart); |
|||
|
|||
|
|||
LineChartData = data.depository_data.lineChartData; |
|||
optionLineChart.series = LineChartData[depositoryItem[keys[0]]]; |
|||
optionLineChart.xAxis.data = data.depository_data.week; |
|||
echartLineChart.setOption(optionLineChart); |
|||
} |
|||
|
|||
} |
|||
}); |
|||
|
|||
|
|||
form.on('submit(thisWeek)', function () { |
|||
$.ajax({ |
|||
url: '/repository/layui/echart_back_thisWeek?type=0', |
|||
type: 'get', |
|||
async: true, |
|||
dataType: "json", |
|||
complete: function (XHR, TS) { |
|||
if (XHR.status !== 200) { |
|||
layer.alert("系统繁忙,稍后重试"); |
|||
} |
|||
}, |
|||
beforeSend: function () { |
|||
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']}); |
|||
}, |
|||
success: function (result) { |
|||
layer.close(this.layerIndex); |
|||
LineChartData = result.data; |
|||
let value = $("#selectDepositoryForChart").val(); |
|||
optionLineChart.series = LineChartData[value]; |
|||
echartLineChart.setOption(optionLineChart); |
|||
} |
|||
}) |
|||
}); |
|||
|
|||
form.on('submit(lastWeek)', function () { |
|||
$.ajax({ |
|||
url: '/repository/layui/echart_back_lastWeek?type=0', |
|||
type: 'get', |
|||
async: true, |
|||
dataType: "json", |
|||
complete: function (XHR, TS) { |
|||
if (XHR.status !== 200) { |
|||
layer.alert("系统繁忙,稍后重试"); |
|||
} |
|||
}, |
|||
beforeSend: function () { |
|||
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']}); |
|||
}, |
|||
success: function (result) { |
|||
layer.close(this.layerIndex); |
|||
LineChartData = result.data; |
|||
let value = $("#selectDepositoryForChart").val(); |
|||
optionLineChart.series = LineChartData[value]; |
|||
echartLineChart.setOption(optionLineChart); |
|||
} |
|||
}) |
|||
}); |
|||
|
|||
$('#selectDepositoryForChart').on('change', function (obj) { |
|||
let value = obj.target.value; |
|||
optionLineChart.series = LineChartData[value]; |
|||
echartLineChart.setOption(optionLineChart); |
|||
}); |
|||
|
|||
|
|||
|
|||
}); |
|||
|
|||
</script> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,81 @@ |
|||
<!DOCTYPE html> |
|||
<html xmlns:th="http://www.w3.org/1999/xhtml"> |
|||
<html xmlns:th="http://www.thymeleaf.org"> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
<title>扫码</title> |
|||
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all"> |
|||
<link rel="stylesheet" href="/static/css/layuimini.css?v=2.0.4.2" media="all"> |
|||
<link rel="stylesheet" href="/static/css/themes/default.css" media="all"> |
|||
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all"> |
|||
<!--[if lt IE 9]> |
|||
<script src="/static/js/html5.min.js"></script> |
|||
<script src="/static/js/respond.min.js"></script> |
|||
<![endif]--> |
|||
<!-- vue相关--> |
|||
<script src="../static/js/vue/vue.js"></script> |
|||
<script src="../static/js/vue/vue-router.js"></script> |
|||
<script src="../static/lib/http-vue-loader/src/httpVueLoader.js"></script> |
|||
<script src="../static/js/VueQrcodeReader.umd.min.js"></script> |
|||
<script src="/static/js/scanBarCode/html5-qrcode.min.js"></script> |
|||
</head> |
|||
<body> |
|||
|
|||
<div style="width: 500px" id="reader"> |
|||
|
|||
</div> |
|||
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> |
|||
<script> |
|||
// 用于判断是否包含字母 |
|||
var barCodeList = []; |
|||
|
|||
|
|||
layui.$(function () { |
|||
parent.parent.parent.parent.wx.scanQRCode({ |
|||
desc: 'scanQRCode desc', |
|||
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果, |
|||
scanType: ["barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有 |
|||
success: function (res) { |
|||
// 回调 |
|||
var result = res.resultStr;//当needResult为1时返回处理结果 |
|||
outboundLogic(result); |
|||
|
|||
}, |
|||
error: function(res) { |
|||
if (res.errMsg.indexOf('function_not_exist') > 0) { |
|||
alert('版本过低请升级') |
|||
} |
|||
|
|||
} |
|||
|
|||
}); |
|||
}); |
|||
|
|||
outboundLogic = function (result) { |
|||
barCodeList.push(result); |
|||
layer.confirm("是否继续扫描", { |
|||
btn: ["扫描", "取消"] |
|||
}, function () { // 继续 |
|||
layer.close(layer.index); // 关闭弹窗 |
|||
parent.parent.parent.parent.wx.scanQRCode({ |
|||
desc: 'scanQRCode desc', |
|||
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果, |
|||
scanType: ["barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有 |
|||
success: function (res) { |
|||
// 回调 |
|||
var result = res.resultStr;//当needResult为1时返回处理结果 |
|||
outboundLogic(result) |
|||
} |
|||
}) |
|||
}, function () { // 取消 |
|||
// 关闭当前页 |
|||
layui.$("#barCodeList", window.parent.document).val(barCodeList); |
|||
var index = parent.layer.getFrameIndex(window.name); |
|||
parent.layer.close(index); |
|||
|
|||
}) |
|||
} |
|||
|
|||
</script> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,283 @@ |
|||
package com.dreamchaser.depository_manage; |
|||
|
|||
import com.alibaba.fastjson.JSONObject; |
|||
import com.dreamchaser.depository_manage.entity.Depository; |
|||
import com.dreamchaser.depository_manage.entity.MaterialType; |
|||
import com.dreamchaser.depository_manage.entity.UserByPort; |
|||
import com.dreamchaser.depository_manage.pojo.InventoryByDname; |
|||
import com.dreamchaser.depository_manage.pojo.InventoryByMTAndDepository; |
|||
import com.dreamchaser.depository_manage.service.DepositoryRecordService; |
|||
import com.dreamchaser.depository_manage.service.DepositoryService; |
|||
import com.dreamchaser.depository_manage.service.MaterialService; |
|||
import com.dreamchaser.depository_manage.service.MaterialTypeService; |
|||
import com.dreamchaser.depository_manage.utils.DateUtil; |
|||
import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil; |
|||
import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; |
|||
import org.junit.Test; |
|||
import org.junit.runner.RunWith; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.boot.test.context.SpringBootTest; |
|||
import org.springframework.test.context.junit4.SpringRunner; |
|||
|
|||
import java.text.SimpleDateFormat; |
|||
import java.util.*; |
|||
import java.util.concurrent.*; |
|||
|
|||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) |
|||
@RunWith(SpringRunner.class) |
|||
public class InventoryByMonthTest { |
|||
|
|||
|
|||
@Autowired |
|||
MaterialTypeService materialTypeService; |
|||
|
|||
@Autowired |
|||
DepositoryRecordService depositoryRecordService; |
|||
|
|||
@Autowired |
|||
MaterialService materialService; |
|||
|
|||
@Autowired |
|||
DepositoryService depositoryService; |
|||
|
|||
/** |
|||
* 获取本月之前的月份 |
|||
* |
|||
* @return |
|||
*/ |
|||
public static Map<String, Object> getPreviousMonth() { |
|||
Calendar instance = Calendar.getInstance(); |
|||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM"); |
|||
Map<String, Object> source = new HashMap<>(); |
|||
List<Object> sourceList = new ArrayList<>(); |
|||
int month = instance.get(Calendar.MONTH) + 1; |
|||
// 获取下个月
|
|||
instance.add(Calendar.MONTH, 1); |
|||
Long nextMonth = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime())); |
|||
ArrayList<Object> months = new ArrayList<>(); |
|||
months.add(nextMonth); |
|||
instance.add(Calendar.MONTH, -1); |
|||
|
|||
while (month > 0) { |
|||
instance.set(Calendar.MONTH, month); |
|||
instance.set(Calendar.DAY_OF_MONTH, -1); |
|||
source.put("month", month + "月"); |
|||
months.add(DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()))); |
|||
month--; |
|||
sourceList.add(((HashMap<String, Object>) source).clone()); |
|||
} |
|||
instance.set(Calendar.MONTH, month); |
|||
instance.add(Calendar.MONTH, 1); |
|||
Map<String, Object> map = new HashMap<>(); |
|||
map.put("months", months); |
|||
map.put("sourceList", sourceList); |
|||
return map; |
|||
} |
|||
|
|||
@Test |
|||
public void main() { |
|||
|
|||
UserByPort userByPort = LinkInterfaceUtil.FindUserById(78, null); |
|||
|
|||
Map<String, Object> previousMonth = DateUtil.getPreviousMonth(); |
|||
// 获取所有月份
|
|||
List<Object> months = (List<Object>) previousMonth.get("months"); |
|||
// 获取月份名称
|
|||
List<Object> sourceList = (List<Object>) previousMonth.get("sourceList"); |
|||
Calendar instance = Calendar.getInstance(); |
|||
instance.add(Calendar.MONTH, 1); |
|||
instance.set(Calendar.DATE, 1); |
|||
// 获取当前用于可见的仓库列表
|
|||
List<Depository> depositoryList = depositoryService.findDepositoryByAdminorgAndUser(userByPort); |
|||
// 定义每次开启的线程数
|
|||
int threadSize = depositoryList.size(); |
|||
// 开启对应数量的线程
|
|||
ExecutorService exs = Executors.newFixedThreadPool(threadSize); |
|||
// 定义线程结果集
|
|||
List<Future<Object>> futureList = new ArrayList<Future<Object>>(); |
|||
// 定义CompletionService
|
|||
CompletionService<Object> completionService = new ExecutorCompletionService<>(exs); |
|||
// 用于存储当前仓库各物料类型的库存数
|
|||
Map<Integer, List<InventoryByMTAndDepository>> inventoryForMTAndDepository = new HashMap<>(); |
|||
// 定义结果集
|
|||
List<Object> result = new ArrayList<>(); |
|||
// 定义各
|
|||
for (int num = 0; num < months.size() - 1; num++) { |
|||
// 获取起始时间
|
|||
Object start = months.get(num + 1); |
|||
// 获取结束时间
|
|||
Object end = months.get(num); |
|||
// 获取当前计算的月份
|
|||
Object month = ((Map<String, Object>) sourceList.get(num)).get("month"); |
|||
for (Depository depository : depositoryList |
|||
) { |
|||
// 获取当前仓库id
|
|||
Integer depositoryId = depository.getId(); |
|||
// 判断当前当前仓库各物料类型的库存是否存在
|
|||
List<InventoryByMTAndDepository> inventoryByMTAndDepositories = inventoryForMTAndDepository.get(depositoryId); |
|||
if (inventoryByMTAndDepositories == null || inventoryByMTAndDepositories.size() == 0) { |
|||
// 如果不存在则获取
|
|||
inventoryByMTAndDepositories = depositoryService.getTodayInventoryInfoByDidAndMt(depositoryId); |
|||
} |
|||
// 开启线程计算结果
|
|||
Future<Object> submit = completionService.submit(new inventoryByMaterialTypeForMonth(start, end, depository, inventoryByMTAndDepositories)); |
|||
futureList.add(submit); |
|||
} |
|||
|
|||
List<Object> childItems = new ArrayList<>(); |
|||
double value = 0.0; |
|||
for (int i = 0; i < depositoryList.size(); i++) { |
|||
Object obj = null; |
|||
try { |
|||
|
|||
obj = completionService.take().get(); |
|||
Map<String, Object> objectMap = (Map<String, Object>) obj; |
|||
Integer id = ObjectFormatUtil.toInteger((objectMap).get("id")); |
|||
List<InventoryByMTAndDepository> inventoryByMtAndD = (List<InventoryByMTAndDepository>)objectMap.get("inventoryByMtAndD"); |
|||
value += ObjectFormatUtil.toDouble(objectMap.get("value")); |
|||
inventoryForMTAndDepository.put(id,inventoryByMtAndD); |
|||
(objectMap).remove("id"); |
|||
(objectMap).remove("inventoryByMtAndD"); |
|||
|
|||
childItems.add(obj); |
|||
|
|||
|
|||
} catch (InterruptedException | ExecutionException e) { |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
Map<String,Object> stringObjectMap = new HashMap<>(); |
|||
stringObjectMap.put("children",childItems); |
|||
stringObjectMap.put("name",month); |
|||
stringObjectMap.put("value",value); |
|||
Random random = new Random(); |
|||
int r = random.nextInt(256); |
|||
int g = random.nextInt(256); |
|||
int b = random.nextInt(256); |
|||
Map<String, String> itemStyle = new HashMap<>(); |
|||
itemStyle.put("color", "rgb(" + r + "," + g + "," + b + ")"); |
|||
stringObjectMap.put("itemStyle", itemStyle); |
|||
result.add(stringObjectMap); |
|||
|
|||
} |
|||
System.out.println(JSONObject.toJSONString(result)); |
|||
|
|||
} |
|||
|
|||
|
|||
/** |
|||
* 获取当前仓库下的库存 |
|||
* |
|||
* @param dname |
|||
* @param list |
|||
* @return |
|||
*/ |
|||
public Double getInventoryByDname(String dname, List<InventoryByDname> list) { |
|||
for (InventoryByDname inventoryByDname : list) { |
|||
if (dname.equals(inventoryByDname.getDname())) { |
|||
return inventoryByDname.getInventory(); |
|||
} |
|||
} |
|||
return 0.0; |
|||
} |
|||
|
|||
/** |
|||
* 用于计算当前时间段内当前仓库下各物料类型的库存 |
|||
*/ |
|||
class inventoryByMaterialTypeForMonth implements Callable<Object> { |
|||
|
|||
// 开始时间
|
|||
Object start; |
|||
// 结束时间
|
|||
Object end; |
|||
// 查询仓库
|
|||
Depository depository; |
|||
// 当前仓库各物料类型库存数
|
|||
List<InventoryByMTAndDepository> todayInventoryInfoByDidAndMt; |
|||
|
|||
public inventoryByMaterialTypeForMonth(Object start, Object end, Depository depository, List<InventoryByMTAndDepository> todayInventoryInfoByDidAndMt) { |
|||
this.start = start; |
|||
this.end = end; |
|||
this.depository = depository; |
|||
this.todayInventoryInfoByDidAndMt = todayInventoryInfoByDidAndMt; |
|||
} |
|||
|
|||
@Override |
|||
public Object call() throws Exception { |
|||
// 定义当前返回结果
|
|||
Map<String, Object> result = new HashMap<>(); |
|||
// 定义当前仓库的总数
|
|||
double inventorySum = 0.0; |
|||
for (InventoryByMTAndDepository item : todayInventoryInfoByDidAndMt |
|||
) { |
|||
inventorySum += (item.getInventory() / 100.0); |
|||
} |
|||
result.put("name", depository.getDname()); |
|||
result.put("id",depository.getId()); |
|||
result.put("value", inventorySum); |
|||
// 用于生产随机的颜色
|
|||
Random random = new Random(); |
|||
int r = random.nextInt(256); |
|||
int g = random.nextInt(256); |
|||
int b = random.nextInt(256); |
|||
Map<String, String> itemStyle = new HashMap<>(); |
|||
itemStyle.put("color", "rgb(" + r + "," + g + "," + b + ")"); |
|||
result.put("itemStyle", itemStyle); |
|||
|
|||
// 获取所有顶级物料类型
|
|||
List<MaterialType> materialTypeNoParent = materialTypeService.findMaterialTypeNoParent(); |
|||
Map<String, Object> paramIn = new HashMap<>(); |
|||
Map<String, Object> paramOut = new HashMap<>(); |
|||
// 获取每月入库总额
|
|||
paramIn.put("type", 1); |
|||
paramIn.put("state", "已入库"); |
|||
paramIn.put("depository_id", depository.getId()); |
|||
paramIn.put("start", start); |
|||
paramIn.put("end", end); |
|||
// 获取每月出库总额
|
|||
paramOut.put("type", 2); |
|||
paramOut.put("state", "已出库"); |
|||
paramOut.put("depository_id", depository.getId()); |
|||
paramOut.put("start", start); |
|||
paramOut.put("end", end); |
|||
List<Object> children = new ArrayList<>(); |
|||
for (MaterialType materialType : materialTypeNoParent |
|||
) { |
|||
// 生成子数据
|
|||
Map<String, Object> resultItem = new HashMap<>(); |
|||
resultItem.put("name", materialType.getTname()); |
|||
// 用于生产随机的颜色
|
|||
Map<String, String> itemStyleItem = new HashMap<>(); |
|||
int rt = random.nextInt(256); |
|||
int gt = random.nextInt(256); |
|||
int bt = random.nextInt(256); |
|||
itemStyleItem.put("color", "rgb(" + rt + "," + gt + "," + bt + ")"); |
|||
result.put("itemStyle", itemStyleItem); |
|||
long oldId = materialType.getOldId(); |
|||
paramIn.put("oldId", oldId); |
|||
paramOut.put("oldId", oldId); |
|||
// 获取当前类别在当前仓库下当前月份的入库总额
|
|||
Double wareHouseInCountByMonth = depositoryRecordService.calMaterialTypeTopCount(paramIn); |
|||
// 获取当前类别在当前仓库下当前月份的出库总额
|
|||
Double wareHouseOutCountByMonth = depositoryRecordService.calMaterialTypeTopCount(paramOut); |
|||
for (InventoryByMTAndDepository item : todayInventoryInfoByDidAndMt |
|||
) { |
|||
long mtId = item.getMtId(); |
|||
// 如果是同一类型
|
|||
if (mtId == oldId) { |
|||
// 计算上个月该类型库存数
|
|||
Double wareHouseCount = item.getInventory() - wareHouseInCountByMonth + wareHouseOutCountByMonth; |
|||
// 修改库存记录
|
|||
item.setInventory(wareHouseCount); |
|||
resultItem.put("value", wareHouseCount); |
|||
} |
|||
} |
|||
children.add(resultItem); |
|||
} |
|||
result.put("children", children); |
|||
result.put("inventoryByMtAndD",todayInventoryInfoByDidAndMt); |
|||
return result; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
@ -0,0 +1,587 @@ |
|||
/*! |
|||
* Bootstrap v3.4.1 (https://getbootstrap.com/) |
|||
* Copyright 2011-2019 Twitter, Inc. |
|||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
|||
*/ |
|||
.btn-default, |
|||
.btn-primary, |
|||
.btn-success, |
|||
.btn-info, |
|||
.btn-warning, |
|||
.btn-danger { |
|||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); |
|||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); |
|||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); |
|||
} |
|||
.btn-default:active, |
|||
.btn-primary:active, |
|||
.btn-success:active, |
|||
.btn-info:active, |
|||
.btn-warning:active, |
|||
.btn-danger:active, |
|||
.btn-default.active, |
|||
.btn-primary.active, |
|||
.btn-success.active, |
|||
.btn-info.active, |
|||
.btn-warning.active, |
|||
.btn-danger.active { |
|||
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); |
|||
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); |
|||
} |
|||
.btn-default.disabled, |
|||
.btn-primary.disabled, |
|||
.btn-success.disabled, |
|||
.btn-info.disabled, |
|||
.btn-warning.disabled, |
|||
.btn-danger.disabled, |
|||
.btn-default[disabled], |
|||
.btn-primary[disabled], |
|||
.btn-success[disabled], |
|||
.btn-info[disabled], |
|||
.btn-warning[disabled], |
|||
.btn-danger[disabled], |
|||
fieldset[disabled] .btn-default, |
|||
fieldset[disabled] .btn-primary, |
|||
fieldset[disabled] .btn-success, |
|||
fieldset[disabled] .btn-info, |
|||
fieldset[disabled] .btn-warning, |
|||
fieldset[disabled] .btn-danger { |
|||
-webkit-box-shadow: none; |
|||
box-shadow: none; |
|||
} |
|||
.btn-default .badge, |
|||
.btn-primary .badge, |
|||
.btn-success .badge, |
|||
.btn-info .badge, |
|||
.btn-warning .badge, |
|||
.btn-danger .badge { |
|||
text-shadow: none; |
|||
} |
|||
.btn:active, |
|||
.btn.active { |
|||
background-image: none; |
|||
} |
|||
.btn-default { |
|||
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); |
|||
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0)); |
|||
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
background-repeat: repeat-x; |
|||
border-color: #dbdbdb; |
|||
text-shadow: 0 1px 0 #fff; |
|||
border-color: #ccc; |
|||
} |
|||
.btn-default:hover, |
|||
.btn-default:focus { |
|||
background-color: #e0e0e0; |
|||
background-position: 0 -15px; |
|||
} |
|||
.btn-default:active, |
|||
.btn-default.active { |
|||
background-color: #e0e0e0; |
|||
border-color: #dbdbdb; |
|||
} |
|||
.btn-default.disabled, |
|||
.btn-default[disabled], |
|||
fieldset[disabled] .btn-default, |
|||
.btn-default.disabled:hover, |
|||
.btn-default[disabled]:hover, |
|||
fieldset[disabled] .btn-default:hover, |
|||
.btn-default.disabled:focus, |
|||
.btn-default[disabled]:focus, |
|||
fieldset[disabled] .btn-default:focus, |
|||
.btn-default.disabled.focus, |
|||
.btn-default[disabled].focus, |
|||
fieldset[disabled] .btn-default.focus, |
|||
.btn-default.disabled:active, |
|||
.btn-default[disabled]:active, |
|||
fieldset[disabled] .btn-default:active, |
|||
.btn-default.disabled.active, |
|||
.btn-default[disabled].active, |
|||
fieldset[disabled] .btn-default.active { |
|||
background-color: #e0e0e0; |
|||
background-image: none; |
|||
} |
|||
.btn-primary { |
|||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%); |
|||
background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88)); |
|||
background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
background-repeat: repeat-x; |
|||
border-color: #245580; |
|||
} |
|||
.btn-primary:hover, |
|||
.btn-primary:focus { |
|||
background-color: #265a88; |
|||
background-position: 0 -15px; |
|||
} |
|||
.btn-primary:active, |
|||
.btn-primary.active { |
|||
background-color: #265a88; |
|||
border-color: #245580; |
|||
} |
|||
.btn-primary.disabled, |
|||
.btn-primary[disabled], |
|||
fieldset[disabled] .btn-primary, |
|||
.btn-primary.disabled:hover, |
|||
.btn-primary[disabled]:hover, |
|||
fieldset[disabled] .btn-primary:hover, |
|||
.btn-primary.disabled:focus, |
|||
.btn-primary[disabled]:focus, |
|||
fieldset[disabled] .btn-primary:focus, |
|||
.btn-primary.disabled.focus, |
|||
.btn-primary[disabled].focus, |
|||
fieldset[disabled] .btn-primary.focus, |
|||
.btn-primary.disabled:active, |
|||
.btn-primary[disabled]:active, |
|||
fieldset[disabled] .btn-primary:active, |
|||
.btn-primary.disabled.active, |
|||
.btn-primary[disabled].active, |
|||
fieldset[disabled] .btn-primary.active { |
|||
background-color: #265a88; |
|||
background-image: none; |
|||
} |
|||
.btn-success { |
|||
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); |
|||
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); |
|||
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
background-repeat: repeat-x; |
|||
border-color: #3e8f3e; |
|||
} |
|||
.btn-success:hover, |
|||
.btn-success:focus { |
|||
background-color: #419641; |
|||
background-position: 0 -15px; |
|||
} |
|||
.btn-success:active, |
|||
.btn-success.active { |
|||
background-color: #419641; |
|||
border-color: #3e8f3e; |
|||
} |
|||
.btn-success.disabled, |
|||
.btn-success[disabled], |
|||
fieldset[disabled] .btn-success, |
|||
.btn-success.disabled:hover, |
|||
.btn-success[disabled]:hover, |
|||
fieldset[disabled] .btn-success:hover, |
|||
.btn-success.disabled:focus, |
|||
.btn-success[disabled]:focus, |
|||
fieldset[disabled] .btn-success:focus, |
|||
.btn-success.disabled.focus, |
|||
.btn-success[disabled].focus, |
|||
fieldset[disabled] .btn-success.focus, |
|||
.btn-success.disabled:active, |
|||
.btn-success[disabled]:active, |
|||
fieldset[disabled] .btn-success:active, |
|||
.btn-success.disabled.active, |
|||
.btn-success[disabled].active, |
|||
fieldset[disabled] .btn-success.active { |
|||
background-color: #419641; |
|||
background-image: none; |
|||
} |
|||
.btn-info { |
|||
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); |
|||
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); |
|||
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
background-repeat: repeat-x; |
|||
border-color: #28a4c9; |
|||
} |
|||
.btn-info:hover, |
|||
.btn-info:focus { |
|||
background-color: #2aabd2; |
|||
background-position: 0 -15px; |
|||
} |
|||
.btn-info:active, |
|||
.btn-info.active { |
|||
background-color: #2aabd2; |
|||
border-color: #28a4c9; |
|||
} |
|||
.btn-info.disabled, |
|||
.btn-info[disabled], |
|||
fieldset[disabled] .btn-info, |
|||
.btn-info.disabled:hover, |
|||
.btn-info[disabled]:hover, |
|||
fieldset[disabled] .btn-info:hover, |
|||
.btn-info.disabled:focus, |
|||
.btn-info[disabled]:focus, |
|||
fieldset[disabled] .btn-info:focus, |
|||
.btn-info.disabled.focus, |
|||
.btn-info[disabled].focus, |
|||
fieldset[disabled] .btn-info.focus, |
|||
.btn-info.disabled:active, |
|||
.btn-info[disabled]:active, |
|||
fieldset[disabled] .btn-info:active, |
|||
.btn-info.disabled.active, |
|||
.btn-info[disabled].active, |
|||
fieldset[disabled] .btn-info.active { |
|||
background-color: #2aabd2; |
|||
background-image: none; |
|||
} |
|||
.btn-warning { |
|||
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); |
|||
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); |
|||
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
background-repeat: repeat-x; |
|||
border-color: #e38d13; |
|||
} |
|||
.btn-warning:hover, |
|||
.btn-warning:focus { |
|||
background-color: #eb9316; |
|||
background-position: 0 -15px; |
|||
} |
|||
.btn-warning:active, |
|||
.btn-warning.active { |
|||
background-color: #eb9316; |
|||
border-color: #e38d13; |
|||
} |
|||
.btn-warning.disabled, |
|||
.btn-warning[disabled], |
|||
fieldset[disabled] .btn-warning, |
|||
.btn-warning.disabled:hover, |
|||
.btn-warning[disabled]:hover, |
|||
fieldset[disabled] .btn-warning:hover, |
|||
.btn-warning.disabled:focus, |
|||
.btn-warning[disabled]:focus, |
|||
fieldset[disabled] .btn-warning:focus, |
|||
.btn-warning.disabled.focus, |
|||
.btn-warning[disabled].focus, |
|||
fieldset[disabled] .btn-warning.focus, |
|||
.btn-warning.disabled:active, |
|||
.btn-warning[disabled]:active, |
|||
fieldset[disabled] .btn-warning:active, |
|||
.btn-warning.disabled.active, |
|||
.btn-warning[disabled].active, |
|||
fieldset[disabled] .btn-warning.active { |
|||
background-color: #eb9316; |
|||
background-image: none; |
|||
} |
|||
.btn-danger { |
|||
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); |
|||
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); |
|||
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
background-repeat: repeat-x; |
|||
border-color: #b92c28; |
|||
} |
|||
.btn-danger:hover, |
|||
.btn-danger:focus { |
|||
background-color: #c12e2a; |
|||
background-position: 0 -15px; |
|||
} |
|||
.btn-danger:active, |
|||
.btn-danger.active { |
|||
background-color: #c12e2a; |
|||
border-color: #b92c28; |
|||
} |
|||
.btn-danger.disabled, |
|||
.btn-danger[disabled], |
|||
fieldset[disabled] .btn-danger, |
|||
.btn-danger.disabled:hover, |
|||
.btn-danger[disabled]:hover, |
|||
fieldset[disabled] .btn-danger:hover, |
|||
.btn-danger.disabled:focus, |
|||
.btn-danger[disabled]:focus, |
|||
fieldset[disabled] .btn-danger:focus, |
|||
.btn-danger.disabled.focus, |
|||
.btn-danger[disabled].focus, |
|||
fieldset[disabled] .btn-danger.focus, |
|||
.btn-danger.disabled:active, |
|||
.btn-danger[disabled]:active, |
|||
fieldset[disabled] .btn-danger:active, |
|||
.btn-danger.disabled.active, |
|||
.btn-danger[disabled].active, |
|||
fieldset[disabled] .btn-danger.active { |
|||
background-color: #c12e2a; |
|||
background-image: none; |
|||
} |
|||
.thumbnail, |
|||
.img-thumbnail { |
|||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); |
|||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); |
|||
} |
|||
.dropdown-menu > li > a:hover, |
|||
.dropdown-menu > li > a:focus { |
|||
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); |
|||
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); |
|||
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
background-color: #e8e8e8; |
|||
} |
|||
.dropdown-menu > .active > a, |
|||
.dropdown-menu > .active > a:hover, |
|||
.dropdown-menu > .active > a:focus { |
|||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); |
|||
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); |
|||
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
background-color: #2e6da4; |
|||
} |
|||
.navbar-default { |
|||
background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%); |
|||
background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#f8f8f8)); |
|||
background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
border-radius: 4px; |
|||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); |
|||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); |
|||
} |
|||
.navbar-default .navbar-nav > .open > a, |
|||
.navbar-default .navbar-nav > .active > a { |
|||
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); |
|||
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); |
|||
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075); |
|||
box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075); |
|||
} |
|||
.navbar-brand, |
|||
.navbar-nav > li > a { |
|||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); |
|||
} |
|||
.navbar-inverse { |
|||
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); |
|||
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); |
|||
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
border-radius: 4px; |
|||
} |
|||
.navbar-inverse .navbar-nav > .open > a, |
|||
.navbar-inverse .navbar-nav > .active > a { |
|||
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); |
|||
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); |
|||
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25); |
|||
box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25); |
|||
} |
|||
.navbar-inverse .navbar-brand, |
|||
.navbar-inverse .navbar-nav > li > a { |
|||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); |
|||
} |
|||
.navbar-static-top, |
|||
.navbar-fixed-top, |
|||
.navbar-fixed-bottom { |
|||
border-radius: 0; |
|||
} |
|||
@media (max-width: 767px) { |
|||
.navbar .navbar-nav .open .dropdown-menu > .active > a, |
|||
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover, |
|||
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus { |
|||
color: #fff; |
|||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); |
|||
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); |
|||
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
} |
|||
.alert { |
|||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2); |
|||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); |
|||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); |
|||
} |
|||
.alert-success { |
|||
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); |
|||
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); |
|||
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
border-color: #b2dba1; |
|||
} |
|||
.alert-info { |
|||
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); |
|||
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); |
|||
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
border-color: #9acfea; |
|||
} |
|||
.alert-warning { |
|||
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); |
|||
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); |
|||
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
border-color: #f5e79e; |
|||
} |
|||
.alert-danger { |
|||
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); |
|||
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); |
|||
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
border-color: #dca7a7; |
|||
} |
|||
.progress { |
|||
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); |
|||
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); |
|||
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.progress-bar { |
|||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); |
|||
background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); |
|||
background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.progress-bar-success { |
|||
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); |
|||
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); |
|||
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.progress-bar-info { |
|||
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); |
|||
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); |
|||
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.progress-bar-warning { |
|||
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); |
|||
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); |
|||
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.progress-bar-danger { |
|||
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); |
|||
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); |
|||
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.progress-bar-striped { |
|||
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); |
|||
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); |
|||
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); |
|||
} |
|||
.list-group { |
|||
border-radius: 4px; |
|||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); |
|||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); |
|||
} |
|||
.list-group-item.active, |
|||
.list-group-item.active:hover, |
|||
.list-group-item.active:focus { |
|||
text-shadow: 0 -1px 0 #286090; |
|||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); |
|||
background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); |
|||
background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
border-color: #2b669a; |
|||
} |
|||
.list-group-item.active .badge, |
|||
.list-group-item.active:hover .badge, |
|||
.list-group-item.active:focus .badge { |
|||
text-shadow: none; |
|||
} |
|||
.panel { |
|||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); |
|||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); |
|||
} |
|||
.panel-default > .panel-heading { |
|||
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); |
|||
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); |
|||
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.panel-primary > .panel-heading { |
|||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); |
|||
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); |
|||
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.panel-success > .panel-heading { |
|||
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); |
|||
background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); |
|||
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.panel-info > .panel-heading { |
|||
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); |
|||
background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); |
|||
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.panel-warning > .panel-heading { |
|||
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); |
|||
background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); |
|||
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.panel-danger > .panel-heading { |
|||
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); |
|||
background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); |
|||
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.well { |
|||
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); |
|||
background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); |
|||
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
border-color: #dcdcdc; |
|||
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); |
|||
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); |
|||
} |
|||
/*# sourceMappingURL=bootstrap-theme.css.map */ |
|||
|
After Width: | Height: | Size: 106 KiB |