Merge branch 'main' of ssh://git.jizhiweb.cn:2222/clinic-v2/web
This commit is contained in:
commit
77b913e017
|
Before Width: | Height: | Size: 660 B After Width: | Height: | Size: 660 B |
|
|
@ -90,3 +90,8 @@ body {
|
||||||
.clear-margin {
|
.clear-margin {
|
||||||
margin: 0;
|
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;
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<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"
|
||||||
:trigger-keys="[]">
|
:trigger-keys="[]" style="height: 500px" popper-class="type-popper">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-input
|
<el-input
|
||||||
ref="inputRef"
|
ref="inputRef"
|
||||||
|
|
@ -19,19 +19,40 @@
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<el-table
|
<el-scrollbar>
|
||||||
:data="searchList" style="width: 100%"
|
<table class="table" style="width: 100%; border-collapse: collapse;max-height: 50px">
|
||||||
@row-click="clickRow"
|
<!-- 表头 -->
|
||||||
:show-header="props.showHeader"
|
<thead>
|
||||||
max-height="200px"
|
<tr class="table-title">
|
||||||
>
|
<th
|
||||||
<el-table-column
|
v-for="item in showConfig"
|
||||||
v-for="item in showConfig"
|
:key="item.prop"
|
||||||
:prop="item.prop"
|
style="background-color: #f5f7fa; padding: 8px;"
|
||||||
:label="item.label||'-'"
|
>
|
||||||
show-overflow-tooltip
|
{{ item.label }}
|
||||||
></el-table-column>
|
</th>
|
||||||
</el-table>
|
</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>
|
</div>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
|
|
||||||
|
|
@ -107,7 +128,7 @@ const beforeShow = () => {
|
||||||
const isVisible = ref(false)
|
const isVisible = ref(false)
|
||||||
const focus = () => {
|
const focus = () => {
|
||||||
isVisible.value = true
|
isVisible.value = true
|
||||||
console.log("focus输入框")
|
changeInput("")
|
||||||
emit('focus', true)
|
emit('focus', true)
|
||||||
}
|
}
|
||||||
const handlerBlur = () => {
|
const handlerBlur = () => {
|
||||||
|
|
@ -131,4 +152,57 @@ const handlerBlur = () => {
|
||||||
border: 1px solid #409eff !important;
|
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>
|
</style>
|
||||||
|
|
@ -14,7 +14,6 @@
|
||||||
<template #reference>
|
<template #reference>
|
||||||
{{ scope.row.name }}
|
{{ scope.row.name }}
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<div class="detail">
|
<div class="detail">
|
||||||
<div style="display: flex;justify-content: space-between">
|
<div style="display: flex;justify-content: space-between">
|
||||||
<div style="font-size: 18px;font-weight: 500;color: #000">{{
|
<div style="font-size: 18px;font-weight: 500;color: #000">{{
|
||||||
|
|
@ -89,6 +88,7 @@
|
||||||
@selectedCallBack="goodsSelect"
|
@selectedCallBack="goodsSelect"
|
||||||
:disabled="!props.status"
|
:disabled="!props.status"
|
||||||
@focus="focus"
|
@focus="focus"
|
||||||
|
:width="1000"
|
||||||
></SearchInput>
|
></SearchInput>
|
||||||
</div>
|
</div>
|
||||||
<span v-if="status">合计:¥{{ getTotalPrice() }}</span>
|
<span v-if="status">合计:¥{{ getTotalPrice() }}</span>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<Panel title="服务项目">
|
<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">
|
<el-table-column prop="itemName" label="项目名称" show-overflow-tooltip width="200">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-popover
|
<el-popover
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
<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>
|
||||||
</div>
|
</div>
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<img src="/static/images/outpatient/search.png" class="search-icon" alt="搜索图标">
|
<img src="/static/images/outpatient/search.png" class="search-icon" alt="搜索图标">
|
||||||
|
|
|
||||||
|
|
@ -221,6 +221,66 @@ const checkTraceCode = (goodsList: any[]) => {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
chargeQueueRef.value?.getOrderList()
|
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()
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|
||||||
import Calendar from "@/components/common/Calendar.vue";
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<Calendar />
|
<input type="date">
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,7 @@ const initDoctor = () => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const patientList = ref<any>([])
|
const patientList = ref<any>([])
|
||||||
const selectedDate = ref<any>([getToday().start, getToday().end])
|
const selectedDate = ref<any>([])
|
||||||
const handleDateChange = (date: any[]) => {
|
const handleDateChange = (date: any[]) => {
|
||||||
selectedDate.value = formatDateArray(date)
|
selectedDate.value = formatDateArray(date)
|
||||||
if (selectedDate.value[0] == selectedDate.value[1]) {
|
if (selectedDate.value[0] == selectedDate.value[1]) {
|
||||||
|
|
@ -119,6 +119,7 @@ const handleDateChange = (date: any[]) => {
|
||||||
const getPatientList = () => {
|
const getPatientList = () => {
|
||||||
isShowNum.value = -1
|
isShowNum.value = -1
|
||||||
id.value = null
|
id.value = null
|
||||||
|
selectedDate.value = [getToday().start, getToday().end]
|
||||||
post('registration/list', {
|
post('registration/list', {
|
||||||
page: page.value,
|
page: page.value,
|
||||||
size: size.value,
|
size: size.value,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue