eight
2024-11-28 d0c98269795e8f5656eb5c509e3d9d286206ac19
排队中 允许 过号操作
已修改3个文件
127 ■■■■■ 文件已修改
src/api/ecg/doctor/index.ts 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/statusFormatter.ts 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ecg/queue/index.vue 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/ecg/doctor/index.ts
@@ -114,6 +114,16 @@
    return await request.get({ url: `/ecg/doctor/get-dev-install-statistic`, params })
  },
  // 过号 [排队中] 患者
  passWaitingPatient: async (params: PatientVO) => {
    return await request.get({ url: `/ecg/doctor/pass-waiting-patient`, params })
  },
  // 召回 [过号-排队中] 患者
  recallPassWaitingPatient: async (params: PatientVO) => {
    return await request.get({ url: `/ecg/doctor/recall-pass-waiting-patient`, params })
  },
  // 召回过号患者
  recallPatient: async (params: PatientVO) => {
    return await request.get({ url: `/ecg/doctor/recall-patient`, params })
src/utils/statusFormatter.ts
@@ -20,7 +20,9 @@
 * 叫号屏使用
 */
export const queueStatusConvert = (status: number) => {
  if (5 === status)
  if (3 === status)
    return '已过号-排队';
  else if (5 === status)
    return '已过号';
  else if (7 === status)
    return '已过号-安装';
src/views/ecg/queue/index.vue
@@ -130,6 +130,55 @@
  <!-- 列表 -->
  <ContentWrap>
    <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
      <el-table-column label="操作" align="center" min-width="120px">
        <template #default="scope">
<!--          <el-button
              link
              type="primary"
              @click="openAppointmentForm('preview', scope.row.patId, scope.row.bookCheckType)"
              v-hasPermi="['ecg:appointment:preview']"
          >
            查看
          </el-button>-->
          <!--
                    <el-button
                      link
                      type="danger"
                      @click="handleDelete(scope.row.id)"
                      v-hasPermi="['ecg:queue:delete']"
                    >
                      删除
                    </el-button>
          -->
          <el-button
              link
              type="danger"
              @click="handleJump(scope.row)"
              v-if="scope.row.status === 10"
              v-hasPermi="['ecg:queue:jump']"
          >
            {{scope.row.jumpFlag === 0? "加急" : "取消加急"}}
          </el-button>
          <el-button
              link
              type="danger"
              @click="recall(scope.row)"
              v-if="scope.row.status === 3 || scope.row.status === 5 || scope.row.status === 7"
              v-hasPermi="['ecg:queue:recall']"
          >
            召回
          </el-button>
          <el-button
              link
              type="danger"
              @click="passWaitingPatient(scope.row)"
              v-if="scope.row.status === 10"
              v-hasPermi="['ecg:queue:pass']"
          >
            过号
          </el-button>
        </template>
      </el-table-column>
<!--      <el-table-column label="id" align="center" prop="id" />-->
      <el-table-column label="就诊流水号" align="center" prop="episodeId" min-width="150px"/>
      <el-table-column label="患者编号" align="center" prop="patId" />
@@ -148,19 +197,19 @@
          <span>{{scope.row.patDetails?.mobile}} {{scope.row.patDetails?.wardDesc}} {{scope.row.patDetails?.bedNo}}</span>
        </template>
      </el-table-column>
      <el-table-column label="预约时段" align="center" prop="bookTimeslot" >
      <el-table-column label="预约时段" align="center" prop="bookTimeslot" min-width="100px">
        <template #default="scope">
          <dict-tag :type="DICT_TYPE.ECG_BOOK_TIMESLOT" :value="scope.row.bookTimeslot" />
        </template>
      </el-table-column>
      <el-table-column label="预约号" align="center" prop="bookSeqNum" />
      <el-table-column label="排队号" align="center" prop="seqNum" />
      <el-table-column label="VIP" align="center" prop="isVip" />
      <el-table-column label="状态" align="center" prop="status" >
        <template #default="scope">
          <dict-tag :type="DICT_TYPE.ECG_QUEUE_STATUS" :value="scope.row.status" />
        </template>
      </el-table-column>
      <el-table-column label="预约号" align="center" prop="bookSeqNum" />
      <el-table-column label="排队号" align="center" prop="seqNum" />
      <el-table-column label="VIP" align="center" prop="isVip" />
      <el-table-column label="过号标记" align="center" prop="passed" />
      <el-table-column label="过期标记" align="center" prop="expired" />
      <el-table-column label="诊室编号" align="center" prop="roomId" />
@@ -173,46 +222,6 @@
        :formatter="dateFormatter"
        width="180px"
      />
      <el-table-column label="操作" align="center" min-width="120px">
        <template #default="scope">
          <el-button
            link
            type="primary"
            @click="openAppointmentForm('preview', scope.row.patId, scope.row.bookCheckType)"
            v-hasPermi="['ecg:appointment:preview']"
          >
            查看
          </el-button>
<!--
          <el-button
            link
            type="danger"
            @click="handleDelete(scope.row.id)"
            v-hasPermi="['ecg:queue:delete']"
          >
            删除
          </el-button>
-->
          <el-button
            link
            type="danger"
            @click="handleJump(scope.row)"
            v-if="scope.row.status === 10"
            v-hasPermi="['ecg:queue:jump']"
          >
            {{scope.row.jumpFlag === 0? "加急" : "取消加急"}}
          </el-button>
          <el-button
            link
            type="danger"
            @click="recall(scope.row)"
            v-if="scope.row.status === 5 || scope.row.status === 7"
            v-hasPermi="['ecg:queue:recall']"
          >
            召回
          </el-button>
        </template>
      </el-table-column>
    </el-table>
    <!-- 分页 -->
    <Pagination
@@ -331,6 +340,18 @@
  } catch {}
}
const passWaitingPatient = async (item: QueueVO) => {
  const patientVO: PatientVO = {
    patId: item.patId,
    checkType: item.bookCheckType,
  }
  const data = await DoctorApi.passWaitingPatient(patientVO);
  message.info(data)
  // 刷新列表
  await getList()
}
const recall = async (item: QueueVO) => {
  const patientVO: PatientVO = {
    roomId: item.roomId,
@@ -343,7 +364,9 @@
  }
  let data = ""
  if (item.status === 5) // 常规、领用 过号
  if (item.status === 3) // 排队中 患者 过号
    data = await DoctorApi.recallPassWaitingPatient(patientVO);
  else if (item.status === 5) // 常规、领用 过号
    data = await DoctorApi.recallPatient(patientVO);
  else if (item.status === 7)
    data = await DoctorApi.recallInstallPatient(patientVO);