This commit is contained in:
ChenQiuYu 2025-05-19 11:59:02 +08:00
parent 358bb39ffb
commit 859cacc1ce
4 changed files with 97 additions and 90 deletions

View File

@ -1,8 +1,8 @@
<template>
<Panel title="患者信息">
<div v-if="!seeDockerInfo?.patientInfo" style="display: flex;align-items: center;justify-content: center;height: 120px">请选择患者......</div>
<div v-if="!seeDockerInfo?.patientInfo"
style="display: flex;align-items: center;justify-content: center;height: 120px">请选择患者......
</div>
<div v-else style="padding: 0 24px">
<div class="avatar">
<img class="avatar-image"
@ -26,8 +26,11 @@
class="detail-doctor">{{ seeDockerInfo.dockerName }}-{{ seeDockerInfo?.sectionName }}</span>
</div>
<div class="detail-middle">
<div>费用类别:&nbsp;<span class="detail-doctor">{{seeDockerInfo.registerType==2?'医保':'自费'}}</span></div>
<div>医保卡剩余金额:&nbsp;<span class="detail-balance">{{ seeDockerInfo.patientInfo.socialBalance?seeDockerInfo.patientInfo.socialBalance+"元":"-" }}</span></div>
<div>费用类别:&nbsp;<span class="detail-doctor">{{ seeDockerInfo.registerType == 2 ? '医保' : '自费' }}</span>
</div>
<div>医保卡剩余金额:&nbsp;<span class="detail-balance">{{
seeDockerInfo.patientInfo.socialBalance ? seeDockerInfo.patientInfo.socialBalance + "元" : "-"
}}</span></div>
</div>
<div>上次就诊时间:&nbsp;<span class="detail-doctor">{{
formatDate(seeDockerInfo?.lastSeeDoctorTime) || '-'
@ -42,6 +45,7 @@ import {formatDate} from "@/utils/dateUtils.ts"
import Panel from "@/components/common/Panel.vue";
import {onMounted, ref} from "vue";
import {post} from "@/utils/request.ts";
const seeDockerInfo = ref<any>();
const getSeeDockerInfo = (newValue: any) => {
if (!newValue) return;
@ -71,7 +75,8 @@ defineExpose({ init,clear})
}
.avatar-info-wrapper {
width: 100%;
flex: 1;
min-width: 0;
height: 60px;
padding: 6px 0;
display: flex;
@ -84,14 +89,20 @@ defineExpose({ init,clear})
.avatar-info {
display: flex;
align-items: center;
span {
display: block;
}
.avatar-info-name {
flex: 1;
min-width: 0;
font-weight: 500;
font-size: 18px;
color: #333333;
font-style: normal;
margin-right: 10px;
white-space: nowrap; /* 防止文本换行 */
overflow: hidden; /* 隐藏溢出的文本 */
text-overflow: ellipsis; /* 显示省略号 */
}
.avatar-info-age {
@ -119,7 +130,6 @@ defineExpose({ init,clear})
}
}
}
}
}

View File

@ -46,7 +46,7 @@
</el-descriptions-item>
<el-descriptions-item label="售价">
<el-form-item prop="unitPrice">
<el-input v-model.number="form.unitPrice">
<el-input v-model="form.unitPrice">
<template #prefix></template>
</el-input>
</el-form-item>
@ -190,7 +190,16 @@ const formRules = {
],
unitPrice: [
{required: true, message: '请输入售价', trigger: 'blur'},
{type: 'number', message: '单位必须为数字值'}
{
validator: (rule: any, value: number, callback: any) => {
if (!/^\d+(\.\d{1,2})?$/.test(value.toString())) {
callback(new Error('售价最多保留两位小数'));
} else {
callback();
}
},
trigger: 'blur'
}
]
}

View File

@ -19,13 +19,16 @@
<div class="total">{{ totalCount || 0 }}</div>
<ul class="content">
<el-scrollbar style="height: 100%">
<li v-for="(item,i) in list" :key="item.id" :class="index==i?'active':''" @click="btn(item,i)">
<li class="list-item" v-for="(item,i) in list" :key="item.id" :class="index==i?'active':''"
@click="btn(item,i)">
<span class="item-avatar">
<img class="image"
:src="'/static/images/member/' + (item.sex === 1 ? 'man' : 'women') + '.png'"
alt=""/>
<div class="name">{{ item.name || '-' }}</div>
<span class="level">{{ item.levelName || "-" }}</span>
<span class="time">{{ formatListTime(item.lastVisitTime) }}</span>
</span>
<span class="item-name">{{ item.name || '-' }}</span>
<span class="item-level">{{ item.levelName || "-" }}</span>
<span class="item-time">{{ formatListTime(item.lastVisitTime) }}</span>
</li>
</el-scrollbar>
</ul>
@ -42,7 +45,7 @@
alt="">
<div class="detail-top-left-text">
<div class="detail-top-left-text-name">
<span style="margin-right: 16px">{{ listItem.name || '-' }}</span>
<span class="name" style="margin-right: 16px">{{ listItem.name || '-' }}</span>
<el-tag type="success">{{ listItem.levelName || '-' }}</el-tag>
</div>
<div class="detail-top-left-text-phone">
@ -449,56 +452,48 @@ const openFlowingWater=()=>{
border-radius: 8px;
border: 1px solid #EAEAEC;
li {
.list-item {
display: flex;
align-items: center;
height: 50px;
line-height: 50px;
padding: 0 24px;
color: #000000;
cursor: pointer;
&:first-child {
border-top-left-radius: 8px;
border-top-right-radius: 8px;
span {
text-align: center;
height: 100%;
display: block;
}
&:last-child {
border-bottom-left-radius: 8px;
border-bottom-right-radius: 8px;
.item-avatar {
width: 20px;
height: 100%;
margin-right: 10px;
.image {
margin-top: 15px;
width: 20px;
height: 20px;
}
}
.item-name{
flex: 1;
min-width: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: left;
}
.item-level{
width: 50px;
}
.item-time{
width: 50px;
font-size: 12px;
color: #7a8794;
}
&:hover {
background: rgba(#4D6DE4, 0.5);
}
.image {
width: 20px;
height: 20px;
margin-right: 5px
}
.name {
flex: 2;
}
.level {
flex: 2;
margin-right: 20px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.time {
flex: 2;
font-size: 12px;
color: #7a8794;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.active {
@ -535,10 +530,11 @@ const openFlowingWater=()=>{
.detail-top {
height: 60px;
display: flex;
justify-content: space-between;
align-items: center;
.detail-top-left {
flex: 1;
min-width: 0;
display: flex;
.image {
@ -553,10 +549,17 @@ const openFlowingWater=()=>{
justify-content: center;
.detail-top-left-text-name {
flex: 1;
min-width: 0;
font-weight: bold;
font-size: 24px;
color: #333333;
font-style: normal;
.name{
white-space: nowrap; /* 防止文本换行 */
overflow: hidden; /* 隐藏溢出的文本 */
text-overflow: ellipsis; /* 显示省略号 */
}
}
.detail-top-left-text-phone {
@ -573,27 +576,9 @@ const openFlowingWater=()=>{
}
.detail-top-right {
width: 552px;
display: flex;
height: 42px;
.btn {
flex: 1;
background: #FFFFFF;
border-radius: 6px;
border: 1px solid #4D6DE4;
padding: 10px 12px;
font-weight: 500;
font-size: 16px;
color: #4D6DE4;
font-style: normal;
margin-left: 24px;
cursor: pointer;
&:hover {
color: #FFFFFF;
background: #4D6DE4;
}
}
}
}

View File

@ -161,11 +161,14 @@ const getOrderTotalPrice = () => {
formData.value.itemDetail?.forEach((item: any) => {
totalPrice += item.selectedPrice * item.selectedNum
})
console.log(totalPrice,'totalPrice')
formData.value.goodsDetail?.forEach((item: any) => {
totalPrice += item.selectedPrice * item.selectedNum
})
console.log(totalPrice,'totalPrice')
formData.value.preTotalPrice = Math.round((totalPrice * 100) / 100)
formData.value.totalPrice = Math.round((totalPrice * 100) / 100)
formData.value.totalPrice = totalPrice
console.log(formData.value.totalPrice,'formData.value.totalPrice')
}
const caseRef = ref<any>("")
const copyForm = (item: any) => {