web/src/components/charge/RecordsLog/Quick.vue

137 lines
3.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<Mask :is-show="is_show" :width="450" :height="250" :show-footer="true" @close="close" title="诊断">
<template #default>
<div class="wrapper">
<span>诊断</span>
<DiagnosisSearchInput
ref="diagnosisSearchRef"
:request-api="diagnosisSearchApi"
:show-config="diagnosisShowConfig"
@selectedCallBack="diagnosisSelect"
style="height: 100%;width: 100%"
>
</DiagnosisSearchInput>
</div>
</template>
<template #footer>
<div class="footer">
<div class="default-btn" @click="close">取消</div>
<div class="default-btn" @click="save">确定</div>
</div>
</template>
</Mask>
</template>
<script setup lang="ts">
import {ref} from "vue";
import Mask from "@/components/common/Mask.vue";
import DiagnosisSearchInput from "@/components/outpatient/DiagnosisSearchInput.vue";
import {apiConfig} from "@/assets/config/apiConfig.ts";
import {getEndOfDay} from "@/utils/dateUtils.ts";
import {post} from "@/utils/request.ts";
import {ElMessage} from "element-plus";
import {API} from "@/assets/config/API.ts";
const is_show = ref(false);
const init = async () => {
is_show.value = true
try {
let data: any = await post(API.Patient.Registration.List, {
query: {
status: 1,
beginTime: new Date(),
endTime: getEndOfDay(new Date())
}
}, {catch_error: true});
post(API.Patient.Registration.ChangeStatus, {id: data.list[0].id, status: 2}).then((res: any) => {
registerId.value = res.id
patientId.value = res.patientInfoId
})
} catch (e) {
is_show.value = false
}
}
const diagnosisSearchApi = API.Social.Diagnose.Search
interface ShowConfig {
label: string;
prop: string;
}
const diagnosisShowConfig: ShowConfig[] = [
{
label: "诊断名称",
prop: "name",
},
{
label: "诊断编码",
prop: "code",
}
]
const medicalRecord = ref<any>({})
const registerId = ref<any>(null)
const patientId = ref<any>(null)
const diagnosisSelect = (list: any) => {
const diagnosisNames = list.map((item: any) => item.name).join(',')
medicalRecord.value.diagnosisDetail = JSON.stringify(list)
medicalRecord.value.diagnosisSummary = diagnosisNames
}
const emit = defineEmits(['close'])
const save = () => {
const data = {
registrationId: registerId.value,
patientId: patientId.value,
diagnosisMedicalRecord: medicalRecord.value,
itemList: [],
goodsList: [],
}
post(API.Diagnosis.Base.Save, {data: data}).then((res: any) => {
ElMessage.success("快速接诊成功")
is_show.value = false
emit('close')
})
}
const close = () => {
medicalRecord.value = {}
registerId.value = null
patientId.value = null
is_show.value = false
}
defineExpose({init})
</script>
<style scoped lang="scss">
.wrapper {
height: 100%;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
padding: 24px;
span{
width: 60px;
}
}
:deep(.el-input__wrapper) {
height: 42px;
flex: 1;
min-width: 0;
}
.footer {
height: 100%;
display: flex;
justify-content: flex-end;
align-items: center;
padding: 0 24px;
.default-btn {
margin-left: 24px;
&:first-child {
margin-left: 0;
}
}
}
</style>