dev
This commit is contained in:
parent
503b33ba3b
commit
31700fcfaa
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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 }} {{ item.num }}</span>
|
@click="clickTab(item)">{{ item.label }} {{ 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;
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue