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

This commit is contained in:
LiJianZhao 2025-05-12 16:57:19 +08:00
commit 77b913e017
9 changed files with 161 additions and 21 deletions

View File

Before

Width:  |  Height:  |  Size: 660 B

After

Width:  |  Height:  |  Size: 660 B

View File

@ -90,3 +90,8 @@ body {
.clear-margin {
margin: 0;
}
.el-popper.is-light.type-popper, .el-popper.is-light>.el-popper__arrow:before{
background:#F5FAFF !important;
padding: 0 !important;
border: 1px solid #4D6DE4 !important;
}

View File

@ -1,7 +1,7 @@
<template>
<el-popover placement="bottom-start" :visible="isVisible" :width="props.width" ref="popoverRef"
:trigger-keys="[]">
:trigger-keys="[]" style="height: 500px" popper-class="type-popper">
<template #reference>
<el-input
ref="inputRef"
@ -19,19 +19,40 @@
/>
</template>
<div class="container">
<el-table
:data="searchList" style="width: 100%"
@row-click="clickRow"
:show-header="props.showHeader"
max-height="200px"
>
<el-table-column
v-for="item in showConfig"
:prop="item.prop"
:label="item.label||'-'"
show-overflow-tooltip
></el-table-column>
</el-table>
<el-scrollbar>
<table class="table" style="width: 100%; border-collapse: collapse;max-height: 50px">
<!-- 表头 -->
<thead>
<tr class="table-title">
<th
v-for="item in showConfig"
:key="item.prop"
style="background-color: #f5f7fa; padding: 8px;"
>
{{ item.label }}
</th>
</tr>
</thead>
<!-- 表体 -->
<tbody>
<tr class="table-body"
v-for="(item, index) in searchList"
:key="index"
@click="clickRow(item)"
style="cursor: pointer; transition: background-color 0.2s;"
>
<td
v-for="showItem in showConfig"
:key="showItem.prop"
style="vertical-align: middle; padding: 8px;"
>
{{ item[showItem.prop] }}
</td>
</tr>
</tbody>
</table>
</el-scrollbar>
</div>
</el-popover>
@ -107,7 +128,7 @@ const beforeShow = () => {
const isVisible = ref(false)
const focus = () => {
isVisible.value = true
console.log("focus输入框")
changeInput("")
emit('focus', true)
}
const handlerBlur = () => {
@ -131,4 +152,57 @@ const handlerBlur = () => {
border: 1px solid #409eff !important;
}
}
.table {
th {
background: none !important;
}
.table-title {
height: 52px;
font-weight: 500;
font-size: 14px;
color: #333333;
font-style: normal;
th {
text-align: left;
&:nth-child(1) {
width: 200px;
text-align: left;
border-radius: 8px 8px 0 0;
padding-left: 24px !important;
}
}
}
.table-body {
height: 52px;
font-weight: 500;
font-size: 14px;
color: #666666;
font-style: normal;
td {
&:nth-child(1) {
width: 200px;
text-align: left;
padding-left: 30px !important;
white-space: nowrap; /* 防止文本换行 */
overflow: hidden; /* 隐藏溢出的文本 */
text-overflow: ellipsis; /* 显示省略号 */
}
}
&:last-child {
border-radius: 0 0 8px 8px;
}
&:hover {
background-color: #4D6DE4;
color: #fff;
}
}
}
</style>

View File

@ -14,7 +14,6 @@
<template #reference>
{{ scope.row.name }}
</template>
<div class="detail">
<div style="display: flex;justify-content: space-between">
<div style="font-size: 18px;font-weight: 500;color: #000">{{
@ -89,6 +88,7 @@
@selectedCallBack="goodsSelect"
:disabled="!props.status"
@focus="focus"
:width="1000"
></SearchInput>
</div>
<span v-if="status">合计{{ getTotalPrice() }}</span>

View File

@ -1,6 +1,6 @@
<template>
<Panel title="服务项目">
<el-table v-if="itemDetail.length>0" :data="itemDetail" max-height="150">
<el-table v-if="itemDetail.length>0" :data="itemDetail">
<el-table-column prop="itemName" label="项目名称" show-overflow-tooltip width="200">
<template #default="scope">
<el-popover

View File

@ -19,7 +19,7 @@
<div class="panel-content" style="display: flex;flex-direction: column;height: 100%">
<div class="tabs">
<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>
</div>
<div class="search">
<img src="/static/images/outpatient/search.png" class="search-icon" alt="搜索图标">

View File

@ -221,6 +221,66 @@ const checkTraceCode = (goodsList: any[]) => {
nextTick(() => {
chargeQueueRef.value?.getOrderList()
})
const saveAndCharge = () => {
post('charge/save', {data: {...formData.value, doctorId: doctorId.value}}).then((res: any) => {
formData.value.code = res
nextTick(() => {
settlementRef.value?.init(res)
})
})
}
const diagnosisSearchRef = ref()
const diagnosisSearchApi = "social/diagnose/search"
const diagnosisShowConfig = [
{
label: "诊断名称",
prop: "name",
},
{
label: "诊断编码",
prop: "code",
}
]
const diagnosisSelect = (list: any) => {
const diagnosisNames = list.map((item: any) => item.name).join(',')
formData.value.diagnosisMedicalRecord.diagnosisDetail = JSON.stringify(list)
formData.value.diagnosisMedicalRecord.diagnosisSummary = diagnosisNames
}
const recordsConsumptionRef = ref<any>("")
const patientCardRef = ref()
const clickItem = async (item: any, status: any) => {
statusDisabled.value = status
formData.value = await post('medical/record/getByDiagnosisCode', {diagnosisCode: item.code})
formData.value.doctorId = formData.value.patientRegistration.organizationDoctorId
getOrderTotalPrice()
nextTick(() => {
let list = JSON.parse(formData.value.diagnosisMedicalRecord.diagnosisDetail)
let nList = formData.value.diagnosisMedicalRecord.diagnosisSummary.split(',')
diagnosisSearchRef.value?.init(list, nList);
recordsConsumptionRef.value?.init(formData.value.patientInfo.id);
patientCardRef.value?.init(formData.value.registrationId);
})
}
const dockerList = ref<any[]>([])
const getDockerList = () => {
let query = {
role: 1
}
post('organization/member/search', {query: query}).then((res: any) => {
dockerList.value = res
})
}
const orderCompleted = () => {
getDockerList()
list()
nextTick(() => {
chargeQueueRef.value?.getOrderList()
})
}
const orderCanceled = () => {
nextTick(() => {
chargeQueueRef.value?.getOrderList()
})
}

View File

@ -1,10 +1,10 @@
<script setup lang="ts">
import Calendar from "@/components/common/Calendar.vue";
</script>
<template>
<Calendar />
<input type="date">
</template>
<style scoped lang="scss">

View File

@ -108,7 +108,7 @@ const initDoctor = () => {
})
}
const patientList = ref<any>([])
const selectedDate = ref<any>([getToday().start, getToday().end])
const selectedDate = ref<any>([])
const handleDateChange = (date: any[]) => {
selectedDate.value = formatDateArray(date)
if (selectedDate.value[0] == selectedDate.value[1]) {
@ -119,6 +119,7 @@ const handleDateChange = (date: any[]) => {
const getPatientList = () => {
isShowNum.value = -1
id.value = null
selectedDate.value = [getToday().start, getToday().end]
post('registration/list', {
page: page.value,
size: size.value,