旧版报表、仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

512 lines
20 KiB

let productsinfo = new Vue({
el: '#yieldForm',
components: {
'BootstrapTable': BootstrapTable
},
data: {
columns: [],
data: [],
leftheader: [
{
title: '部门',
field: 'workshop',
align: 'center'
}, {
title: '内容/目标',
field: 'content',
align: 'center'
}, {
title: '',
field: 'month',
align: 'center'
}, {
title: '',
field: 'week',
align: 'center'
}],
rightheader:[],
options: {
//pagination: true, //是否显示分页(*)
//pageSize: 12, //每页的记录行数(*)
search: true, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,
strictSearch: true,
//showColumns: true, //是否显示所有的列
showRefresh: true,
//height: 580,
//onClickRow: function (row, $element, field) {
// console.log(row);
// var flow = row.flow;
// console.log(flow);
// productsinfo.requestApi({
// modulename: "Orders",
// funname: "QueryWorkshop", //BatchRate
// para: { flow: flow },
// success: (res) => {
// console.log(res);
// productsinfo.stations = res;
// //显示工艺流程
// //clearTimeout(produstsinfo.hide);
// $("#flow").slideDown('slow');
// console.log(productsinfo.hide);
// productsinfo.hide = setTimeout(function () { $("#flow").slideUp('slow'); }, 6000);
// $("#flow").mouseover(function () {
// clearTimeout(productsinfo.hide);
// console.log(productsinfo.hide);
// $("#flow").stop(false, true);
// });
// $("#flow").mouseleave(function () {
// $("#flow").slideUp('slow');
// });
// },
// fail: (ex) => {
// console.log(ex);
// }
// })
//}
}
},
created() {
},
mounted() {
var self = this;
self.QueryddlWorkshop();
self.Daterangeini();
self.immediate();
//获取今天是今年第几周
var d1 = new Date();
var d2 = new Date();
d2.setMonth(0);
console.log(d2);
d2.setDate(1);
console.log(d2);
var oneWeek = d2.getDay();//获取本年第一天是周几
var oneDay = 6 - oneWeek;//本年第一周的天数
var rq = d1 - d2 + 1;
var s1 = Math.ceil(rq / (24 * 60 * 60 * 1000)); //今天是本年第几天
var residueDay = s1 - oneDay;
var s2 = Math.ceil(residueDay / 7) + 1; //当天是今年第几周
console.log("今天是本年第" + s1 + "天,第" + s2 + "周");//周日做为下周的开始计算
},
methods: {
//立即执行方法
immediate: function () {
var self = this;
self.rightheader = [];//将右侧表头初始化为空
//获取今天是今年第几周(以周六为一周第一天)
var d1 = new Date();
var d2 = new Date();
d2.setMonth(0);
console.log(d2);
d2.setDate(1);
console.log(d2);
var oneWeek = d2.getDay();//获取本年第一天是周几
var oneDay = 6 - oneWeek;//本年第一周的天数
var rq = d1 - d2;
var s1 = Math.ceil(rq / (24 * 60 * 60 * 1000))+1; //今天是本年第几天
var residueDay = s1 - oneDay;
var s2 = Math.ceil(residueDay / 7) + 1; //当天是今年第几周
//console.log("今天是本年第" + s1 + "天,第" + s2 + "周");//周日做为下周的开始计算
var month = $('#jedatetime').val().substr($('#jedatetime').val().lastIndexOf("-")).substr(1);
console.log(month);
var year = $('#jedatetime').val().substr(0, $('#jedatetime').val().lastIndexOf("-"));
//获取当前月份英文作为表头field
var date = new Date(year + '/' + month);
console.log(date.toDateString());
var monthEnglish = date.toDateString().split(" ")[1]; //当前月份英文
console.log(date.toDateString().split(" ")[1]);
//获取月份天数
var days = self.mGetDate(year, month);
console.log(days);
//将本月的天数先加入数组中,存储起来
for (var i = 1; i < days + 1; i++) {
self.rightheader.push({
title: month + '/' + i,
field: 'month' + i,
align: 'center'
})
}
console.log(self.rightheader);
//获取当前月份第一天是周几
var oneday = new Date(year + '/' + month + '/01').getDay();
console.log(oneday);
//如果是周六则不需要上个月的数据,否则需要加入上个月部分数据
if (oneday != 6) {
//获取上个月天数
var olddays
if (month == '01') {
olddays = self.mGetDate(year - 1, 12);
} else {
olddays = self.mGetDate(year, month - 1);
}
console.log(olddays);
//获取上个月月份的英文简写
var olddate = new Date(year + '/' + eval(month - 1));
console.log(olddate.toDateString());
var oldmonthEnglish = olddate.toDateString().split(" ")[1]; //上个月份英文
//查上个月需要几天
var borrow;
switch (oneday) {
case 0:
borrow = 1;
break;
case 1:
borrow = 2;
break;
case 2:
borrow = 3;
break;
case 3:
borrow = 4;
break;
case 4:
borrow = 5;
break;
case 5:
borrow = 6;
break;
}
console.log(borrow);
//获取需要天数的日期
var datetime = olddays + 1 - borrow;
for (var i = olddays; i > datetime - 1; i--) {
if (month == '01') {
self.rightheader.unshift({
title: eval(year - 1) + '/' + '12/' + i,
field: 'oldmonth' + i,
align: 'center'
});
} else {
self.rightheader.unshift({
title: eval(month - 1) + '/' + i,
field: 'oldmonth' + i,
align: 'center'
});
}
}
}
console.log(self.rightheader);
if (month.substr(0, 1) == 0) {
month = month.substr(1) + '月';
} else {
month = month + '月';
}
self.leftheader[2].title = month;
self.leftheader[3].title = s2 + 'W';
console.log(self.leftheader);
//将两段数组合并、显示
self.columns = [...self.leftheader, ...self.rightheader]
},
//查询表格数据
inquireinfo: function () {
if ($('#ddlWorkshop').val() == null) {
toastr.warning('请选择车间', '', { progressBar: true });
return;
}
if ($('#jedatetime').val() == null) {
toastr.warning('请选择时间', '', { progressBar: true });
return;
}
var self = this;
self.rightheader = [];//将右侧表头初始化为空
//获取今天是今年第几周(以周六为一周第一天)
var d1 = new Date();
var d2 = new Date();
d2.setMonth(0);
console.log(d2);
d2.setDate(1);
console.log(d2);
var oneWeek = d2.getDay();//获取本年第一天是周几
var oneDay = 6 - oneWeek;//本年第一周的天数
var rq = d1 - d2;
var s1 = Math.ceil(rq / (24 * 60 * 60 * 1000))+1; //今天是本年第几天
var residueDay = s1 - oneDay;
var s2 = Math.ceil(residueDay / 7) + 1; //当天是今年第几周
//console.log("今天是本年第" + s1 + "天,第" + s2 + "周");//周日做为下周的开始计算
var month = $('#jedatetime').val().substr($('#jedatetime').val().lastIndexOf("-")).substr(1);
console.log(month);
var year = $('#jedatetime').val().substr(0, $('#jedatetime').val().lastIndexOf("-"));
//获取当前月份英文作为表头field
var date = new Date(year + '/' + month);
console.log(date.toDateString());
var monthEnglish = date.toDateString().split(" ")[1]; //当前月份英文
console.log(date.toDateString().split(" ")[1]);
//获取月份天数
var days = self.mGetDate(year, month);
console.log(days);
//将本月的天数先加入数组中,存储起来
for (var i = 1; i < days + 1;i++) {
self.rightheader.push({
title: month + '/' + i,
field: monthEnglish + i,
align: 'center'
})
}
console.log(self.rightheader);
//获取当前月份第一天是周几
var oneday = new Date(year + '/' + month + '/01').getDay();
console.log(oneday);
//如果是周六则不需要上个月的数据,否则需要加入上个月部分数据
if (oneday != 6) {
//获取上个月天数
var olddays
if (month == '01') {
olddays = self.mGetDate(year-1, 12);
} else {
olddays = self.mGetDate(year, month - 1);
}
console.log(olddays);
//获取上个月月份的英文简写
var olddate = new Date(year + '/' + eval(month-1));
console.log(olddate.toDateString());
var oldmonthEnglish = olddate.toDateString().split(" ")[1]; //上个月份英文
//查上个月需要几天
var borrow;
switch (oneday) {
case 0:
borrow = 1;
break;
case 1:
borrow = 2;
break;
case 2:
borrow = 3;
break;
case 3:
borrow = 4;
break;
case 4:
borrow = 5;
break;
case 5:
borrow = 6;
break;
}
console.log(borrow);
//获取需要天数的日期
var datetime = olddays + 1 - borrow;
for (var i = olddays; i > datetime - 1; i--) {
if (month == '01') {
self.rightheader.unshift({
title: eval(year - 1) + '/' + '12/' + i,
field: oldmonthEnglish + i,
align: 'center'
});
} else {
self.rightheader.unshift({
title: eval(month - 1) + '/' + i,
field: oldmonthEnglish + i,
align: 'center'
});
}
}
}
console.log(self.rightheader);
if (month.substr(0, 1) == 0) {
month = month.substr(1) + '月';
} else {
month = month + '月';
}
self.leftheader[2].title = month;
self.leftheader[3].title = s2 + 'W';
console.log(self.leftheader);
//将两段数组合并、显示
self.columns = [...self.leftheader, ...self.rightheader]
//月份查询条件
var monthCondition = {
year: $('#jedatetime').val().substr(0, $('#jedatetime').val().lastIndexOf("-")),
month: self.monthCondition()
};
console.log(monthCondition);
//周查询条件(先获取当天年月日)
var weekCondition = {};//存储周条件
var sameDay = new Date();
console.log(sameDay);
var sameyear = sameDay.getFullYear(); //当天的年份
var samemonth = sameDay.getMonth() + 1; //当天的月份
var sameoneday1 = self.getFirstDayOfWeek(sameDay); //获取本周第一天日期
console.log(sameoneday1);
var sameoneday = self.timeFormat(sameoneday1);
console.log(sameoneday);
var sameDay2 = new Date();
var samenineday1 = self.getFirstDayOfWeek(sameDay2); //获取本周最后一天的后一天日期
samenineday1.setDate(samenineday1.getDate() + 7);
var samenineday = self.timeFormat(samenineday1);
console.log(samenineday);
console.log();
weekCondition.bt = sameoneday;
weekCondition.et = samenineday;
var weekeveryday = []; //存储周每一天
for (var i = 0; i < 7; i++) {
var sameDay3 = new Date();
console.log(sameDay2);
var samefistday = self.getFirstDayOfWeek(sameDay3); //获取本周第一天日期
console.log(samefistday);
samefistday.setDate(samefistday.getDate() + i);
var weekinday = self.dateFormat(samefistday);
weekeveryday.push(weekinday);
}
weekCondition.weekDay = weekeveryday;
console.log(weekCondition);
//天的条件
var dayCondition = [];//存储天条件
console.log(year);
console.log(month);
console.log(days);
console.log(self.columns.length);
if (self.columns.length > days+4) {
var number = self.columns.length - days - 4;
for (var i = 4; i < 4 + number;i++) {
if (self.columns[i].title.split("/").length == 3) {
dayCondition.push({
year: self.columns[i].title.split("/")[0],
month: self.columns[i].title.split("/")[1],
day: self.columns[i].title.split("/")[2],
});
} else {
dayCondition.push({
year: year,
month: self.columns[i].title.split("/")[0],
day: self.columns[i].title.split("/")[1],
});
}
}
}
console.log(monthCondition); //对象
console.log(weekCondition); //对象
console.log(dayCondition); //数组
//进行数据查询
self.requestApi({
modulename: "YieldForm",
funname: "YieldFormInfo", //BatchRate
para: { workshop: $('#ddlWorkshop').val(),monthCondition: monthCondition, weekCondition: weekCondition, dayCondition: dayCondition},
success: (res) => {
console.log(res.info);
},
fail: (ex) => {
console.log(ex);
}
})
},
//获取这周的周六(第一天)
getFirstDayOfWeek:function(date) {
var self = this;
var weekday = date.getDay() || 0; //获取星期几,getDay()返回值是 0(周日) 到 6(周六) 之间的一个整数。0||7为7,即weekday的值为1-7
date.setDate(date.getDate() - weekday - 1);//往前算(weekday-1)天,年份、月份会自动变化
//return self.timeFormat(date);
return date;
},
zero: function (s) {
return s < 10 ? '0' + s : s
},
timeFormat:function(date) {
if(!date || typeof (date) === "string") {
this.error("参数异常,请检查...");
}
var self = this;
var y = date.getFullYear(); //年
var m = self.zero(date.getMonth() + 1); //月
var d = self.zero(date.getDate()); //日
return y+'-'+m+'-'+d+' '+'00:00:00'
},
dateFormat: function (date) {
if (!date || typeof (date) === "string") {
this.error("参数异常,请检查...");
}
var self = this;
var y = date.getFullYear(); //年
var m = self.zero(date.getMonth() + 1); //月
var d = self.zero(date.getDate()); //日
return {
year: y,
month: m,
day:d
}
},
monthCondition: function () {
if ($('#jedatetime').val().substr($('#jedatetime').val().lastIndexOf("-")).substr(1, 1) == 0) {
return $('#jedatetime').val().substr($('#jedatetime').val().lastIndexOf("-")).substr(2) + '月';
} else {
return $('#jedatetime').val().substr($('#jedatetime').val().lastIndexOf("-")).substr(1) + '月';
}
},
QueryddlWorkshop:function() {
var promiseweld = $.ajax({
url: '/api/Orders/QueryWorkshop', //'/api/QC/QueryStatus'
type: 'post',
cache: true,
async: true,
});
promiseweld.done(function (r) {
console.log(r);
$.each(r.info, function (index, value) {
console.log(index);
$("#ddlWorkshop").append("<option value='" + value.area_code + "'>" + value.descriptions + "</option>");
})
$('#ddlWorkshop').val('');
$('#ddlWorkshop').select2({
placeholder: "车间",
allowClear: true
});
});
promiseweld.fail(function (error) {
console.log(error)
alert(error);
});
},
Daterangeini:function() {
jeDate("#jedatetime", {
onClose: false,
theme: { bgcolor: "#00A1CB", color: "#ffffff", pnColor: "#00CCFF" },
format: "YYYY-MM",
isinitVal: true,
})
},
//获取月份天数
mGetDate: function (year, month) {
var d = new Date(year, month, 0);
return d.getDate();
},
requestApi: function (config) {//modulename, funname, para, success, fail) {
fetch("/api/" + config.modulename + "/" + config.funname + "", {
method: "post",
headers: {
"Accept": "application/json, text/plain, */*",
"Content-Type": "application/json"
},
body: JSON.stringify(config.para)
}).then(
(res) => { return res.json() }
).then(
(res) => { config.success(res) }
).catch(
(ex) => { config.fail(ex) }
)
}
}
});