Merge branch 'main' of ssh://git.jizhiweb.cn:2222/clinic-v2/web

This commit is contained in:
LiJianZhao 2025-05-08 15:17:42 +08:00
commit 056428efce
5 changed files with 90 additions and 44 deletions

View File

@ -29,6 +29,13 @@ const emit = defineEmits(['close']);
const closeBtn = () => { const closeBtn = () => {
emit('close', false); emit('close', false);
}; };
watch(
() => height,
(newVal) => {
_height.value = newVal == null ? 800 : Number(newVal);
}
);
</script> </script>
<template> <template>

View File

@ -1,7 +1,8 @@
<template> <template>
<Mask :is-show="isShow" width="800" :height="500" title="挂号" @close="close" :show-footer="true"> <Mask :is-show="isShow" width="800" :height="height" title="挂号" @close="close"
:show-footer="true">
<template #default> <template #default>
<el-scrollbar>
<div style="padding:0 24px"> <div style="padding:0 24px">
<el-form <el-form
v-loading="loading" v-loading="loading"
@ -19,12 +20,12 @@
> >
<el-descriptions-item label="姓名"> <el-descriptions-item label="姓名">
<el-form-item prop="name" style="margin-bottom: 2px"> <el-form-item prop="name" style="margin-bottom: 2px">
<el-input v-model="edit_data.name" placeholder="请输入姓名" clearable></el-input> <el-input v-model="edit_data.name" placeholder="请输入姓名" clearable :disabled="edit_data.status==1||edit_data.status==3"></el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="性别"> <el-descriptions-item label="性别">
<el-form-item prop="gender"> <el-form-item prop="gender">
<el-radio-group v-model="edit_data.gender"> <el-radio-group v-model="edit_data.gender" :disabled="edit_data.status==1||edit_data.status==3">
<el-radio :value="1"></el-radio> <el-radio :value="1"></el-radio>
<el-radio :value="2"></el-radio> <el-radio :value="2"></el-radio>
</el-radio-group> </el-radio-group>
@ -32,12 +33,12 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="年龄"> <el-descriptions-item label="年龄">
<el-form-item prop="age"> <el-form-item prop="age">
<el-input v-model.number="edit_data.age" placeholder="请输入年龄"></el-input> <el-input v-model.number="edit_data.age" placeholder="请输入年龄" :disabled="edit_data.status==1||edit_data.status==3"></el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="手机号"> <el-descriptions-item label="手机号">
<el-form-item prop="phone"> <el-form-item prop="phone">
<el-input v-model="edit_data.phone" placeholder="手机号"></el-input> <el-input v-model="edit_data.phone" placeholder="手机号" :disabled="edit_data.status==3"></el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="医生"> <el-descriptions-item label="医生">
@ -46,6 +47,7 @@
v-model="edit_data.organizationDoctorId" v-model="edit_data.organizationDoctorId"
placeholder="请选择医生" placeholder="请选择医生"
@change="getSectionList" @change="getSectionList"
:disabled="edit_data.status==3"
> >
<el-option <el-option
v-for="item in doctorList" v-for="item in doctorList"
@ -62,6 +64,7 @@
<el-select <el-select
v-model="edit_data.organizationSectionId" v-model="edit_data.organizationSectionId"
placeholder="选择科室" placeholder="选择科室"
:disabled="edit_data.status==3"
> >
<el-option <el-option
v-for="item in sectionList" v-for="item in sectionList"
@ -76,7 +79,7 @@
<el-descriptions-item label="证件类型"> <el-descriptions-item label="证件类型">
<el-form-item prop="certType"> <el-form-item prop="certType">
<el-select v-model="edit_data.certType" placeholder="证件类型"> <el-select v-model="edit_data.certType" placeholder="证件类型" :disabled="edit_data.status==1||edit_data.status==3">
<el-option <el-option
v-for="item in certTypeList" v-for="item in certTypeList"
:key="item.id" :key="item.id"
@ -88,12 +91,12 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="证件码" > <el-descriptions-item label="证件码" >
<el-form-item prop="certNo"> <el-form-item prop="certNo">
<el-input v-model="edit_data.certNo" placeholder="请输入证件码"></el-input> <el-input v-model="edit_data.certNo" placeholder="请输入证件码" :disabled="edit_data.status==1||edit_data.status==3"></el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="就诊类型"> <el-descriptions-item label="初/复诊">
<el-form-item prop="visitType"> <el-form-item prop="visitType">
<el-select v-model="edit_data.visitType" placeholder="就诊类型"> <el-select v-model="edit_data.visitType" placeholder="就诊类型">
<el-option label="初诊" :value="0"></el-option> <el-option label="初诊" :value="0"></el-option>
@ -112,8 +115,9 @@
<h5 v-if="!isShowCard" style="margin:24px 0;font-size: 16px">险种列表</h5> <h5 v-if="!isShowCard" style="margin:24px 0;font-size: 16px">险种列表</h5>
<el-table <el-table
:data="tableData" :data="tableData"
style="width: 100%" style="width: 100%;"
v-if="!isShowCard" v-if="!isShowCard"
height="160"
> >
<el-table-column label="险种类型" prop="insutype"> <el-table-column label="险种类型" prop="insutype">
<template #default="scope"> <template #default="scope">
@ -130,7 +134,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</el-scrollbar>
</template> </template>
<template #footer> <template #footer>
@ -174,13 +178,13 @@ import depts from "@/assets/config/directory/depts.json";
import {apiConfig} from "@/assets/config/apiConfig.ts"; import {apiConfig} from "@/assets/config/apiConfig.ts";
//
interface Doctor {
id: string | number; // ID
name: string; //
}
const certTypeList = ref<any>(Object.entries(psnCertTypes).map(([id, name]) => ({id, name}))); const height = ref(470)
const certTypeList = ref<any>(
Object.entries(psnCertTypes)
.map(([id, name]) => ({id: Number(id), name}))
.sort((a, b) => a.id - b.id)
)
const edit_data = ref<any>({}) const edit_data = ref<any>({})
const rules = ref<any>({ const rules = ref<any>({
name: [ name: [
@ -218,6 +222,10 @@ const close = () => {
isShow.value = false isShow.value = false
edit_data.value = {} edit_data.value = {}
isShowCard.value = true isShowCard.value = true
nextTick(() => {
cardDefaultRef.value?.close()
height.value = 470
})
emit('close') emit('close')
} }
const form = ref() const form = ref()
@ -279,6 +287,7 @@ const init = (doctorId: any,id: any) => {
if (id) { if (id) {
post('registration/getById', {id: id}).then((res: any) => { post('registration/getById', {id: id}).then((res: any) => {
edit_data.value = res edit_data.value = res
edit_data.value.certType = Number(edit_data.value.certType)
}) })
} }
getSectionList() getSectionList()
@ -290,14 +299,25 @@ const socialCardUpdate = (e: any) => {
loading.value = true loading.value = true
if (e) { if (e) {
isShowCard.value = false isShowCard.value = false
edit_data.value = e.data.baseinfo
edit_data.value.gender = Number(e.data.baseinfo.gend) edit_data.value.gender = Number(e.data.baseinfo.gend)
edit_data.value.name = e.data.baseinfo.psn_name edit_data.value.name = e.data.baseinfo.psn_name
edit_data.value.certType = e.data.baseinfo.psn_cert_type edit_data.value.certType = Number(e.data.baseinfo.psn_cert_type)
edit_data.value.certNo = e.data.baseinfo.certno edit_data.value.certNo = e.data.baseinfo.certno
edit_data.value.age = Math.floor(e.data.baseinfo.age) edit_data.value.age = Math.floor(e.data.baseinfo.age)
tableData.value = e.data.insuinfo tableData.value = e.data.insuinfo
if(edit_data.value.certNo){
} }
}
nextTick(() => {
if (tableData.value.length > 0) {
height.value = 700
} else {
height.value = 470
}
})
loading.value = false loading.value = false
} }
const cardDefaultRef = ref<any>("") const cardDefaultRef = ref<any>("")
@ -312,6 +332,7 @@ const deleteCard = () => {
tableData.value = [] tableData.value = []
nextTick(() => { nextTick(() => {
cardDefaultRef.value?.close() cardDefaultRef.value?.close()
height.value = 470
}) })
} }
}, },

View File

@ -37,7 +37,7 @@
{{ roleList.find((item: any) => item.id === scope.row.organizationDoctorId)?.name || '-' }} {{ roleList.find((item: any) => item.id === scope.row.organizationDoctorId)?.name || '-' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="visitType" label="初|复诊"> <el-table-column prop="visitType" label="初/复诊">
<template #default="scope"> <template #default="scope">
{{ visitType[scope.row.visitType] || '-' }} {{ visitType[scope.row.visitType] || '-' }}
</template> </template>

View File

@ -106,3 +106,18 @@ export const getDaysBetweenDates = (startDateStr: string, endDateStr: string): s
return days; return days;
}; };
export const getEndOfDay = (date: Date | string): string => {
let dateDetail: Date;
if (date instanceof Date) {
dateDetail = new Date(date);
} else {
dateDetail = new Date(date);
if (isNaN(dateDetail.getTime())) {
return '-';
}
}
dateDetail.setHours(23, 59, 59, 0); // 设置为当天 23:59:00
return formatDate(dateDetail).slice(0, 19); //
};

View File

@ -73,7 +73,7 @@ import Mask from "@/components/common/Mask.vue";
import Edit from "@/components/registration/Edit.vue"; import Edit from "@/components/registration/Edit.vue";
import List from "@/components/registration/List.vue"; import List from "@/components/registration/List.vue";
import {post} from "@/utils/request"; import {post} from "@/utils/request";
import {formatDate, getToday, formatDateArray} from "@/utils/dateUtils.ts"; import {getEndOfDay, getToday, formatDateArray} from "@/utils/dateUtils.ts";
import Calendar from "@/components/common/Calendar.vue"; import Calendar from "@/components/common/Calendar.vue";
import Panel from "@/components/common/Panel.vue"; import Panel from "@/components/common/Panel.vue";
import {apiConfig} from "@/assets/config/apiConfig.ts"; import {apiConfig} from "@/assets/config/apiConfig.ts";
@ -100,6 +100,9 @@ const patientList = ref<any>([])
const selectedDate = ref<any>([getToday().start, getToday().end]) const selectedDate = ref<any>([getToday().start, getToday().end])
const handleDateChange = (date: any[]) => { const handleDateChange = (date: any[]) => {
selectedDate.value = formatDateArray(date) selectedDate.value = formatDateArray(date)
if(selectedDate.value[0]==selectedDate.value[1]){
selectedDate.value[1] =getEndOfDay(selectedDate.value[1]); // 23:59
}
getPatientList() getPatientList()
} }
const getPatientList = () => { const getPatientList = () => {