This commit is contained in:
ChenQiuYu 2025-05-09 16:50:36 +08:00
parent 503b33ba3b
commit 31700fcfaa
8 changed files with 131 additions and 129 deletions

View File

@ -15,7 +15,7 @@ ul, li {
html, body { html, body {
height: 100%; height: 100%;
font-family: Source Han Sans,PingFangSC, PingFang SC, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; font-family: PingFangSC, PingFang SC, sans-serif;
font-size: 16px; font-size: 16px;
color: base.$text-primary; color: base.$text-primary;
background-color: base.$background-color-base; background-color: base.$background-color-base;

View File

@ -8,7 +8,7 @@
v-model="keyword" v-model="keyword"
:prefix-icon="Plus" :prefix-icon="Plus"
:placeholder="props.placeholder" :placeholder="props.placeholder"
style="width: 100%" style="width: 100%;height: 100%"
clearable clearable
@input="changeInput" @input="changeInput"
class="no-border-input" class="no-border-input"

View File

@ -82,15 +82,16 @@
<div class="bottom"> <div class="bottom">
<div class="search"> <div class="search">
<SearchInput <SearchInput
style="height: 100%"
:request-api="goodsSearchApi" :request-api="goodsSearchApi"
:show-config="goodsShowConfig" :show-config="goodsShowConfig"
:placeholder="'请输入药名或者拼音码'" :placeholder="'请输入药名或者拼音码'"
@selectedCallBack="goodsSelect" @selectedCallBack="goodsSelect"
v-if="status" :disabled="!props.status"
@focus="focus" @focus="focus"
></SearchInput> ></SearchInput>
</div> </div>
<span>合计{{ getTotalPrice() }}</span> <span v-if="status">合计{{ getTotalPrice() }}</span>
</div> </div>
</panel> </panel>
</template> </template>
@ -210,9 +211,11 @@ const colosInfo = () => {
text-align: right; text-align: right;
border-top: 1px solid #EAEAEC; border-top: 1px solid #EAEAEC;
display: flex; display: flex;
height: 58px;
align-items: center;
.search { .search {
flex: 1; flex: 1;
height: 100%;
} }
} }
</style> </style>

View File

@ -54,13 +54,14 @@
<div class="bottom"> <div class="bottom">
<div class="search"> <div class="search">
<SearchInput <SearchInput
style="height: 100%"
@focus="focus" @focus="focus"
:placeholder="'请输入药服务项目或拼音码'" :placeholder="'请输入药服务项目或拼音码'"
:request-api="serviceSearchApi" :request-api="serviceSearchApi"
:show-config="serviceShowConfig" :show-config="serviceShowConfig"
@selectedCallBack="serviceSelect" v-if="status"></SearchInput> @selectedCallBack="serviceSelect" :disabled="!props.status"></SearchInput>
</div> </div>
<span>合计{{ getTotalPrice() || 0 }}</span> <span v-if="status">合计{{ getTotalPrice() || 0 }}</span>
</div> </div>
</Panel> </Panel>
</template> </template>
@ -159,9 +160,12 @@ const hide = () => {
text-align: right; text-align: right;
border-top: 1px solid #EAEAEC; border-top: 1px solid #EAEAEC;
display: flex; display: flex;
height: 58px;
align-items: center;
.search { .search {
flex: 1; flex: 1;
height: 100%;
} }
} }
</style> </style>

View File

@ -8,16 +8,15 @@
<el-option label="中医模板" :value="1"/> <el-option label="中医模板" :value="1"/>
<el-option label="口腔模板" :value="2"/> <el-option label="口腔模板" :value="2"/>
</el-select> </el-select>
</div> </div>
</div> </div>
</template> </template>
<div class="container"> <div class="container">
<el-form :model="formDate" label-width="auto" ref="formRef"> <el-form :model="formDate" label-width="auto" ref="formRef">
<el-form-item label="主诉"> <el-form-item label="主诉:">
<PopoverInput :disabled="props.disabled" v-model="formDate.mainAppeal" :list="mainAppealList" @focus="focus"/> <PopoverInput :disabled="props.disabled" v-model="formDate.mainAppeal" :list="mainAppealList" @focus="focus"/>
</el-form-item> </el-form-item>
<el-form-item label="诊断"> <el-form-item label="诊断:">
<DiagnosisSearchInput <DiagnosisSearchInput
ref="diagnosisSearchRef" ref="diagnosisSearchRef"
:disabled="props.disabled" :disabled="props.disabled"
@ -26,34 +25,35 @@
@selectedCallBack="diagnosisSelect" @selectedCallBack="diagnosisSelect"
:show-header="false" :show-header="false"
@focus="focus" @focus="focus"
style="height: 100%"
/> />
</el-form-item> </el-form-item>
<el-form-item label="现病史" v-if="!props.isShowFrom"> <el-form-item label="现病史:" v-if="!props.isShowFrom">
<PopoverInput :disabled="props.disabled" v-model="formDate.nowMedicalHistory" :list="nowMedicalHistoryList"/> <PopoverInput :disabled="props.disabled" v-model="formDate.nowMedicalHistory" :list="nowMedicalHistoryList"/>
</el-form-item> </el-form-item>
<el-form-item label="既往史" v-if="!props.isShowFrom"> <el-form-item label="既往史:" v-if="!props.isShowFrom">
<PopoverInput :disabled="props.disabled" v-model="formDate.beforeMedicalHistory" :list="beforeMedicalHistoryList"/> <PopoverInput :disabled="props.disabled" v-model="formDate.beforeMedicalHistory" :list="beforeMedicalHistoryList"/>
</el-form-item> </el-form-item>
<el-form-item label="过敏史" v-if="!props.isShowFrom"> <el-form-item label="过敏史:" v-if="!props.isShowFrom">
<PopoverInput :disabled="props.disabled" v-model="formDate.allergyHistory" :list="allergyHistoryList"/> <PopoverInput :disabled="props.disabled" v-model="formDate.allergyHistory" :list="allergyHistoryList"/>
</el-form-item> </el-form-item>
<el-form-item label="体格检查" v-if="!props.isShowFrom"> <el-form-item label="体格检查:" v-if="!props.isShowFrom">
<PhysiqueExamInuput :disabled="props.disabled" v-model="formDate.exam" :list="physiqueExamList"/> <PhysiqueExamInuput :disabled="props.disabled" v-model="formDate.exam" :list="physiqueExamList"/>
</el-form-item> </el-form-item>
<el-form-item label="望闻问切" v-if="modelType==1&&!props.isShowFrom"> <el-form-item label="望闻问切:" v-if="modelType==1&&!props.isShowFrom">
<PopoverInput :disabled="props.disabled" v-model="formDate.chinaAdjunctCheck" :list="chinaAdjunctCheckList"/> <PopoverInput :disabled="props.disabled" v-model="formDate.chinaAdjunctCheck" :list="chinaAdjunctCheckList"/>
</el-form-item> </el-form-item>
<el-form-item label="治法" v-if="modelType==1&&!props.isShowFrom"> <el-form-item label="治法:" v-if="modelType==1&&!props.isShowFrom">
<el-input v-model="formDate.chinaDeal" :disabled="props.disabled"></el-input> <el-input v-model="formDate.chinaDeal" :disabled="props.disabled"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="口腔检查" v-if="modelType==2&&!props.isShowFrom"> <el-form-item label="口腔检查:" v-if="modelType==2&&!props.isShowFrom">
<el-input :disabled="props.disabled" v-model="formDate.mouthCheck"></el-input> <el-input :disabled="props.disabled" v-model="formDate.mouthCheck"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="辅助检查" v-if="(modelType==2 || modelType ==0)&&!props.isShowFrom"> <el-form-item label="辅助检查:" v-if="(modelType==2 || modelType ==0)&&!props.isShowFrom">
<el-input :disabled="props.disabled" v-model="formDate.adjunctCheck"></el-input> <el-input style="height: 100%;width: 100%" :disabled="props.disabled" v-model="formDate.adjunctCheck"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="处置" v-if="(modelType==0 || modelType ==2)&&!props.isShowFrom"> <el-form-item label="处置:" v-if="(modelType==0 || modelType ==2)&&!props.isShowFrom">
<el-input :disabled="props.disabled" v-model="formDate.deal"></el-input> <el-input style="height: 100%;width: 100%" :disabled="props.disabled" v-model="formDate.deal"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -127,17 +127,30 @@ defineExpose({initDiagnosisSearch,clearDiagnosis})
<style scoped lang="scss"> <style scoped lang="scss">
.content { .content {
display: flex; display: flex;
.model-selector { .model-selector {
width: 100px; width: 100px;
} }
} }
.container { .container {
margin: 24px; margin:0 24px;
} }
:deep(.el-form-item){ :deep(.el-form-item){
margin-bottom: 2px; margin-bottom: 0;
} }
:deep(.el-form-item__label){
height: 42px;
line-height: 42px;
}
:deep(.el-input__wrapper){
border-radius: 0;
height: 42px;
background: #FFFFFF;
&:nth-child(2n){
border-top: none;
border-bottom: none;
}
}
</style> </style>

View File

@ -1,9 +1,8 @@
<template> <template>
<el-popover placement="bottom-start" :visible="isVisible" :width="props.width" ref="popoverRef" <el-popover placement="bottom-start" :visible="isVisible" :width="props.width" ref="popoverRef"
@before-enter="beforeShow" @hide="afterShow"> @before-enter="beforeShow" @hide="afterShow">
<template #reference> <template #reference>
<el-input v-model="keyword" style="width: 100%" @input="changeInput" :disabled="disabled" @click="changeInput" <el-input v-model="keyword" style="width: 100%;height: 100%" @input="changeInput" :disabled="disabled" @click="changeInput"
placeholder="诊断选择" ref="inputRef" @focus="focus" @blur="handleBlur"></el-input> placeholder="诊断选择" ref="inputRef" @focus="focus" @blur="handleBlur"></el-input>
</template> </template>
<div class="container"> <div class="container">

View File

@ -2,8 +2,10 @@
<Panel :title="'就诊队列'" style="height: 100%"> <Panel :title="'就诊队列'" style="height: 100%">
<template #tools> <template #tools>
<el-button type="primary" plain @click="setDate"> <el-button type="primary" plain @click="setDate">
{{selectedDateStr}} {{ selectedDateStr }}
<el-icon class="el-icon--right"><CaretBottom /></el-icon> <el-icon class="el-icon--right">
<CaretBottom/>
</el-icon>
</el-button> </el-button>
<el-date-picker <el-date-picker
v-model="selectedDate" v-model="selectedDate"
@ -15,7 +17,6 @@
/> />
</template> </template>
<div class="panel-content" style="display: flex;flex-direction: column;height: 100%"> <div class="panel-content" style="display: flex;flex-direction: column;height: 100%">
<div class="tabs"> <div class="tabs">
<span v-for="(item,index) in statusList" :class="curStatus == item.status ? 'tabs-item' : ''" <span v-for="(item,index) in statusList" :class="curStatus == item.status ? 'tabs-item' : ''"
@click="clickTab(item)">{{ item.label }}&nbsp;{{ item.num }}</span> @click="clickTab(item)">{{ item.label }}&nbsp;{{ item.num }}</span>
@ -34,12 +35,13 @@
alt="头像"/> alt="头像"/>
<img v-if="item.gender==2" class="avatar" src="/static/images/outpatient/women.png" <img v-if="item.gender==2" class="avatar" src="/static/images/outpatient/women.png"
alt="头像"/> alt="头像"/>
{{ item.name }}
</span> </span>
<span>{{ item.name }}</span>
<span>{{ item.age || 0 }}</span>
<span class="item_time"> <span class="item_time">
{{ formatListTime(item.createDatetime) || '-' }} {{ formatListTime(item.createDatetime) || '-' }}
</span> </span>
<span>{{ item.type == 2 ? '医保' : '自费' }}</span>
</li> </li>
</el-scrollbar> </el-scrollbar>
</ul> </ul>
@ -56,11 +58,12 @@ import {formatListTime, getToday, getThisMonth, getCurrentDate, getEndOfDay} fro
import {apiConfig} from "@/assets/config/apiConfig.ts"; import {apiConfig} from "@/assets/config/apiConfig.ts";
import {ElMessageBox} from "element-plus"; import {ElMessageBox} from "element-plus";
import {CaretBottom} from '@element-plus/icons-vue' import {CaretBottom} from '@element-plus/icons-vue'
const curStatus = ref(1) const curStatus = ref(1)
const search = ref('') const search = ref('')
const curItem = ref<any>('') const curItem = ref<any>('')
const selectedDate:any = ref('') const selectedDate: any = ref('')
const selectedDateStr:any = ref('') const selectedDateStr: any = ref('')
const emit = defineEmits(['clickItem', 'changeTab']) const emit = defineEmits(['clickItem', 'changeTab'])
const datePickerRef = ref() const datePickerRef = ref()
const clickTab = (item: any) => { const clickTab = (item: any) => {
@ -69,7 +72,7 @@ const clickTab = (item: any) => {
curItem.value = {} curItem.value = {}
} }
const setDate=function (){ const setDate = function () {
if (datePickerRef.value) { if (datePickerRef.value) {
datePickerRef.value.handleOpen() datePickerRef.value.handleOpen()
} }
@ -94,31 +97,31 @@ const statusList = ref<any>([
]) ])
const itemId = defineModel() const itemId = defineModel()
onMounted(() => { onMounted(() => {
selectedDate.value=getCurrentDate() selectedDate.value = getCurrentDate()
initStatusList() initStatusList()
curItem.value = itemId curItem.value = itemId
if(curStatus.value==1){ if (curStatus.value == 1) {
init() init()
} }
}) })
const loading = ref(true) const loading = ref(true)
const init = async () => { const init = async () => {
selectedDateStr.value=setDateTip() selectedDateStr.value = setDateTip()
clickLi(null)
loading.value = true loading.value = true
try{ try {
let data:any=await post(apiConfig.RegistrationList, { let data: any = await post(apiConfig.RegistrationList, {
query: { query: {
status: curStatus.value, status: curStatus.value,
beginTime: selectedDate.value, beginTime: selectedDate.value,
endTime: getEndOfDay(new Date(selectedDate.value)) endTime: getEndOfDay(new Date(selectedDate.value))
} }
}, {catch_error:true}); }, {catch_error: true});
list.value=data.list list.value = data.list
} } catch (e) {
catch (e){
}finally { } finally {
loading.value = false loading.value = false
} }
initStatusList() initStatusList()
@ -126,20 +129,21 @@ const init = async () => {
const initStatusList = () => { const initStatusList = () => {
post('statistics/getTipCount', { post('statistics/getTipCount', {
beginTime: selectedDate.value, beginTime: selectedDate.value,
endTime: getEndOfDay(new Date(selectedDate.value))}).then((res: any) => { endTime: getEndOfDay(new Date(selectedDate.value))
}).then((res: any) => {
statusList.value[0].num = res.waitDiagnosisCount statusList.value[0].num = res.waitDiagnosisCount
statusList.value[1].num = res.diagnosingCount statusList.value[1].num = res.diagnosingCount
statusList.value[2].num = res.completeDiaCount statusList.value[2].num = res.completeDiaCount
}) })
} }
const clickLi = (item: any,showBox:any = true) => { const clickLi = (item: any, showBox: any = true) => {
curItem.value = item curItem.value = item
if (item.status == 1 && showBox) { if (item!=null&&item.status == 1 && showBox) {
ElMessageBox.confirm(`您将要接诊${item.name}`, "提示", { ElMessageBox.confirm(`您将要接诊${item.name}`, "提示", {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
callback: (action: any) => { callback: (action: any) => {
if (action == "cancel"){ if (action == "cancel") {
curItem.value = null curItem.value = null
return return
} }
@ -153,14 +157,14 @@ const clickLi = (item: any,showBox:any = true) => {
} }
}, },
}) })
}else { } else {
emit('clickItem', curItem.value) emit('clickItem', curItem.value)
} }
} }
const changeCurItemOrStatus = (item:any, status:any) => { const changeCurItemOrStatus = (item: any, status: any) => {
clickLi(item,false) clickLi(item, false)
if (curStatus != null){ if (curStatus != null) {
curStatus.value = status curStatus.value = status
} }
} }
@ -168,28 +172,28 @@ defineExpose({changeCurItemOrStatus})
watch(() => curStatus.value, () => { watch(() => curStatus.value, () => {
init() // init() //
}) })
const setDateTip=()=>{ const setDateTip = () => {
const seletctedDateObj = new Date(selectedDate.value); const seletctedDateObj = new Date(selectedDate.value);
// //
if(seletctedDateObj.getFullYear()==new Date().getFullYear() && seletctedDateObj.getMonth()==new Date().getMonth() && seletctedDateObj.getDate()==new Date().getDate()){ if (seletctedDateObj.getFullYear() == new Date().getFullYear() && seletctedDateObj.getMonth() == new Date().getMonth() && seletctedDateObj.getDate() == new Date().getDate()) {
return '今天' return '今天'
} }
if(seletctedDateObj.getFullYear()==new Date().getFullYear() && seletctedDateObj.getMonth()==new Date().getMonth() && seletctedDateObj.getDate()==new Date().getDate()-1){ if (seletctedDateObj.getFullYear() == new Date().getFullYear() && seletctedDateObj.getMonth() == new Date().getMonth() && seletctedDateObj.getDate() == new Date().getDate() - 1) {
return '昨天' return '昨天'
} }
// //
if(seletctedDateObj.getFullYear()==new Date().getFullYear()){ if (seletctedDateObj.getFullYear() == new Date().getFullYear()) {
return `${seletctedDateObj.getMonth()+1}-${seletctedDateObj.getDate()}` return `${seletctedDateObj.getMonth() + 1}-${seletctedDateObj.getDate()}`
} }
return seletctedDateObj.getFullYear(); return seletctedDateObj.getFullYear();
} }
watch(() => selectedDate.value, (newValue, oldValue) => { watch(() => selectedDate.value, (newValue, oldValue) => {
if(newValue==oldValue){ if (newValue == oldValue) {
return; return;
} }
if(newValue==null){ if (newValue == null) {
return; return;
} }
init() init()
@ -219,23 +223,20 @@ watch(() => selectedDate.value, (newValue, oldValue) => {
.search { .search {
position: relative; position: relative;
height: 82px; margin: 16px 0;
line-height: 82px; padding: 0 16px;
padding: 0 18px;
.search-icon { .search-icon {
position: absolute; position: absolute;
left: 33px; left: 32px;
top: 50%; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
width: 20px; // width: 16px; //
height: 20px; // height: 16px; //
z-index: 1; z-index: 1;
} }
.search-input { .search-input {
width: 100%; width: 100%;
height: 50px; height: 42px;
background: #FFFFFF; background: #FFFFFF;
border-radius: 6px; border-radius: 6px;
border: 1px solid #EAEAEC; border: 1px solid #EAEAEC;
@ -254,50 +255,26 @@ watch(() => selectedDate.value, (newValue, oldValue) => {
display: flex; display: flex;
min-height: 0; min-height: 0;
flex-direction: column; flex-direction: column;
.list-title {
height: 48px;
background: #F5FAFF;
padding: 0 27px;
display: flex;
align-items: center;
font-weight: 500;
font-size: 14px;
color: rgba(34, 42, 57, 0.8);
font-style: normal;
span {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
}
}
ul { ul {
flex: 1; flex: 1;
min-height: 0; min-height: 0;
.list-item { .list-item {
height: 48px; height: 48px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
padding: 0 18px; padding: 0 26px 0 28px;
font-weight: 400; font-weight: 400;
font-size: 14px; font-size: 14px;
color: rgba(34, 42, 57, 0.7); color: rgba(34, 42, 57, 0.7);
font-style: normal; font-style: normal;
cursor: pointer; cursor: pointer;
span { span {
display: flex; display: flex;
align-items: center; align-items: center;
.avatar { .avatar {
margin-left: 15px;
width: 26px; width: 26px;
height: 26px; height: 26px;
margin-right: 15px;
} }
} }
@ -316,7 +293,6 @@ watch(() => selectedDate.value, (newValue, oldValue) => {
overflow: hidden; // overflow: hidden; //
text-overflow: ellipsis; // text-overflow: ellipsis; //
text-align: center; text-align: center;
margin-right: 24px;
} }
} }
@ -333,7 +309,8 @@ watch(() => selectedDate.value, (newValue, oldValue) => {
} }
:deep(.el-input){
:deep(.el-input) {
visibility: hidden; visibility: hidden;
width: 0; width: 0;
height: 0; height: 0;

View File

@ -1,33 +1,37 @@
<template> <template>
<div class="container"> <div class="container">
<div class="left"> <div class="left">
<MedicalQueue v-model="itemId" @clickItem="clickItem" @changeTab="changeTab" ref="medicalQueueRef"></MedicalQueue> <MedicalQueue v-model="itemId" @clickItem="clickItem" @changeTab="changeTab" ref="medicalQueueRef"></MedicalQueue>
</div> </div>
<div class="middle"> <div class="middle">
<el-scrollbar> <el-scrollbar>
<div class="case"> <div class="case">
<CaseDetail v-if="patientRegistration.status==3" v-model="formData" ></CaseDetail> <CaseDetail v-if="patientRegistration.status==3" v-model="formData"></CaseDetail>
<Case ref="caseRef" v-else v-model="formData" :disabled="curRegister?.status !=2" :isShowFrom="isShowFrom" @focus="focus"></Case> <Case ref="caseRef" v-else v-model="formData" :disabled="curRegister?.status !=2" :isShowFrom="isShowFrom"
@focus="focus"></Case>
</div> </div>
<div class="service-items"> <div class="service-items">
<ServiceDetail v-model="formData.itemDetail" @focus="focus" @totalPriceChange="getOrderTotalPrice" :status="curRegister?.status ==2"></ServiceDetail> <ServiceDetail v-model="formData.itemDetail" @focus="focus" @totalPriceChange="getOrderTotalPrice"
:status="curRegister?.status ==2"></ServiceDetail>
</div> </div>
<div class="pharmaceutical-consumables"> <div class="pharmaceutical-consumables">
<GoodsDetail v-model="formData.goodsDetail" @focus="focus" @totalPriceChange="getOrderTotalPrice" :status="curRegister?.status ==2"></GoodsDetail> <GoodsDetail v-model="formData.goodsDetail" @focus="focus" @totalPriceChange="getOrderTotalPrice"
:status="curRegister?.status ==2"></GoodsDetail>
</div> </div>
</el-scrollbar> </el-scrollbar>
<div class="bottom"> <div class="bottom">
<Settlement v-model="formData.totalPrice" @cancelReception="cancelReception" @save="save" :status="curRegister?.status ==2" <Settlement v-model="formData.totalPrice" @cancelReception="cancelReception" @save="save"
@edit="edit"></Settlement> :status="curRegister?.status ==2"
</div> @edit="edit"></Settlement>
</div>
</div> </div>
<div class="right"> <div class="right">
<div class="top"> <div class="top">
<PatientCard ref="patientCardRef"></PatientCard> <PatientCard ref="patientCardRef"></PatientCard>
</div> </div>
<div class="bottom"> <div class="bottom">
<MedicalHistory ref="medicalHistoryRef" @copy="copyForm" @copyItem="copyItemList" @copyGoods="copyGoodsList" ></MedicalHistory> <MedicalHistory ref="medicalHistoryRef" @copy="copyForm" @copyItem="copyItemList"
@copyGoods="copyGoodsList"></MedicalHistory>
</div> </div>
</div> </div>
</div> </div>
@ -51,6 +55,7 @@ import {apiConfig} from "@/assets/config/apiConfig.ts";
import PatientCard from "@/components/charge/PatientCard.vue"; import PatientCard from "@/components/charge/PatientCard.vue";
import ServiceDetail from "@/components/common/service/ServiceDetail.vue"; import ServiceDetail from "@/components/common/service/ServiceDetail.vue";
import GoodsDetail from "@/components/common/goods/GoodsDetail.vue"; import GoodsDetail from "@/components/common/goods/GoodsDetail.vue";
const curRegister = ref() const curRegister = ref()
const registerId = ref() const registerId = ref()
const patientId = ref() const patientId = ref()
@ -61,13 +66,13 @@ const formData = ref<any>({
itemDetail: [], itemDetail: [],
goodsDetail: [], goodsDetail: [],
}) })
const initFormData = () => { const initFormData = () => {
formData.value = { formData.value = {
diagType: 1, diagType: 1,
itemDetail: [], itemDetail: [],
goodsDetail: [], goodsDetail: [],
} }
nextTick(()=>{ nextTick(() => {
caseRef.value?.clearDiagnosis() caseRef.value?.clearDiagnosis()
patientCardRef.value?.clear() patientCardRef.value?.clear()
}) })
@ -100,9 +105,9 @@ const save = () => {
diagnosisMedicalRecord: medicalRecord, diagnosisMedicalRecord: medicalRecord,
} }
post('medical/record/save', {data: data}).then((res:any) => { post('medical/record/save', {data: data}).then((res: any) => {
ElMessage.success("保存成功") ElMessage.success("保存成功")
medicalQueueRef.value?.changeCurItemOrStatus(null,2); medicalQueueRef.value?.changeCurItemOrStatus(null, 2);
}) })
@ -113,11 +118,12 @@ const patientCardRef = ref()
const patientRegistration = ref<any>({}) const patientRegistration = ref<any>({})
const clickItem = (item: any) => { const clickItem = (item: any) => {
curRegister.value = item curRegister.value = item
if(!item)return
registerId.value = item.id registerId.value = item.id
itemId.value = item.id itemId.value = item.id
patientId.value = item.patientInfoId patientId.value = item.patientInfoId
if (item.status == 2){ if (item.status == 2) {
initFormData() initFormData()
} }
if (item.status == 3) { if (item.status == 3) {
@ -137,10 +143,10 @@ const clickItem = (item: any) => {
}) })
} }
const medicalQueueRef =ref(); const medicalQueueRef = ref();
const cancelReception = () => { const cancelReception = () => {
post(apiConfig.RegistrationChangeStatus, {id: registerId.value, status: 1}).then((res: any) => { post(apiConfig.RegistrationChangeStatus, {id: registerId.value, status: 1}).then((res: any) => {
medicalQueueRef.value?.changeCurItemOrStatus(res,1); medicalQueueRef.value?.changeCurItemOrStatus(res, 1);
}) })
} }
const changeTab = (e: any) => { const changeTab = (e: any) => {
@ -153,7 +159,7 @@ const changeTab = (e: any) => {
const itemId = ref<any>('') const itemId = ref<any>('')
const edit = () => { const edit = () => {
post('registration/changeStatus', {id: registerId.value, status: 2}).then((res: any) => { post('registration/changeStatus', {id: registerId.value, status: 2}).then((res: any) => {
medicalQueueRef.value?.changeCurItemOrStatus(res,2); medicalQueueRef.value?.changeCurItemOrStatus(res, 2);
}) })
} }
const getOrderTotalPrice = () => { const getOrderTotalPrice = () => {
@ -167,34 +173,34 @@ const getOrderTotalPrice = () => {
formData.value.preTotalPrice = totalPrice formData.value.preTotalPrice = totalPrice
formData.value.totalPrice = totalPrice formData.value.totalPrice = totalPrice
} }
const caseRef= ref<any>("") const caseRef = ref<any>("")
const copyForm=(item:any) => { const copyForm = (item: any) => {
formData.value = item.diagnosisMedicalRecord formData.value = item.diagnosisMedicalRecord
const diagnosisList =JSON.parse(item.diagnosisMedicalRecord.diagnosisDetail) const diagnosisList = JSON.parse(item.diagnosisMedicalRecord.diagnosisDetail)
const nList = item.diagnosisMedicalRecord.diagnosisSummary.split(',') const nList = item.diagnosisMedicalRecord.diagnosisSummary.split(',')
nextTick(()=>{ nextTick(() => {
caseRef.value?.initDiagnosisSearch(diagnosisList,nList) caseRef.value?.initDiagnosisSearch(diagnosisList, nList)
}) })
} }
const copyItemList=(item:any) => { const copyItemList = (item: any) => {
itemDetail.value = item.itemDetail itemDetail.value = item.itemDetail
} }
const copyGoodsList=(item:any) => { const copyGoodsList = (item: any) => {
goodsList.value = item.goodsDetail goodsList.value = item.goodsDetail
} }
const seeDockerInfo = ref<any>() const seeDockerInfo = ref<any>()
const getSeeDockerInfo = (newValue:any) => { const getSeeDockerInfo = (newValue: any) => {
if (!registerId.value)return; if (!registerId.value) return;
post('medical/record/getSeeDockerInfo', {regisId: newValue}).then((res: any) => { post('medical/record/getSeeDockerInfo', {regisId: newValue}).then((res: any) => {
seeDockerInfo.value = res seeDockerInfo.value = res
formData.value.allergyHistory = res.patientInfo.allergyHistory; formData.value.allergyHistory = res.patientInfo.allergyHistory;
formData.value.beforeMedicalHistory = res.patientInfo.beforeMedicalHistory; formData.value.beforeMedicalHistory = res.patientInfo.beforeMedicalHistory;
}) })
} }
const isShowFrom= ref<any>(false) const isShowFrom = ref<any>(false)
const focus=(e:any)=>{ const focus = (e: any) => {
isShowFrom.value=e isShowFrom.value = e
} }
watch(() => registerId.value, (newValue) => { watch(() => registerId.value, (newValue) => {
if (!newValue) { if (!newValue) {