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

157 lines
3.9 KiB
Vue

<template>
<div class="disease-detail">
<div class="content">
<div class="content-title">
<div class="name">服务项目</div>
</div>
<div class="content-middle">
<div class="item" v-for="item in detailObj.serviceDetail">
<el-tooltip
class="box-item"
effect="dark"
:content="item.name"
placement="bottom-start"
>
<div class="name">{{ item.name }}</div>
</el-tooltip>
<div class="price">
<div class="price-left">{{ item.number || 0 }}{{ item.unit }}</div>
<div class="price-right">¥{{ item.unitPrice }}</div>
</div>
</div>
</div>
</div>
<div class="content">
<div class="content-title">
<div class="name">药品耗材</div>
</div>
<div class="content-middle">
<div class="item" v-for="item in detailObj.goodsDetail">
<el-tooltip
class="box-item"
effect="dark"
:content="item.name"
placement="bottom-start"
>
<div class="name">{{ item.name }}</div>
</el-tooltip>
<div class="price">
<div class="price-left">{{ item.number || 0 }}{{ item.unit }}</div>
<div class="price-right">¥{{ item.unitPrice }}</div>
</div>
</div>
</div>
</div>
<div class="content">
<div class="content-middle">
<div class="item" style="margin-top: 8px">
<div class="name">合计</div>
<div class="price">
<div class="price-right sumPrice">¥{{ sumPrice }}</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import {ref, defineProps, onMounted} from 'vue'
const {detail} = defineProps(['detail']);
const detailObj = ref<any>(detail)
const sumPrice = ref(0)
onMounted(() => {
const pharmaceuticalTotalAmount = detailObj.value.serviceDetail?.reduce((pre: any, cur: any) => {
return pre + cur.number * cur.unitPrice
}, 0);
const serviceTotalAmount = detailObj.value.goodsDetail?.reduce((pre: any, cur: any) => {
return pre + cur.number * cur.unitPrice
}, 0);
sumPrice.value = pharmaceuticalTotalAmount + serviceTotalAmount;
})
</script>
<style scoped lang="scss">
.disease-detail {
background: #F9FAFC;
padding: 0 21px 0 27px;
.top {
height: 60px;
border-bottom: 1px solid #EAEAEC;
display: flex;
justify-content: space-between;
align-items: center;
span {
background: #F9FAFC;
border-radius: 8px;
border: 1px solid #D8D8D8;
padding: 6px 24px;
font-weight: 400;
font-size: 16px;
color: #999999;
}
}
.content {
border-bottom: 1px solid #EAEAEC;
.content-title {
height: 46px;
display: flex;
align-items: center;
justify-content: space-between;
.name {
font-weight: bold;
font-size: 16px;
}
.btn {
color: #4D6DE4; // 白色文字
border: none; // 去掉边框
font-size: 16px; // 字体大小
cursor: pointer; // 鼠标悬停时显示手型
background: #f9fafc;
}
}
.content-middle {
font-weight: 500;
font-size: 14px;
color: #999999;
p {
margin-bottom: 8px;
}
.item {
display: flex;
justify-content: space-between;
margin-bottom: 8px;
.name{
white-space: nowrap; /* 防止文本换行 */
overflow: hidden; /* 隐藏溢出的文本 */
text-overflow: ellipsis; /* 显示省略号 */
width: 100px;
}
.price {
display: flex;
.price-left {
margin-right: 38px;
}
.sumPrice{
font-weight: bold;
font-size: 16px;
color: #FF0000;
font-style: normal;
}
}
}
}
}
}
</style>