Просмотр исходного кода

提前添加工作人员修改

HD_wangm 1 неделя назад
Родитель
Сommit
5fbe978071
1 измененных файлов с 85 добавлено и 27 удалено
  1. 85 27
      ygtx-ui/src/views/gxt/orderMyTodo/index.vue

+ 85 - 27
ygtx-ui/src/views/gxt/orderMyTodo/index.vue

@@ -402,6 +402,7 @@
                   @blur="handleTeamLeaderInputBlur"
                   @input="handleTeamLeaderInput"
                   @clear="handleTeamLeaderClear"
+                  :readonly="acceptRepairForm.overStopStatus == 2"
               >
               </el-input>
               <!-- 快速检索下拉框 -->
@@ -1474,6 +1475,9 @@ const userStore = useUserStore();
 // 显示搜索栏
 const showSearch = ref(true);
 
+// 初始化禁用状态为 false(单选框默认可用)
+const infoEntryDisabled = ref(false);
+
 // 加载状态
 const loading = ref(false);
 
@@ -2918,39 +2922,93 @@ function handleRepairOrderFinalize(row) {
                   for (const person of finalizeFormData.value.repairOrderPersonList) {
                     // 严格判断isLeader为1(兼容数字/字符串类型)
                     if (person.isLeader === 1 || person.isLeader === '1') {
-                      finalizeFormData.value.teamLeaderName = person.nickName;
-                      break; // 找到后立即停止循环
-                    }
-                  }
-                  const nickNames = finalizeFormData.value.repairOrderPersonList
-                      .filter(person => person.isLeader != 1)
-                      .map(person => person.nickName)
-                      .join(',');
-                  finalizeFormData.value.workGroupMemberName = nickNames
-                  finalizeFormData.value.repairOrderPersonList.map(person => {
-                    // 构造查询参数:username 和 nickName
-                    const queryParams = {
-                      userName: person.userName, // 假设person对象有username字段
-                      nickName: person.nickName  // 假设person对象有nickName字段
-                    };
-                    listUserData(queryParams).then(response => {
-                      debugger
-                      if (!response.total) {
-                        let msg = "已匹配到MIS工单,但工作班成员'" + person.nickName + "'在系统中不存在,系统无法自动结单,请检查"
-                        if (person.isLeader == 1) {
-                          msg = "已匹配到MIS工单,但工作负责人'" + person.nickName + "'在系统中不存在,系统无法自动结单,请检查"
-                        }
-                        ElMessageBox.confirm(msg, '提示', {
+                      if (finalizeFormData.value.overStopStatus == 2 && oldTeamLeaderName != person.nickName) {
+                        ElMessageBox.confirm("MIS工单工作负责人与手动选择的工作负责人不一致", '提示', {
                           confirmButtonText: '确定',
                           showCancelButton: false,
                           type: 'warning'
-                        }).then(function() {
+                        }).then(function () {
                           infoEntryDisabled.value = true
                         }).then(() => {
-                        }).catch(() => {})
+                        }).catch(() => {
+                        })
+                        break
+                      } else {
+                        finalizeFormData.value.teamLeaderName = person.nickName;
+                        break; // 找到后立即停止循环
                       }
-                    });
-                  })
+                    }
+                  }
+
+                  // 当 overStopStatus == 2 时,比对旧的 repairOrderPersonList 和新的 MIS 工单获取的 repairOrderPersonList
+                  if (finalizeFormData.value.overStopStatus == 2) {
+                    let hasDifference = false
+                    const newPersonList = finalizeFormData.value.repairOrderPersonList
+                    if (oldRepairOrderPersonList.value.length === 0) {
+                      // 旧列表为空,新列表不为空,存在差异
+                      hasDifference = true
+                    } else if (newPersonList.length !== oldRepairOrderPersonList.value.length) {
+                      // 列表长度不一致,存在差异
+                      hasDifference = true
+                    } else {
+                      // 比较每个人员的 nickName
+                      for (let newPerson of newPersonList) {
+                        const found = oldRepairOrderPersonList.value.some(oldPerson =>
+                            newPerson.nickName === oldPerson.nickName
+                        )
+                        if (!found) {
+                          hasDifference = true
+                          break
+                        }
+                      }
+                    }
+
+                    // 如果存在差异,提醒用户但不改变当前 repairOrderPersonList
+                    if (hasDifference) {
+                      // const newNames = newPersonList.map(p => p.nickName).join(',')
+                      // const oldNames = oldRepairOrderPersonList.value.map(p => p.nickName).join(',')
+                      ElMessageBox.confirm('MIS 工单人员列表与当前工单人员列表不一致!', '提示', {
+                        confirmButtonText: '确定',
+                        showCancelButton: false,
+                        type: 'warning'
+                      }).then(function () {
+                        infoEntryDisabled.value = true
+                      }).then(() => {
+                      }).catch(() => {
+                      })
+                    }
+                  } else {
+                    const nickNames = finalizeFormData.value.repairOrderPersonList
+                        .filter(person => person.isLeader != 1)
+                        .map(person => person.nickName)
+                        .join(',');
+                    finalizeFormData.value.workGroupMemberName = nickNames
+                    finalizeFormData.value.repairOrderPersonList.map(person => {
+                      // 构造查询参数:username 和 nickName
+                      const queryParams = {
+                        userName: person.userName, // 假设person对象有username字段
+                        nickName: person.nickName  // 假设person对象有nickName字段
+                      };
+                      listUserData(queryParams).then(response => {
+                        debugger
+                        if (!response.total) {
+                          let msg = "已匹配到MIS工单,但工作班成员'" + person.nickName + "'在系统中不存在,系统无法自动结单,请检查"
+                          if (person.isLeader == 1) {
+                            msg = "已匹配到MIS工单,但工作负责人'" + person.nickName + "'在系统中不存在,系统无法自动结单,请检查"
+                          }
+                          ElMessageBox.confirm(msg, '提示', {
+                            confirmButtonText: '确定',
+                            showCancelButton: false,
+                            type: 'warning'
+                          }).then(function () {
+                            infoEntryDisabled.value = true
+                          }).then(() => {
+                          }).catch(() => {
+                          })
+                        }
+                      });
+                    })
+                  }
                 }
               })
             } else {