Browse Source

优化电子病历保存

xiaochan 1 year ago
parent
commit
ced2e60a27

+ 49 - 0
src/components/xiao-chan/cy-message/CyMessage.vue

@@ -0,0 +1,49 @@
+<script setup lang="ts">
+</script>
+
+<template>
+  <div class="cy-message_body">
+    <div
+        style="position:absolute;height: 5px;width: 30px;border: 1px solid #a9f384;top: 10px;left: -10px;background-color: #d3f1c4;box-shadow: 0 0 10px rgb(0,153,184) inset,0 0 30px rgb(0,153,184);">
+
+    </div>
+    <div class="cy-message_icon">
+      <i class="el-icon el-message__icon el-message-icon--success">
+        <svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
+          <path fill="currentColor"
+                d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"></path>
+        </svg>
+      </i>
+    </div>
+
+    <div class="cy-message_content">
+      爱上降低空拉萨爱上降低空拉萨爱上降低空拉萨爱上降低空拉萨
+    </div>
+
+  </div>
+</template>
+
+<style lang="scss">
+.cy-message_body {
+  border-top: 1px solid #a9f384;
+  border-bottom: 1px solid #a9f384;
+  width: fit-content;
+  display: flex;
+  box-sizing: border-box;
+  padding: 5px 19px;
+  align-items: center;
+  //background-color: #f0f9eb;
+  position: relative;
+  background: linear-gradient(to right, #f0f9eb 0%, #d3f1c4 50%, #f0f9eb 100%);
+
+  .cy-message_icon {
+    color: #67c23a;
+    font-size: 16px;
+  }
+
+  .cy-message_content {
+    max-width: 220px;
+  }
+
+}
+</style>

+ 11 - 1
src/utils/request.js

@@ -79,7 +79,6 @@ service.interceptors.response.use(
                 grouping: true,
             })
         } else if (response.data.code > 2000 && response.data.code < 3000) {
-
             if (response.data.code === 2003) {
                 ElMessageBox.alert(response.data.message, '提示', {
                     type: 'error',
@@ -128,9 +127,20 @@ service.interceptors.response.use(
             })
             return Promise.reject(response.data.data)
         }
+
+        if (response.data.code > 7000 && response.data.code < 8000) {
+            ElMessageBox.alert(response.data.message, '提示', {
+                type: 'error',
+                confirmButtonText: '确定',
+            }).then(() => {
+            })
+            return Promise.reject(response.data)
+        }
+
         if (response.data.data) {
             return Promise.reject(response.data)
         }
+
         return Promise.reject(response.data.message || '服务器内部错误')
     },
     (error) => {

+ 22 - 12
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/EmrMain.vue

@@ -834,19 +834,12 @@ const clickSaveData = async () => {
     }
 
     insertEmrData(data).then(res => {
-      // 把提取到的数据放到 patientData 中.
-      extractData.value = res
-      Object.assign(patientData.value, res)
-      isEditorChange.value = false
-      emrSidebarRef.value.queryData()
-      // 如果是第一次创建就需要跳转
-      if (createId == null) {
-        createId = userInfoStore.value.code
-        emptyEditor()
+      replaceDataElement(res)
+      saveSuccessFunc()
+    }).catch((error) => {
+      if (error.code === 7002) {
+        saveSuccessFunc()
       }
-      xcMessage.success('保存成功')
-    }).catch(() => {
-      xcMessage.error('保存失败请重新保存')
     })
   }, (err) => {
     console.log(err)
@@ -854,6 +847,23 @@ const clickSaveData = async () => {
 
 }
 
+function saveSuccessFunc() {
+  isEditorChange.value = false
+  emrSidebarRef.value.queryData()
+  // 如果是第一次创建就需要跳转
+  if (createId == null) {
+    createId = userInfoStore.value.code
+    emptyEditor()
+  }
+  xcMessage.success('保存成功')
+}
+
+// 把提取到的数据放到 patientData 中.
+function replaceDataElement(data) {
+  extractData.value = data
+  Object.assign(patientData.value, data)
+}
+
 
 // 添加片段
 const clickToFillInData = (value) => {