This commit is contained in:
ChenQiuYu 2025-05-22 14:49:02 +08:00
parent deee350d04
commit df82f8d26d
4 changed files with 109 additions and 82 deletions

View File

@ -158,11 +158,8 @@ const focus = (e: any) => {
const popoverRef = ref<any>(null);
const itemInfo = ref<any>({});
const show = (item: any) => {
if (!item.itemSocialCode) return
post('social/directory/getItemByCode', {code: item.itemSocialCode}).then((res: any) => {
if (!res){
itemInfo.value = {}
return
}
itemInfo.value = res
})
}

View File

@ -2,48 +2,50 @@
<Mask :is-show="isShow" width="800" :height="height" title="挂号" @close="close"
:show-footer="true">
<template #default>
<div style="padding:24px;height: 100%;width: 100%;display: flex;flex-direction: column">
<div style="padding:0 24px;height: 100%;display: flex;flex-direction: column">
<el-form
v-loading="loading"
:model="edit_data"
:inline=true
label-width="auto"
:rules="rules"
ref="form"
style="flex: 1;width: 100%;"
label-position="top"
style="flex: 1;width: 100%"
>
<el-row :gutter="24" style="width: 100%">
<el-col :span="8">
<el-form-item prop="name" style="margin-bottom: 2px" label="姓名">
<el-descriptions
border
direction="vertical"
:column="4"
style="margin-top: 20px"
>
<el-descriptions-item label="姓名" width="200">
<el-form-item prop="name" style="margin-bottom: 2px">
<el-input v-model="edit_data.name" placeholder="请输入姓名" clearable
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="gender" label="性别">
</el-descriptions-item>
<el-descriptions-item label="性别" width="200">
<el-form-item prop="gender">
<el-radio-group v-model="edit_data.gender"
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0">
<el-radio :value="1"></el-radio>
<el-radio :value="2"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="age" label="年龄">
</el-descriptions-item>
<el-descriptions-item label="年龄" width="200">
<el-form-item prop="age">
<el-input v-model.number="edit_data.age" placeholder="请输入年龄"
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" style="width: 100%">
<el-col :span="8">
<el-form-item label="手机号" prop="phone">
</el-descriptions-item>
<el-descriptions-item label="手机号" width="200">
<el-form-item prop="phone">
<el-input v-model="edit_data.phone" placeholder="手机号"
:disabled="edit_data.status==3||edit_data.status==0"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="医生" prop="organizationDoctorId">
</el-descriptions-item>
<el-descriptions-item label="医生">
<el-form-item prop="organizationDoctorId">
<el-select
v-model="edit_data.organizationDoctorId"
placeholder="请选择医生"
@ -59,9 +61,9 @@
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="科室">
</el-descriptions-item>
<el-descriptions-item label="科室">
<el-form-item>
<el-select
v-model="edit_data.organizationSectionId"
placeholder="选择科室"
@ -75,11 +77,9 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" style="width: 100%">
<el-col :span="8">
<el-form-item prop="certType" label="证件类型">
</el-descriptions-item>
<el-descriptions-item label="证件类型">
<el-form-item prop="certType">
<el-select v-model="edit_data.certType" placeholder="证件类型"
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0">
<el-option
@ -90,59 +90,66 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="证件码" prop="certNo">
</el-descriptions-item>
<el-descriptions-item label="证件码">
<el-form-item prop="certNo">
<el-input v-model="edit_data.certNo" placeholder="请输入证件码"
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="初/复诊" prop="visitType">
</el-descriptions-item>
<el-descriptions-item label="初/复诊">
<el-form-item prop="visitType">
<el-select v-model="edit_data.visitType" placeholder="就诊类型" :disabled="edit_data.status==0">
<el-option label="初诊" :value="0"></el-option>
<el-option label="复诊" :value="1"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" style="width: 100%">
<el-col :span="8">
<el-form-item label="费用类型" prop="type">
</el-descriptions-item>
<el-descriptions-item label="费用类型">
<el-form-item prop="type">
<el-select v-model="edit_data.type" :disabled="edit_data.status==0">
<el-option label="普通" :value="1"></el-option>
<el-option label="医保" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="备注">
<el-input v-model="edit_data.memo" placeholder="备注" :disabled="edit_data.status==0"></el-input>
</el-descriptions-item>
<el-descriptions-item
:span="2"
label="时间">
<el-form-item v-if="props.dateName!='预约'" style="width: 100%">
<div>{{ getToday().start }}</div>
</el-form-item>
</el-col>
</el-row>
<el-row style="width: 100%" v-if="props.dateName=='预约'">
<el-col :span="24">
<el-form-item label="时间">
<div style="display: flex;width: 100%">
<div v-else style="display: flex;width: 100%">
<el-form-item style="width: 100%" prop="date">
<el-date-picker
v-model="edit_data.date"
type="date"
format="YYYY/MM/DD"
value-format="YYYY-MM-DD"
placeholder="选择日期"
style="width: 100%"
style="width: 50%"
:disabledDate="disabledDate"
/>
<el-time-select
v-model="edit_data.dateTime"
start="08:30"
v-model="time"
start="00:00"
step="00:15"
end="18:30"
end="23:45"
:min-time="getCurrentTime()"
placeholder="选择时间"
style="width: 50%"
/>
</div>
</el-form-item>
</div>
</el-descriptions-item>
<el-descriptions-item
:span="4"
label="备注">
<el-form-item>
<el-input v-model="edit_data.memo" placeholder="备注" :disabled="edit_data.status==0"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-descriptions-item>
</el-descriptions>
</el-form>
<h5 v-if="!isShowCard" style="margin:24px 0;font-size: 16px">险种列表</h5>
<el-table
@ -208,25 +215,17 @@ import {getKey} from "@/utils/discrotyUtil.ts";
import insutypes from "@/assets/config/directory/insutypes.json"
import {apiConfig} from "@/assets/config/apiConfig.ts";
import Quick from "@/components/charge/RecordsLog/Quick.vue";
import {getCurrentTime, getToday} from "@/utils/dateUtils.ts";
const height = ref(600)
const height = ref(570)
const certTypeList = ref<any>(
Object.entries(psnCertTypes)
.map(([id, name]) => ({id: Number(id), name}))
.sort((a, b) => a.id - b.id)
)
const disabledDate = (date: Date) => {
const today = new Date();
today.setHours(0, 0, 0, 0); // 00:00:00
return date < today; //
};
const props = defineProps({
dateName: {
type: String,
default: '现在'
},
const edit_data = ref<any>({
timeList: []
})
const edit_data = ref<any>({})
const rules = ref<any>({
name: [
{required: true, message: '请输入名称', trigger: 'blur'},
@ -259,24 +258,44 @@ const rules = ref<any>({
type: [
{required: true, message: '请选择费用类型', trigger: 'change'},
],
date: [
{required: true, message: '请选择就诊时间', trigger: 'change'},
]
})
const isShow = ref(false)
const emit = defineEmits(['close'])
const close = () => {
isShow.value = false
edit_data.value = {}
time.value = ''
edit_data.value = {
timeList: [],
}
isShowCard.value = true
nextTick(() => {
cardDefaultRef.value?.close()
height.value = 600
height.value = 570
})
emit('close')
}
const form = ref()
const quickRef = ref()
const time = ref()
const disabledDate = (date: Date) => {
const today = new Date();
today.setHours(0, 0, 0, 0); // 00:00:00
return date < today; //
};
const props = defineProps({
dateName: {
type: String,
default: '现在'
},
})
const save = () => {
if (props.dateName != '预约') {
edit_data.value.time = '现在'
if (props.dateName == '现在') {
edit_data.value.timeList = []
} else {
edit_data.value.timeList.push(new Date(edit_data.value.date), time.value)
}
let data = {
...edit_data.value,
@ -342,12 +361,12 @@ const quickShow = ref<any>(false)
const init = (doctorId: any = "", id: any = null, show: any = false) => {
isShow.value = true
quickShow.value = show
console.log("doctorId", quickShow.value)
edit_data.value.organizationDoctorId = doctorId || ""
if (id) {
post('registration/getById', {id: id}).then((res: any) => {
edit_data.value = res
edit_data.value.certType = Number(edit_data.value.certType)
time.value = edit_data.value.timeList[edit_data.value.timeList.length - 1]
})
}
getSectionList()
@ -383,9 +402,9 @@ const socialCardUpdate = (e: any) => {
}
nextTick(() => {
if (tableData.value.length > 0) {
height.value = 830
height.value = 870
} else {
height.value = 600
height.value = 570
}
})
loading.value = false
@ -402,7 +421,7 @@ const deleteCard = () => {
tableData.value = []
nextTick(() => {
cardDefaultRef.value?.close()
height.value = 470
height.value = 570
})
}
},

View File

@ -138,3 +138,11 @@ export const getPrevious30Days=()=> {
}
return dates[dates.length-1];
}
//获取当前时间的时分
export const getCurrentTime=()=> {
const currentDate = new Date();
const hours = currentDate.getHours();
const minutes = currentDate.getMinutes();
return `${hours}:${minutes}`;
}

View File

@ -18,7 +18,7 @@
<ul class="role_list">
<el-scrollbar style="height: 100%">
<li v-for="(item, index) in roleList" :key="index"
:class="{active:isShowNum==index}">
:class="{active:isShowNum==index}" @click="changeRole(item,index)">
<span class="name">{{ item.name }}</span>
<span class="section_name">{{ item.sectionNames }}</span>
<span v-if="dateName" class="btn" @click="openDialog(item,index)"
@ -185,6 +185,9 @@ const reset = () => {
keyword.value = ''
getPatientList()
}
const changeRole=(item: any) => {
getPatientList()
}
</script>
<style scoped lang="scss">
.container-wrapper {