$(document).ready(function () {
//iniChart('rptweld');
//iniChart('rptweld1');
//iniChart('rptweld2');
//QueryData().then(data => console.log(data));
//console.log(QueryData("M02","M15"));
console.log('aa');
$(window).bind("load resize", HandleBoxHeight);
QueryWorkshop()
//QueryDataAsync();
SetBoxHeight();
setInterval(function () {
QueryDataAsync($('#cbxWorkshop').val());
}, 1800000);
//addHints();
startIntro();
showsidebar();
});
function showsidebar() {
$('#rightsidebar').addClass('control-sidebar-open')
setTimeout(function () { $('#rightsidebar').removeClass('control-sidebar-open') },1000)
}
function startIntro() {
var intro = introJs();
intro.setOptions({
steps: [
{
element: document.querySelector('#dashtitle'),
intro: "点击选择查询条件",
},
//{
// element: document.querySelectorAll('#step2')[0],
// intro: "Ok, wasn't that fun?",
// position: 'right'
//},
//{
// element: '#step3',
// intro: 'More features, more fun.',
// position: 'left'
//},
//{
// element: '#step4',
// intro: "Another step.",
// position: 'bottom'
//},
//{
// element: '#step5',
// intro: 'Get it, use it.'
//}
],
//showButtons: false,
showBullets:false,
});
intro.start();
setTimeout(
function() { intro.exit()},3000)
//intro.exit()
}
function addHints() {
intro = introJs();
//intro.setOptions({
// hints: [
// {
// element: document.querySelector('#dashtitle'),
// hint: "点击选择查询条件7",
// hintPosition: 'top-middle',
// hintButtonLabel:`mklnjk`
// }
// ]
//})
intro.setOptions({
hints: [
{ element: '#dashtitle', hint: "点击选择查询条件", },
]
});
intro.setOption("hintButtonLabel", "OK");
//introJs().setOption("hintButtonLabel", "OK")
//intro.onhintsadded(function () {
// console.log('all hints added');
//});
//intro.onhintclick(function (hintElement, item, stepId) {
// console.log('hint clicked', hintElement, item, stepId);
//});
//intro.onhintclose(function (stepId) {
// console.log('hint closed', stepId);
//});
intro.addHints();
}
function SetBoxHeight() {
var h = window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight;
var contentmargin = 30 * 2;
var boxmargintop = (3 + 3 + 20) * 3
var height = (h - contentmargin - boxmargintop) / 3;
//var aaa = window["innerHeight"];
$('.rpt').css("height", height + "px");
}
function HandleBoxHeight() {
var resize1;
$(window).resize(function () {
if (resize1) {
clearTimeout(resize1);
}
resize1 = setTimeout(function () {
//_runResizeHandlers();
SetBoxHeight();
//handleIframeContent();
}, 100); // wait 50ms until window resize finishes.
});
}
function handleary(getdata) {
var chartary = [];
var completionary = ["00", "02", "04", "06", "08", "10", "12", "14", "16", "18", "20", "22"];
_.each(completionary, function (ele, index, ary) {
var findres = _.find(getdata, function (item, index, obj) {
return item.times == ele;
});
if (findres == undefined) {
chartary.push(0)
}
else {
chartary.push(findres.qty)
}
})
return chartary;
}
async function QueryWorkshop() {
let workshop = await FetchApi("QueryWorkshop", {})
workshop = await workshop.json();
$('#cbxWorkshop').empty()
_.each(workshop.info, function (ele, index, list) {
$('#cbxWorkshop').append("")
})
console.log(workshop)
console.log('query workshop end')
var title = /\d*$/.exec($('#cbxWorkshop').val())[0]
title=title.replace(/\b0*/, '')
$('#wotitle').text(title)
await QueryDataAsync($('#cbxWorkshop').val())
}
//车间下拉选项事件
$('#cbxWorkshop').on('change', function () {
console.log('车间选项变成:' + $('#cbxWorkshop').val())
QueryDataAsync($('#cbxWorkshop').val());
var title = /\d*$/.exec($('#cbxWorkshop').val())[0]
title= title.replace(/\b0*/,'')
$('#wotitle').text(title)
})
async function QueryDataAsync(paraworkshop) {
try {
let workshop = paraworkshop
console.log('chart')
//1 焊接
let weld = await QueryData(workshop, "M10");
weld = await weld.json();
weld = handleary(weld.info);
iniChart('rptweld', '焊接', weld);
//2 叠层
let lamination = await QueryData(workshop, "M15");
lamination = await lamination.json();
lamination = handleary(lamination.info);
iniChart('rptlamination', '叠层', lamination);
//3 层压
let layup = await QueryData(workshop, "M30");
layup = await layup.json();
layup = handleary(layup.info);
iniChart('rptlayup', '层压', layup);
//4 层压后检验
//let inspectionafterlayup = await QueryData(workshop, "M35");
//inspectionafterlayup = await inspectionafterlayup.json();
//inspectionafterlayup = handleary(inspectionafterlayup.info);
//iniChart('rptinspectionafterlayup', '层压后检验', inspectionafterlayup)
//5 装框
let frame = await QueryData(workshop, "M45");
frame = await frame.json();
frame = handleary(frame.info);
iniChart('rptframe', '装框', frame);
//6 清洗
let clean = await QueryData(workshop, "M50");
clean = await clean.json();
clean = handleary(clean.info);
iniChart('rptclean', '清洗', clean);
//7 IV测试
let iv = await QueryData(workshop, "iv");
iv = await iv.json();
iv = handleary(iv.info);
iniChart('rptiv', 'IV测试', iv);
//8 EL测试
let el = await QueryData(workshop, "el");
el = await el.json();
el = handleary(el.info);
iniChart('rptel', 'EL测试', el);
//9 全检
let fullinspection = await QueryData(workshop, "M70");
fullinspection = await fullinspection.json();
fullinspection = handleary(fullinspection.info);
iniChart('rptfullinspection', '全检', fullinspection);
}
catch (err) {
console.log(err);
}
}
function FetchApi(funname, para) {
return fetch("/api/Report/Dashboard/" + funname + "", {
method: "post",
headers: {
"Accept": "application/json, text/plain, */*",
"Content-Type": "application/json"
},
body: JSON.stringify(para)
})
}
function QueryData(workshop, sitename) {
let response = fetch("/api/Report/Dashboard/QueryData", {
method: "post",
headers: {
"Accept": "application/json, text/plain, */*",
'Content-Type': 'application/json'
},
body: JSON.stringify({ workshop: workshop, sitename: sitename })
})
//let data = await response.json();
return response;
}
// .then(function (res) {
// return res.json();
// }).then(function (res) {
// var getdata = res.info;
// //$('#mainboxbody').next().remove();
// //App.unblockUI($('#tab-content'));
// var chartary = [];
// var completionary = ["00", "02", "04", "06", "08", "10", "12", "14", "16", "18", "20", "22"];
// _.each(completionary, function (ele, index, ary) {
// var findres = _.find(getdata, function (item, index, obj) {
// return item.times == ele;
// });
// if (findres == undefined) {
// chartary.push(0)
// }
// else {
// chartary.push(findres.qty)
// }
// })
// iniChart('rptweld', '焊接', chartary);
// iniChart('rptweld1', '叠层', chartary);
// iniChart('rptweld2', '层压', chartary);
// iniChart('rptweld3', '层压', chartary);
// iniChart('rptweld4', '层压', chartary);
// iniChart('rptweld5', '层压', chartary);
// iniChart('rptweld6', '层压', chartary);
// iniChart('rptweld7', '层压', chartary);
// iniChart('rptweld8', '层压', chartary);
// console.log(chartary);
// }).catch(function (ex) {
// //$('#mainboxbody').next().remove();
// //toastr.error(ex, '', { progressBar: true });
// console.log('request failed', ex);
// })
// console.log(a1);
//}
function iniChart(eleid, title, data) {
var chart = Highcharts.chart(eleid, {
chart: {
type: 'column'
},
credits: {
enabled: false
},
title: {
text: title
},
subtitle: {
//text: '数据来源: WorldClimate.com'
},
xAxis: {
categories:
["00:00", "02:00", "04:00", "06:00", "08:00", "10:00", "12:00", "14:00", "16:00", "18:00", "20:00", "22:00"]
,
crosshair: true
},
yAxis: {
min: 0,
title: {
text: '组件数量'
},
//stackLabels: { // 堆叠数据标签
// enabled: true,
// style: {
// fontWeight: 'bold',
// color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
// }
//}
},
tooltip: {
// head + 每个 point + footer 拼接成完整的 table
headerFormat: '{point.key}
',
pointFormat: '{series.name}: | ' +
'{point.y:.1f} mm |
',
footerFormat: '
',
shared: true,
useHTML: true
},
exporting: { enabled: false },
plotOptions: {
column: {
borderWidth: 0,
dataLabels: {
enabled: true //设置显示对应y的值
}
},
},
series: [{
data: data
}],
legend: {
enabled: false
},
});
}
function iniStockTable() {
$('#tbLCLPallet').bootstrapTable({
columns: [{
field: 'palletno',
title: '托盘'
}, {
field: 'powergrade',
title: '电压'
}
, {
field: 'igrade',
title: '电流'
}, {
field: 'cellqty',
title: '电池片数量'
}, {
field: 'bartype',
title: '晶体类型'
}, {
field: 'modulespec',
title: '组件类型'
}, {
field: 'finalgrade',
title: '最终等级'
}, {
field: 'color',
title: '颜色'
},
{
field: 'locationname',
title: '库位'
}
],
//data: [{
// id: 1,
// name: 'Item 1',
// price: '$1'
//}, {
// id: 2,
// name: 'Item 2',
// price: '$2'
//}]
}
)
}
//查询仓库的库位
function QueryStorageLocationByStock(stockid) {
var promise = $.ajax({
url: '../api/StockIn/QueryLocationByStock',
type: 'post',
cache: false,
async: true,
contentType: "application/json",
data: JSON.stringify({
stockid: stockid
})
});
promise.done(function (r) {
var options = '';
$.each(r, function (i, v) {
options += "";
});
$('#ddlLocation').html(options);
$('#ddlLocation').val('');
$('#ddlLocation').select2({
placeholder: "选择库位",
allowClear: true
});
//查询库位的条件 2019-2-20 xue lei
$('#ddlLocation').on('select2:select', function (e) {
console.log($(this).val());
var selectvalue = $(this).val();
QueryLocationCondiction(selectvalue);
});
});
promise.fail(function (error) {
console.log(error)
alert(error);
});
}
//查询仓库
function QueryStock() {
var promise = $.ajax({
url: '../api/StockIn/QueryStock',
type: 'post',
cache: false,
async: true,
contentType: "application/json",
//data: JSON.stringify({
// lotid: $("#LotID").val()
//}),
});
promise.done(function (r) {
var options = '';
$.each(r, function (i, v) {
options += "";
})
$('#ddlStock').html(options);
$('#ddlStock').val('');
$('#ddlStock').select2({
placeholder: "选择仓库",
allowClear: true
});
$('#ddlStock').on('select2:select', function (e) {
console.log($(this).val());
var selectvalue = $(this).val();
QueryStorageLocationByStock(selectvalue);
});
});
promise.fail(function (error) {
console.log(error);
alert(error);
});
}
//查询库位的条件
function QueryLocationCondiction(lacotionid) {
fetch("../api/StockIn/QueryLocationCondiction", {
method: "post",
headers: {
"Accept": "application/json, text/plain, */*",
'Content-Type': 'application/json'
},
body: JSON.stringify({ locationid: lacotionid })
}).then(function (res) {
return res.json();
}).then(function (res) {
const CondictionAry = ['powergrade', 'igrade', 'color', 'cellqty', 'bartype', 'modulespec', 'finalgrade'];
if (res.powergrade != null) { $('#cbxPowerGrade').iCheck('check'); };
if (res.igrade != null) { $('#cbxIGrade').iCheck('check'); };
if (res.cellqty != null) { $('#cbxCellQty').iCheck('check'); };
if (res.bartype != null) { $('#cbxBarType').iCheck('check'); };
if (res.modulespec != null) { $('#cbxModuleSpec').iCheck('check'); };
if (res.finalgrade != null) { $('#cbxFinalGrade').iCheck('check'); };
if (res.color != null) { $('#cbxColor').iCheck('check'); };
console.log("查询库位条件结束");
}).catch(function (ex) {
console.log('request failed', ex);
})
}
function CondictionisSelected() {
var conobj = {
powergrade: $('#cbxPowerGrade').iCheck('update')[0].checked,
igrade: $('#cbxIGrade').iCheck('update')[0].checked,
color: $('#cbxColor').iCheck('update')[0].checked,
cellqty: $('#cbxCellQty').iCheck('update')[0].checked,
bartype: $('#cbxBarType').iCheck('update')[0].checked,
modulespec: $('#cbxModuleSpec').iCheck('update')[0].checked,
finalgrade: $('#cbxFinalGrade').iCheck('update')[0].checked,
}
if (!conobj.powergrade && !conobj.igrade && !conobj.color && !conobj.cellqty && !conobj.battype && !conobj.modulespec && !conobj.finalgrade) { return false; }
return true;
}
//扫描托盘号
$("#txtPallet").keypress(function (event) {
if (event.which == 13 || event.KeyCode == 13) {
event.preventDefault();
//检查拼柜条件是否选中
if (CondictionisSelected() == false) {
toastr.warning('请选择拼柜条件', '', { progressBar: true });
return;
}
if ($('#txtContainer').val() == '') {
toastr.warning('请输入柜号', '', { progressBar: true });
return;
}
if ($('#txtContainerQty').val() == '') {
toastr.warning('请输入拼柜数量', '', { progressBar: true });
return;
}
var conobj = {
powergrade: $('#cbxPowerGrade').iCheck('update')[0].checked,
igrade: $('#cbxIGrade').iCheck('update')[0].checked,
color: $('#cbxColor').iCheck('update')[0].checked,
cellqty: $('#cbxCellQty').iCheck('update')[0].checked,
bartype: $('#cbxBarType').iCheck('update')[0].checked,
modulespec: $('#cbxModuleSpec').iCheck('update')[0].checked,
finalgrade: $('#cbxFinalGrade').iCheck('update')[0].checked,
}
var palletno = $('#txtPallet').val();
//$('#mainboxbody').after('
');
//App.blockUI({
// target: $('#tab-content'),
// animate: true,
// overlayColor: 'none'
//})
$.blockUI({
css: {
border: 'none',
padding: '15px',
backgroundColor: '#000',
'-webkit-border-radius': '10px',
'-moz-border-radius': '10px',
opacity: .5,
color: '#fff'
}
});
//提交托盘号和入库所选的条件
fetch("../api/LCL/LCL", {
method: "post",
headers: {
"Accept": "application/json, text/plain, */*",
'Content-Type': 'application/json'
},
body: JSON.stringify({ palletno: palletno, container: $("#txtContainer").val(), containerqty: $("#txtContainerQty").val(), selectcondiction: conobj })
}).then(function (res) {
return res.json();
}).then(function (res) {
//$('#mainboxbody').next().remove();
//App.unblockUI($('#tab-content'));
$.unblockUI();
if (res.result == "fail") {
//toastr.options.progressBar = true;
//toastr.options.positionClass = "toast-top-center";
toastr.warning(res.msg, '', { progressBar: true });
}
else if (res.result == "success") {
toastr.success(res.msg, '', { progressBar: true });
var locationname = '';
if (res.info.stockinfo != null) {
locationname = res.info.stockinfo.locationname;
}
var rowobj = {
palletno: res.info.pallet.pallet_nbr,
powergrade: res.info.pallet.power_grade,
igrade: res.info.pallet.current_grade,
cellqty: res.info.product.cell_qty,
bartype: res.info.product.crys_type_value,
modulespec: res.info.product.mod_spec_value,
finalgrade: res.info.pallet.final_grade,
color: res.info.pallet.mod_color,
locationname: locationname
}
$('#tbLCLPallet').bootstrapTable('insertRow', { index: 0, row: rowobj });
$('#txtPallet').val('');
}
else if (res.result == "doing") {
var $toastr = toastr.warning('该托盘正在拼柜,是否显示托盘的柜号信息
', '', { timeOut: 0, extendedTimeOut: 0 })
LCLApp.stockinfo = res.info.stockinfo;
LCLApp.palletinfo = res.info.palletinfo;
if ($toastr.find('#ShowContainerBtn').length) {
$('#ShowContainerBtn').on("click", function () {
ShowPalletOfContainer();
})
}
}
console.log(res);
}).catch(function (ex) {
$('#mainboxbody').next().remove();
toastr.error(ex, '', { progressBar: true });
console.log('request failed', ex);
})
}
});
var LCLApp = {
stockinfo: null,
palletinfo: null
}
function ShowPalletOfContainer() {
//显示正在平柜的数据
//柜号
$('#txtContainer').val(LCLApp.stockinfo[0].ContainerNo);
//柜号数量
$('#txtContainerQty').val(LCLApp.stockinfo[0].Count);
//柜号里的托盘
var tbdata = [];
for (var i = 0; i <= LCLApp.stockinfo.length - 1; i++) {
var match = _.find(LCLApp.palletinfo, function (num) {
return num.palletno == LCLApp.stockinfo[i].palletno;
});
if (match != undefined) {
var entendres = _.extend(LCLApp.stockinfo[i], match)
tbdata.push(entendres);
}
else {
tbdata.push(LCLApp.stockinfo[i]);
}
}
$('#tbLCLPallet').bootstrapTable('destroy').bootstrapTable({
columns: [{
field: 'palletno',
title: '托盘'
}, {
field: 'powergrade',
title: '电压'
}
, {
field: 'igrade',
title: '电流'
}, {
field: 'cellqty',
title: '电池片数量'
}, {
field: 'bartype',
title: '晶体类型'
}, {
field: 'modulespec',
title: '组件类型'
}, {
field: 'finalgrade',
title: '最终等级'
}, {
field: 'color',
title: '颜色'
},
{
field: 'locationname',
title: '库位'
}
],
data: tbdata
});
LCLApp.palletinfo = null;
LCLApp.stockinfo = null;
}