| | |
| | | if (res.seated) { |
| | | return true |
| | | } |
| | | // 【主/围观·本次需求】没自动入座也**不再强制跳"选工位页"**: |
| | | |
| | | // 【本需求】本机 IP 对应的工位**有人坐着**(上一班医生没退出工位)→ 提示是否接管。 |
| | | // 接管后立即成为该工位主人,并按现有逻辑自动加载该工位「就诊中」患者。 |
| | | if (res.reason === 'occupied' && res.roomId != null && res.bedNo) { |
| | | const bedText = `${res.roomName || '诊室' + res.roomId} · ${res.bedNo}` |
| | | try { |
| | | await ElMessageBox.confirm( |
| | | `本机对应的工位「${bedText}」当前由「${res.occupiedBy || '其他医生'}」占用。\n` + |
| | | `是否接管该工位继续工作?(接管后对方将被强制离座)`, |
| | | '工位被占用', |
| | | { confirmButtonText: '接管工位', cancelButtonText: '先不接管(只读围观)', type: 'warning' } |
| | | ) |
| | | const ok = await roomStore.takeOverBed(res.roomId, res.bedNo) |
| | | if (ok) { |
| | | ElMessage.success(`已接管工位:${bedText}`) |
| | | return true |
| | | } |
| | | ElMessage.warning('接管失败,已按只读围观进入(可稍后在顶栏「工位」里再试)') |
| | | } catch { |
| | | // 用户选择不接管 → 按只读围观进入 |
| | | console.info('[room] 用户放弃接管工位,按只读围观进入') |
| | | } |
| | | } |
| | | |
| | | // 【主/围观】没自动入座也**不再强制跳"选工位页"**: |
| | | // 允许以"未入座 / 围观"身份进入工作台(只读),由工作台顶部的「工位」下拉 |
| | | // 选择要查看(围观)或要入座的工位。若一律弹回选工位页,就永远无法围观别人。 |
| | | console.info('[room] 未自动入座(' + (res.reason || 'nomatch') + '),按"可围观"放行') |