| | |
| | | class="!w-240px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="患者性别" prop="patGender"> |
| | | <el-select |
| | | v-model="queryParams.patGender" |
| | | placeholder="请选择患者性别" |
| | | clearable |
| | | class="!w-240px" |
| | | > |
| | | <el-option |
| | | v-for="dict in getBoolDictOptions(DICT_TYPE.SYSTEM_USER_SEX)" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="患者生日" prop="patBirthday"> |
| | | <el-date-picker |
| | | v-model="queryParams.patBirthday" |
| | | value-format="YYYY-MM-DD" |
| | | type="date" |
| | | placeholder="选择患者生日" |
| | | clearable |
| | | class="!w-240px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="患者手机" prop="patMobile"> |
| | | <el-input |
| | | v-model="queryParams.patMobile" |
| | |
| | | class="!w-240px" |
| | | /> |
| | | </el-form-item> |
| | | <!-- |
| | | <el-form-item label="患者电话" prop="patPhone"> |
| | | <el-input |
| | | v-model="queryParams.patPhone" |
| | |
| | | class="!w-240px" |
| | | /> |
| | | </el-form-item> |
| | | --> |
| | | <el-form-item label="身份证号" prop="patIdentityId"> |
| | | <el-input |
| | | v-model="queryParams.patIdentityId" |
| | | placeholder="请输入身份证号" |
| | | clearable |
| | | @keyup.enter="handleQuery" |
| | | class="!w-240px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="患者地址" prop="patAddr"> |
| | | <el-input |
| | | v-model="queryParams.patAddr" |
| | | placeholder="请输入患者地址" |
| | | clearable |
| | | @keyup.enter="handleQuery" |
| | | class="!w-240px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="患者所在科室代码" prop="patDeptCode"> |
| | | <el-input |
| | | v-model="queryParams.patDeptCode" |
| | | placeholder="请输入患者所在科室代码" |
| | | clearable |
| | | @keyup.enter="handleQuery" |
| | | class="!w-240px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="患者所在科室名称" prop="patDeptDesc"> |
| | | <el-input |
| | | v-model="queryParams.patDeptDesc" |
| | | placeholder="请输入患者所在科室名称" |
| | | clearable |
| | | @keyup.enter="handleQuery" |
| | | class="!w-240px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="患者所在病区代码" prop="patWardCode"> |
| | | <el-input |
| | | v-model="queryParams.patWardCode" |
| | | placeholder="请输入患者所在病区代码" |
| | | clearable |
| | | @keyup.enter="handleQuery" |
| | | class="!w-240px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="患者所在病区名称" prop="patWardDesc"> |
| | | <el-input |
| | | v-model="queryParams.patWardDesc" |
| | | placeholder="请输入患者所在病区名称" |
| | | clearable |
| | | @keyup.enter="handleQuery" |
| | | class="!w-240px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="床号" prop="patBedNo"> |
| | | <el-input |
| | | v-model="queryParams.patBedNo" |
| | | placeholder="请输入床号" |
| | | clearable |
| | | @keyup.enter="handleQuery" |
| | | class="!w-240px" |
| | |
| | | class="!w-240px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="预约检查时间段" prop="bookPeriodStart"> |
| | | <el-date-picker |
| | | v-model="queryParams.bookPeriodStart" |
| | | value-format="YYYY-MM-DD" |
| | | type="date" |
| | | placeholder="选择预约检查时间段" |
| | | clearable |
| | | class="!w-240px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="预约检查时间段" prop="bookPeriodEnd"> |
| | | <el-date-picker |
| | | v-model="queryParams.bookPeriodEnd" |
| | | value-format="YYYY-MM-DD" |
| | | type="date" |
| | | placeholder="选择预约检查时间段" |
| | | clearable |
| | | class="!w-240px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="预约检查类型" prop="bookCheckType"> |
| | | <el-form-item label="检查类型" prop="bookCheckType"> |
| | | <el-select |
| | | v-model="queryParams.bookCheckType" |
| | | placeholder="请选择预约检查类型" |
| | | placeholder="请选择检查类型" |
| | | clearable |
| | | class="!w-240px" |
| | | > |
| | | <el-option |
| | | v-for="dict in getBoolDictOptions(DICT_TYPE.ECG_CHECK_TYPE)" |
| | | v-for="dict in checkTypeStore.getCheckTypeOptions()" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="预约来源:X系统、护士手动预约" prop="bookSrc"> |
| | | <!-- |
| | | <el-form-item label="预约来源" prop="bookSrc"> |
| | | <el-input |
| | | v-model="queryParams.bookSrc" |
| | | placeholder="请输入预约来源:X系统、护士手动预约" |
| | | placeholder="请输入预约来源" |
| | | clearable |
| | | @keyup.enter="handleQuery" |
| | | class="!w-240px" |
| | | /> |
| | | </el-form-item> |
| | | --> |
| | | <el-form-item> |
| | | <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button> |
| | | <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button> |
| | |
| | | |
| | | <!-- 列表 --> |
| | | <ContentWrap> |
| | | <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> |
| | | <el-table-column label="患者编号" align="center" prop="patId" /> |
| | | <el-table-column label="患者姓名" align="center" prop="patName" /> |
| | | <el-table-column label="患者性别" align="center" prop="patGender"> |
| | | <el-table v-loading="loading" :data="appointmentList" :stripe="true" :show-overflow-tooltip="true"> |
| | | <el-table-column label="编号" align="center" prop="patId" /> |
| | | <el-table-column label="缴费" align="center" prop="paid"> |
| | | <template #default="scope"> |
| | | {{scope.row.paid == 1 ? "已付" : ""}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="姓名" align="center" prop="patName" /> |
| | | <el-table-column label="性别" align="center" prop="patGender"> |
| | | <template #default="scope"> |
| | | <dict-tag :type="DICT_TYPE.SYSTEM_USER_SEX" :value="scope.row.patGender" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="患者生日" align="center" prop="patBirthday" /> |
| | | <el-table-column label="患者手机" align="center" prop="patMobile" /> |
| | | <el-table-column label="患者电话" align="center" prop="patPhone" /> |
| | | <el-table-column label="生日" align="center" prop="patBirthday" :formatter="dateFormatter2" width="110px"/> |
| | | <el-table-column label="手机" align="center" prop="patMobile" /> |
| | | <el-table-column label="电话" align="center" prop="patPhone" /> |
| | | <el-table-column label="身份证号" align="center" prop="patIdentityId" /> |
| | | <el-table-column label="患者地址" align="center" prop="patAddr" /> |
| | | <el-table-column label="患者所在科室代码" align="center" prop="patDeptCode" /> |
| | | <el-table-column label="患者所在科室名称" align="center" prop="patDeptDesc" /> |
| | | <el-table-column label="患者所在病区代码" align="center" prop="patWardCode" /> |
| | | <el-table-column label="患者所在病区名称" align="center" prop="patWardDesc" /> |
| | | <el-table-column label="地址" align="center" prop="patAddr" /> |
| | | <el-table-column label="科室代码" align="center" prop="patDeptCode" /> |
| | | <el-table-column label="科室名称" align="center" prop="patDeptDesc" /> |
| | | <el-table-column label="病区代码" align="center" prop="patWardCode" /> |
| | | <el-table-column label="病区名称" align="center" prop="patWardDesc" /> |
| | | <el-table-column label="床号" align="center" prop="patBedNo" /> |
| | | <el-table-column label="预约编号" align="center" prop="bookId" /> |
| | | <el-table-column |
| | | label="预约检查时间段" |
| | | label="预约日期" |
| | | align="center" |
| | | prop="bookPeriodStart" |
| | | :formatter="dateFormatter" |
| | | width="180px" |
| | | prop="bookDate" |
| | | :formatter="dateFormatter2" |
| | | width="120px" |
| | | /> |
| | | <el-table-column |
| | | label="预约检查时间段" |
| | | align="center" |
| | | prop="bookPeriodEnd" |
| | | :formatter="dateFormatter" |
| | | width="180px" |
| | | /> |
| | | <el-table-column |
| | | label="预约发生时间" |
| | | align="center" |
| | | prop="bookTime" |
| | | :formatter="dateFormatter" |
| | | width="180px" |
| | | /> |
| | | <el-table-column label="预约检查类型" align="center" prop="bookCheckType"> |
| | | <el-table-column label="预约时间段" align="center" prop="bookTimeslot" width="100px"> |
| | | <template #default="scope"> |
| | | <dict-tag :type="DICT_TYPE.ECG_CHECK_TYPE" :value="scope.row.bookCheckType" /> |
| | | <dict-tag :type="DICT_TYPE.ECG_BOOK_TIMESLOT" :value="scope.row.bookTimeslot" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="预约来源:X系统、护士手动预约" align="center" prop="bookSrc" /> |
| | | <el-table-column label="预约检查类型" align="center" prop="bookCheckType"> |
| | | <template #default="scope"> |
| | | {{checkTypeStore.getCheckTypeName(scope.row.bookCheckType)}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="预约来源" align="center" prop="bookSrc"> |
| | | <template #default="scope"> |
| | | <dict-tag :type="DICT_TYPE.ECG_BOOK_SRC" :value="scope.row.bookSrc" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" min-width="120px"> |
| | | <template #default="scope"> |
| | | <el-button |
| | |
| | | </ContentWrap> |
| | | |
| | | <!-- 表单弹窗:添加/修改 --> |
| | | <AppointmentForm ref="formRef" @success="getList" /> |
| | | <AppointmentForm ref="formRef" @event_appointment_success="getList" /> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { getBoolDictOptions, DICT_TYPE } from '@/utils/dict' |
| | | import { dateFormatter } from '@/utils/formatTime' |
| | | import {DICT_TYPE} from '@/utils/dict' |
| | | import { dateFormatter2 } from '@/utils/formatTime' |
| | | import download from '@/utils/download' |
| | | import { AppointmentApi, AppointmentVO } from '@/api/ecg/appointment' |
| | | import AppointmentForm from './AppointmentForm.vue' |
| | | import {useCheckTypeStore} from "@/store/modules/checkType"; |
| | | |
| | | /** 预约 列表 */ |
| | | defineOptions({ name: 'Appointment' }) |
| | |
| | | const { t } = useI18n() // 国际化 |
| | | |
| | | const loading = ref(true) // 列表的加载中 |
| | | const list = ref<AppointmentVO[]>([]) // 列表的数据 |
| | | const appointmentList = ref<AppointmentVO[]>([]) // 列表的数据 |
| | | const total = ref(0) // 列表的总页数 |
| | | const queryParams = reactive({ |
| | | pageNo: 1, |
| | |
| | | const queryFormRef = ref() // 搜索的表单 |
| | | const exportLoading = ref(false) // 导出的加载中 |
| | | |
| | | const checkTypeStore = useCheckTypeStore(); |
| | | |
| | | /** 查询列表 */ |
| | | const getList = async () => { |
| | | loading.value = true |
| | | try { |
| | | const data = await AppointmentApi.getAppointmentPage(queryParams) |
| | | list.value = data.list |
| | | appointmentList.value = data.list |
| | | total.value = data.total |
| | | } finally { |
| | | loading.value = false |