xiaochan пре 1 година
родитељ
комит
5e160fb77f

+ 1 - 2
src/router/createNode.js

@@ -1,7 +1,6 @@
 // 1. 用于解决keep-alive需要name的问题,动态生成随机name供keep-alive使用
 // 2. 用于解决transition动画内部结点只能为根元素的问题,单文件可写多结点
-import {defineComponent, h, createVNode, ref} from 'vue'
-import reload from './reload.vue'
+import {defineComponent, h, createVNode} from 'vue'
 
 export function createNameComponent(component, componentName) {
     return () => {

+ 15 - 0
src/utils/public.ts

@@ -2,6 +2,7 @@
 import {xcMessage} from "./xiaochan-element-plus";
 import XEUtils, {isFunction, isObject} from "xe-utils";
 import {useUserStore} from "@/pinia/user-store";
+import {LocationQueryValue} from "vue-router";
 
 export function needRule(...val: number[]) {
     const userRoles = useUserStore().userInfo.roles
@@ -71,6 +72,20 @@ export const chineseEncrypt = {
     }
 }
 
+export const windowBtoaAndAtob = {
+    btoa(data: any) {
+        if (XEUtils.isString(data)) {
+            return window.btoa(data)
+        } else {
+            return window.btoa(JSON.stringify(data))
+        }
+    },
+    atob<T>(data: any): T | null {
+        if (!XEUtils.isString(data)) return null
+        return JSON.parse(window.atob(data));
+    }
+}
+
 export let copyStrFunc = (val: any) => {
     if (navigator.clipboard) {
         copyStrFunc = (val) => {

+ 4 - 5
src/views/hospitalization/case-front-sheet/JieShouHuiZhen.vue

@@ -89,6 +89,7 @@ import {operations} from "@/data";
 import {autopsies, haveOrNot, yesOrNo} from "@/views/hospitalization/case-front-sheet/common";
 import {useUserStore} from "@/pinia/user-store";
 import {useCompRef} from "@/utils/useCompRef";
+import {chineseEncrypt, windowBtoaAndAtob} from "@/utils/public";
 
 
 const userInfo = useUserStore().userInfo
@@ -201,11 +202,9 @@ const enterMedicalOrder = () => {
   } else {
     router.push({
       name: 'yiZhuLuRu',
-      params: {
-        inpatientNo: huanZheXinXi.value.inpatientNo,
-        admissTimes: huanZheXinXi.value.admissTimes,
-        consultation: true
-      }
+      query: {
+        huiZhen: windowBtoaAndAtob.btoa({inpatientNo: huanZheXinXi.value.inpatientNo})
+      },
     })
   }
 }

+ 7 - 5
src/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/YiZhuLuRu.vue

@@ -68,7 +68,7 @@ import {nextTick, onActivated, onMounted, ref} from 'vue'
 import {CyMessageBox} from "@/components/cy/message-box";
 import YzTableV3 from "@/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/components/table/YzTableV3.vue";
 import doctorStore, {YzSidebarEnum} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/useDoctorStore";
-import {isDev} from "@/utils/public";
+import {isDev, windowBtoaAndAtob} from "@/utils/public";
 
 const allergen = ref({
   dialog: false,
@@ -306,10 +306,12 @@ onMounted(async () => {
 })
 
 onActivated(async () => {
-  if (router.currentRoute.value.params.inpatientNo) {
-    await nextTick()
-    await clickOnThePatient(<string>router.currentRoute.value.params.inpatientNo);
-    await yzMitt.emit('queryYz')
+  if (router.currentRoute.value.query.huiZhen) {
+    const info = windowBtoaAndAtob.atob<{ inpatientNo: string }>(router.currentRoute.value.query.huiZhen)
+    await nextTick();
+    await clickOnThePatient(info!.inpatientNo);
+    await yzMitt.emit('queryYz');
+    router.replace(router.currentRoute.value.path)
   }
   doctorStore.setYzSidebar(YzSidebarEnum.PATIENT_LIST);
 })

+ 1 - 0
src/views/system/JumpRedirect.vue

@@ -72,6 +72,7 @@ async function loginFunc() {
   try {
     localStorage.clear()
     const userInfo = await simpleLogin(info.code)
+    localStorage.clear()
     userStore.setUserInfo(userInfo)
   } catch (e) {
     console.error(e)

+ 2 - 5
src/views/system/login.vue

@@ -53,7 +53,6 @@
 <script setup>
 import {systemTitle} from '@/config'
 import {reactive} from 'vue'
-import {useRoute, useRouter} from 'vue-router'
 import {ElInput, ElButton} from 'element-plus'
 import {closeWebSocket} from '@/utils/websocket'
 import {isDev, SYSTEM_CONFIG} from '@/utils/public'
@@ -64,9 +63,8 @@ import setDialogToJs from "@/components/js-dialog-comp/useDialogToJs";
 import ForgotPassword from "@/views/system/forgot-password/ForgotPassword.vue";
 import {loginApi} from "@/api/login";
 import {useUserStore} from "@/pinia/user-store";
+import router from "@/router";
 
-const router = useRouter()
-const route = useRoute()
 const showPwd = ref(false)
 
 const form = reactive({
@@ -92,14 +90,13 @@ const submit = () => {
   loginApi(params).then((res) => {
     localStorage.clear()
     userStore.setUserInfo(res)
-    localStorage.removeItem('tabs')
     if (!checkPasswordStrength(params.password) && !isDev) {
       changePassword(false).then(newPassword => {
         form.password = newPassword
         submit()
       })
     } else {
-      router.push(route.query.redirect || '/')
+      router.push('/dashboard')
     }
   })
 }