507 lines
18 KiB
JavaScript
507 lines
18 KiB
JavaScript
|
|
/// 主体下拉框更改事件
|
|||
|
|
$("#title_selected").bind().change(function () {
|
|||
|
|
Getselectcontent();
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
//条形图对象
|
|||
|
|
var mixedChart = null;
|
|||
|
|
//产能统计时用户点击的 产能分类划分值
|
|||
|
|
var partitioncriterionval = 0;
|
|||
|
|
//保存日期
|
|||
|
|
var preservetime = 0;
|
|||
|
|
//获取主体内容
|
|||
|
|
function Getselectcontent() {
|
|||
|
|
let selval = $("#title_selected").val();
|
|||
|
|
let resdata = {
|
|||
|
|
typeid: selval
|
|||
|
|
};
|
|||
|
|
if (Checkselected(selval)) {
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
$.ajax({
|
|||
|
|
url: "/app/Dataanalysis/selected",
|
|||
|
|
async: true,
|
|||
|
|
type: "post",
|
|||
|
|
data: resdata,
|
|||
|
|
success: function (data) {
|
|||
|
|
if (data.indexOf("selected" + selval) >= 0) {
|
|||
|
|
$("#selectcontent").append(data);
|
|||
|
|
} else {
|
|||
|
|
$.toastr.error('查询失败,请稍后再试。', {
|
|||
|
|
time: 3000,
|
|||
|
|
position: 'top-center'
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}, error: function (xhr, textStatus, errorThrown) {
|
|||
|
|
$.toastr.error('网络异常,请稍后再试。', {
|
|||
|
|
time: 3000,
|
|||
|
|
position: 'top-center'
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//请求参数 暂未用到
|
|||
|
|
function getdata(selval) {
|
|||
|
|
let data = [];
|
|||
|
|
switch (selval) {
|
|||
|
|
case 0:
|
|||
|
|
data.push(0);
|
|||
|
|
break;
|
|||
|
|
case 1:
|
|||
|
|
break;
|
|||
|
|
case 2:
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 历史选择
|
|||
|
|
var TodayProductions_old_select = null;
|
|||
|
|
|
|||
|
|
//加载使用产能统计
|
|||
|
|
let select_oy_Capacitydata = localStorage.getItem("select_oy_Capacitydata") || null;
|
|||
|
|
if (select_oy_Capacitydata != null) {
|
|||
|
|
select_oy_Capacitydata = JSON.parse(select_oy_Capacitydata);
|
|||
|
|
}
|
|||
|
|
if (TodayProductions_old_select == null && select_oy_Capacitydata != null) {
|
|||
|
|
TodayProductions_old_select = select_oy_Capacitydata;
|
|||
|
|
partitioncriterionval = TodayProductions_old_select.typeid;
|
|||
|
|
}
|
|||
|
|
Getselectcontent();
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 获取机型订单
|
|||
|
|
function GetOrderList() {
|
|||
|
|
var projectID = $("#projectList").val();
|
|||
|
|
let resdata = { "projectID": projectID };
|
|||
|
|
$.ajax({
|
|||
|
|
url: "/app/Home/GetOrderList",
|
|||
|
|
async: true,
|
|||
|
|
type: "post",
|
|||
|
|
data: resdata,
|
|||
|
|
success: function (data) {
|
|||
|
|
$("#OrderList").html(data);
|
|||
|
|
if (TodayProductions_old_select != null && TodayProductions_old_select.OrderInternalID != null) {
|
|||
|
|
$("#OrderList").val(TodayProductions_old_select.OrderInternalID);
|
|||
|
|
if (TodayProductions_old_select.Station == null) {
|
|||
|
|
TodayProductions_old_select = null;
|
|||
|
|
} else {
|
|||
|
|
TodayProductions_old_select.OrderInternalID = null;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}, error: function (xhr, textStatus, errorThrown) {
|
|||
|
|
$.toastr.error('网络异常,请稍后再试。', {
|
|||
|
|
time: 3000,
|
|||
|
|
position: 'top-center'
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
// 工艺站
|
|||
|
|
function GetstationList() {
|
|||
|
|
var projectID = $("#projectList").val();
|
|||
|
|
$("#checkbox").html("");
|
|||
|
|
//$("#checkbox").html(`<option value="0">选择站位</option>`);
|
|||
|
|
if (projectID != 0) {
|
|||
|
|
$.ajax({
|
|||
|
|
type: "POST",
|
|||
|
|
url: "/APP/TestLog/GetStation",
|
|||
|
|
cache: false,
|
|||
|
|
data: { "productID": projectID },
|
|||
|
|
success: function (data) {
|
|||
|
|
if (data.Status == 200) {
|
|||
|
|
for (var i = 0; i < data.Data.length; i++) {
|
|||
|
|
$("#checkbox").append(` <option value="` + data.Data[i].ID + `">` + data.Data[i].StationName + `</option>`);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (TodayProductions_old_select != null && TodayProductions_old_select.Station != null) {
|
|||
|
|
preservetime = localStorage.getItem("select_oy_num");
|
|||
|
|
//读取历史记录改变查询日期颜色
|
|||
|
|
partitioncriterion(preservetime, null);
|
|||
|
|
//保存去重历史记录
|
|||
|
|
$("#checkboxtool input").get(0).checked = TodayProductions_old_select.tool[0];
|
|||
|
|
|
|||
|
|
$("#checkbox").val(TodayProductions_old_select.Station.Station);
|
|||
|
|
if (TodayProductions_old_select != null) {
|
|||
|
|
GoData();
|
|||
|
|
}
|
|||
|
|
if (TodayProductions_old_select.OrderInternalID == null) {
|
|||
|
|
TodayProductions_old_select = null;
|
|||
|
|
|
|||
|
|
} else {
|
|||
|
|
TodayProductions_old_select.Station = null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//选择机型
|
|||
|
|
function projectListchange() {
|
|||
|
|
// 更改订单选择下拉框
|
|||
|
|
GetOrderList();
|
|||
|
|
// 更改站位
|
|||
|
|
GetstationList();
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// 查询点击事件
|
|||
|
|
function GoData() {
|
|||
|
|
let startTime = $("#startTime").val();
|
|||
|
|
let finish = $("#finish").val();
|
|||
|
|
let EndTime = $("#EndTime").val();
|
|||
|
|
let star = $("#start").val();
|
|||
|
|
let tool = new Array();
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 选择的划分类型
|
|||
|
|
let typeid = partitioncriterionval;
|
|||
|
|
|
|||
|
|
// 判断是否去重
|
|||
|
|
tool.push($("#checkboxtool input").get(0).checked);
|
|||
|
|
// 合并站位 暂未使用
|
|||
|
|
tool.push(true);
|
|||
|
|
//判断是否为已天为单位
|
|||
|
|
if (star == finish) {
|
|||
|
|
typeid = 0
|
|||
|
|
}
|
|||
|
|
// 获取选择中的时间
|
|||
|
|
let datatime = $("#start").bind().val();
|
|||
|
|
//给详细信息添加日期单位
|
|||
|
|
if (typeid == 0) {
|
|||
|
|
$('#dateselect').html("时间 日");
|
|||
|
|
}
|
|||
|
|
else if (typeid == 1) {
|
|||
|
|
$('#dateselect').html("时间 周");
|
|||
|
|
}
|
|||
|
|
else if (typeid == 2) {
|
|||
|
|
$('#dateselect').html("时间 月");
|
|||
|
|
}
|
|||
|
|
// 订单id
|
|||
|
|
let OrderInternalID = Number($("#OrderList").val());
|
|||
|
|
// 产品
|
|||
|
|
let projectID = Number($("#projectList").val());
|
|||
|
|
if (projectID <= 0) {
|
|||
|
|
$.toastr.error('请选择产品!', {
|
|||
|
|
time: 3000,
|
|||
|
|
position: 'top-center'
|
|||
|
|
});
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
let Station = Number($("#checkbox").val());
|
|||
|
|
|
|||
|
|
|
|||
|
|
$('#cesid').html("详细数据");
|
|||
|
|
|
|||
|
|
if (Station <= 0) {
|
|||
|
|
$.toastr.error('请选择站位!', {
|
|||
|
|
time: 3000,
|
|||
|
|
position: 'top-center'
|
|||
|
|
});
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
console.log(Station);
|
|||
|
|
// 默认日产能查询范围 0 -23
|
|||
|
|
var resdata = {
|
|||
|
|
"typeid": typeid, "datatime": datatime, "jsTime": finish, "productID": projectID, "startTime": startTime, "EndTime": EndTime, "OrderInternalID": OrderInternalID, "Station":Station , "tool": tool, "OrderInternalID": OrderInternalID
|
|||
|
|
};
|
|||
|
|
//保存历史记录
|
|||
|
|
localStorage.setItem("select_oy_Capacitydata", JSON.stringify(resdata));
|
|||
|
|
$.ajax({
|
|||
|
|
url: "/App/Dataanalysis/SelectData2",
|
|||
|
|
type: "post",
|
|||
|
|
async: false,
|
|||
|
|
data: resdata,
|
|||
|
|
success: function (data) {
|
|||
|
|
try {
|
|||
|
|
data = JSON.parse(data);
|
|||
|
|
} catch (e) {
|
|||
|
|
$.toastr.error('查询失败~', {
|
|||
|
|
time: 3000,
|
|||
|
|
position: 'top-center'
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
let DATASTR = JSON.parse(JSON.stringify(data));
|
|||
|
|
//异常信息
|
|||
|
|
if (typeid == 2) {
|
|||
|
|
//月查询
|
|||
|
|
GetError(DATASTR, datatime.substr(5, 2));
|
|||
|
|
} else {
|
|||
|
|
GetError(DATASTR,0);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
let DATA = {
|
|||
|
|
labels: [],
|
|||
|
|
datasets: []
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
DATA.datasets.push({
|
|||
|
|
label: 'PASS',
|
|||
|
|
data: [],
|
|||
|
|
backgroundColor: "#9bbefd",
|
|||
|
|
borderColor: [
|
|||
|
|
'rgba(55,99,12,1)',
|
|||
|
|
'rgba(5, 16, 235, 1)',
|
|||
|
|
'rgba(55, 26, 86, 1)',
|
|||
|
|
'rgba(7, 19, 192, 1)',
|
|||
|
|
'rgba(13, 12, 255, 1)',
|
|||
|
|
'rgba(25, 19, 64, 1)'
|
|||
|
|
],
|
|||
|
|
});
|
|||
|
|
DATA.datasets.push({
|
|||
|
|
label: 'FALL',
|
|||
|
|
data: [],
|
|||
|
|
backgroundColor: "red",
|
|||
|
|
borderColor: [],
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
$('#cesid').append(" Total:" + data.ruleList["ztall"] + ",<span style='color: #00B400'>Pass:" + data.ruleList["tureall"] + " (" + GetPercent(data.ruleList["tureall"], data.ruleList["ztall"]) + ")" + "</span> / " + "<span style='color: red'> Fall:" + data.ruleList["faultall"] + " (" + GetPercent(data.ruleList["faultall"], data.ruleList["ztall"]) + ")");
|
|||
|
|
|
|||
|
|
for (var key in data.ok) {
|
|||
|
|
DATA.labels.push(key);
|
|||
|
|
DATA.datasets[0].data.push(data.ok[key]);
|
|||
|
|
DATA.datasets[1].data.push(data.bad[key]);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
GetstackedBarChart(DATA);
|
|||
|
|
}, error: function (xhr, textStatus, errorThrown) {
|
|||
|
|
$.toastr.error('网络异常,请稍后再试。', {
|
|||
|
|
time: 3000,
|
|||
|
|
position: 'top-center'
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//生成条形图
|
|||
|
|
function GetstackedBarChart(data) {
|
|||
|
|
var ctx = $('#stackedBarChart').get(0).getContext('2d');
|
|||
|
|
if (mixedChart != null) {
|
|||
|
|
mixedChart.destroy();
|
|||
|
|
}
|
|||
|
|
mixedChart = new Chart(ctx, {
|
|||
|
|
type: 'bar',
|
|||
|
|
data: data,
|
|||
|
|
options: {
|
|||
|
|
title: {
|
|||
|
|
display: true,
|
|||
|
|
text: "Custom Chart Title",
|
|||
|
|
fontColor: "#f00",
|
|||
|
|
},
|
|||
|
|
scales: {
|
|||
|
|
xAxes:
|
|||
|
|
{
|
|||
|
|
stacked: true
|
|||
|
|
}
|
|||
|
|
,
|
|||
|
|
yAxes:
|
|||
|
|
{
|
|||
|
|
stacked: true
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
//判断是否存在 selected
|
|||
|
|
function Checkselected(selval) {
|
|||
|
|
$(".selected0").hide();
|
|||
|
|
$(".selected1").hide();
|
|||
|
|
$(".selected2").hide();
|
|||
|
|
$(".selected" + selval).show();
|
|||
|
|
return $(".selected" + selval).length > 0;
|
|||
|
|
}
|
|||
|
|
// 产能统计时用户点击的 产能分类
|
|||
|
|
function partitioncriterion(type, that) {
|
|||
|
|
let num = type;
|
|||
|
|
localStorage.setItem("select_oy_num", num);
|
|||
|
|
if (type != 0) {
|
|||
|
|
num = num- 1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (type == 3) {
|
|||
|
|
type = 2
|
|||
|
|
}
|
|||
|
|
else if (type == 7) {
|
|||
|
|
type = 2
|
|||
|
|
}
|
|||
|
|
else if (type == 30)
|
|||
|
|
{
|
|||
|
|
type = 2
|
|||
|
|
}
|
|||
|
|
partitioncriterionval = type;
|
|||
|
|
$('.partitioncriterion').removeClass("btn-primary");
|
|||
|
|
$('.partitioncriterion_' + num).addClass("btn-primary");
|
|||
|
|
if (that != null) {
|
|||
|
|
// 范围选择器初始化
|
|||
|
|
initTime();
|
|||
|
|
}
|
|||
|
|
$("#start").val(formatDate(new Date(new Date().setDate(new Date().getDate() - num))));
|
|||
|
|
$("#finish").val(formatDate(new Date(new Date().setDate(new Date().getDate()))));
|
|||
|
|
GoData();
|
|||
|
|
}
|
|||
|
|
function bian(tupe) {
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 生成错误信息列表
|
|||
|
|
function GetError(data,date) {
|
|||
|
|
let content = `<div class="col-xs-4 col-sm-4" style="padding:0 5px;">
|
|||
|
|
<label class="form-control input-sm " style="border:none;">{{tump}}</label>
|
|||
|
|
</div>`;
|
|||
|
|
|
|||
|
|
//加按钮
|
|||
|
|
let content2 = `<div class="col-xs-4 col-sm-4" style="padding:0 5px;">
|
|||
|
|
<label class="form-control input-sm " style="border:none;" onclick="Showinfo()">{{tump}}</label>
|
|||
|
|
</div>`;
|
|||
|
|
// 移除第3个之后的所有元素
|
|||
|
|
$($("#errinfo").children().get(2)).nextAll().remove();
|
|||
|
|
let error = data.err;
|
|||
|
|
let keylist = new Array();
|
|||
|
|
for (let key in error) {
|
|||
|
|
keylist.push(key);
|
|||
|
|
}
|
|||
|
|
//倒叙
|
|||
|
|
keylist.sort(function (a, b) { return Number(b) - Number(a) });
|
|||
|
|
var oklist = 0;
|
|||
|
|
// 错误总数
|
|||
|
|
var errlistall = 0;
|
|||
|
|
for (let key = 0; key < keylist.length; key++) {
|
|||
|
|
oklist = oklist + Number(data.ok[keylist[key]]);
|
|||
|
|
errlistall += Number(data.bad[keylist[key]]);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$("#errinfo").append(content.replace("{{tump}}","总计"));
|
|||
|
|
$("#errinfo").append(content.replace("{{tump}}", oklist));
|
|||
|
|
$("#errinfo").append(content2.replace("{{tump}}", errlistall));
|
|||
|
|
$("#errinfo").append(`<div id="ShowAll"; style=" display:none;";></div>`);
|
|||
|
|
|
|||
|
|
|
|||
|
|
let errallkey = [];
|
|||
|
|
let errallval = [];
|
|||
|
|
let errInfo = [];
|
|||
|
|
|
|||
|
|
for (let key = 0; key < keylist.length; key++) {
|
|||
|
|
|
|||
|
|
// 失败和成功数量 为 0 不显示
|
|||
|
|
if (data.bad[keylist[key]] > 0 || data.ok[keylist[key]] > 0) {
|
|||
|
|
// 添加时间
|
|||
|
|
if (date != 0) {
|
|||
|
|
//月查询在前面加上月份
|
|||
|
|
$("#errinfo").append(content.replace("{{tump}}",keylist[key]));
|
|||
|
|
} else {
|
|||
|
|
$("#errinfo").append(content.replace("{{tump}}", keylist[key]));
|
|||
|
|
}
|
|||
|
|
// 添加成功数量
|
|||
|
|
$("#errinfo").append(content.replace("{{tump}}", data.ok[keylist[key]]));
|
|||
|
|
//// 添加失败数量
|
|||
|
|
$("#errinfo").append(`<div onclick="ShwoErr('err_` + keylist[key].replace(/ /g,'') + `')" class="col-xs-4 col-sm-4" style="padding:0 5px;">
|
|||
|
|
<label class="form-control input-sm " style="border:none;">{{tump}}</label>
|
|||
|
|
</div>`.replace("{{tump}}", data.bad[keylist[key]]));
|
|||
|
|
let errlist = new Array();
|
|||
|
|
for (let errkey in data.err[keylist[key]]) {
|
|||
|
|
errlist.push({ key: errkey, data: data.err[keylist[key]][errkey] })
|
|||
|
|
}
|
|||
|
|
// 取出异常信息后排序 Item2 是数量 Item1 是错误信息 key 是错误码
|
|||
|
|
errlist.sort(function (a, b) { return b.data.Item2 - a.data.Item2 });
|
|||
|
|
// 其他异常
|
|||
|
|
let othereror = 0;
|
|||
|
|
var ErrorAll = [];
|
|||
|
|
for (var i = 0; i < errlist.length; i++) {
|
|||
|
|
// 错误码 数量 大于 50 就显示为 其他错误
|
|||
|
|
if (i <= 50) {
|
|||
|
|
$("#errinfo").append(`<div class="col-xs-12 hide col-sm-12 err_` + keylist[key].replace(/ /g, '') + `" style="padding:0 5px; color:#FF0000;">` + errlist[i].data.Item2 + `<span style="color:#d3d7d4;">:</span> <span style="color:#0080FF;">` + GetPercent(errlist[i].data.Item2,data.bad[keylist[key]]) + `</span>` + ` <span style="color:#d3d7d4;">:</span><span style="color:#FF0000;">` + errlist[i].key + `-</span> <span style="color:#d3d7d4;">` + errlist[i].data.Item1 + "</span></div>");
|
|||
|
|
}
|
|||
|
|
else {
|
|||
|
|
othereror += errlist[i].data.Item2;
|
|||
|
|
}
|
|||
|
|
ErrorAll.push(errlist[i]);
|
|||
|
|
}
|
|||
|
|
//添加总数失败
|
|||
|
|
for (var j = 0; j < ErrorAll.length; j++) {
|
|||
|
|
let index = errallkey.indexOf(ErrorAll[j].key);
|
|||
|
|
if (index >= 0) {
|
|||
|
|
errallval[index] = Number(errallval[index]) + Number(ErrorAll[j].data.Item2);
|
|||
|
|
} else {
|
|||
|
|
errallkey.push(ErrorAll[j].key);
|
|||
|
|
errallval.push(Number(ErrorAll[j].data.Item2));
|
|||
|
|
errInfo.push(ErrorAll[j].data.Item1);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 添加 其他错误
|
|||
|
|
if (othereror > 0) {
|
|||
|
|
$("#errinfo").append(`<div class="col-xs-12 hide col-sm-12 err_` + keylist[key].replace(/ /g, '') + `" style="padding:0 5px; color:#FF0000;">` + othereror + `<span style="color:#d3d7d4;">:</span> <span style="color:#0080FF;">` + GetPercent(othereror, data.bad[keylist[key]]) + `</span>` + ` <span style="color:#d3d7d4;">:</span><span style="color:#FF0000;">其他 -</span> <span style="color:#d3d7d4;">其他错误`+ "</span></div>");
|
|||
|
|
$("#errinfo").append(`<div class="col-xs-4 hide col-sm-4" style="padding:0 5px;">` + "其他 : " + othereror + "</div>");
|
|||
|
|
}
|
|||
|
|
// 起到换行作用
|
|||
|
|
$("#errinfo").append(`<div class="hide col-xs-12 hide col-sm-12 err_` + keylist[key].replace(/ /g, '') + `"></div>`);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//判断是否大于5 0
|
|||
|
|
let sun = 0;
|
|||
|
|
if (errallval.length >= 50){
|
|||
|
|
sun = 50;
|
|||
|
|
} else {
|
|||
|
|
|
|||
|
|
sun = errallval.length;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 错误码 数量 大于 5 就显示为 其他错误
|
|||
|
|
for (var i = 0; i < sun; i++) {
|
|||
|
|
let index = errallval.indexOf( Math.max.apply(null, errallval));
|
|||
|
|
$("#ShowAll").append(`<div class="col-xs-12 col-sm-12" style="padding:0 5px; color:#FF0000;">` + errallval[index] + `<span style="color:#d3d7d4;">:</span> <span style="color:#0080FF;">` + GetPercent(errallval[index], errlistall) + `</span>` + ` <span style="color:#d3d7d4;">:</span><span style="color:#FF0000;">` + errallkey[index] + `-</span> <span style="color:#d3d7d4;">` + errInfo[index] + "</span></div>");
|
|||
|
|
errallval[index] = -1;
|
|||
|
|
}
|
|||
|
|
let allerrsum = 0;
|
|||
|
|
for (var i = 0; i < errallval.length; i++) {
|
|||
|
|
if (errallval[i] >= 0) {
|
|||
|
|
allerrsum += errallval[i];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//判断是否大于5 没有则不显示
|
|||
|
|
//if (sun >= 5) {
|
|||
|
|
// $("#ShowAll").append(`<div class="col-xs-12 col-sm-12" style="padding:0 5px; color:#FF0000;">` + allerrsum + `<span style="color:#d3d7d4;">:</span> <span style="color:#0080FF;">` + GetPercent(allerrsum, errlistall) + `</span><span style="color:#d3d7d4;">:</span><span style="color:#FF0000;">其他 -</span> <span style="color:#d3d7d4;">其他错误</span></div>`);
|
|||
|
|
//}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 显示错误信息
|
|||
|
|
function ShwoErr(classname) {
|
|||
|
|
if ($('.' + classname).attr("class").indexOf('hide') >= 0) {
|
|||
|
|
$('.' + classname).removeClass('hide');
|
|||
|
|
} else {
|
|||
|
|
$('.' + classname).addClass('hide');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
function Showinfo() {
|
|||
|
|
$("#ShowAll").toggle();
|
|||
|
|
}
|
|||
|
|
//多余的字用省略号代替(......)
|
|||
|
|
function subStrFormat(data, max) {
|
|||
|
|
if (data != null && data != undefined && data.length > max) {
|
|||
|
|
return data.substr(0, max) + ` ...`;
|
|||
|
|
} else {
|
|||
|
|
return data;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 求百分比
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="num">当前数</param>
|
|||
|
|
/// <param name="total">总数</param>
|
|||
|
|
function GetPercent(num, total) {
|
|||
|
|
num = parseFloat(num);
|
|||
|
|
total = parseFloat(total);
|
|||
|
|
if (isNaN(num) || isNaN(total)) {
|
|||
|
|
return "-";
|
|||
|
|
}
|
|||
|
|
return total <= 0 ? "0%" : (Math.round(num / total * 10000) / 100.0).toFixed(1) + "%";
|
|||
|
|
}
|
|||
|
|
|