|
@@ -1,11 +1,11 @@
|
|
|
<template>
|
|
|
- <div class="component-box-wrapper__fullscreen">
|
|
|
+ <div class="component-box-wrapper__fullscreen layout_container" :style="{zIndex}">
|
|
|
<div style="font-size: 18px !important; margin-bottom: 20px">医保费用明细</div>
|
|
|
<div style="position: fixed; top: 12px; right: 20px; width: 100%; text-align: right">
|
|
|
<el-button circle icon="Close" title="关闭" type="danger" @click="close"></el-button>
|
|
|
</div>
|
|
|
- <el-container>
|
|
|
- <el-aside width="360px">
|
|
|
+ <div class="layout_main layout_container layout-horizontal">
|
|
|
+ <aside style="width: 360px">
|
|
|
<div style="display: flex; height: 36px; align-items: center; font-weight: 600; padding: 0 12px">
|
|
|
<div style="width: 20%">费用类别</div>
|
|
|
<div style="width: 20%">总金额</div>
|
|
@@ -13,7 +13,8 @@
|
|
|
<div style="width: 20%">乙类</div>
|
|
|
<div style="width: 20%">丙类</div>
|
|
|
</div>
|
|
|
- <div v-for="(val, key) in analyse" :key="key" :style="currentStyle(key)" class="fee-type" @click="handleClickChrgtype(key)">
|
|
|
+ <div v-for="(val, key) in analyse" :key="key" :style="currentStyle(key)" class="fee-type"
|
|
|
+ @click="handleClickChrgtype(key)">
|
|
|
<div>
|
|
|
<div style="width: 20%">{{ val[0] }}</div>
|
|
|
<div style="width: 20%" class="fee-by-lv" @click.stop="handleClickChrgLv(key, '00')">{{ val[1] }}</div>
|
|
@@ -22,27 +23,32 @@
|
|
|
<div style="width: 20%" class="fee-by-lv" @click.stop="handleClickChrgLv(key, '03')">{{ val[4] }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </el-aside>
|
|
|
- <el-main>
|
|
|
- <el-descriptions :column="4" border>
|
|
|
- <el-descriptions-item>
|
|
|
- <template #label> 姓名</template>
|
|
|
- {{ psninfo.psnName }}
|
|
|
- </el-descriptions-item>
|
|
|
- <el-descriptions-item>
|
|
|
- <template #label> 住院号</template>
|
|
|
- {{ psninfo.patNo }}
|
|
|
- </el-descriptions-item>
|
|
|
- <el-descriptions-item>
|
|
|
- <template #label> 住院次数</template>
|
|
|
- {{ psninfo.times }}
|
|
|
- </el-descriptions-item>
|
|
|
- <el-descriptions-item>
|
|
|
- <template #label> 账页号</template>
|
|
|
- {{ psninfo.ledgerSn }}
|
|
|
- </el-descriptions-item>
|
|
|
- </el-descriptions>
|
|
|
- <el-table :data="cptFeedtle.slice(pageSize * (currentPage - 1), pageSize * currentPage)" :height="tableHeight" stripe>
|
|
|
+ </aside>
|
|
|
+ <div class="layout_main layout_el-table">
|
|
|
+ <div>
|
|
|
+ <el-descriptions :column="4" border>
|
|
|
+ <el-descriptions-item>
|
|
|
+ <template #label> 姓名</template>
|
|
|
+ {{ psninfo.psnName }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item>
|
|
|
+ <template #label> 住院号</template>
|
|
|
+ {{ psninfo.patNo }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item>
|
|
|
+ <template #label> 住院次数</template>
|
|
|
+ {{ psninfo.times }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item>
|
|
|
+ <template #label> 账页号</template>
|
|
|
+ {{ psninfo.ledgerSn }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ </el-descriptions>
|
|
|
+ </div>
|
|
|
+ <el-table
|
|
|
+ :data="cptFeedtle.slice(pageSize * (currentPage - 1), pageSize * currentPage)"
|
|
|
+ stripe
|
|
|
+ >
|
|
|
<el-table-column label="流水号" prop="feedetlSn" width="60"></el-table-column>
|
|
|
<el-table-column label="费用发生时间" prop="feeOcurTime"></el-table-column>
|
|
|
<el-table-column label="院内码" prop="medinsListCodg"></el-table-column>
|
|
@@ -61,116 +67,98 @@
|
|
|
<el-table-column label="医生" prop="bilgDrName"></el-table-column>
|
|
|
</el-table>
|
|
|
<el-pagination
|
|
|
- :current-page="currentPage"
|
|
|
- :page-size="pageSize"
|
|
|
- :page-sizes="[10, 30, 50, 100]"
|
|
|
- :total="cptFeedtle.length"
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
- style="margin-top: 5px"
|
|
|
- @size-change="handleSizeChange"
|
|
|
- @current-change="handleCurrentChange"
|
|
|
+ :current-page="currentPage"
|
|
|
+ :page-size="pageSize"
|
|
|
+ :page-sizes="[10, 30, 50, 100]"
|
|
|
+ :total="cptFeedtle.length"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
></el-pagination>
|
|
|
- </el-main>
|
|
|
- </el-container>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
-<script>
|
|
|
-import { queryFeeDetails } from '@/api/medical-insurance/si-query'
|
|
|
-import { computed, onMounted, ref } from 'vue'
|
|
|
+<script setup>
|
|
|
+import {queryFeeDetails} from '@/api/medical-insurance/si-query'
|
|
|
+import {computed, onMounted, ref} from 'vue'
|
|
|
+import {useZIndex} from "element-plus";
|
|
|
|
|
|
-export default {
|
|
|
- props: {
|
|
|
- type: {
|
|
|
- type: String,
|
|
|
- default: 'settled',
|
|
|
- },
|
|
|
- mdtrtId: {
|
|
|
- type: String,
|
|
|
- required: true,
|
|
|
- },
|
|
|
+const props = defineProps({
|
|
|
+ type: {
|
|
|
+ type: String,
|
|
|
+ default: 'settled',
|
|
|
},
|
|
|
- emits: ['close'],
|
|
|
- setup(props, ctx) {
|
|
|
- const tableHeight = window.innerHeight - 70
|
|
|
- const psninfo = ref({})
|
|
|
- const feedtle = ref([])
|
|
|
- const analyse = ref({})
|
|
|
- const currentChargeType = ref('zhj')
|
|
|
- const currentChargeLv = ref('00')
|
|
|
- const pageSize = ref(30)
|
|
|
- const currentPage = ref(1)
|
|
|
- const handleSizeChange = (val) => {
|
|
|
- pageSize.value = val
|
|
|
- }
|
|
|
- const handleCurrentChange = (val) => {
|
|
|
- currentPage.value = val
|
|
|
- }
|
|
|
- const cptFeedtle = computed(() => {
|
|
|
- return feedtle.value.filter((itm) => {
|
|
|
- if (currentChargeType.value === 'zhj') {
|
|
|
- return currentChargeLv.value === '00' ? true : itm.chrgitmLv === currentChargeLv.value
|
|
|
- }
|
|
|
- return currentChargeLv.value === '00' ? itm.medChrgitmType === currentChargeType.value :
|
|
|
- (itm.medChrgitmType === currentChargeType.value && itm.chrgitmLv === currentChargeLv.value)
|
|
|
- })
|
|
|
- })
|
|
|
+ mdtrtId: {
|
|
|
+ type: String,
|
|
|
+ required: true,
|
|
|
+ }
|
|
|
+})
|
|
|
|
|
|
- const currentStyle = (chrgtype) => {
|
|
|
- return {
|
|
|
- background: currentChargeType.value === chrgtype ? '#409EFF' : '',
|
|
|
- color: currentChargeType.value === chrgtype ? 'white' : '',
|
|
|
- }
|
|
|
- }
|
|
|
+const emits = defineEmits(['close'])
|
|
|
|
|
|
- const handleClickChrgtype = (key) => {
|
|
|
- currentChargeType.value = key
|
|
|
- currentChargeLv.value = '00'
|
|
|
- currentPage.value = 1
|
|
|
+const psninfo = ref({})
|
|
|
+const feedtle = ref([])
|
|
|
+const analyse = ref({})
|
|
|
+const currentChargeType = ref('zhj')
|
|
|
+const currentChargeLv = ref('00')
|
|
|
+const pageSize = ref(30)
|
|
|
+const currentPage = ref(1)
|
|
|
+const handleSizeChange = (val) => {
|
|
|
+ pageSize.value = val
|
|
|
+}
|
|
|
+const handleCurrentChange = (val) => {
|
|
|
+ currentPage.value = val
|
|
|
+}
|
|
|
+const cptFeedtle = computed(() => {
|
|
|
+ return feedtle.value.filter((itm) => {
|
|
|
+ if (currentChargeType.value === 'zhj') {
|
|
|
+ return currentChargeLv.value === '00' ? true : itm.chrgitmLv === currentChargeLv.value
|
|
|
}
|
|
|
+ return currentChargeLv.value === '00' ? itm.medChrgitmType === currentChargeType.value :
|
|
|
+ (itm.medChrgitmType === currentChargeType.value && itm.chrgitmLv === currentChargeLv.value)
|
|
|
+ })
|
|
|
+})
|
|
|
|
|
|
- const handleClickChrgLv = (key, level) => {
|
|
|
- currentChargeType.value = key
|
|
|
- currentChargeLv.value = level
|
|
|
- }
|
|
|
+const currentStyle = (chrgtype) => {
|
|
|
+ return {
|
|
|
+ background: currentChargeType.value === chrgtype ? '#409EFF' : '',
|
|
|
+ color: currentChargeType.value === chrgtype ? 'white' : '',
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
- const fetchFeedtle = () => {
|
|
|
- const param = {
|
|
|
- mdtrtId: props.mdtrtId,
|
|
|
- type: props.type,
|
|
|
- }
|
|
|
- queryFeeDetails(param).then((res) => {
|
|
|
- psninfo.value = res.psninfo
|
|
|
- feedtle.value = res.feedtle
|
|
|
- analyse.value = res.analyse
|
|
|
- })
|
|
|
- }
|
|
|
+const handleClickChrgtype = (key) => {
|
|
|
+ currentChargeType.value = key
|
|
|
+ currentChargeLv.value = '00'
|
|
|
+ currentPage.value = 1
|
|
|
+}
|
|
|
|
|
|
- const close = () => {
|
|
|
- ctx.emit('close')
|
|
|
- }
|
|
|
+const handleClickChrgLv = (key, level) => {
|
|
|
+ currentChargeType.value = key
|
|
|
+ currentChargeLv.value = level
|
|
|
+}
|
|
|
|
|
|
- onMounted(() => {
|
|
|
- fetchFeedtle()
|
|
|
- })
|
|
|
+const fetchFeedtle = () => {
|
|
|
+ const param = {
|
|
|
+ mdtrtId: props.mdtrtId,
|
|
|
+ type: props.type,
|
|
|
+ }
|
|
|
+ queryFeeDetails(param).then((res) => {
|
|
|
+ psninfo.value = res.psninfo
|
|
|
+ feedtle.value = res.feedtle
|
|
|
+ analyse.value = res.analyse
|
|
|
+ })
|
|
|
+}
|
|
|
|
|
|
- return {
|
|
|
- tableHeight,
|
|
|
- psninfo,
|
|
|
- feedtle,
|
|
|
- analyse,
|
|
|
- cptFeedtle,
|
|
|
- pageSize,
|
|
|
- currentPage,
|
|
|
- handleSizeChange,
|
|
|
- handleCurrentChange,
|
|
|
- currentStyle,
|
|
|
- handleClickChrgtype,
|
|
|
- handleClickChrgLv,
|
|
|
- close,
|
|
|
- }
|
|
|
- },
|
|
|
+const close = () => {
|
|
|
+ emits('close')
|
|
|
}
|
|
|
+const zIndex = ref(0)
|
|
|
+onMounted(() => {
|
|
|
+ zIndex.value = useZIndex().nextZIndex()
|
|
|
+ fetchFeedtle()
|
|
|
+})
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|