yxh
2026-09-14 cdc47651d6aa723754f3609148b28a35220138bb
允许诊室有人也可以选择
已修改6个文件
已添加1个文件
179 ■■■■■ 文件已修改
src/assets/room/close.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/room/desk-doctor.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/room/doctor.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/room/open.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/components/RoomBedSelect/src/RoomBedSelect.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ecg/doctor/components/RoutinePanel.vue 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ecg/room/RoomLoginSelect.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/room/close.jpg

src/assets/room/desk-doctor.jpg
src/assets/room/doctor.png

src/assets/room/open.jpg

src/components/RoomBedSelect/src/RoomBedSelect.vue
@@ -64,20 +64,10 @@
          {{bedItem.opType === 2?"安装":""}}
        </div>
        <img
            v-if="bedItem.docId === null"
            src="@/assets/room/open.jpg"
            style="width: 100%"
            alt="无医生"
        />
        <img
            v-else
            src="@/assets/room/desk-doctor.jpeg"
            style="width: 100%"
            alt="有医生"
        />
        <img v-if="bedItem.docId === null" src="@/assets/room/open.jpg" style="width: 100%" alt="无医生" />
        <img v-else src="@/assets/room/desk-doctor.jpg" style="width: 100%" alt="有医生" />
        <div>{{bedItem.bedNo}} {{bedItem.docName}} {{bedItem.status === 30?"-暂停":""}}</div>
        <el-button v-if="bedItem.docId === null" @click = onHaveSeatclick(bedItem)>
        <el-button v-if="bedItem.docId == null || bedItem.docId != curUser.id" @click="onHaveSeatclick(bedItem)">
           入座
        </el-button>
        <div v-if="bedItem.docId === curUser.id">
@@ -123,5 +113,4 @@
  align-items: center;
  /*height: 260px;*/
}
</style>
src/views/ecg/doctor/components/RoutinePanel.vue
@@ -1,55 +1,67 @@
<!-- 常规检查 医生界面-->
<template>
  <el-form
    ref="formRef"
    :model="formData"
    :rules="formRules"
    label-width="100px"
    v-loading="formLoading"
  >
  <el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px" v-loading="formLoading">
    <el-row :gutter="20">
      <el-col :span="12">
      <el-col :span="6">
        <el-form-item label="患者编号" prop="patId">
          <el-input
            v-model="formData.patId"
            placeholder="请输入患者编号"
            @input="getRentInfoByPatId"
          />
          <!--        <Qrcode v-if="formData.patId !== undefined && formData.patId !== ''" :text="formData.patId" logo="/logo.gif" width=100 />-->
          <el-input v-model="formData.patId" placeholder="请输入患者编号" @input="getRentInfoByPatId" />
          <!--
          <Qrcode v-if="formData.patId !== undefined && formData.patId !== ''" :text="formData.patId" logo="/logo.gif" width=100 />
          <Barcode v-if="displayBarCode" :value="displayBarCode" :width="100" />
          <el-button @click="copyBarcode()">复制</el-button>
          -->
        </el-form-item>
      </el-col>
      <el-col :span="6">
        <el-form-item label="患者名称" prop="patName">
          <el-input v-model="formData.patName" placeholder="请输入患者名称" />
        </el-form-item>
        <el-form-item label="患者描述" prop="patDetails">
          <dict-tag
            v-if="formData.patDetails?.source"
            :type="DICT_TYPE.ECG_PAT_SOURCE"
            :value="formData.patDetails?.source"
          />
          {{ formData?.patDetails?.deptDesc }} {{ formData?.patDetails?.wardDesc }}
          {{ formData?.patDetails?.bedNo }}
        </el-form-item>
        <el-form-item label="检查时间" prop="rentTime">
          <el-date-picker
            v-model="formData.rentTime"
            type="date"
            value-format="x"
            placeholder="选择装机时间"
          />
        </el-col>
      <el-col :span="6">
        <el-form-item label="就诊编号" prop="episodeId">
          <el-input v-model="formData.episodeId" placeholder="请输入患者就诊编号" />
        </el-form-item>
      </el-col>
      <el-col :span="12">
      <el-col :span="6">
        <el-form-item label="联系电话" prop="episodeId">
          {{ formData?.patDetails?.mobile }}
        </el-form-item>
      </el-col>
    </el-row>
    <el-row>
      <el-col :span="6">
        <el-form-item label="申请单号" prop="applyNo">
          <el-input v-model="formData.applyNo" placeholder="请输入申请单号" />
        </el-form-item>
      </el-col>
      <el-col :span="18">
        <el-form-item label="科室病区" prop="patDetails">
          <dict-tag v-if="formData.patDetails?.source" :type="DICT_TYPE.ECG_PAT_SOURCE"
            :value="formData.patDetails?.source" />
          {{ formData?.patDetails?.deptDesc }}-{{ formData?.patDetails?.wardDesc }}-{{ formData?.patDetails?.bedNo }}
        </el-form-item></el-col>
    </el-row>
    <el-row>
      <el-col :span="6">
        <el-form-item label="检查时间" prop="rentTime">
          <el-date-picker v-model="formData.rentTime" type="date" value-format="x" placeholder="选择时间" />
        </el-form-item>
      </el-col>
      <el-col :span="6">
        <el-form-item label="检查项目" prop="">
          {{ formData?.checkType && getCheckTypeName(formData?.checkType) }}
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input v-model="formData.remark" placeholder="请输入备注" />
        </el-form-item>
      </el-col>
      <el-col :span="6">
        <el-form-item label="是否多耐" prop="tolerance">
          <el-tag type="info" v-if="formData.tolerance == 0">否</el-tag>
          <el-tag type="danger" v-else>是</el-tag>
        </el-form-item>
      </el-col>
      <el-col :span="6">
        <el-form-item label="备注" prop="remark">
          <el-input v-model="formData.remark" placeholder="请输入备注" />
        </el-form-item>
      </el-col>
    </el-row>
@@ -57,32 +69,14 @@
  <el-button @click="submitForm" type="primary" :disabled="formLoading">检查完成</el-button>
  <el-button @click="cancelInstall" :disabled="formLoading">放弃检查</el-button>
  <el-button @click="resetForm()">重 置</el-button>
  <el-button @click="yddownload()" :loading="yddownloadLoading"
    :disabled="yddownloadLoading">平板运动心电图知情同意书</el-button>
  <el-button @click="sgdownload()" :loading="sgdownloadLoading"
    :disabled="sgdownloadLoading">食管心脏电生理诊疗知情同意书</el-button>
  <el-button
    v-if="needAutoFeeConfirm(formData.checkType)"
    @click="feeConfirm"
    :disabled="formLoading"
    >确费</el-button
  >
  <el-button
    v-if="needAutoFeeConfirm(formData.checkType)"
    @click="feeCancel"
    :disabled="formLoading"
    >取消确费</el-button
  >
  <el-button @click="yddownload()" :loading="yddownloadLoading" :disabled="yddownloadLoading">平板运动心电图知情同意书</el-button>
  <el-button @click="sgdownload()" :loading="sgdownloadLoading" :disabled="sgdownloadLoading">食管心脏电生理诊疗知情同意书</el-button>
  <el-button v-if="needAutoFeeConfirm(formData.checkType)" @click="feeConfirm" :disabled="formLoading">确费</el-button>
  <el-button v-if="needAutoFeeConfirm(formData.checkType)" @click="feeCancel" :disabled="formLoading">取消确费</el-button>
  <!-- 医生装机列表 -->
  <ContentWrap>
    <el-table
      v-loading="loading"
      :data="list"
      :stripe="true"
      :show-overflow-tooltip="true"
      @row-click="onRowClick"
    >
    <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" @row-click="onRowClick">
      <!--      <el-table-column label="id" align="center" prop="id" />-->
      <el-table-column label="检查状态" align="center" prop="lost">
        <template #default="scope">
@@ -96,22 +90,10 @@
      <!--      <el-table-column label="设备编号" align="center" prop="devId" />-->
      <el-table-column label="患者编号" align="center" prop="patId" />
      <el-table-column label="患者名称" align="center" prop="patName" />
      <el-table-column
        label="作业时间"
        align="center"
        prop="jobTime"
        :formatter="dateFormatter"
        width="180px"
      />
      <el-table-column label="作业时间" align="center" prop="jobTime" :formatter="dateFormatter" width="180px" />
      <!--      <el-table-column label="作业概要" align="center" prop="summary" />-->
      <el-table-column label="备注" align="center" prop="remark" />
      <el-table-column
        label="创建时间"
        align="center"
        prop="createTime"
        :formatter="dateFormatter"
        width="180px"
      />
      <el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter" width="180px" />
      <!--
      <el-table-column label="操作" align="center" min-width="120px">
        <template #default="scope">
@@ -136,12 +118,8 @@
-->
    </el-table>
    <!-- 分页 -->
    <Pagination
      :total="total"
      v-model:page="queryParams.pageNo"
      v-model:limit="queryParams.pageSize"
      @pagination="getList"
    />
    <Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
      @pagination="getList" />
  </ContentWrap>
</template>
src/views/ecg/room/RoomLoginSelect.vue
@@ -213,18 +213,32 @@
}
const haveSeat = async (newRoomVO: RoomVO) => {
  ElMessageBox.confirm(
      '入座, 是否继续?',
      '提示',
      {
  // 1. 提取不同的提示语
  const message = newRoomVO.docId != null
    ? '已经有人了, 是否确定要继续入座?'
    : '入座, 是否继续?';
  try {
    // 2. 等待用户点击确认
    await ElMessageBox.confirm(message, '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }
  ).then(async () => {
    haveSeatConfirm(newRoomVO)
  }).catch(() => {
  });
    if (newRoomVO.docId != null) {
      await leaveSeatConfirm(newRoomVO);
    }
    // 4. 离座成功(或原本就没人),最后执行入座
    await haveSeatConfirm(newRoomVO);
  } catch (err) {
    // 只有用户主动点击取消时才忽略,其他报错可以打印出来方便排查
    if (err !== 'cancel') {
      console.error('入座流程异常:', err);
    }
  }
}
const leaveSeat = (roomVO: RoomVO) => {