325 lines
13 KiB
HTML
325 lines
13 KiB
HTML
|
||
<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 += ' <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()"> 查询</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()"> 查询</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>
|