版本更新

This commit is contained in:
Zhang.WH
2025-10-16 17:38:08 +08:00
parent f515bb8fbb
commit e4c5f36f2e
488 changed files with 41436 additions and 2901 deletions

View File

@@ -298,7 +298,6 @@ async function printReceipt(param) {
const printerList = hiprintTemplate.getPrinterList();
console.log(hiprintTemplate, '打印机列表');
hiprintTemplate.print2(result.data[0], {
printer: 'xp',
title: '门诊收费结算单',
});
// // 将对象转换为 JSON 字符串
@@ -361,22 +360,14 @@ async function submit() {
})
.then((res) => {
if (res.code == 200) {
printReceipt(res.data);
(formData.selfPay = [{ payEnum: 220100, amount: 0.0, payLevelEnum: 2 }]),
emit('close', 'success', res.msg);
emit('refresh'); // 发送刷新事件给父组件
// 长春大学自动发耗材
if (userStore.fixmedinsCode == 'H22010200672' && props.consumablesIdList.length > 0) {
dispenseMedicalConsumables(props.consumablesIdList);
}
// // 添加确认窗口
// proxy.$modal
// .confirm('是否打印收费结算单?')
// .then(() => {
// printReceipt(res.data);
// })
// .catch(() => {
// // 用户取消打印
// console.log('用户取消打印');
// });
}
})
.finally(() => {

View File

@@ -4,8 +4,9 @@
"index": 0,
"name": 1,
"paperType": "自定义",
"height": 200,
"height": 160,
"width": 80,
"paperNumberDisabled": true,
"paperNumberContinue": true,
"overPrintOptions": {
"content": "",
@@ -32,10 +33,10 @@
"printElements": [
{
"options": {
"left": 55.5,
"top": 24,
"left": 45,
"top": 15,
"height": 16.5,
"width": 120,
"width": 142.5,
"title": "长大医院门诊收费结算单",
"coordinateSync": false,
"widthHeightSync": false,
@@ -43,35 +44,17 @@
"letterSpacing": 0.75,
"textAlign": "center",
"qrCodeLevel": 0,
"fontSize": 10
"fontSize": 12
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 142.5,
"top": 45,
"height": 80,
"width": 70,
"textAlign": "center",
"title": "院内门诊号",
"qrCodeLevel": 0,
"coordinateSync": false,
"widthHeightSync": false,
"field": "encounterBusNo"
},
"printElementType": {
"title": "二维码",
"type": "qrcode"
}
},
{
"options": {
"left": 15,
"top": 55.5,
"top": 39,
"height": 14,
"width": 80,
"title": "姓名",
@@ -87,8 +70,8 @@
},
{
"options": {
"left": 15,
"top": 78,
"left": 99,
"top": 39,
"height": 14,
"width": 60,
"title": "性别",
@@ -104,8 +87,8 @@
},
{
"options": {
"left": 75,
"top": 78,
"left": 163.5,
"top": 39,
"height": 14,
"width": 60,
"title": "年龄",
@@ -122,7 +105,7 @@
{
"options": {
"left": 15,
"top": 105,
"top": 60,
"height": 14,
"width": 120,
"title": "病人类型",
@@ -138,8 +121,8 @@
},
{
"options": {
"left": 15,
"top": 127.5,
"left": 13.5,
"top": 82.5,
"height": 14,
"width": 120,
"title": "病历号",
@@ -155,10 +138,10 @@
},
{
"options": {
"left": 15,
"top": 157,
"left": 13.5,
"top": 102,
"height": 37.5,
"width": 200,
"width": 208.5,
"title": "undefined+beforeDragIn",
"field": "chargedItems",
"coordinateSync": false,
@@ -169,12 +152,12 @@
"columns": [
[
{
"title": "收费名称",
"title": "项目名称",
"titleSync": false,
"tableQRCodeLevel": 0,
"tableSummaryTitle": true,
"tableSummary": "",
"width": 70.07165247626199,
"width": 61.93559159547676,
"field": "itemName",
"checked": true,
"columnId": "itemName",
@@ -182,13 +165,27 @@
"rowspan": 1,
"colspan": 1
},
{
"title": "单价",
"titleSync": false,
"tableQRCodeLevel": 0,
"tableSummaryTitle": true,
"tableSummary": "",
"width": 37.1097311853845,
"field": "unitPrice",
"checked": true,
"columnId": "unitPrice",
"fixed": false,
"rowspan": 1,
"colspan": 1
},
{
"title": "数量",
"titleSync": false,
"tableQRCodeLevel": 0,
"tableSummaryTitle": true,
"tableSummary": "",
"width": 38.66458945433993,
"width": 37.12571954521698,
"field": "quantityValue",
"checked": true,
"columnId": "quantityValue",
@@ -197,12 +194,12 @@
"colspan": 1
},
{
"title": "金额",
"title": "总价",
"titleSync": false,
"tableQRCodeLevel": 0,
"tableSummaryTitle": true,
"tableSummary": "",
"width": 50.90935931687881,
"width": 35.15170328143829,
"field": "totalPrice",
"checked": true,
"columnId": "totalPrice",
@@ -216,7 +213,7 @@
"tableQRCodeLevel": 0,
"tableSummaryTitle": true,
"tableSummary": "",
"width": 40.354398752519245,
"width": 37.17725439248345,
"field": "contractName",
"checked": true,
"columnId": "contractName",
@@ -261,15 +258,15 @@
},
{
"options": {
"left": 15,
"top": 225,
"height": 14,
"width": 180,
"title": "个人现金支付金额",
"left": 138,
"top": 147,
"height": 9.75,
"width": 84,
"title": "合计金额",
"field": "itemTotalAmount",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"field": "SELF_CASH_PAY"
"qrCodeLevel": 0
},
"printElementType": {
"title": "文本",
@@ -278,95 +275,10 @@
},
{
"options": {
"left": 15,
"top": 250,
"left": 6,
"top": 171,
"height": 14,
"width": 180,
"title": "个人负担总金额",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"field": "SELF_PAY"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 15,
"top": 275,
"height": 14,
"width": 180,
"title": "基金支付总额",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"field": "YB_FUND_PAY"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 13.5,
"top": 300,
"height": 14,
"width": 180,
"title": "基本医保统筹基金支出",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"field": "YB_TC_FUND_AMOUNT"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 15,
"top": 325,
"height": 14,
"width": 180,
"title": "个人医保账户支付",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"field": "SELF_YB_ZH_PAY"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 15,
"top": 349.5,
"height": 14,
"width": 180,
"title": "全自费金额",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"field": "FULAMT_OWNPAY_AMT"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 15,
"top": 375,
"height": 14,
"width": 180,
"width": 88.5,
"title": "应收金额",
"coordinateSync": false,
"widthHeightSync": false,
@@ -380,10 +292,10 @@
},
{
"options": {
"left": 15,
"top": 400,
"left": 132,
"top": 171,
"height": 14,
"width": 180,
"width": 88.5,
"title": "实收金额",
"coordinateSync": false,
"widthHeightSync": false,
@@ -397,10 +309,78 @@
},
{
"options": {
"left": 15,
"top": 425,
"left": 6,
"top": 190.5,
"height": 14,
"width": 180,
"width": 117,
"title": "基金支付",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"field": "YB_FUND_PAY"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 132,
"top": 190.5,
"height": 13.5,
"width": 88.5,
"title": "统筹支付",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"field": "YB_TC_FUND_AMOUNT"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 6,
"top": 211.5,
"height": 14,
"width": 117,
"title": "个人医保账户支付",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"field": "SELF_YB_ZH_PAY"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 6,
"top": 235.5,
"height": 14,
"width": 115.5,
"title": "全自费金额",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"field": "FULAMT_OWNPAY_AMT"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 133.5,
"top": 235.5,
"height": 14,
"width": 87,
"title": "应找零",
"coordinateSync": false,
"widthHeightSync": false,
@@ -414,14 +394,15 @@
},
{
"options": {
"left": 15,
"top": 450,
"left": 6,
"top": 256.5,
"height": 14,
"width": 100,
"title": "收费员",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0
"qrCodeLevel": 0,
"field": "userName"
},
"printElementType": {
"title": "文本",
@@ -430,8 +411,8 @@
},
{
"options": {
"left": 15,
"top": 475,
"left": 6,
"top": 277.5,
"height": 14,
"width": 170,
"title": "收费时间",

View File

@@ -1,31 +1,63 @@
<template>
<div style="display: flex; justify-content: space-between" class="app-container" v-loading="readCardLoading"
:element-loading-text="loadingText">
<div
style="display: flex; justify-content: space-between"
class="app-container"
v-loading="readCardLoading"
:element-loading-text="loadingText"
>
<el-card style="width: 30%">
<template #header>
<span style="vertical-align: middle">患者列表</span>
</template>
<div style="width: 100%">
<el-input v-model="queryParams.searchKey" placeholder="请输入患者名/病历号" clearable
style="width: 48%; margin-bottom: 10px; margin-right: 10px" @keyup.enter="getPatientList">
<el-input
v-model="queryParams.searchKey"
placeholder="请输入患者名/病历号"
clearable
style="width: 48%; margin-bottom: 10px; margin-right: 10px"
@keyup.enter="getPatientList"
>
<template #append>
<el-button icon="Search" @click="getPatientList" />
</template>
</el-input>
<el-select v-model="queryParams.statusEnum" style="width: 48%; margin-bottom: 10px; margin-right: 10px"
placeholder="收费状态" @change="getPatientList">
<el-option v-for="item in chargeStatusOptions" :key="item.value" :label="item.label" :value="item.value" />
<el-select
v-model="queryParams.statusEnum"
style="width: 48%; margin-bottom: 10px; margin-right: 10px"
placeholder="收费状态"
@change="getPatientList"
>
<el-option
v-for="item in chargeStatusOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<div style="width: 100%">
<el-date-picker v-model="receptionTime" type="daterange" range-separator="~" start-placeholder="开始时间"
end-placeholder="结束时间" placement="bottom" value-format="YYYY-MM-DD"
style="width: 84%; margin-bottom: 10px; margin-right: 10px" @change="getPatientList"/>
<el-date-picker
v-model="receptionTime"
type="daterange"
range-separator="~"
start-placeholder="开始时间"
end-placeholder="结束时间"
placement="bottom"
value-format="YYYY-MM-DD"
style="width: 84%; margin-bottom: 10px; margin-right: 10px"
@change="getPatientList"
/>
<el-button type="primary" style="margin-bottom: 10px" @click="getPatientList">
搜索
</el-button>
</div>
<el-table ref="patientListRef" height="620" :data="patientList" row-key="encounterId" @cell-click="clickRow"
highlight-current-row>
<el-table
ref="patientListRef"
height="620"
:data="patientList"
row-key="encounterId"
@cell-click="clickRow"
highlight-current-row
>
<el-table-column label="病历号" align="center" prop="encounterBusNo" />
<el-table-column label="姓名" align="center" prop="patientName" />
<!-- <el-table-column label="时间" align="center" prop="receptionTime" width="160">
@@ -48,9 +80,12 @@
{{ patientInfo.genderEnum_enumText }}
</el-descriptions-item>
<el-descriptions-item label="年龄:">{{ patientInfo.age }}</el-descriptions-item>
<el-descriptions-item label="科室:">{{ patientInfo.organizationName }}</el-descriptions-item>
<el-descriptions-item label="就诊时间:">{{ formatDateStr(patientInfo.receptionTime, "YYYY-MM-DD HH:mm:ss")
}}</el-descriptions-item>
<el-descriptions-item label="科室:">{{
patientInfo.organizationName
}}</el-descriptions-item>
<el-descriptions-item label="就诊时间:">{{
formatDateStr(patientInfo.receptionTime, 'YYYY-MM-DD HH:mm:ss')
}}</el-descriptions-item>
<!-- <el-descriptions-item label="身份证号:">{{ patientInfo.idCard }}</el-descriptions-item> -->
<!-- <el-descriptions-item label="手机号">{{ patientInfo.name }}</el-descriptions-item>
<el-descriptions-item label="出生日期">{{ patientInfo.name }}</el-descriptions-item> -->
@@ -67,23 +102,47 @@
<el-button type="primary" plain @click="handleReadCard('01')" style="width: 65px">
电子凭证
</el-button>
<el-button type="primary" plain @click="handleReadCard('02')" style="width: 65px" :disabled="true">
<el-button
type="primary"
plain
@click="handleReadCard('02')"
style="width: 65px"
:disabled="true"
>
身份证
</el-button>
<el-button type="primary" plain @click="handleReadCard('03')" style="width: 65px">
医保卡
</el-button>
<el-button type="primary" @click="payToSelt()" style="margin-left: 20px" :disabled="buttonDisabled">
<el-button
type="primary"
@click="payToSelt()"
style="margin-left: 20px"
:disabled="buttonDisabled"
>
医保转自费
</el-button>
<el-button type="primary" @click="patToMedicalInsurance()" style="margin-left: 20px"
:disabled="buttonDisabled">
<el-button
type="primary"
@click="patToMedicalInsurance()"
style="margin-left: 20px"
:disabled="buttonDisabled"
>
自费转医保
</el-button>
<span style="float: right">合计金额{{ totalAmounts ? totalAmounts.toFixed(2) : 0 }}</span>
<span style="float: right"
>合计金额{{ totalAmounts ? totalAmounts.toFixed(2) : 0 }}</span
>
</div>
<el-table ref="chargeListRef" height="530" :data="chargeList" row-key="id"
@selection-change="handleSelectionChange" v-loading="chargeLoading" border>
<el-table
ref="chargeListRef"
height="530"
:data="chargeList"
row-key="id"
@selection-change="handleSelectionChange"
v-loading="chargeLoading"
border
>
<el-table-column type="selection" :selectable="checkSelectable" width="55" />
<el-table-column label="单据号" align="center" prop="busNo" width="180" />
<el-table-column label="收费项目" align="center" prop="itemName" width="200" />
@@ -93,7 +152,10 @@
<el-table-column label="费用性质" align="center" prop="contractName" />
<el-table-column label="收费状态" align="center" prop="statusEnum_enumText" width="150">
<template #default="scope">
<el-tag :type="scope.row.statusEnum === 1 ? 'default' : 'success'" disable-transitions>
<el-tag
:type="scope.row.statusEnum === 1 ? 'default' : 'success'"
disable-transitions
>
{{ scope.row.statusEnum_enumText }}
</el-tag>
</template>
@@ -120,6 +182,7 @@
:paymentId="paymentId"
:details="details"
:chargedItems="chargedItems"
@refresh="getPatientList"
/>
</div>
</template>
@@ -249,7 +312,7 @@ const consumablesIdList = ref([]);
// 确认收费
function confirmCharge() {
let selectRows = chargeListRef.value.getSelectionRows();
console.log('selectRows:',selectRows);
console.log('selectRows:', selectRows);
if (selectRows.length == 0) {
proxy.$modal.msgWarning('请选择一条收费项目');
return;
@@ -477,4 +540,4 @@ function patToMedicalInsurance() {
});
}
</script>
<style scoped></style>
<style scoped></style>

View File

@@ -355,7 +355,7 @@ function getPatientInfo(idCard) {
};
getOutpatientRegistrationList(param).then((res) => {
console.log(param, 'param');
if (res.data.records.length > 0) {
if (res.data.records.length == 1) {
patientInfo.value = res.data.records[0];
console.log(patientInfo.value, 'patientInfo.value');
// 将表单数据发送给父组件