This commit is contained in:
ChenQiuYu 2025-05-20 15:10:11 +08:00
parent 18c4572dc8
commit e4f4d8fe59
2 changed files with 261 additions and 22 deletions

View File

@ -193,7 +193,7 @@ const btnsList = [
const detailRef = ref() const detailRef = ref()
const openDetail = () => { const openDetail = () => {
nextTick(() => { nextTick(() => {
detailRef.value?.init() detailRef.value?.init(socialPayInfo.value.setlinfo)
}) })
} }
</script> </script>

View File

@ -1,57 +1,296 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref } from "vue"; import {reactive, ref} from "vue";
import Mask from "@/components/common/Mask.vue"; import Mask from "@/components/common/Mask.vue";
const show = ref(false); const show = ref(false);
const init = () => { const init = (orderInfo: any) => {
show.value = true; show.value = true;
leftList.value = [
{
name: '起付线',
value: orderInfo.act_pay_dedc
},
{
name: '统筹基金支付比例',
value: orderInfo.pool_prop_selfpay
},
{
name: '符合政策范围金额',
value: orderInfo.inscp_scp_amt
},
{
name: '超限价自费费用',
value: orderInfo.overlmt_selfpay
},
{
name: '全自费金额',
value: orderInfo.fulamt_ownpay_amt
} }
,
{
name: '先行自付金额',
value: orderInfo.preselfpay_amt
}
]
centerList.value = [
{
name: '统筹基金支出',
value: orderInfo.hifp_pay
},
{
name: '公务员医疗补助支出',
value: orderInfo.cvlserv_pay
},
{
name: '企业补充医保支出',
value: orderInfo.hifes_pay
},
{
name: '居民大病保险支出',
value: orderInfo.hifmi_pay
},
{
name: '职工大额补助支出',
value: orderInfo.hifob_pay
},
{
name: '医疗救助金支出',
value: orderInfo.maf_pay
},
{
name: '补充医疗保险支出',
value: orderInfo.oth_pay
},
]
rightTopList.value = [
{
name: '个人账户支出',
value: orderInfo.acct_pay
},
{
name: '个人账户共济支出',
value: orderInfo.acct_mulaid_pay
},
]
rightBottomList.value = [
{
name: '医院负担金额',
value: orderInfo.hosp_part_amt
},
{
name: '个人现金支出',
value: orderInfo.psn_cash_pay
},
]
}
const leftList = ref<any>([
{
name: '起付线',
value:'¥0.00'
},
{
name: '统筹基金支付比例',
value: '¥0.00'
},
{
name: '符合政策范围金额',
value: '¥0.00'
},
{
name: '超限价自费费用',
value: '¥0.00'
},
{
name: '全自费金额',
value: '¥0.00'
},
{
name: '先行自付金额',
value: '¥0.00'
}
])
const centerList = ref<any>([
{
name: '统筹基金支出',
value: '¥0.00'
},
{
name: '公务员医疗补助支出',
value: '¥0.00'
},
{
name: '企业补充医保支出',
value: '¥0.00'
},
{
name: '居民大病保险支出',
value: '¥0.00'
},
{
name: '职工大额补助支出',
value: '¥0.00'
},
{
name: '医疗救助金支出',
value: '¥0.00'
},
{
name: '补充医疗保险支出',
value: '¥0.00'
},
])
const rightTopList = ref<any>([
{
name: '个人账户支出',
value: '¥0.00'
},
{
name: '个人账户共济支出',
value: '¥0.00'
},
])
const rightBottomList = ref<any>([
{
name: '医院负担金额',
value: '¥0.00'
},
{
name: '个人现金支出',
value: '¥0.00'
},
])
const formatValue = (value: number | string): string => {
const num = parseFloat(value as string);
return isNaN(num) ? '0.00' : num.toFixed(2);
};
defineExpose({init}) defineExpose({init})
</script> </script>
<template> <template>
<Mask :is-show="show" :width=918 :height="413" @close="show=false" title="支付详情"> <Mask :is-show="show" :width=918 :height="364" @close="show=false" title="支付详情">
<div class="detail-content"> <div class="detail-content">
<div class="left">1</div> <div class="left">
<div class="center">2</div> <span class="item" v-for="item in leftList" :key="item.name">
<span>{{ item.name }}</span>
<span>{{ item.name != '统筹基金支付比例' ? '¥' : ''}}{{formatValue(item.value) }}{{ item.name == '统筹基金支付比例' ? '%' : ''}}</span>
</span>
</div>
<div class="center">
<span class="item" v-for="item in centerList" :key="item.name">
<span>{{ item.name }}</span>
<span>{{ item.name != '公务员医疗补助支出' ? '¥' : ''}}{{formatValue(item.value) }}{{ item.name == '公务员医疗补助支出' ? '%' : ''}}</span>
</span>
</div>
<div class="right"> <div class="right">
<div class="top">3</div> <div class="top">
<div class="bottom">4</div> <span class="item" v-for="item in rightTopList" :key="item.name">
<span>{{ item.name }}</span>
<span>{{ formatValue(item.value) }}</span>
</span>
</div>
<div class="bottom">
<span class="item" v-for="item in rightBottomList" :key="item.name">
<span>{{ item.name }}</span>
<span>{{ formatValue(item.value) }}</span>
</span>
</div>
</div> </div>
</div> </div>
</Mask> </Mask>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.detail-content { .detail-content {
height: 100%; height: 100%;
padding: 24px; padding: 24px;
display: flex; display: flex;
div { div {
flex: 1; flex: 1;
min-width: 0; min-width: 0;
border-radius: 8px; border-radius: 8px;
} }
.left { .left {
padding: 24px;
background: #F9FAFC; background: #F9FAFC;
display: flex;
flex-direction: column;
justify-content: space-between;
.item {
display: flex;
justify-content: space-between;
align-items: center;
font-weight: 500;
font-size: 16px;
color: #333333;
font-style: normal;
} }
}
.center { .center {
margin: 0 24px; margin: 0 24px;
padding: 24px;
background: #FEFCF8; background: #FEFCF8;
display: flex;
flex-direction: column;
justify-content: space-between;
.item {
display: flex;
justify-content: space-between;
align-items: center;
font-weight: 500;
font-size: 16px;
color: #333333;
font-style: normal;
} }
}
.right { .right {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
dev { dev {
flex: 1; flex: 1;
min-height: 0; min-height: 0;
} }
.top { .top {
background: #F7FEFA; background: #F7FEFA;
margin-bottom: 24px; margin-bottom: 24px;
padding: 24px;
display: flex;
flex-direction: column;
justify-content: space-between;
.item {
display: flex;
justify-content: space-between;
align-items: center;
font-weight: 500;
font-size: 16px;
color: #333333;
font-style: normal;
} }
}
.bottom { .bottom {
background: #FFEEEF; background: #FFEEEF;
padding: 24px;
display: flex;
flex-direction: column;
justify-content: space-between;
.item {
display: flex;
justify-content: space-between;
align-items: center;
font-weight: 500;
font-size: 16px;
color: #333333;
font-style: normal;
}
} }
} }
} }