Jelajahi Sumber

修改调班成功后换班逻辑

zhonghuizhen 1 tahun lalu
induk
melakukan
b159672bc2
1 mengubah file dengan 40 tambahan dan 7 penghapusan
  1. 40 7
      src/views/business/​scheduleManage/adjustVerify.vue

+ 40 - 7
src/views/business/​scheduleManage/adjustVerify.vue

@@ -592,16 +592,49 @@ export default {
                 const { staffScheduleDetailPoList, startDate } = response.data
                 data.adjustmentDetailPoList.forEach(async (el) => {
                     const userId = el.createBy
-                    const partyId = el.party
                     const userResIndex = staffScheduleDetailPoList.findIndex(item => item.userId === userId) // 获取调班人的排班详情
-                    const partyResIndex = staffScheduleDetailPoList.findIndex(item => item.userId === partyId) // 获取目标人的排班详情
-                    // 修改调班人排班数据
-                    const index = this.getDays(startDate, el.beforeDate) // 计算得出是d几天
-                    staffScheduleDetailPoList[userResIndex][`d${index + 1}`] = staffScheduleDetailPoList[userResIndex][`d${index + 1}`].replace(el.beforeAdjust, el.afterAdjust)
                     if (data.type !== 'paiban') {
+                        const partyId = el.party
+                        const partyResIndex = staffScheduleDetailPoList.findIndex(item => item.userId === partyId) // 获取目标人的排班详情
+                        // 修改调班人排班数据
+                        const index = this.getDays(startDate, el.afterDate) // 计算得出是d几天
+                        staffScheduleDetailPoList[userResIndex][`d${index + 1}`] = staffScheduleDetailPoList[userResIndex][`d${index + 1}`].concat(',' + el.afterAdjust) // 申请人目标日期改变
+                        const partyIndex = this.getDays(startDate, el.beforeDate) // 计算得出是d几天
+                        const beforeAdjustList = el.beforeAdjust.split(',')
+                        beforeAdjustList.forEach((item, i) => {
+                            if (i === (beforeAdjustList.length - 1)) {
+                                staffScheduleDetailPoList[userResIndex][`d${partyIndex + 1}`] = staffScheduleDetailPoList[userResIndex][`d${partyIndex + 1}`].replace(item, '') // 申请人申请日期除去原来的班次
+                            } else { // 当不在最后一项时,把附带的逗号也除去
+                                staffScheduleDetailPoList[userResIndex][`d${partyIndex + 1}`] = staffScheduleDetailPoList[userResIndex][`d${partyIndex + 1}`].replace(item + ',', '') // 申请人申请日期除去原来的班次和逗号
+                            }
+                        })
                         // 修改目标人排班数据
-                        const partyIndex = this.getDays(startDate, el.afterDate) // 计算得出是d几天
-                        staffScheduleDetailPoList[partyResIndex][`d${partyIndex + 1}`] = staffScheduleDetailPoList[partyResIndex][`d${partyIndex + 1}`].replace(el.afterAdjust, el.beforeAdjust)
+                        staffScheduleDetailPoList[partyResIndex][`d${partyIndex + 1}`] = staffScheduleDetailPoList[partyResIndex][`d${partyIndex + 1}`].concat(',' + el.beforeAdjust)// 调班人申请日期改变
+                        const afterAdjustList = el.afterAdjust.split(',')
+                        afterAdjustList.forEach((item, i) => {
+                            if (i === (afterAdjustList.length - 1)) {
+                                staffScheduleDetailPoList[partyResIndex][`d${index + 1}`] = staffScheduleDetailPoList[partyResIndex][`d${index + 1}`].replace(item, '')// 调班人目标日期除去原来班次
+                            } else {
+                                staffScheduleDetailPoList[partyResIndex][`d${index + 1}`] = staffScheduleDetailPoList[partyResIndex][`d${index + 1}`].replace(item + ',', '')// 调班人目标日期除去原来班次和逗号
+                            }
+                        })
+                    } else {
+                        // 排版变更
+                        const index = this.getDays(startDate, el.afterDate) // 计算得出是d几天
+                        const partyIndex = this.getDays(startDate, el.beforeDate) // 计算得出是d几天
+                        if (staffScheduleDetailPoList[userResIndex][`d${index + 1}`] !== '') {
+                            staffScheduleDetailPoList[userResIndex][`d${index + 1}`] = staffScheduleDetailPoList[userResIndex][`d${index + 1}`].concat(',' + el.afterAdjust) // 申请人目标日期改变
+                        } else {
+                            staffScheduleDetailPoList[userResIndex][`d${index + 1}`] = el.afterAdjust
+                        }
+                        const beforeAdjustList = el.beforeAdjust.split(',')
+                        beforeAdjustList.forEach((item, i) => {
+                            if (i === (beforeAdjustList.length - 1)) {
+                                staffScheduleDetailPoList[userResIndex][`d${partyIndex + 1}`] = staffScheduleDetailPoList[userResIndex][`d${partyIndex + 1}`].replace(item, '') // 申请人申请日期除去原来的班次
+                            } else { // 当不在最后一项时,把附带的逗号也除去
+                                staffScheduleDetailPoList[userResIndex][`d${partyIndex + 1}`] = staffScheduleDetailPoList[userResIndex][`d${partyIndex + 1}`].replace(item + ',', '') // 申请人申请日期除去原来的班次和逗号
+                            }
+                        })
                     }
                 })
                 // 保存修改后的排班