|
@@ -0,0 +1,273 @@
|
|
|
+<template>
|
|
|
+ <page-layer>
|
|
|
+ <template #header>
|
|
|
+ 病房:
|
|
|
+ <el-select v-model="headerParam.ward" style="width: 80px">
|
|
|
+ <el-option v-for="item in allWards" :key="item.code" :value="item.code" :label="item.name"></el-option>
|
|
|
+ </el-select>
|
|
|
+ 病人身份:
|
|
|
+ <el-select v-model="headerParam.responceType" style="width: 145px" clearable>
|
|
|
+ <el-option v-for="item in responceTypeList" :key="item.code" :value="item.code" :label="item.name">
|
|
|
+ <span >{{ item.code }}</span>
|
|
|
+ <el-divider direction="vertical"></el-divider>
|
|
|
+ <span>{{ item.name }}</span>
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ 欠费底线
|
|
|
+ <el-input v-model="headerParam.qfdx" clearable style="width: 110px"></el-input>
|
|
|
+ <el-button icon="Search" type="primary" @click="queryInfo">查询</el-button>
|
|
|
+ <span style="margin-left: 20px;color: red;font-weight: bold">鼠标双击编辑页面病人记录可以进行打印催款单</span>
|
|
|
+ </template>
|
|
|
+ <template #main>
|
|
|
+ <el-tabs
|
|
|
+ v-model="activeName"
|
|
|
+ type="card"
|
|
|
+ class="demo-tabs"
|
|
|
+ @tab-click="handleClick"
|
|
|
+ >
|
|
|
+ <el-tab-pane label="编辑页面" name="first">
|
|
|
+ <el-table :data="tableData" :height="tableHeight" border highlight-current-row @row-dblclick="queryDetialdbClick">
|
|
|
+ <el-table-column prop="inpatientNo" label="住院号" width="120"></el-table-column>
|
|
|
+ <el-table-column prop="name" label="姓名" width="80"></el-table-column>
|
|
|
+ <el-table-column prop="bedNo" label="床号" ></el-table-column>
|
|
|
+ <el-table-column prop="responceTypeName" label="病人身份" ></el-table-column>
|
|
|
+ <el-table-column prop="admissDateStr" label="入院日期" ></el-table-column>
|
|
|
+ <el-table-column prop="totalCharge" label="总费用" ></el-table-column>
|
|
|
+ <el-table-column prop="deposit" label="预交金" ></el-table-column>
|
|
|
+ <el-table-column prop="chargeYb" label="医保可报销" ></el-table-column>
|
|
|
+ <el-table-column prop="chargeJz" label="记账金额" ></el-table-column>
|
|
|
+ <el-table-column prop="balance" label="余额" ></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="打印预览" name="second">
|
|
|
+ <div>
|
|
|
+ <el-button icon="Printer" type="success" @click="daYingClick">打印</el-button>
|
|
|
+ </div>
|
|
|
+ <el-scrollbar height="400px">
|
|
|
+ <div id="cqYz">
|
|
|
+ <table id="pageTable">
|
|
|
+ <thead>
|
|
|
+ <tr>
|
|
|
+ <td colspan="10" style="width: 100%; text-align: center; padding: 16px 0; border: none;font-size:23px;font-weight:bold">在院欠费病人表</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="10" style="border: none">
|
|
|
+ <div style="display: flex;">
|
|
|
+ <div style="width: 30%">病房:{{tableData ? tableData[0] ? tableData[0].wardName:'' :''}}</div>
|
|
|
+ <div style="width: 60%">打印日期:{{getFormatDatetime(new Date(),'YYYY-MM-DD HH:mm:ss')}}</div>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th style="width: 60px;height: 40px">住院号</th>
|
|
|
+ <th style="width: 50px">姓名</th>
|
|
|
+ <th style="width: 40px">床号</th>
|
|
|
+ <th style="width: 100px">病人身份</th>
|
|
|
+ <th style="width: 80px">入院日期</th>
|
|
|
+ <th style="width: 90px">总费用</th>
|
|
|
+ <th style="width: 90px">预交金</th>
|
|
|
+ <th style="width: 90px">医保可报销</th>
|
|
|
+ <th >记账金额</th>
|
|
|
+ <th style="width: 90px">余额</th>
|
|
|
+ </tr>
|
|
|
+ </thead>
|
|
|
+ <tbody>
|
|
|
+ <tr v-for="(item,index) in tableData">
|
|
|
+ <td>{{item.inpatientNo}}</td>
|
|
|
+ <td>{{item.name}}</td>
|
|
|
+ <td>{{item.bedNo}}</td>
|
|
|
+ <td>{{item.responceTypeName}}</td>
|
|
|
+ <td>{{item.admissDateStr}}</td>
|
|
|
+ <td>{{item.totalCharge}}</td>
|
|
|
+ <td>{{item.deposit}}</td>
|
|
|
+ <td>{{item.chargeYb}}</td>
|
|
|
+ <td>{{item.chargeJz}}</td>
|
|
|
+ <td>{{item.balance}}</td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+ </el-scrollbar>
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ </template>
|
|
|
+ </page-layer>
|
|
|
+ <el-dialog
|
|
|
+ v-model="dialogVisible"
|
|
|
+ title="催欠"
|
|
|
+ width="50%"
|
|
|
+ center
|
|
|
+ draggable
|
|
|
+ >
|
|
|
+ <div id="printDetail">
|
|
|
+ <p>
|
|
|
+ 姓名:<span style="border-bottom:1px solid black;display: inline-block ;width: 80px;">{{rowData.name}}</span>
|
|
|
+ 住院号:<span style="border-bottom:1px solid black;display: inline-block ;width: 80px;">{{rowData.inpatientNo}}</span>
|
|
|
+ 病房:<span style="border-bottom:1px solid black;display: inline-block ;width: 80px;">{{rowData.wardName}}</span>
|
|
|
+ 病友身份:<span style="border-bottom:1px solid black;display: inline-block ;width: 90px;">{{rowData.responceTypeName}}</span>
|
|
|
+ 住院天数:<span style="border-bottom:1px solid black;display: inline-block ;width: 80px;">{{rowData.zyts}}</span>
|
|
|
+ </p>
|
|
|
+ <p>
|
|
|
+ 预交金总额:<span style="border-bottom:1px solid black;display: inline-block ;width: 100px;">{{rowData.deposit}}</span>
|
|
|
+ 已使用医药费总额:<span style="border-bottom:1px solid black;display: inline-block ;width: 100px;">{{rowData.totalCharge}}</span>
|
|
|
+ 暂估医保报销金额:<span style="border-bottom:1px solid black;display: inline-block ;width: 140px;">{{rowData.chargeYb}}</span>
|
|
|
+ </p>
|
|
|
+ <p>
|
|
|
+ 记账金额:<span style="border-bottom:1px solid black;display: inline-block ;width: 80px;">{{rowData.chargeJz}}</span>
|
|
|
+ 余额:<span style="border-bottom:1px solid black;display: inline-block ;width: 80px;">{{rowData.balance}}</span>
|
|
|
+ 请再交款:
|
|
|
+ </p>
|
|
|
+ <p style="font-weight: bold;font-size: 20px">
|
|
|
+ 截止到:{{getFormatDatetime(new Date(),'YYYY年MM月DD日HH点')}},病友同志:您的余额已不足以支付近期医药费用,为确保继续顺利为您提供医疗服务,请您于当天携带此单据到收费处交款,
|
|
|
+ 也可以通过微信/支付宝扫码进医院公众号自助交费,或者直接将款汇至医院帐户,汇款时请一定注明病友姓名、住院号及科室等相关信息,以便核对,谢谢
|
|
|
+ 配合!(每天8点-17点汇款,当天18点前上账;每天17点后汇款,次日9点前上帐;紧急情况下,可至收费窗口即刻上账。)
|
|
|
+ </p>
|
|
|
+ <div style="display: flex">
|
|
|
+ <div style="width: 50%;font-weight: bold;font-size: 19px;line-height: 150%">
|
|
|
+ 单位名称:湖南泰和医院管理有限公司<br/>
|
|
|
+ 银行账号:43001592061052504359<br/>
|
|
|
+ 开 户 行:中国建设银行长沙恒达支行<br/>
|
|
|
+ 微信公众号 支付宝公众号
|
|
|
+ </div>
|
|
|
+ <div style="width: 50%">
|
|
|
+ <img src="../../../assets/images/gzh.png" alt="" style="height: 200px;width: 280px" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <template #footer>
|
|
|
+ <el-button icon="Printer" type="success" @click="printDetailClick">打印</el-button>
|
|
|
+ <el-button type="primary" @click="dialogVisible = false">退出</el-button>
|
|
|
+ <div style="color: red;margin-top: 10px">提示:在打印催款单前,请重新获取病人医保报销费用并重算病人费用,则更准确</div>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup name='ArrearagePatientList'>
|
|
|
+import { computed, onMounted, ref } from 'vue'
|
|
|
+import { useStore } from 'vuex'
|
|
|
+import { getFormatDatetime } from "@/utils/date"
|
|
|
+import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
+import {getAllWards} from "@/api/zhu-yuan-yi-sheng/resident-doctor";
|
|
|
+import {queryResponceType,queryArrearagePatientVO} from "@/api/medical-advice/cha-xun-fen-xi";
|
|
|
+import PageLayer from "@/layout/PageLayer";
|
|
|
+import {getLodop, initLodop} from '@/utils/c-lodop'
|
|
|
+const store = useStore()
|
|
|
+const windowSize = store.state.app.windowSize
|
|
|
+const tableHeight = windowSize.h - 85
|
|
|
+const tableData =ref([])
|
|
|
+const activeName = ref('first')
|
|
|
+const dialogVisible = ref(false)
|
|
|
+
|
|
|
+const headerParam = ref(
|
|
|
+ {
|
|
|
+ ward:'',
|
|
|
+ responceType:'',
|
|
|
+ qfdx:'0',
|
|
|
+ }
|
|
|
+)
|
|
|
+
|
|
|
+const responceTypeList= ref([])
|
|
|
+const allWards= ref([])
|
|
|
+
|
|
|
+const rowData = ref({})
|
|
|
+
|
|
|
+onMounted(()=>{
|
|
|
+ initLodop()
|
|
|
+ getAllWards().then((res) => {
|
|
|
+ if (res.length > 0) {
|
|
|
+ allWards.value = res
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ queryResponceType().then((res) => {
|
|
|
+ responceTypeList.value = res
|
|
|
+ })
|
|
|
+})
|
|
|
+
|
|
|
+const queryInfo=()=>{
|
|
|
+ queryArrearagePatientVO(headerParam.value).then((res)=>{
|
|
|
+ tableData.value = res
|
|
|
+})
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+const queryDetialdbClick=(row)=>{
|
|
|
+ console.log('row',row)
|
|
|
+ rowData.value =row
|
|
|
+ dialogVisible.value = true
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+const daYingClick = () => {
|
|
|
+ let LODOP = getLodop()
|
|
|
+ LODOP.PRINT_INIT('欠费病人清单')
|
|
|
+ LODOP.SET_PRINT_PAGESIZE(1, '210mm', '297mm', '')
|
|
|
+ LODOP.SET_PRINT_MODE('FULL_WIDTH_FOR_OVERFLOW', true) // 整宽不变形
|
|
|
+ LODOP.ADD_PRINT_TABLE('2mm', '5mm', '205mm', '220mm', '<style>' + printCss + '</style>' + '<body>' + document.getElementById('cqYz').innerHTML + '</body>')
|
|
|
+ LODOP.SET_SHOW_MODE("LANDSCAPE_DEFROTATED", 1)
|
|
|
+ LODOP.SET_PRINT_STYLE('ItemType', 3)
|
|
|
+ LODOP.ADD_PRINT_TEXT('280mm', '95mm', '20mm', '7mm', '第#页/共&页')
|
|
|
+ LODOP.PREVIEW() // 关闭
|
|
|
+}
|
|
|
+
|
|
|
+const printDetailClick = ()=>{
|
|
|
+ let LODOP = getLodop()
|
|
|
+ LODOP.PRINT_INIT('欠费病人清单明细')
|
|
|
+ LODOP.SET_PRINT_PAGESIZE(1, '210mm', '297mm', '')
|
|
|
+ LODOP.SET_PRINT_MODE('FULL_WIDTH_FOR_OVERFLOW', true) // 整宽不变形
|
|
|
+ LODOP.ADD_PRINT_HTML('2mm', '5mm', '205mm', '220mm', '<style>' + printDetailCss + '</style>' + '<body>' + document.getElementById('printDetail').innerHTML + '</body>')
|
|
|
+ LODOP.PREVIEW() // 关闭
|
|
|
+}
|
|
|
+
|
|
|
+const printDetailCss =`
|
|
|
+#printDetail{
|
|
|
+ width: 753px;
|
|
|
+ padding: 0 0px;
|
|
|
+ }
|
|
|
+ `
|
|
|
+
|
|
|
+
|
|
|
+const printCss=`
|
|
|
+#pageTable tr td, #pageTable tr th {
|
|
|
+border: 1px solid black;
|
|
|
+text-align: center;
|
|
|
+font-size: 12px;
|
|
|
+padding: 0 0;
|
|
|
+
|
|
|
+}
|
|
|
+#pageTable tr td{
|
|
|
+height: 27px;
|
|
|
+}
|
|
|
+
|
|
|
+#pageTable {
|
|
|
+border-collapse: collapse;
|
|
|
+}
|
|
|
+
|
|
|
+`
|
|
|
+
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+ #printDetail{
|
|
|
+ width: 753px;
|
|
|
+ padding: 0 0px;
|
|
|
+ }
|
|
|
+ #cqYz {
|
|
|
+ width: 753px;
|
|
|
+ padding: 0 0px;
|
|
|
+ }
|
|
|
+ #pageTable tr td, #pageTable tr th {
|
|
|
+ border: 1px solid black;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 12px;
|
|
|
+ padding: 0 0;
|
|
|
+
|
|
|
+ }
|
|
|
+ #pageTable tr td{
|
|
|
+ height: 27px;
|
|
|
+ }
|
|
|
+
|
|
|
+ #pageTable {
|
|
|
+ border-collapse: collapse;
|
|
|
+ }
|
|
|
+</style>
|