From d5a65a1b470beab0c9b433fe18f676ce1f3aed0e Mon Sep 17 00:00:00 2001 From: Ranyunqiao <2499115710@qq.com> Date: Thu, 4 Jun 2026 13:28:38 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=A8=E8=AF=8A=E6=94=B6=E8=B4=B9=E7=AB=99?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A1=AB=E5=85=85=E4=BF=AE=E5=A4=8D=20?= =?UTF-8?q?=E7=A7=91=E5=AE=A4=E5=88=87=E6=8D=A2=E5=8A=9F=E8=83=BD=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PractitionerAppServiceImpl.java | 21 +++++++++++++++++++ .../src/layout/components/Navbar.vue | 3 +-- .../components/patientList.vue | 6 +++--- .../charge/outpatientregistration/index.vue | 4 ++-- 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java index 36b357658..3db6edb1b 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java @@ -8,8 +8,12 @@ import com.core.common.core.domain.R; import com.core.common.utils.AssignSeqUtil; import com.core.common.utils.ChineseConvertUtils; import com.core.common.utils.MessageUtils; +import com.core.common.core.domain.model.LoginUser; import com.core.common.utils.SecurityUtils; +import com.core.framework.web.service.TokenService; +import com.core.common.core.domain.model.LoginUserExtend; import com.core.system.service.ISysTenantService; +import com.core.system.service.ISysUserService; import com.openhis.administration.domain.BizUser; import com.openhis.administration.domain.BizUserRole; import com.openhis.administration.domain.Practitioner; @@ -62,6 +66,12 @@ public class PractitionerAppServiceImpl implements IPractitionerAppService { @Resource private AssignSeqUtil assignSeqUtil; + @Resource + private TokenService tokenService; + + @Resource + private ISysUserService userService; + /** * 新增用户及参与者 * @@ -508,6 +518,17 @@ public class PractitionerAppServiceImpl implements IPractitionerAppService { } iPractitionerService.updateById(practitioner); + + // 刷新 Redis 缓存中的 LoginUser,确保后续 getInfo 接口返回新科室信息 + LoginUser loginUser = SecurityUtils.getLoginUser(); + LoginUserExtend loginUserExtend = userService.getLoginUserExtend(loginUser.getUserId()); + if (loginUserExtend != null) { + loginUser.setOrgId(loginUserExtend.getOrgId()); + loginUser.getUser().setOrgId(loginUserExtend.getOrgId()); + loginUser.getUser().setOrgName(loginUserExtend.getOrgName()); + tokenService.refreshToken(loginUser); + } + return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[] {"切换科室"})); } diff --git a/openhis-ui-vue3/src/layout/components/Navbar.vue b/openhis-ui-vue3/src/layout/components/Navbar.vue index 74b52c7bc..1d08f6091 100755 --- a/openhis-ui-vue3/src/layout/components/Navbar.vue +++ b/openhis-ui-vue3/src/layout/components/Navbar.vue @@ -283,8 +283,7 @@ async function handleOrgSwitch(val) { }).then(async () => { try { await switchOrg(val); - permissionStore.setRoutes([]); - router.replace({path: '/redirect' + route.path}); + location.reload(); } catch (e) { // ignore } diff --git a/openhis-ui-vue3/src/views/charge/outpatientregistration/components/patientList.vue b/openhis-ui-vue3/src/views/charge/outpatientregistration/components/patientList.vue index 4467ace5b..17de5b2fb 100755 --- a/openhis-ui-vue3/src/views/charge/outpatientregistration/components/patientList.vue +++ b/openhis-ui-vue3/src/views/charge/outpatientregistration/components/patientList.vue @@ -66,7 +66,7 @@ watch( queryParams.value.searchKey = newValue; getList(); }, - { immdiate: true } + { immediate: true } ); getList(); @@ -77,8 +77,8 @@ function getList() { }); } -function clickRow(row) { - emit("selsectPatient", row); +function clickRow(params) { + emit("selsectPatient", params.row); } diff --git a/openhis-ui-vue3/src/views/charge/outpatientregistration/index.vue b/openhis-ui-vue3/src/views/charge/outpatientregistration/index.vue index a9efdfb58..758c01239 100755 --- a/openhis-ui-vue3/src/views/charge/outpatientregistration/index.vue +++ b/openhis-ui-vue3/src/views/charge/outpatientregistration/index.vue @@ -2065,8 +2065,8 @@ function loadCheckInPatientList() { } /** 弹窗行点击处理 */ -function selectRow(row) { - selectedCheckInPatient.value = row; +function selectRow(params) { + selectedCheckInPatient.value = params.row; } /** 确认签到(一键签到:直接构建挂号参数 → 预结算 → 弹收费窗口) */