| | |
| | | |
| | | // 预约 VO |
| | | export interface AppointmentVO { |
| | | id: string |
| | | id: number, |
| | | patId: string // 患者编号 |
| | | patName: string // 患者姓名 |
| | | patGender: number // 患者性别 |
| | |
| | | bookDate: Date // 预约日期 |
| | | bookTimeslot: number // 预约时间段 |
| | | bookTime: Date // 预约发生时间 |
| | | bookCheckType: boolean // 预约检查类型 |
| | | bookCheckType: number // 预约检查类型 |
| | | } |
| | | |
| | | // 预约 API |
| | |
| | | // 导出预约 Excel |
| | | exportAppointment: async (params) => { |
| | | return await request.download({ url: `/ecg/appointment/export-excel`, params }) |
| | | }, |
| | | |
| | | // 修改预约 |
| | | confirmAppointment: async (data: AppointmentVO) => { |
| | | return await request.post({ url: `/ecg/appointment/confirm`, data }) |
| | | } |
| | | |
| | | } |
| | |
| | | <el-input v-model="queryParams.patId" placeholder="请输入患者编号" clearable @input="searchBookInfo"/> |
| | | </el-form-item> |
| | | |
| | | <el-button @click="message.alert('p')"><Icon icon="ep:refresh" class="mr-5px" /> 排队 </el-button> |
| | | <el-button @click="_confirmAppointment"><Icon icon="ep:refresh" class="mr-5px" /> 排队 </el-button> |
| | | |
| | | <el-divider/> |
| | | |
| | |
| | | ref="formRef" |
| | | :model="formData" |
| | | label-width="100px" |
| | | v-loading="formLoading" |
| | | class="two-column-form" |
| | | > |
| | | <div class="form-row"> |
| | |
| | | /** 预约确认 表单 */ |
| | | defineOptions({ name: 'AppointmentConfirm' }) |
| | | |
| | | const { t } = useI18n() // 国际化 |
| | | const message = useMessage() // 消息弹窗 |
| | | |
| | | const dialogVisible = ref(false) // 弹窗的是否展示 |
| | | const dialogTitle = ref('') // 弹窗的标题 |
| | | const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
| | | const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
| | | |
| | | const loading = ref(true) // 列表的加载中 |
| | | const list = ref<AppointmentVO[]>([]) // 列表的数据 |
| | | const total = ref(0) // 列表的总页数 |
| | | const queryParams = reactive({ |
| | | pageNo: 1, |
| | | pageSize: 1, |
| | | pageSize: 10, |
| | | patId: undefined |
| | | }) |
| | | |
| | | const formData = ref({ |
| | | patId: undefined, |
| | | patName: undefined, |
| | | id: 0, |
| | | patId: "", |
| | | patName: "", |
| | | patGender: 1, // 1 男 2 女 |
| | | patBirthday: undefined, |
| | | patMobile: undefined, |
| | | patPhone: undefined, |
| | | patIdentityId: undefined, |
| | | patAddr: undefined, |
| | | patDeptCode: undefined, |
| | | patDeptDesc: undefined, |
| | | patWardCode: undefined, |
| | | patWardDesc: undefined, |
| | | patBedNo: undefined, |
| | | bookId: undefined, |
| | | bookTime: undefined, |
| | | bookDate: new Date().getTime(), |
| | | patBirthday: new Date(), |
| | | patMobile: "", |
| | | patPhone: "", |
| | | patIdentityId: "", |
| | | patAddr: "", |
| | | patDeptCode: "", |
| | | patDeptDesc: "", |
| | | patWardCode: "", |
| | | patWardDesc: "", |
| | | patBedNo: "", |
| | | bookId: "", |
| | | bookTime: new Date(), |
| | | bookDate: new Date(), |
| | | bookTimeslot: 10001015, |
| | | bookCheckType: 10 |
| | | }) |
| | |
| | | } |
| | | } |
| | | |
| | | /** 打开弹窗 */ |
| | | const open = async (type: string, id?: number) => { |
| | | dialogVisible.value = true |
| | | dialogTitle.value = t('action.' + type) |
| | | formType.value = type |
| | | resetForm() |
| | | // 修改时,设置数据 |
| | | if (id) { |
| | | formLoading.value = true |
| | | try { |
| | | formData.value = await AppointmentApi.getAppointment(id) |
| | | } finally { |
| | | formLoading.value = false |
| | | } |
| | | } |
| | | const _confirmAppointment = async () => { |
| | | const data = await AppointmentApi.confirmAppointment(formData.value) |
| | | message.info(data) |
| | | } |
| | | defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
| | | |
| | | |
| | | /** 重置表单 */ |
| | | const resetForm = () => { |
| | | formData.value = { |
| | | patId: undefined, |
| | | patName: undefined, |
| | | id: 0, |
| | | patId: "", |
| | | patName: "", |
| | | patGender: 1, // 1 男 2 女 |
| | | patBirthday: undefined, |
| | | patMobile: undefined, |
| | | patPhone: undefined, |
| | | patIdentityId: undefined, |
| | | patAddr: undefined, |
| | | patDeptCode: undefined, |
| | | patDeptDesc: undefined, |
| | | patWardCode: undefined, |
| | | patWardDesc: undefined, |
| | | patBedNo: undefined, |
| | | bookId: undefined, |
| | | bookTime: undefined, |
| | | bookDate: new Date().getTime(), |
| | | patBirthday: new Date(), |
| | | patMobile: "", |
| | | patPhone: "", |
| | | patIdentityId: "", |
| | | patAddr: "", |
| | | patDeptCode: "", |
| | | patDeptDesc: "", |
| | | patWardCode: "", |
| | | patWardDesc: "", |
| | | patBedNo: "", |
| | | bookId: "", |
| | | bookTime: new Date(), |
| | | bookDate: new Date(), |
| | | bookTimeslot: 10001015, |
| | | bookCheckType: 10 |
| | | } |
| | |
| | | </el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="预约编号" prop="bookId"> |
| | | <el-input v-model="formData.bookId" placeholder="请输入预约编号" /> |
| | | </el-form-item> |
| | | <el-form-item label="预约日期" prop="bookDate"> |
| | | <el-date-picker |
| | | v-model="formData.bookDate" |
| | |
| | | patId: [{ required: true, message: '患者编号不能为空', trigger: 'blur' }], |
| | | patName: [{ required: true, message: '患者姓名不能为空', trigger: 'blur' }], |
| | | patGender: [{ required: true, message: '患者性别不能为空', trigger: 'blur' }], |
| | | bookId: [{ required: true, message: '预约编号不能为空', trigger: 'blur' }], |
| | | bookDate: [{ required: true, message: '预约日期不能为空', trigger: 'blur' }], |
| | | bookTimeslot: [{ required: true, message: '预约检查时间段不能为空', trigger: 'blur' }], |
| | | bookCheckType: [{ required: true, message: '预约检查类型不能为空', trigger: 'change' }] |