WXL
12 小时以前 d79ce11fcd47db138764557d214f4ea2169fb90a
src/views/ecg/appointment/AppointmentConfirm.vue
@@ -1,13 +1,18 @@
<template>
  <div style="display: flex; justify-content: center; ">
    <el-form-item label="患者编号" >
      <el-input v-model="queryParams.patId" placeholder="请输入患者编号" clearable @input="searchBookInfo" />
    </el-form-item>
  </div>
  <div style="color: #ff0000; text-align: center; font-size: 12px; margin-top: 4px;">
    <i class="el-icon-warning" style="margin-right: 4px;"></i>
    支持身份证号,申请单号,就诊流水号,住院号
  </div>
  <div style="display: flex; flex-wrap: wrap; justify-content: center; margin-bottom: 20px">
    <div v-for="_appointment in appointmentVOList" :key="_appointment.applyNo">
      <CheckItemPanel  :appointment="_appointment" />
    <div v-for="(_appointment, index) in appointmentVOList" :key="index">
      <CheckItemPanel  :appointment="_appointment"  @event_appoint_confirm="onEventAppointConfirm"/>
    </div>
  </div>
@@ -23,7 +28,19 @@
      <el-form-item label="患者姓名" prop="patName">
        <el-input v-model="formData.patName" placeholder="患者姓名" readonly />
      </el-form-item>
      <el-form-item label="患者性别" prop="patGender">
      <el-form-item label="患者生日" prop="patBirthday">
        <el-date-picker
            v-model="formData.patBirthday"
            type="date"
            value-format="x"
            placeholder="选择患者生日"
            readonly
        />
      </el-form-item>
    </div>
    <div class="form-row">
       <el-form-item label="患者性别" prop="patGender">
        <el-radio-group v-model="formData.patGender" readonly>
          <el-radio
              v-for="dict in getIntDictOptions(DICT_TYPE.SYSTEM_USER_SEX)"
@@ -33,14 +50,16 @@
          </el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="患者生日" prop="patBirthday">
        <el-date-picker
            v-model="formData.patBirthday"
            type="date"
            value-format="x"
            placeholder="选择患者生日"
            readonly
        />
      <el-form-item label="是否多耐" prop="tolerance">
        <el-radio-group v-model="formData.tolerance" readonly>
          <el-radio
              v-for="dict in getIntDictOptions(DICT_TYPE.ecg_tolerance)"
              :key="dict.value"
              :value="dict.value">
            {{ dict.label }}
          </el-radio>
        </el-radio-group>
      </el-form-item>
    </div>
    <div class="form-row">
@@ -87,13 +106,11 @@
<script setup lang="ts">
import {DICT_TYPE, getIntDictOptions} from '@/utils/dict'
import { AppointmentApi, AppointmentVO } from '@/api/ecg/appointment'
import {useCheckTypeStore} from "@/store/modules/checkType";
import CheckItemPanel from "@/views/ecg/appointment/CheckItemPanel.vue";
import {getCheckTypeName} from "@/utils/checkTypeFormatter";
/** 预约确认 表单 */
defineOptions({ name: 'AppointmentConfirm' })
const checkTypeStore = useCheckTypeStore();
const queryParams = reactive({
    patId: ''
@@ -104,9 +121,11 @@
const formData = ref<AppointmentVO>({
  id: 0,
  applyNo: "",
  episodeId: "",
  patSrc: 0,
  patId: "",
  patName: "",
  tolerance:0,
  patGender: 1, // 1 男 2 女
  patBirthday: new Date(),
  patMobile: "",
@@ -118,26 +137,29 @@
  patWardCode: "",
  patWardDesc: "",
  patBedNo: "",
  bookId: "",
  bookTime: new Date(),
  bookDate: new Date(),
  bookTimeslot: 9301030,
  bookCheckType: checkTypeStore.getCheckTypeName(100),
  bookCheckType: getCheckTypeName(100),
  paid: 0,
  bookSeqNum: 0,
})
const formRef = ref() // 表单 Ref
const searchBookInfo = async () => {
  resetForm()
  if (null === queryParams.patId || "" === queryParams.patId)
  if (null === queryParams.patId || "" === queryParams.patId.trim())
    return
  const data = await AppointmentApi.queryAndCreateAppointmentByPatId(queryParams.patId) // 对应数据库中 pat_id
  const _patId = queryParams.patId.trim()
  console.warn("===" + _patId + "===")
  const data = await AppointmentApi.queryAndCreateAppointmentByPatId(_patId) // 对应数据库中 pat_id
  console.info( data )
  appointmentVOList.value = data
  if (null !== data && data.length > 0) {
    formData.value = data[0]
    appointmentVOList.value = data
    console.info( formData.value )
    return
  }
@@ -155,9 +177,11 @@
  formData.value = {
    id: 0,
    applyNo: "",
    episodeId: "",
    patSrc: 0,
    patId: "",
    patName: "",
    tolerance:0,
    patGender: 1, // 1 男 2 女
    patBirthday: new Date(),
    patMobile: "",
@@ -169,16 +193,25 @@
    patWardCode: "",
    patWardDesc: "",
    patBedNo: "",
    bookId: "",
    bookTime: new Date(),
    bookDate: new Date(),
    bookTimeslot: 9301030,
    bookCheckType: checkTypeStore.getCheckTypeName(100),
    bookCheckType: getCheckTypeName(100),
    paid: 0,
    bookSeqNum: 0,
  }
  formRef.value?.resetFields()
}
const onEventAppointConfirm = () => {
/*
  if (null !== appointmentVOList.value && appointmentVOList.value.length === 1) {
    queryParams.patId = ""
  }
*/
  queryParams.patId = ""
}
/** 初始化 **/
onMounted(() => {
  resetForm()