yxh
yxh
6 天以前 09dc74e264b6262cbe41c9c8476e24705871d4a6
src/store/modules/user.ts
@@ -3,7 +3,6 @@
import { getAccessToken, removeToken } from '@/utils/auth'
import { CACHE_KEY, useCache, deleteUserCache } from '@/hooks/web/useCache'
import { getInfo, loginOut } from '@/api/login'
import { releaseBedOnExit } from '@/utils/releaseBed'
const { wsCache } = useCache()
@@ -80,11 +79,14 @@
      wsCache.set(CACHE_KEY.USER, userInfo)
    },
    async loginOut() {
      // 先释放诊疗床位(医生常在「诊室选择」页占了床位就直接退出系统)。
      // 后端 `/system/auth/logout` 内部虽然也会离座,但:
      //   ① 若该请求失败/网络中断,床位就留在占用状态;
      //   ② 本接口失败也不会阻断退出流程(releaseBedOnExit 内部已兜底)。
      await releaseBedOnExit('manual-logout')
      // 【本需求·选 B】退出登录**不再释放工位**。
      //
      // 为什么:
      //   ① 一人多工位后,同一医生可能同时在多台电脑上各操作一个岗位 ——
      //      其中一台退出登录若按 userId 释放"全部工位",会把另一台正在用的岗位也清掉;
      //   ② 工位释放改为三种明确途径:医生点「离座」;闭诊统一清空;
      //      管理员「清空工位」/ 接班医生「接管」(`POST /clinic/room/take-over-bed`)。
      // 原先这里调用 `releaseBedOnExit('manual-logout')` → `/ecg/doctor/release-my-beds`。
      await loginOut()
      removeToken()
      deleteUserCache() // 删除用户缓存