Browse Source

前端页面优化

xiaochan 3 years ago
parent
commit
3537fa8288

+ 226 - 0
src/components/zhu-yuan-yi-sheng/hui-zhen-shen-qing/TianJiaHuiZhenShenQing.vue

@@ -0,0 +1,226 @@
+<template>
+  <el-dialog v-model="huiZhenShenQingDialog" title="会诊申请" top="15%">
+    <el-form label-width="100px" :model="huiZhenShenQing" ref="huiZhenShenQingForm" :rules="huiZhenShenQingRules">
+      <el-form-item label="会诊科室:" prop="reqDept1">
+        <el-select
+            v-model="huiZhenShenQing.huiZhenKeShi"
+            @change="huiZhenYiShengPanDuan"
+            placeholder="根据拼音首字母查找"
+            value-key="code"
+            filterable
+            clearable
+            remote
+            :remote-method="remoteMethodHuiZhenKeShi"
+        >
+          <el-option v-for="item in deptList" :key="item.code" :label="item.name"
+                     :value="{name:item.name,code:item.code,dept:'科室'}">
+            <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <span>{{ item.name }}</span>
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="会诊类别:" prop="hzLevel">
+        <el-select v-model="huiZhenShenQing.hzLevel" placeholder="请选择">
+          <el-option v-for="item in huiZhenLeiBieList" :key="item.code" :label="item.name" clearable
+                     :value="item.code"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="会诊级别:" prop="hzType">
+        <el-select v-model="huiZhenShenQing.hzType" placeholder="请选择"
+                   @change="huiZhenYiShengPanDuan" clearable
+                   :remote-method="remoteMethodHuiZhenKeShi">
+          <el-option v-for="item in huiZhenTypeList" :key="item.code" :label="item.name"
+                     :value="item.code"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="会诊医生:" prop="hzDoctor1">
+        <el-select v-model="huiZhenShenQing.hzDoctor1" filterable clearable>
+          <el-option v-for="item in huiZhenYiShengList" :key="item.code" :label="item.name"
+                     :value="item.code"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="病情简介:" prop="reqComment">
+        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="huiZhenShenQing.reqComment"></el-input>
+      </el-form-item>
+      <el-form-item label="目前主要诊断:" prop="hzZd">
+        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="huiZhenShenQing.hzZd"></el-input>
+      </el-form-item>
+      <el-form-item label="会诊目的:" prop="hzMd">
+        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="huiZhenShenQing.hzMd"></el-input>
+      </el-form-item>
+      <el-button type="success" @click="huiZhenShenQingClick" style="margin-left: 20px">申请</el-button>
+      <el-tag style="margin-left: 20px">申请人:{{ huiZhenShenQing.name }}</el-tag>
+      <el-tag style="margin-left: 20px">申请时间:{{ huiZhenShenQing.inputDate }}</el-tag>
+    </el-form>
+  </el-dialog>
+</template>
+
+<script>
+import {cptSex} from "@/utils/computed";
+import {onMounted, ref, unref, watch} from "vue";
+import {gethuiZhenLeiBie, huiZhenYiSheng, queryDept, submitHuiZhenShenQing} from "@/api/case-front-sheet";
+import {ElMessageBox} from "element-plus";
+import {huanZheXinXi, youWuXuanZheHuanZhe} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
+import {getDeptName} from "@/api/case-front-sheet/jie-shou-hui-zhen";
+import store from "@/store"
+import {getServerDateApi} from "@/api/public-api";
+
+export default {
+  name: "TianJiaHuiZhenShenQing",
+  setup() {
+    //会诊申请的字段
+    const huiZhenShenQing = ref({
+      inpatientNo: '', //住院号
+      admissTimes: '', //住院次数
+      reqTimes: '', //请求时间
+      reqComment: '', //请求简介
+      inputId: '', //输入人的id
+      inputDate: '', //输入的时间
+      reqDate: '', //请求的时间 和 上面那个一样
+      deptCode: '', //科室 code
+      wardCode: '', //病房 code 和上面的一样
+      reqDept1: '', //请求的 科室
+      reqDeptName: '', //请求科室的名字
+      statusFlag: '', // 状态标志 1 未读 2 已读
+      hzType: '', // 会诊的级别
+      hzLevel: '', // 会诊的类别
+      hzZd: '', //目前的主要诊断
+      hzMd: '', //会诊的目的
+      actOrderNo: '', //新开的医嘱号
+      hzDoctor1: '', //会诊的医生
+      name: '', // 申请人
+      huiZhenKeShi: {},
+    })
+
+    const huiZhenShenQingDialog = ref(false)
+    // 会诊医生
+    const huiZhenYiShengList = ref([])
+    // 科室
+    const deptList = ref([])
+    //会诊类别集合
+    const huiZhenLeiBieList = ref()
+    // 表格
+    const huiZhenShenQingForm = ref(null)
+    // 用户信息
+    const userInfo = store.state.user.info
+
+    //会诊医生判断 , 要会诊医生在这个科室的 才可以
+    const huiZhenYiShengPanDuan = (val) => {
+      if (val.dept) {
+        huiZhenShenQing.value.reqDeptName = val.name
+        huiZhenShenQing.value.reqDept1 = val.code
+      }
+      huiZhenShenQing.value.hzDoctor1 = null
+      if (huiZhenShenQing.value.reqDept1 && huiZhenShenQing.value.hzType) {
+        huiZhenYiSheng(huiZhenShenQing.value.reqDept1, huiZhenShenQing.value.hzType).then((res) => {
+          huiZhenYiShengList.value = res
+        })
+      } else {
+        huiZhenYiShengList.value = []
+      }
+    }
+
+    //远程搜索会诊科室
+    const remoteMethodHuiZhenKeShi = (val) => {
+      if (val !== '' && val.length > 1) {
+        queryDept(val)
+            .then((res) => {
+              deptList.value = res
+            })
+            .catch((error) => {
+              deptList.value = []
+            })
+      }
+    }
+
+    // 数据校验
+    const huiZhenShenQingRules = ref({
+      reqDept1: [{required: true, message: '会诊科室不能为空', trigger: 'change'}],
+      hzDoctor1: [{required: true, message: '会诊医生不能为空', trigger: 'change'}],
+      hzType: [{required: true, message: '会诊的级别不能为空', trigger: 'change'}],
+      hzLevel: [{required: true, message: '会诊的类别不能为空', trigger: 'change'}],
+      reqComment: [{required: true, message: '病情简介不能为空', trigger: 'blur'}],
+      hzZd: [
+        {required: true, message: '目前主要诊断不能为空', trigger: 'blur'},
+        {
+          min: 3,
+          max: 120,
+          message: '长度在 3 到 100 个字符',
+          trigger: 'blur',
+        },
+      ],
+      hzMd: [{required: true, message: '会诊目的不能为空', trigger: 'blur'}],
+    })
+
+
+    //点击申请
+    const huiZhenShenQingClick = async () => {
+      const form = unref(huiZhenShenQingForm)
+      if (!form) return
+      try {
+        await form.validate()
+        ElMessageBox.confirm('请认真审核申请信息', '提示', {
+          confirmButtonText: '确认',
+          cancelButtonText: '取消',
+          type: 'info',
+        })
+            .then(() => {
+              huiZhenShenQing.value.inpatientNo = huanZheXinXi.value.inpatientNo
+              huiZhenShenQing.value.admissTimes = huanZheXinXi.value.admissTimes
+              huiZhenShenQing.value.deptCode = huiZhenShenQing.value.wardCode = huanZheXinXi.value.zkWard
+              submitHuiZhenShenQing(huiZhenShenQing.value).then((res) => {
+                form.resetFields()
+                huiZhenShenQingDialog.value = false
+              })
+            })
+            .catch(() => {
+            })
+      } catch (error) {
+      }
+    }
+
+    watch(() => huiZhenShenQingDialog.value, () => {
+      if (huiZhenShenQingDialog.value) {
+        huiZhenShenQing.value.name = userInfo.name
+        getServerDateApi().then((res) => {
+          huiZhenShenQing.value.inputDate = res
+        })
+      } else {
+        huiZhenShenQingForm.value.resetFields()
+      }
+    })
+
+    onMounted(() => {
+      gethuiZhenLeiBie().then((res) => {
+        huiZhenLeiBieList.value = res
+      })
+    })
+
+    return {
+      cptSex,
+      huiZhenShenQing,
+      huiZhenShenQingDialog,
+      huiZhenYiShengPanDuan,
+      huiZhenYiShengList,
+      deptList,
+      remoteMethodHuiZhenKeShi,
+      huiZhenLeiBieList,
+      huiZhenTypeList,
+      huiZhenShenQingClick,
+      huiZhenShenQingRules,
+      huiZhenShenQingForm
+    }
+  }
+}
+
+let huiZhenTypeList = [
+  {code: 1, name: '主治医师'},
+  {code: 2, name: '副主任医生'},
+  {code: 3, name: '主任医生'},
+]
+</script>
+
+<style scoped>
+
+</style>

+ 0 - 2
src/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/HuanZheLieBiao.vue

@@ -50,7 +50,6 @@ import {
 import {
   huanZheXinXi,
   huanZhePinLvData,
-  xuanZheHuanZhe,
   selectWardCode
 } from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng"
 import maleIcon from '@/assets/male-icon.png'
@@ -104,7 +103,6 @@ export default {
       } else {
         huoQuHuanZheXinXi(inpatientNo.value).then((res) => {
           huanZheXinXi.value = res
-          xuanZheHuanZhe.value = true
           // 加载患者的频率
           huoQuGeRenPinLv(res.inpatientNo, res.admissTimes).then((res) => {
             huanZhePinLvData.value = res

+ 1 - 1
src/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/HuanZheXinXi.vue

@@ -103,7 +103,7 @@ export default {
   border-bottom: 1px solid;
 }
 
-.collapse-item-height >>> .el-collapse-item__header {
+:deep(.el-collapse-item__header) {
   height: 20px;
 }
 </style>

+ 0 - 0
src/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/TianJiaHuoXiuGaiYiZhu.vue → src/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/TianJiaYiZhu.vue


+ 8 - 4
src/icons/iconfont.css

@@ -1,18 +1,22 @@
 @font-face {
   font-family: "iconfont"; /* Project id 2473230 */
-  src: url('iconfont.woff2?t=1642471340159') format('woff2'),
-       url('iconfont.woff?t=1642471340159') format('woff'),
-       url('iconfont.ttf?t=1642471340159') format('truetype');
+  src: url('iconfont.woff2?t=1643421220698') format('woff2'),
+       url('iconfont.woff?t=1643421220698') format('woff'),
+       url('iconfont.ttf?t=1643421220698') format('truetype');
 }
 
 .iconfont {
-  font-family: "iconfont" !important;
+  font-family: "iconfont", serif !important;
   font-size: 16px;
   font-style: normal;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-huizhenshenqing:before {
+  content: "\e61a";
+}
+
 .icon-fuzhi:before {
   content: "\e8b0";
 }

BIN
src/icons/iconfont.ttf


BIN
src/icons/iconfont.woff


BIN
src/icons/iconfont.woff2


+ 1 - 1
src/views/clinic/triage/RoomScreen.vue

@@ -286,7 +286,7 @@ function getWindowSize() {
 #roomScreen {
   background: url('@/assets/room-screen.jpg');
 }
-:deep() .el-card__body {
+:deep(.el-card__body)  {
   padding: 15px 5px !important;
 }
 #doctorCard :deep() .el-card,

File diff suppressed because it is too large
+ 348 - 188
src/views/hospitalization/case-front-sheet/FillCaseFrontSheet.vue


+ 17 - 3
src/views/hospitalization/zhu-yuan-yi-sheng/HuiZhenShenQing.vue

@@ -1,13 +1,27 @@
 <template>
-  <el-container></el-container>
+  <el-container>
+    <el-header>
+      <el-button @click="tianJiaHuiZhen.huiZhenShenQingDialog = true">会诊申请</el-button>
+    </el-header>
+    <el-main></el-main>
+    <tian-jia-hui-zhen-shen-qing ref="tianJiaHuiZhen"></tian-jia-hui-zhen-shen-qing>
+  </el-container>
 </template>
 
 <script>
+
+import TianJiaHuiZhenShenQing from "@/components/zhu-yuan-yi-sheng/hui-zhen-shen-qing/TianJiaHuiZhenShenQing.vue";
+import {ref} from "vue";
+
 export default {
   name: "HuiZhenShenQing",
+  components: {TianJiaHuiZhenShenQing},
   setup() {
-    console.log("会诊申请")
-    return {}
+    const tianJiaHuiZhen = ref(null)
+
+    return {
+      tianJiaHuiZhen,
+    }
   }
 }
 </script>

+ 1 - 1
src/views/hospitalization/zhu-yuan-yi-sheng/YiZhuLuRu.vue

@@ -131,7 +131,7 @@ import {
 import {getDateRangeFormatDate} from "../../../utils/date";
 import store from '../../../store'
 import {stringIsBlank, stringNotBlank} from '../../../utils/blank-utils';
-import TianJiaHuoXiuGaiYiZhu from "../../../components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/TianJiaHuoXiuGaiYiZhu.vue";
+import TianJiaHuoXiuGaiYiZhu from "../../../components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/TianJiaYiZhu.vue";
 
 export default {
   name: "YiZhuLuRuZhuJian",

+ 0 - 1
src/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng.js

@@ -3,7 +3,6 @@ import {ref} from "vue";
 import {stringIsBlank} from "@/utils/blank-utils";
 import {ElMessage} from "element-plus";
 
-export const xuanZheHuanZhe = ref(false)
 // 获取患者的频率数据
 export const huanZhePinLvData = ref([])
 // 患者信息

Some files were not shown because too many files changed in this diff