浏览代码

欠费单

lihong 2 年之前
父节点
当前提交
b80fafda82

+ 29 - 0
src/api/medical-advice/cha-xun-fen-xi.js

@@ -0,0 +1,29 @@
+import request from "../../utils/request";
+
+/**
+ * 确认预分配床位
+ * @param data
+ * @returns {AxiosPromise}
+ */
+export function queryResponceType() {
+    return request({
+        url: '/chaXunFenXi/arrearagePatient/queryResponceType',
+        method: 'get',
+
+    })
+}
+
+
+export function queryArrearagePatientVO(data) {
+    return request({
+        url: '/chaXunFenXi/arrearagePatient/queryArrearagePatientVO',
+        method: 'post',
+        data,
+    })
+}
+
+
+
+
+
+

二进制
src/assets/images/gzh.png


+ 4 - 0
src/router/modules/dashboard.js

@@ -920,6 +920,10 @@ const route = [
                 path: 'patientInfo/adjustBed',
                 component: createNameComponent(() => import('@/views/medical-advice/patient-info/AdjustBed.vue')),
                 meta: {title: '整理床位'},
+            },{
+                path: 'chaXunFenXi/arrearagePatientList',
+                component: createNameComponent(() => import('@/views/medical-advice/cha-xun-fen-xi/ArrearagePatientList.vue')),
+                meta: {title: '欠费病人清单'},
             },
         ],
     },

+ 273 - 0
src/views/medical-advice/cha-xun-fen-xi/ArrearagePatientList.vue

@@ -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>