| 
					
				 | 
			
			
				@@ -398,7 +398,6 @@ const emrSnippetRef = ref(null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let loaded = $ref(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 是否 改变了数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let isEditorChange = $ref(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 是否开启审阅模式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let reviewMode = $ref(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 跳转定位 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -476,7 +475,7 @@ const emrEvent = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 判断是否只读 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     readonlyPattern() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 每一个病历只能一个人编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    editJudgment() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    await editJudgment() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   'contentchange': (event) => { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -554,30 +553,35 @@ const editJudgment = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (stringIsBlank(documentId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (categoryCode.includes('shoucibingchengjilu')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    currentEditorUser = await lockMedicalRecords(documentId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (currentEditorUser === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      xcMessage.success('可以编辑') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ElMessageBox.alert(`【${currentEditorUser.name}】正在编辑当前病历,请医生先退出病历后才能编辑。`, '提示', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        type: 'error', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        dangerouslyUseHTMLString: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      editor.setEditorMode('readonly') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (readonlyPattern()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    currentEditorUser = await lockMedicalRecords(documentId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (currentEditorUser === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      xcMessage.success('可以编辑') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  await emrSocket.value.medicalRecordSwitching(userData.name + '正在编辑或查看【' + templateName + '】病历') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 判断当前是否可以编辑病历 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (emrConfig.value.editor) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 因为病程记录谁都可以编写所以。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (categoryCode.includes('shoucibingchengjilu')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      currentEditorUser = await lockMedicalRecords(documentId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (currentEditorUser === null || currentEditorUser.code === userData.code) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xcMessage.success('可以编辑') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        await ElMessageBox.alert(`【${currentEditorUser.name}】正在编辑当前病历,请医生先退出病历后才能编辑。`, '提示', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type: 'error', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          dangerouslyUseHTMLString: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        editor.setEditorMode('readonly') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ElMessageBox.alert(`【${currentEditorUser.name}】正在编辑当前病历,请医生先退出病历后才能编辑。`, '提示', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        type: 'error', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        dangerouslyUseHTMLString: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      editor.setEditorMode('readonly') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (readonlyPattern()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      currentEditorUser = await lockMedicalRecords(documentId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (currentEditorUser === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        xcMessage.success('可以编辑') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        await ElMessageBox.alert(`【${currentEditorUser.name}】正在编辑当前病历,请医生先退出病历后才能编辑。`, '提示', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type: 'error', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          dangerouslyUseHTMLString: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        editor.setEditorMode('readonly') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   readonlyPattern() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -821,14 +825,6 @@ const positioningTime = (val, code) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const monitorPageRefresh = (event) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (isEditorChange) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    event.preventDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    clearMedicalRecordEditorUser(documentId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    event.returnValue = "是否确实要退出?还有未保存的数据!"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 点击插入片段 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @param content 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1360,6 +1356,27 @@ const autoSaveFunc = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 拦截 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param event 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const monitorPageRefresh = (event) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (readonlyPattern()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    isEditorChange = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (isEditorChange) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    event.preventDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    event.returnValue = "是否确实要退出?还有未保存的数据!"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 用户刷新且点击了,确定后把锁释放 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const unload = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  clearMedicalRecordEditorUser(documentId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 onMounted(async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   autoSave = store.state.app.emrAutosave; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1375,7 +1392,9 @@ onMounted(async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   doctorLevelFunc() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   emrRef.value.parentElement.emr = currentEmr.value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   window.addEventListener('beforeunload', monitorPageRefresh, {capture: true}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  window.addEventListener('unload', unload, {capture: true}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   getWardsApi().then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (res.length > 0) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1390,9 +1409,10 @@ onMounted(async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 onDeactivated(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   clearInterval(interval) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   window.removeEventListener('beforeunload', monitorPageRefresh, {capture: true}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  window.removeEventListener('unload', unload, {capture: true}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  unload() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 onBeforeRouteLeave((to, from, next) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   checkEmrChange(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     next(); 
			 |