|
@@ -1,5 +1,7 @@
|
|
|
(function () {
|
|
|
let attendanceIndex = ''
|
|
|
+ let isTimes = []
|
|
|
+
|
|
|
window.onload = function (ex) {
|
|
|
let timeObject = document.querySelector('#timeObject')
|
|
|
let arrays = JSON.parse(timeObject.value)
|
|
@@ -46,6 +48,8 @@
|
|
|
var element = document.getElementById("qjsj_" + index);
|
|
|
element.remove();
|
|
|
buildQjsjSeq();
|
|
|
+ isTimes.splice(index, 1)
|
|
|
+ whereIsTimes()
|
|
|
},
|
|
|
onCancel: function () {
|
|
|
|
|
@@ -56,13 +60,8 @@
|
|
|
|
|
|
buildQjsjSeq();
|
|
|
lists.push(dataObj)
|
|
|
+ qjsjChange(lists, arrays)
|
|
|
|
|
|
- if (arrays.length > 0) {
|
|
|
- lists.push({})
|
|
|
- qjsjChange(lists)
|
|
|
- } else {
|
|
|
- qjsjChange(lists)
|
|
|
- }
|
|
|
|
|
|
|
|
|
})
|
|
@@ -115,7 +114,6 @@
|
|
|
+ '</td></tr>';
|
|
|
}
|
|
|
tbodyQjsq.innerHTML = html
|
|
|
-
|
|
|
for (let i = 0; i < arrays.length; i++) {
|
|
|
timeSelector({
|
|
|
ele: ".startTimeRange" + (i),
|
|
@@ -138,6 +136,8 @@
|
|
|
var element = document.getElementById("qjsj_" + i);
|
|
|
element.remove();
|
|
|
buildQjsjSeq();
|
|
|
+ isTimes.splice(i, 1)
|
|
|
+ whereIsTimes()
|
|
|
},
|
|
|
onCancel: function () {
|
|
|
|
|
@@ -145,6 +145,16 @@
|
|
|
})
|
|
|
|
|
|
})
|
|
|
+ let startDate = moment(arrays[i].startTime).format('YYYY-MM-DD')
|
|
|
+ let endDate = moment(arrays[i].endTime).format('YYYY-MM-DD')
|
|
|
+ let obj = {
|
|
|
+ index: i + 1,
|
|
|
+ startTime: startDate,
|
|
|
+ endTime: endDate,
|
|
|
+ startHM: moment(arrays[i].startTime).format('HH:mm'),
|
|
|
+ endHM: moment(arrays[i].endTime).format('HH:mm'),
|
|
|
+ }
|
|
|
+ isTimes.push(obj)
|
|
|
}
|
|
|
|
|
|
let sTbody = document.querySelectorAll('.qjsjClass')
|
|
@@ -166,9 +176,13 @@
|
|
|
let setEndTime = moment(times).add(1, 'years').format('YYYY-MM-DD');
|
|
|
z.ui.laydate("[name='LeaveTimeDO[0]$endTime']").setValue(setEndTime);
|
|
|
}
|
|
|
- let isTimes = []
|
|
|
- function qjsjChange(infoList) {
|
|
|
- console.log(infoList.length);
|
|
|
+ function qjsjChange(infoList, arraysList) {
|
|
|
+ let lengthNum = 0
|
|
|
+ if (arraysList.length > 0) {
|
|
|
+ lengthNum = infoList.length + arraysList.length
|
|
|
+ } else {
|
|
|
+ lengthNum = infoList.length
|
|
|
+ }
|
|
|
let timeObj = {
|
|
|
index: "",
|
|
|
startTime: "",
|
|
@@ -177,22 +191,22 @@
|
|
|
endHM: "",
|
|
|
}
|
|
|
timeSelector({
|
|
|
- ele: ".startTimeRange" + (infoList.length - 1),
|
|
|
- name: "LeaveTimeDO[" + (infoList.length - 1) + "]$startTimeRange",
|
|
|
+ ele: ".startTimeRange" + (lengthNum - 1),
|
|
|
+ name: "LeaveTimeDO[" + (lengthNum - 1) + "]$startTimeRange",
|
|
|
callback: function (val) {
|
|
|
timeObj.startHM = val
|
|
|
whereIsTimes()
|
|
|
}
|
|
|
})
|
|
|
timeSelector({
|
|
|
- ele: ".endTimeRange" + (infoList.length - 1),
|
|
|
- name: "LeaveTimeDO[" + (infoList.length - 1) + "]$endTimeRange",
|
|
|
+ ele: ".endTimeRange" + (lengthNum - 1),
|
|
|
+ name: "LeaveTimeDO[" + (lengthNum - 1) + "]$endTimeRange",
|
|
|
callback: function (val) {
|
|
|
timeObj.endHM = val
|
|
|
whereIsTimes()
|
|
|
}
|
|
|
})
|
|
|
- for (let i = 0; i < infoList.length; i++) {
|
|
|
+ for (let i = arraysList.length; i < lengthNum; i++) {
|
|
|
timeObj.index = i + 1
|
|
|
z.ui.laydate("[name='LeaveTimeDO[" + i + "]$startTime']").init({
|
|
|
type: 'date',
|
|
@@ -222,7 +236,6 @@
|
|
|
}
|
|
|
function whereIsTimes() {
|
|
|
let timesCopy = JSON.parse(JSON.stringify(isTimes))
|
|
|
-
|
|
|
//拼接时间
|
|
|
timesCopy.forEach((item, index) => {
|
|
|
item.startAll = item.startTime + ' ' + item.startHM
|
|
@@ -238,25 +251,33 @@
|
|
|
}
|
|
|
}
|
|
|
let sum = 0 //总小时
|
|
|
+ let sTbody = document.querySelectorAll('.qjsjClass')
|
|
|
for (let i = 0; i < timesCopy.length; i++) {
|
|
|
let startTime = moment(timesCopy[i].startAll).unix();
|
|
|
let endTime = moment(timesCopy[i].endAll).unix();
|
|
|
- if (startTime && endTime) {
|
|
|
+ let startHM = timesCopy[i].startHM
|
|
|
+ let endHM = timesCopy[i].endHM
|
|
|
+ if (startTime && endTime && endHM && startHM) {
|
|
|
sum += leaveTimes(timesCopy[i].startAll, timesCopy[i].endAll) //leaveTimes 计算天数的方法
|
|
|
}
|
|
|
- if (startTime > endTime) {
|
|
|
- z.ui.alertWarning("起始时间大于截止时间!请重新选择")
|
|
|
+ if (startTime >= endTime && startHM && endHM) {
|
|
|
+ z.ui.alertWarning("起始时间大于等于截止时间!请重新选择")
|
|
|
+ z.ui.laydate("[name='LeaveTimeDO[" + i + "]$endTime']").setValue('')
|
|
|
+ sTbody[i].children[2].children[0].children[1].children[0].children[0].value = ''
|
|
|
}
|
|
|
|
|
|
for (let j = i + 1; j < timesCopy.length; j++) {
|
|
|
let startJTime = moment(timesCopy[j].startAll).unix();
|
|
|
+ let startHm = timesCopy[j].startHM
|
|
|
let endJTime = moment(timesCopy[j].endAll).unix();
|
|
|
-
|
|
|
- if (endTime > startJTime) {
|
|
|
- z.ui.alertWarning(`序号为${i + 1}的截止时间小于序号为${j + 1}的起始时间,请重新输入`)
|
|
|
+ if (endTime > startJTime && startHm) {
|
|
|
+ z.ui.alertWarning(`序号为${i + 1}的截止时间小于等于序号为${j + 1}的起始时间,请重新输入`)
|
|
|
+ z.ui.laydate("[name='LeaveTimeDO[" + j + "]$startTime']").setValue('')
|
|
|
+ sTbody[j].children[1].children[0].children[1].children[0].children[0].value = ''
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ let timeObject = document.querySelector('#timeObject')
|
|
|
let days = sum / 7.5;
|
|
|
let leaveDaysText = ''
|
|
|
let parseIntNum = parseInt(days) //小数点前面数字
|
|
@@ -343,6 +364,7 @@
|
|
|
var trDom = document.createElement("tr");
|
|
|
trDom.style.backgroundColor = "#fff";
|
|
|
trDom.id = "qjsj_" + index;
|
|
|
+ trDom.className = 'qjsjClass'
|
|
|
trDom.innerHTML = '<td name="qjsj_seq">' + (index + 1) + '</td>'
|
|
|
+ '<td>'
|
|
|
+ '<div class="form-flex">'
|