|
|
@@ -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 {
|