11
WXL
7 天以前 4400856b415e254bed5082005bd2ea45285047c5
src/views/ecg/appointment/AppointmentConfirm.vue
@@ -1,71 +1,93 @@
<template>
  <div style="display: flex; justify-content: center; ">
    <el-form-item label="患者编号" >
      <el-input v-model="queryParams.patId" placeholder="请输入患者编号" clearable @input="searchBookInfo" />
  <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>
  <el-divider/>
  <el-divider />
  <el-form
    ref="formRef"
    :model="formData"
    label-width="100px"
    class="two-column-form"
  >
  <el-form ref="formRef" :model="formData" label-width="100px" class="two-column-form">
    <div class="form-row">
      <el-form-item label="患者姓名" prop="patName">
        <el-input v-model="formData.patName" placeholder="患者姓名" readonly />
      </el-form-item>
      <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)"
              :key="dict.value"
              :value="dict.value">
            {{ dict.label }}
          </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
          v-model="formData.patBirthday"
          type="date"
          value-format="x"
          placeholder="选择患者生日"
          readonly
        />
      </el-form-item>
    </div>
    <div class="form-row">
      <el-form-item label="患者手机" prop="patMobile" >
      <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)"
            :key="dict.value"
            :value="dict.value"
          >
            {{ dict.label }}
          </el-radio>
        </el-radio-group>
      </el-form-item>
      <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-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">
      <el-form-item label="患者手机" prop="patMobile">
        <el-input v-model="formData.patMobile" placeholder="请输入患者手机" readonly />
      </el-form-item>
<!--
      <!--
      <el-form-item label="患者电话" prop="patPhone" readonly>
        <el-input v-model="formData.patPhone" placeholder="请输入患者电话" />
      </el-form-item>
-->
      <el-form-item label="身份证号" prop="patIdentityId" >
      <el-form-item label="身份证号" prop="patIdentityId">
        <el-input v-model="formData.patIdentityId" placeholder="请输入身份证号" readonly />
      </el-form-item>
    </div>
    <div class="form-row">
<!--
      <!--
      <el-form-item label="病区代码" prop="patWardCode" readonly>
        <el-input v-model="formData.patWardCode" placeholder="请输入病区代码" />
      </el-form-item>
-->
      <el-form-item label="病区名称" prop="patWardDesc" >
      <el-form-item label="病区名称" prop="patWardDesc">
        <el-input v-model="formData.patWardDesc" placeholder="请输入病区名称" readonly />
      </el-form-item>
      <el-form-item label="床号" prop="patBedNo" >
      <el-form-item label="床号" prop="patBedNo">
        <el-input v-model="formData.patBedNo" placeholder="请输入床号" readonly />
      </el-form-item>
    </div>
@@ -75,115 +97,127 @@
              <el-input v-model="formData.patDeptCode" placeholder="请输入科室代码" />
            </el-form-item>
      -->
      <el-form-item label="科室名称" prop="patDeptDesc" >
        <el-input v-model="formData.patDeptDesc" placeholder="请输入科室名称" readonly/>
      <el-form-item label="科室名称" prop="patDeptDesc">
        <el-input v-model="formData.patDeptDesc" placeholder="请输入科室名称" readonly />
      </el-form-item>
      <el-form-item label="患者地址" prop="patAddr">
        <el-input v-model="formData.patAddr" placeholder="请输入患者地址" readonly/>
        <el-input v-model="formData.patAddr" placeholder="请输入患者地址" readonly />
      </el-form-item>
    </div>
  </el-form>
</template>
<script setup lang="ts">
import {DICT_TYPE, getIntDictOptions} from '@/utils/dict'
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 CheckItemPanel from '@/views/ecg/appointment/CheckItemPanel.vue'
import { getCheckTypeName } from '@/utils/checkTypeFormatter'
/** 预约确认 表单 */
defineOptions({ name: 'AppointmentConfirm' })
const checkTypeStore = useCheckTypeStore();
const queryParams = reactive({
    patId: ''
  patId: ''
})
const appointmentVOList = ref<AppointmentVO[]>([])
const formData = ref<AppointmentVO>({
  id: 0,
  applyNo: "",
  applyNo: '',
  episodeId: '',
  patSrc: 0,
  patId: "",
  patName: "",
  patId: '',
  patName: '',
  tolerance: 0,
  patGender: 1, // 1 男 2 女
  patBirthday: new Date(),
  patMobile: "",
  patPhone: "",
  patIdentityId: "",
  patAddr: "",
  patDeptCode: "",
  patDeptDesc: "",
  patWardCode: "",
  patWardDesc: "",
  patBedNo: "",
  bookId: "",
  patMobile: '',
  patPhone: '',
  patIdentityId: '',
  patAddr: '',
  patDeptCode: '',
  patDeptDesc: '',
  patWardCode: '',
  patWardDesc: '',
  patBedNo: '',
  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)
    return
  if (null === queryParams.patId || '' === queryParams.patId.trim()) return
  const data = await AppointmentApi.queryAndCreateAppointmentByPatId(queryParams.patId) // 对应数据库中 pat_id
  console.info( data )
  appointmentVOList.value = data
  const _patId = queryParams.patId.trim()
  console.warn('===' + _patId + '===')
  const data = await AppointmentApi.queryAndCreateAppointmentByPatId(_patId) // 对应数据库中 pat_id
  console.info(data)
  if (null !== data && data.length > 0) {
    formData.value = data[0]
    console.info( formData.value )
    appointmentVOList.value = data
    console.info(formData.value)
    return
  }
  ElNotification({
    title: '温馨提示',
    message: "请先预约",
    message: '请先预约',
    type: 'warning'
  })
}
/** 重置表单 */
const resetForm = () => {
  appointmentVOList.value.length = 0
  formData.value = {
    id: 0,
    applyNo: "",
    applyNo: '',
    episodeId: '',
    patSrc: 0,
    patId: "",
    patName: "",
    patId: '',
    patName: '',
    tolerance: 0,
    patGender: 1, // 1 男 2 女
    patBirthday: new Date(),
    patMobile: "",
    patPhone: "",
    patIdentityId: "",
    patAddr: "",
    patDeptCode: "",
    patDeptDesc: "",
    patWardCode: "",
    patWardDesc: "",
    patBedNo: "",
    bookId: "",
    patMobile: '',
    patPhone: '',
    patIdentityId: '',
    patAddr: '',
    patDeptCode: '',
    patDeptDesc: '',
    patWardCode: '',
    patWardDesc: '',
    patBedNo: '',
    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()
})
</script>
<style lang="scss" scoped>
@@ -200,5 +234,4 @@
.el-form-item {
  margin-bottom: 5px;
}
</style>