修改 报告打印统计页面以及打印报告单的样式
This commit is contained in:
parent
a9db77d1f4
commit
afc390244e
@ -16,5 +16,8 @@ export const ReportPrintStatisticsApi = {
|
||||
},
|
||||
updateExamItemName: async (params: any) => {
|
||||
return await request.put({ url: `/tblist/patientexamlist/updateExamItemName`, params })
|
||||
},
|
||||
updatePrintStatus: async(data: any) => {
|
||||
return await request.put({ url: `/tblist/patientexamlist/updatePrintStatus`, data })
|
||||
}
|
||||
}
|
||||
|
@ -159,4 +159,4 @@ const resetForm = () => {
|
||||
|
||||
}
|
||||
|
||||
</style>
|
||||
</style>
|
||||
|
@ -49,13 +49,13 @@
|
||||
</div>
|
||||
<div class="ultrasound-findings">
|
||||
<h3>超声所见:</h3>
|
||||
<p style="font-size: 22px">{{ infoParams.examDescription }}</p>
|
||||
<p style="font-size: 17px">{{ infoParams.examDescription }}</p>
|
||||
</div>
|
||||
<div class="ultrasound-recommendation">
|
||||
<h3>超声提示:</h3>
|
||||
<p style="font-size: 22px">{{ infoParams.diagResults }}</p>
|
||||
<p style="font-size: 17px">{{ infoParams.diagResults }}</p>
|
||||
</div>
|
||||
<div style="width: 94%; position: absolute; bottom: 20px; right: 20px">
|
||||
<div style="width: 94%; position: absolute; bottom: 0px; ">
|
||||
<div style="text-align: center" v-if="infoParams.showQRcode">
|
||||
<Qrcode
|
||||
:text="
|
||||
@ -67,8 +67,8 @@
|
||||
</div>
|
||||
<p v-if="false" style="text-align: right">医生签名:{{ infoParams.reviewDoctor }}</p>
|
||||
<hr />
|
||||
<el-row class="doctor-info-row">
|
||||
<el-col :span="5" class="pl-6px">报告医师:{{ infoParams.diagDoctor }}</el-col>
|
||||
<el-row class="doctor-info-row" style="text-align: center;">
|
||||
<el-col :span="5">报告医师:{{ infoParams.diagDoctor }}</el-col>
|
||||
<el-col :span="7">
|
||||
报告日期:{{ formatDate(infoParams.diagDate as unknown as Date, 'YYYY-MM-DD') }}
|
||||
</el-col>
|
||||
@ -77,7 +77,7 @@
|
||||
审核日期:{{ formatDate(infoParams.reviewDate as unknown as Date, 'YYYY-MM-DD') }}
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="font-size: 17px; text-align: center; margin-top: 16px; margin-bottom: -14px">
|
||||
<div style="font-size: 16px; text-align: center;margin-top: 16px;">
|
||||
本报告只作临床参考,不作证明材料
|
||||
</div>
|
||||
</div>
|
||||
@ -172,13 +172,15 @@ onMounted(async () => {
|
||||
/*** 报告单 ***/
|
||||
.ultrasound-report {
|
||||
font-family: Arial, sans-serif;
|
||||
width: 94%;
|
||||
width: 95%;
|
||||
margin: 3px auto;
|
||||
padding: 20px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 8px;
|
||||
position: relative;
|
||||
min-height: 750px;
|
||||
min-height: 1050px;
|
||||
/* 为底部签名区域预留空间 */
|
||||
//padding: 20px 20px 40px;
|
||||
}
|
||||
|
||||
.ultrasound-report h1,
|
||||
@ -219,7 +221,7 @@ onMounted(async () => {
|
||||
}
|
||||
/* 使用更具体的选择器并添加 !important 来确保样式优先级 */
|
||||
.doctor-info-row {
|
||||
font-size: 19px !important;
|
||||
font-size: 18px !important;
|
||||
}
|
||||
|
||||
.doctor-info {
|
||||
|
@ -60,23 +60,23 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="影像设备" prop="deviceName" class="item-style">
|
||||
<el-select
|
||||
v-model="queryParams.deviceName"
|
||||
placeholder="请选择设备"
|
||||
clearable
|
||||
class="item-width"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in deviceList"
|
||||
:key="item.deviceId"
|
||||
:label="item.deviceName"
|
||||
:value="item.deviceName"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="8">-->
|
||||
<!-- <el-form-item label="影像设备" prop="deviceName" class="item-style">-->
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="queryParams.deviceName"-->
|
||||
<!-- placeholder="请选择设备"-->
|
||||
<!-- clearable-->
|
||||
<!-- class="item-width"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in deviceList"-->
|
||||
<!-- :key="item.deviceId"-->
|
||||
<!-- :label="item.deviceName"-->
|
||||
<!-- :value="item.deviceName"-->
|
||||
<!-- />-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="8">
|
||||
<el-form-item label="患者姓名" prop="pname" class="item-style">
|
||||
<el-input
|
||||
@ -88,17 +88,30 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" style="text-align: right">
|
||||
<el-button
|
||||
@click="handleQuery"
|
||||
style="background-color: rgba(56, 119, 246, 1); color: rgba(255, 255, 255, 1)"
|
||||
>
|
||||
<Icon icon="ep:search" class="mr-5px" /> 搜索
|
||||
</el-button>
|
||||
<el-button @click="resetQuery">
|
||||
<Icon icon="ep:refresh" class="mr-5px" /> 重置
|
||||
</el-button>
|
||||
<el-form-item label="打印状态" prop="examDate">
|
||||
<el-radio-group
|
||||
v-model="queryParams.printStatus"
|
||||
@change="radioChange"
|
||||
>
|
||||
<el-radio style="margin-right: 15px" :value="1">已打印</el-radio>
|
||||
<el-radio style="margin-right: 15px" :value="0">未打印</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
@click="handleQuery"
|
||||
style="
|
||||
margin-right: 0px;
|
||||
margin-left: auto;
|
||||
background-color: rgba(56, 119, 246, 1);
|
||||
font-size: 14px;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
"
|
||||
><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
|
||||
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</ContentWrap>
|
||||
|
||||
@ -141,6 +154,11 @@
|
||||
:formatter="dateFormatter2"
|
||||
width="110px"
|
||||
/>
|
||||
<el-table-column label="打印状态" align="center" prop="printFlag" width="100px" >
|
||||
<template #default="scope">
|
||||
{{ scope.row.printStatus == 1 ? "已打印" : "未打印" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="患者姓名" align="center" prop="pname" width="130px" />
|
||||
<el-table-column label="性别" align="center" prop="gender" width="54px" />
|
||||
<el-table-column
|
||||
@ -216,15 +234,7 @@
|
||||
:modal="activeDrawerModal"
|
||||
:size="activeDrawerSize"
|
||||
@opened="drawerOpened"
|
||||
@closed="
|
||||
() => {
|
||||
reportsList = []
|
||||
reportInfoType = ''
|
||||
activeTabName = ''
|
||||
activeDrawerModal = true
|
||||
activeDrawerSize = '74%'
|
||||
}
|
||||
"
|
||||
@closed="drawerClosed"
|
||||
>
|
||||
<div style="position: relative; z-index: 100">
|
||||
<el-button
|
||||
@ -521,7 +531,8 @@ const queryParams = ref({
|
||||
examDate_le: '',
|
||||
deviceName: '',
|
||||
deviceType: '',
|
||||
pname: ''
|
||||
pname: '',
|
||||
printStatus:undefined
|
||||
})
|
||||
const infoParams = ref({
|
||||
id: '',
|
||||
@ -608,8 +619,43 @@ const showQRcodeSet = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
/** 打印状态 单选钮 */
|
||||
const radioChange = () => {
|
||||
handleQuery()
|
||||
}
|
||||
|
||||
/** 打印事件 */
|
||||
const printContent = ref({
|
||||
id: 'printMe',
|
||||
beforeOpenCallback(vue){
|
||||
vue.printLoading = true
|
||||
console.log('打开之前')
|
||||
},
|
||||
async openCallback (){
|
||||
// vue.printLoading = false
|
||||
console.log('执行了打印')
|
||||
|
||||
await ReportPrintStatisticsApi.updatePrintStatus({ id: infoParams.value.id })
|
||||
|
||||
},
|
||||
closeCallback(){
|
||||
console.log('关闭了打印工具')
|
||||
}
|
||||
})
|
||||
|
||||
/****** 可参考内容 ******/
|
||||
/** 组件事件 **/
|
||||
const drawerClosed = async () => {
|
||||
reportsList.value = []
|
||||
reportInfoType.value = ''
|
||||
activeTabName.value = ''
|
||||
activeDrawerModal.value = true
|
||||
activeDrawerSize.value = '74%'
|
||||
|
||||
const data = await ReportPrintStatisticsApi.getPage(queryParams.value)
|
||||
list_infos.value = data.list
|
||||
total.value = data.total
|
||||
}
|
||||
const drawerOpened = async () => {
|
||||
try {
|
||||
if (true && activeTabName && activeTabName.value == 'reportInfoBatch') {
|
||||
@ -678,7 +724,8 @@ const resetQuery = async () => {
|
||||
examDate_le: '',
|
||||
deviceName: '',
|
||||
deviceType: '',
|
||||
pname: ''
|
||||
pname: '',
|
||||
printStatus: undefined
|
||||
}
|
||||
queryFormRef.value?.clearValidate()
|
||||
handleQuery()
|
||||
@ -701,6 +748,9 @@ const handleRowClick = async (row) => {
|
||||
activeDrawer.value = true
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量打印
|
||||
*/
|
||||
const handlePrint = async () => {
|
||||
const infoList = infoTableRef.value?.getSelectionRows()
|
||||
if (!(infoList && Array.isArray(infoList) && infoList.length > 0)) {
|
||||
@ -717,6 +767,9 @@ const handlePrint = async () => {
|
||||
compare = examDateB.localeCompare(examDateA)
|
||||
return compare
|
||||
})
|
||||
let idList = infoList.map(item => item.id)
|
||||
await ReportPrintStatisticsApi.updatePrintStatus({ idList: idList})
|
||||
|
||||
reportsList.value = infoList
|
||||
await showQRcodeSet()
|
||||
activeTabName.value = 'reportInfoBatch'
|
||||
@ -725,10 +778,26 @@ const handlePrint = async () => {
|
||||
activeDrawer.value = true
|
||||
}
|
||||
}
|
||||
// 设置当前日期
|
||||
const getCurrentDate = () => {
|
||||
const date = new Date();
|
||||
|
||||
const year = date.getFullYear();
|
||||
const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
||||
const day = date.getDate().toString().padStart(2, '0');
|
||||
|
||||
// 组合成 yyyy-MM-dd 格式
|
||||
const formattedDate = `${year}-${month}-${day}`;
|
||||
|
||||
queryParams.value.examDate_ge = formattedDate + ' 00:00:00'
|
||||
queryParams.value.examDate_le = formattedDate + ' 23:59:59'
|
||||
}
|
||||
|
||||
/** 钩子方法 **/
|
||||
onMounted(async () => {
|
||||
deviceList.value = await ReportPrintStatisticsApi.getDeviceList()
|
||||
// 默认检查日期为当天的
|
||||
getCurrentDate()
|
||||
getList()
|
||||
await showQRcodeSet()
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user