|
|
|
|
@ -31,52 +31,62 @@
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="5">
|
|
|
|
|
<el-form-item label="检查日期" prop="examDate_ge" class="item-style date-picker">
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item label="检查日期" prop="examDate" class="item-style date-picker">
|
|
|
|
|
<el-date-picker
|
|
|
|
|
v-model="queryParams.examDate_ge"
|
|
|
|
|
type="date"
|
|
|
|
|
ref="examDate_picker"
|
|
|
|
|
v-model="queryParams.examDate"
|
|
|
|
|
value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
placeholder="开始日期"
|
|
|
|
|
class="item-width"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="3">
|
|
|
|
|
<el-form-item
|
|
|
|
|
label=""
|
|
|
|
|
label-width="0px"
|
|
|
|
|
prop="examDate_le"
|
|
|
|
|
class="item-style date-picker"
|
|
|
|
|
>
|
|
|
|
|
<el-date-picker
|
|
|
|
|
v-model="queryParams.examDate_le"
|
|
|
|
|
type="date"
|
|
|
|
|
value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
placeholder="结束日期"
|
|
|
|
|
class="item-width"
|
|
|
|
|
type="daterange"
|
|
|
|
|
start-placeholder="开始日期"
|
|
|
|
|
end-placeholder="结束日期"
|
|
|
|
|
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
|
|
|
|
|
class="!w-240px"
|
|
|
|
|
/>
|
|
|
|
|
<!-- <el-date-picker-->
|
|
|
|
|
<!-- v-model="queryParams.examDate_ge"-->
|
|
|
|
|
<!-- type="date"-->
|
|
|
|
|
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
|
|
|
|
|
<!-- placeholder="开始日期"-->
|
|
|
|
|
<!-- class="item-width"-->
|
|
|
|
|
<!-- />-->
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<!-- <el-col :span="3">-->
|
|
|
|
|
<!-- <el-form-item-->
|
|
|
|
|
<!-- label=""-->
|
|
|
|
|
<!-- label-width="0px"-->
|
|
|
|
|
<!-- prop="examDate_le"-->
|
|
|
|
|
<!-- class="item-style date-picker"-->
|
|
|
|
|
<!-- >-->
|
|
|
|
|
<!-- <el-date-picker-->
|
|
|
|
|
<!-- v-model="queryParams.examDate_le"-->
|
|
|
|
|
<!-- type="date"-->
|
|
|
|
|
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
|
|
|
|
|
<!-- placeholder="结束日期"-->
|
|
|
|
|
<!-- class="item-width"-->
|
|
|
|
|
<!-- />-->
|
|
|
|
|
<!-- </el-form-item>-->
|
|
|
|
|
<!-- </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 +98,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 +164,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 +244,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
|
|
|
|
|
@ -403,7 +423,7 @@
|
|
|
|
|
<div v-if="reportInfoType">
|
|
|
|
|
<div>
|
|
|
|
|
<div style="text-align: right">
|
|
|
|
|
<el-button type="primary" style="width: 90px" v-print="{ id: 'printMe' }">
|
|
|
|
|
<el-button type="primary" style="width: 90px" v-print="{ id: 'printMe' }" @click="recordPrintFlag">
|
|
|
|
|
<span>打印</span>
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-divider style="margin-top: 8px; margin-bottom: 10px" />
|
|
|
|
|
@ -517,11 +537,13 @@ const queryParams = ref({
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
regId: '',
|
|
|
|
|
examId: '',
|
|
|
|
|
examDate: [],
|
|
|
|
|
examDate_ge: '',
|
|
|
|
|
examDate_le: '',
|
|
|
|
|
deviceName: '',
|
|
|
|
|
deviceType: '',
|
|
|
|
|
pname: ''
|
|
|
|
|
pname: '',
|
|
|
|
|
printStatus:undefined
|
|
|
|
|
})
|
|
|
|
|
const infoParams = ref({
|
|
|
|
|
id: '',
|
|
|
|
|
@ -608,8 +630,49 @@ 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 recordPrintFlag = () =>{
|
|
|
|
|
ReportPrintStatisticsApi.updatePrintStatus({ id: infoParams.value.id })
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/****** 可参考内容 ******/
|
|
|
|
|
/** 组件事件 **/
|
|
|
|
|
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') {
|
|
|
|
|
@ -654,6 +717,11 @@ const getList = async () => {
|
|
|
|
|
resetDiagnosisInfo()
|
|
|
|
|
loading.value = true
|
|
|
|
|
try {
|
|
|
|
|
if(queryParams.value.examDate.length>0){
|
|
|
|
|
queryParams.value.examDate_ge = queryParams.value.examDate[0]
|
|
|
|
|
queryParams.value.examDate_le = queryParams.value.examDate[1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const data = await ReportPrintStatisticsApi.getPage(queryParams.value)
|
|
|
|
|
list_infos.value = data.list
|
|
|
|
|
total.value = data.total
|
|
|
|
|
@ -674,11 +742,13 @@ const resetQuery = async () => {
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
regId: '',
|
|
|
|
|
examId: '',
|
|
|
|
|
examDate: [],
|
|
|
|
|
examDate_ge: '',
|
|
|
|
|
examDate_le: '',
|
|
|
|
|
deviceName: '',
|
|
|
|
|
deviceType: '',
|
|
|
|
|
pname: ''
|
|
|
|
|
pname: '',
|
|
|
|
|
printStatus: undefined
|
|
|
|
|
}
|
|
|
|
|
queryFormRef.value?.clearValidate()
|
|
|
|
|
handleQuery()
|
|
|
|
|
@ -701,6 +771,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 +790,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 +801,27 @@ 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'
|
|
|
|
|
queryParams.value.examDate = [queryParams.value.examDate_ge,queryParams.value.examDate_le]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** 钩子方法 **/
|
|
|
|
|
onMounted(async () => {
|
|
|
|
|
deviceList.value = await ReportPrintStatisticsApi.getDeviceList()
|
|
|
|
|
// 默认检查日期为当天的
|
|
|
|
|
getCurrentDate()
|
|
|
|
|
getList()
|
|
|
|
|
await showQRcodeSet()
|
|
|
|
|
})
|
|
|
|
|
@ -777,5 +870,18 @@ console.log(download)
|
|
|
|
|
height: 260mm;
|
|
|
|
|
page-break-after: always;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
:deep(.image-gallery) {
|
|
|
|
|
//width: 300px !important;
|
|
|
|
|
height: 250px !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//:deep(.ultrasound-report) {
|
|
|
|
|
// width: 96%;
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
:deep(.doctor-info-row) {
|
|
|
|
|
font-size: 17px !important;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|