safesite/safesite/templates/trainfigure.html

325 lines
13 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<script>
$("#sfxbm2").combotree({
url: 'parthandle?a=tree',
editable: false,
loadFilter: function (rows) {
return convert(rows);
},
formatter: function (node) {
var s = node.text;
if (node.children) {
s += '&nbsp;<span style=\'color:blue\'>(' + node.children.length + ')</span>';
}
return s;
},
onSelect: function (node) {
$('#sfxr').combobox({
url: 'getuser?partid=' + node.id + '&a=combobox',
editable: false,
});
}
});
var now = new Date();
$(function () {
year = now.getFullYear();
month = now.getMonth() + 1;
for (var i = 0; i < 5; i++) {
$('#year_trainfig').append('<option value="' + (year - i) + '">' + (year - i) + '</option>');
// $('#years').append('<option value="' + (year - i) + '">' + (year - i) + '</option>');
}
$.get('api/tool?a=servertime', function (res) {
$('#year_trainfig').combobox().combobox('setValue', res.year);
// $('#years').combobox().combobox('setValue', res.year);
$('#month_trainfig').combobox().combobox('setValue', res.month);
behaviorDate();
trainstatistical();
})
});
function gcpmsearch() {
var querydata = $('#fxrpms').serializeJSON();
$('#fxrpmtable').datagrid('load', querydata);
}
//培训分析柱形图
function behaviorDate() {
var y = $("#year_trainfig").val();
var gcChart = echarts.init(document.getElementById("piecontainer"));
gcChart.setOption(option = {
title: {
text: '培训数量趋势图',
x: 'left'
},
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
legend: {
data: []
},
xAxis: {
type: 'category',
data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月','8月','9月','10月','11月','12月']
},
yAxis: {
type: 'value'
},
toolbox: {
show: true,
feature: {
mark: { show: true },
dataView: { show: true, readOnly: false },
restore: { show: true },
saveAsImage: { show: true }
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
});
gcChart.showLoading();
$.ajax({
type: "get",
async: true, //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)
url: "api/trainfg?a=trainfig&year=" + y, //请求发送
dataType: "json", //返回数据形式为json
success: function (data) {
//请求成功时执行该函数内容data即为服务器返回的json对象
console.log(data);
if (data) {
gcChart.hideLoading(); //隐藏加载动画
gcChart.setOption({
legend: { data: data.key },
series: [{
name: '公司级',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'insideRight'
}
},
data: data.companylevel
},
{
name: '车间/工段级',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'insideRight'
}
},
data: data.workshoplevel
},
{
name: '班组级',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'insideRight'
}
},
data: data.teamlevel
},
{
name: '部门分厂级',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'insideRight'
}
},
data: data.departmentlevel
}]
}
);
}
},
error: function (errorMsg) {
gcChart.hideLoading();
}
});
}
//培训分析扇形图
function trainstatistical() {
var y = $("#year_trainfig").val();
var m = $("#month_trainfig").val();
var pxChart = echarts.init(document.getElementById("piecontainer2"));
$.ajax({
type: "get",
async: true, //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)
url: "api/trainfg?a=traintype&year=" + y + "&month=" + m, //请求发送
dataType: "json", //返回数据形式为json
success: function (data) {
//请求成功时执行该函数内容data即为服务器返回的json对象
if (data.data.traintypelist!= null) {
pxChart.setOption({
title: {
text: '培训类型',
subtext: '数量',
x: 'center'
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
toolbox: {
show: true,
feature: {
mark: { show: true },
dataView: { show: true, readOnly: false },
restore: { show: true },
saveAsImage: { show: true }
}
},
calculable: true,
legend: {
orient: 'vertical',
left: 'right',
y: 'bottom',
data: data.data.traintypelist.name
},
series: [
{
name: '培训类型',
type: 'pie',
radius: '55%',
center: ['50%', '60%'],
data: data.data.traintypelist ,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
}
);
}
},
error: function (errorMsg) {
pxChart.hideLoading();
}
});
}
function funTypeChange() {
behaviorDate();//
}
function funTypeChange2() {
trainstatistical();//
}
function fxrpmsearch() {
var querydata = $('#fxrpms').serializeJSON();
$('#fxrpmtable').datagrid('load', querydata);
}
function fxrpmexport() {
var data = $('#fxrpmtable').datagrid('getData');
var datalist = data.rows;
for (var j = 0, len = datalist.length; j < len; j++) {
var dic = datalist[j]
for (var key in dic) {
dic["姓名"] = dic["participant__name"]
dic["用户名"] = dic["participant__username"]
dic["培训次数"] = dic["count"]
delete dic["participant__name"];
delete dic["participant__username"]
delete dic["count"]
}
}
JSONToCSVConvertor(JSON.stringify(datalist), "培训次数", true);
}
</script>
<div class="border" id="desktop" style="margin: 10px 10px 0 10px; background: #fff; overflow: auto;">
<div style="width:100%">
<div style="width:80%;margin:auto;margin-bottom:100px;">
<select class="txtInput select3" id="year_trainfig" name="year" style="width:100px;"></select><label></label>
<button class="btn btn-info" onclick="funTypeChange()">&nbsp;查询</button>
<div id="piecontainer" style="height:400px;width:100%">
</div>
</div>
<div style="width:80%;margin:auto;margin-bottom:100px;">
<select class="txtInput select3" id="month_trainfig" name="month" style="width:100px;">
<option value="1">1月</option>
<option value="2">2月</option>
<option value="3">3月</option>
<option value="4">4月</option>
<option value="5">5月</option>
<option value="6">6月</option>
<option value="7">7月</option>
<option value="8">8月</option>
<option value="9">9月</option>
<option value="10">10月</option>
<option value="11">11月</option>
<option value="12">12月</option>
</select>
<button class="btn btn-info" onclick="funTypeChange2()">&nbsp;查询</button>
<div id="piecontainer2" style="height:400px;width:100%">
</div>
</div>
<div style="width: 80%; margin:auto;margin-bottom:100px; ">
<table name="" id="fxrpmtable" class='easyui-datagrid' title="培训次数" data-options="rownumbers:true,singleSelect:true,striped: true,method:'get',url: 'api/trainfg?a=trainuser',toolbar:'#fxrpmbar'" style="height:400px">
<thead>
<tr>
<th data-options="field:'participant__name',align:'center'" width="35%">姓名</th>
<th data-options="field:'participant__username',align:'center'" width="30%">用户名</th>
<th data-options="field:'count',align:'center'" width="35%">培训次数</th>
</tr>
</thead>
</table>
<div id='fxrpmbar'>
<form id="fxrpms">
<div>
<label>发现部门</label><input id="sfxbm2" name="fxbm" style="width:180px;height:22px" />
<label>起始时间</label><input id="sqssj" name="qssj" class="easyui-datebox" style="width:180px;height:22px" />
<label>结束时间</label><input id="sjssj" name="jssj" class="easyui-datebox" style="width:180px;height:22px" />
<a onclick="fxrpmsearch()" class='easyui-linkbutton' iconCls='fa-search' plain=true>查询</a>
<a onclick="fxrpmexport()" class='easyui-linkbutton' iconCls='fa-upload' plain=true>导出</a>
</div>
</form>
</div>
</div>
</div>
</div>