浏览代码

重写手术管理

DESKTOP-MINPJAU\Administrator 3 年之前
父节点
当前提交
8dadd6d079
共有 2 个文件被更改,包括 193 次插入0 次删除
  1. 16 0
      src/api/surgical-management/surgery-arrangement.js
  2. 177 0
      src/views/surgical-management/SurgeryArrangement.vue

+ 16 - 0
src/api/surgical-management/surgery-arrangement.js

@@ -0,0 +1,16 @@
+import request from '../../utils/request'
+
+export function getASurgicalWard() {
+    return request({
+        url: '/surgeryArrangement/getASurgicalWard',
+        method: 'get',
+    })
+}
+
+export function huoQuShouShuAnPaiXinXi(data) {
+    return request({
+        url: '/surgeryArrangement/huoQuShouShuAnPaiXinXi',
+        method: 'post',
+        data
+    })
+}

+ 177 - 0
src/views/surgical-management/SurgeryArrangement.vue

@@ -0,0 +1,177 @@
+<template>
+  <el-container>
+    <el-header style="height: 30px">
+      病房:
+      <el-select v-model="queryParam.ward" clearable filterable>
+        <el-option v-for="item in wardList" :key="item.code" :label="item.name" :value="item.code"></el-option>
+      </el-select>
+      住院号:
+      <el-input v-model="queryParam.patNo" clearable style="width: 120px"></el-input>
+      状态:
+      <el-select v-model="queryParam.status" style="width: 80px">
+        <el-option v-for="item in statusList" :key="item.code" :label="item.name" :value="item.code"></el-option>
+      </el-select>
+      <el-date-picker v-model="dateRange" :shortcuts="shortcuts" end-placeholder="结束日期" range-separator="至"
+                      start-placeholder="开始日期" style="width: 220px" type="daterange"/>
+      <el-divider direction="vertical"/>
+      <el-radio-group v-model="queryParam.dateType">
+        <el-radio-button label="op_datetime">手术</el-radio-button>
+        <el-radio-button label="apply_date">申请</el-radio-button>
+      </el-radio-group>
+      <el-divider direction="vertical"/>
+      <el-checkbox v-model="queryParam.jzFlag">急诊</el-checkbox>
+      <el-divider direction="vertical"/>
+      <el-button icon="el-icon-search" type="primary" @click="clickQuery">查询</el-button>
+    </el-header>
+    <el-main>
+      <el-tag effect="dark" size="small" type="error">急诊:{{ jiZhenJiShu }}条</el-tag>
+      <el-tag effect="dark" size="small" type="success">普通:{{ shouShuData.length - jiZhenJiShu }}条</el-tag>
+      <el-table :data="shouShuData.slice((currentPage - 1) * pageSize,currentPage * pageSize)"
+                :height="window.h - 120"
+                :row-class-name="rowStyle"
+      >
+        <el-table-column label="手术编号" prop="recordId"></el-table-column>
+        <el-table-column label="日期" prop="opDatetime"></el-table-column>
+        <el-table-column label="送出时间" prop="applyDate"></el-table-column>
+        <el-table-column label="手术间" prop="roomName"></el-table-column>
+        <el-table-column label="手术台次" prop="sstc"></el-table-column>
+        <el-table-column label="病房" prop="wardName"></el-table-column>
+        <el-table-column label="床号" prop="bedNo"></el-table-column>
+        <el-table-column label="住院号" prop="inpatientNo"></el-table-column>
+        <el-table-column label="姓名" prop="patientName"></el-table-column>
+        <el-table-column label="年龄" prop="age"></el-table-column>
+        <el-table-column label="性别" prop="sex"></el-table-column>
+        <el-table-column label="取消" prop="cancelId">
+          <template #default="scope">
+            {{ scope.row.cancelId }}
+          </template>
+        </el-table-column>
+        <el-table-column label="诊断" prop="diagBeforeCode"></el-table-column>
+        <el-table-column label="手术名称" prop="opName"></el-table-column>
+        <el-table-column label="麻醉方式" prop="hocusName"></el-table-column>
+        <el-table-column label="麻醉医生" prop="doctorMzYsName"></el-table-column>
+        <el-table-column label="麻醉护士" prop="doctorMzHsName"></el-table-column>
+        <el-table-column label="手术医生" prop="doctorZdName"></el-table-column>
+        <el-table-column label="实际手术医生" prop="applyDate"></el-table-column>
+        <el-table-column label="机械护士" prop="nurseQxName"></el-table-column>
+        <el-table-column label="巡回护士" prop="nurseXhName"></el-table-column>
+        <el-table-column label="申请医生" prop="applyDocName"></el-table-column>
+        <el-table-column label="分类" prop="urgentClinicFlag">
+          <template #default="scope">
+            <span v-if="scope.row.urgentClinicFlag === '1'">急诊</span>
+            <span v-else>择期</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="手术班次" prop="ssbcName"></el-table-column>
+        <el-table-column label="级别" prop="opScaleName"></el-table-column>
+        <el-table-column label="体外标志" prop="twFlag">
+          <template #default="scope">
+            <span v-if=" scope.row.twFlag === '1'">
+              <el-tag>√</el-tag>
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+      </el-table>
+      <el-pagination
+          :current-page="currentPage"
+          :page-size="pageSize"
+          :total="shouShuData.length"
+          layout=" total,prev, pager, next"
+          @current-change="handleCurrentChange"
+      ></el-pagination>
+    </el-main>
+  </el-container>
+</template>
+
+<script name="SurgeryArrangement" setup>
+import {getASurgicalWard, huoQuShouShuAnPaiXinXi} from "@/api/surgical-management/surgery-arrangement";
+import {shortcuts} from '@/data/shortcuts.js'
+import {getDateRangeFormatDate} from "@/utils/date";
+import {listIsBlank, stringNotBlank} from "@/utils/blank-utils";
+import store from '@/store'
+import {ElMessage} from "element-plus";
+
+const window = computed(() => {
+  return store.state.app.windowSize
+})
+
+let currentPage = $ref(1)
+let pageSize = $ref(20)
+let jiZhenJiShu = $ref(0)
+
+let wardList = $ref([])
+let statusList = $ref([
+  {code: 1, name: '申请'},
+  {code: 2, name: '安排'},
+  {code: 3, name: '取消'},
+  {code: 4, name: '全部'},
+])
+let dateRange = $ref([shortcuts[0].value[0], shortcuts[0].value[1]])
+let queryParam = $ref({
+  ward: '',
+  patNo: '',
+  status: 4,
+  startTime: '',
+  endTime: '',
+  dateType: 'op_datetime', // applyDate 日期类型是手术日期还是申请日期
+  jzFlag: false
+})
+
+let shouShuData = $ref([])
+
+const clickQuery = () => {
+  if (listIsBlank(dateRange)) {
+    ElMessage.error("请先输入日期")
+    return
+  }
+  let dateS = getDateRangeFormatDate(dateRange)
+  queryParam.startTime = dateS.startTime
+  queryParam.endTime = dateS.endTime
+  huoQuShouShuAnPaiXinXi(queryParam).then((res) => {
+    console.log(res)
+    shouShuData = res
+    jiZhenJiShu = 0
+    shouShuData.forEach(item => {
+      if (stringNotBlank(item.urgentClinicFlag)) {
+        if (item.urgentClinicFlag === '1') {
+          jiZhenJiShu++
+        }
+      }
+    })
+  })
+}
+
+const rowStyle = ({row, rowIndex}) => {
+  if (stringNotBlank(row.urgentClinicFlag)) {
+    if (row.urgentClinicFlag === '1') {
+      return 'error'
+    } else if (row.urgentClinicFlag === '0') {
+      return 'success'
+    }
+  }
+}
+
+const handleCurrentChange = (val) => {
+  currentPage = val
+}
+
+onMounted(() => {
+  getASurgicalWard().then((res) => {
+    wardList = res
+  })
+  clickQuery()
+})
+
+</script>
+
+<style>
+.el-table .error {
+  background-color: #fa7c7c;
+}
+
+.el-table .success {
+  background-color: #72c449;
+}
+
+</style>