yxh
yxh
8 天以前 09dc74e264b6262cbe41c9c8476e24705871d4a6
src/permission.ts
@@ -55,7 +55,31 @@
    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') + '),按"可围观"放行')