¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-form-item label="æ£è
ç¼å·"> |
| | | <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-divider/> |
| | | |
| | | <el-form |
| | | ref="formRef" |
| | | :model="formData" |
| | | label-width="100px" |
| | | v-loading="formLoading" |
| | | class="two-column-form" |
| | | > |
| | | <div class="form-row"> |
| | | <el-form-item label="æ£è
å§å" prop="patName"> |
| | | <el-input v-model="formData.patName" placeholder="请è¾å
¥æ£è
å§å" /> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="æ£è
æ§å«" prop="patGender"> |
| | | <el-radio-group v-model="formData.patGender"> |
| | | <el-radio |
| | | v-for="dict in getIntDictOptions(DICT_TYPE.SYSTEM_USER_SEX)" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | > |
| | | {{ dict.label }} |
| | | </el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="é¢çº¦æ¥æ" prop="bookDate"> |
| | | <el-date-picker |
| | | v-model="formData.bookDate" |
| | | type="date" |
| | | value-format="x" |
| | | placeholder="éæ©é¢çº¦æ¥æ" |
| | | /> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="é¢çº¦æ¶é´æ®µ" prop="bookTimeslot"> |
| | | <el-select v-model="formData.bookTimeslot" placeholder="è¯·éæ©é¢çº¦æ¶é´æ®µ"> |
| | | <el-option |
| | | v-for="dict in getIntDictOptions(DICT_TYPE.ECG_BOOK_TIMESLOT)" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="é¢çº¦æ£æ¥ç±»å" prop="bookCheckType"> |
| | | <el-select v-model="formData.bookCheckType" placeholder="è¯·éæ©é¢çº¦æ£æ¥ç±»å"> |
| | | <el-option |
| | | v-for="dict in getIntDictOptions(DICT_TYPE.ECG_CHECK_TYPE)" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="æ£è
çæ¥" prop="patBirthday"> |
| | | <el-date-picker |
| | | v-model="formData.patBirthday" |
| | | type="date" |
| | | value-format="x" |
| | | placeholder="éæ©æ£è
çæ¥" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="æ£è
ææº" prop="patMobile"> |
| | | <el-input v-model="formData.patMobile" placeholder="请è¾å
¥æ£è
ææº" /> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="æ£è
çµè¯" prop="patPhone"> |
| | | <el-input v-model="formData.patPhone" placeholder="请è¾å
¥æ£è
çµè¯" /> |
| | | </el-form-item> |
| | | <el-form-item label="身份è¯å·" prop="patIdentityId"> |
| | | <el-input v-model="formData.patIdentityId" placeholder="请è¾å
¥èº«ä»½è¯å·" /> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="æ£è
å°å" prop="patAddr"> |
| | | <el-input v-model="formData.patAddr" placeholder="请è¾å
¥æ£è
å°å" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ£è
æå¨ç§å®¤ä»£ç " prop="patDeptCode"> |
| | | <el-input v-model="formData.patDeptCode" placeholder="请è¾å
¥æ£è
æå¨ç§å®¤ä»£ç " /> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="æ£è
æå¨ç§å®¤åç§°" prop="patDeptDesc"> |
| | | <el-input v-model="formData.patDeptDesc" placeholder="请è¾å
¥æ£è
æå¨ç§å®¤åç§°" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ£è
æå¨ç
åºä»£ç " prop="patWardCode"> |
| | | <el-input v-model="formData.patWardCode" placeholder="请è¾å
¥æ£è
æå¨ç
åºä»£ç " /> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="æ£è
æå¨ç
åºåç§°" prop="patWardDesc"> |
| | | <el-input v-model="formData.patWardDesc" placeholder="请è¾å
¥æ£è
æå¨ç
åºåç§°" /> |
| | | </el-form-item> |
| | | <el-form-item label="åºå·" prop="patBedNo"> |
| | | <el-input v-model="formData.patBedNo" placeholder="请è¾å
¥åºå·" /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | | </template> |
| | | <script setup lang="ts"> |
| | | import {DICT_TYPE, getIntDictOptions} from '@/utils/dict' |
| | | import { AppointmentApi, AppointmentVO } from '@/api/ecg/appointment' |
| | | |
| | | /** é¢çº¦ç¡®è®¤ 表å */ |
| | | 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, |
| | | patId: undefined |
| | | }) |
| | | |
| | | const formData = ref({ |
| | | patId: undefined, |
| | | patName: undefined, |
| | | 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(), |
| | | bookTimeslot: 10001015, |
| | | bookCheckType: 10 |
| | | }) |
| | | const formRef = ref() // 表å Ref |
| | | |
| | | const searchBookInfo = async () => { |
| | | resetForm() |
| | | total.value = 0 |
| | | list.value = [] |
| | | |
| | | await getList() |
| | | if (total.value === 1) { |
| | | formData.value = list.value[0] |
| | | return |
| | | } |
| | | message.notify("请å
é¢çº¦!") |
| | | } |
| | | |
| | | /** æ¥è¯¢å表 */ |
| | | const getList = async () => { |
| | | loading.value = true |
| | | try { |
| | | const data = await AppointmentApi.getAppointmentPage(queryParams) |
| | | list.value = data.list |
| | | total.value = data.total |
| | | } finally { |
| | | loading.value = false |
| | | } |
| | | } |
| | | |
| | | /** æå¼å¼¹çª */ |
| | | 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 |
| | | } |
| | | } |
| | | } |
| | | defineExpose({ open }) // æä¾ open æ¹æ³ï¼ç¨äºæå¼å¼¹çª |
| | | |
| | | /** é置表å */ |
| | | const resetForm = () => { |
| | | formData.value = { |
| | | patId: undefined, |
| | | patName: undefined, |
| | | 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(), |
| | | bookTimeslot: 10001015, |
| | | bookCheckType: 10 |
| | | } |
| | | formRef.value?.resetFields() |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .two-column-form .form-row { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 20px; |
| | | } |
| | | |
| | | .two-column-form .form-row .el-form-item { |
| | | width: 48%; |
| | | } |
| | | </style> |