'editingEmployee' : function(newVal, oldVal) {
console.log(newVal)
// this.employeeHistory = newVal.employeeHistory
// console.log(newVal.employeeHistory);
this.employeeHistory = []
let channel = -1;
if (newVal.employeeHistory != undefined) {
newVal.employeeHistory.forEach((eachData, index) => {
// if (eachData.verifystatus === 0 || eachData.verifystatus == 1 && eachData.channel != channel) {
if (eachData.channel != channel && eachData.verifystatus != 2 && eachData.verifystatus != 9) {
channel = eachData.channel;
if (eachData.retireDate != '' && eachData.retireDate != null && eachData.retireDate != undefined) {
eachData.endDate = eachData.retireDate
} else {
if (index === 0 || this.employeeHistory.length === 0) {
eachData.endDate = ''
} else {
// let dateTem = new Date(newVal.employeeHistory[index-1].employDate);
let dateTem = new Date(this.employeeHistory[this.employeeHistory.length-1].employDate);
dateTem.setTime(dateTem.getTime()-24*60*60*1000);
eachData.endDate = dateTem;
}
}
this.employeeHistory.push(eachData);
}
});
}
这段代码定义了一个名为 editingEmployee
的函数,它接收两个参数:newVal
和 oldVal
。这个函数的目的是处理员工的历史记录,并将其存储在 this.employeeHistory
数组中。以下是代码的详细解释:
-
console.log(newVal)
: 打印出传入的newVal
对象,这通常用于调试目的,以便查看newVal
的内容。 -
this.employeeHistory = []
: 初始化this.employeeHistory
为空数组,这意味着开始时没有任何员工历史记录。 -
let channel = -1;
: 定义一个变量channel
并初始化为-1
,这个变量可能用于追踪不同的渠道或部门。 -
if (newVal.employeeHistory != undefined) { ... }
: 检查newVal
对象是否有一个名为employeeHistory
的属性,并且这个属性不是undefined
。 -
newVal.employeeHistory.forEach((eachData, index) => { ... })
: 如果employeeHistory
存在,使用forEach
方法遍历employeeHistory
数组中的每个元素(每个员工的记录)。 -
if (eachData.channel != channel && eachData.verifystatus != 2 && eachData.verifystatus != 9) { ... }
: 对于每个员工记录,检查当前记录的渠道是否与之前记录的不同,并且验证状态不是2
或9
。这可能是为了排除某些特定的记录,例如已经退休或无效的员工记录。 -
channel = eachData.channel;
: 如果条件满足,更新channel
变量为当前记录的渠道。 -
if (eachData.retireDate != '' && eachData.retireDate != null && eachData.retireDate != undefined) { ... }
: 检查员工的退休日期是否存在且有效。 -
eachData.endDate = eachData.retireDate
: 如果员工有退休日期,则将该日期设置为员工的结束日期。 -
else { ... }
: 如果员工没有退休日期,那么需要计算结束日期。 -
if (index === 0 || this.employeeHistory.length === 0) { eachData.endDate = '' }
: 如果这是第一个记录或者employeeHistory
数组为空,则设置结束日期为空字符串。 -
else { ... }
: 如果不是第一个记录,计算上一个记录的雇佣日期减去一天作为当前记录的结束日期。 -
eachData.endDate = dateTem;
: 将计算出的结束日期赋值给当前员工的记录。 -
this.employeeHistory.push(eachData);
: 将处理后的员工记录添加到employeeHistory
数组中。
整体来看,这个函数的目的是清理和整理员工的历史记录,确保每个记录都有正确的结束日期,并且只包含有效的员工记录。这可能是在一个员工信息管理系统中使用,以确保历史数据的准确性和一致性。