报告二维码
This commit is contained in:
parent
9915776d9f
commit
301715cbd6
4
.env
4
.env
@ -23,3 +23,7 @@ VITE_APP_BAIDU_CODE = a1ff8825baa73c3a78eb96aa40325abc
|
||||
VITE_APP_DEFAULT_LOGIN_TENANT = 芋道源码
|
||||
VITE_APP_DEFAULT_LOGIN_USERNAME =
|
||||
VITE_APP_DEFAULT_LOGIN_PASSWORD =
|
||||
|
||||
# 自定义内容
|
||||
# 云胶片
|
||||
VITE_BASE_URL_YunJiaoPian='http://114.55.171.231:48081'
|
@ -5,7 +5,9 @@ import request from '@/config/axios'
|
||||
* ReportPrintStatisticsApi
|
||||
*/
|
||||
export const ReportPrintStatisticsApi = {
|
||||
/* 测试方法 */
|
||||
getOrg: async (orgID: any) => {
|
||||
return await request.get({ url: `/org/org/getone?orgID=` + orgID })
|
||||
},
|
||||
getDeviceList: async () => {
|
||||
return await request.get({ url: `/system/device/getlist` })
|
||||
},
|
||||
|
@ -44,6 +44,15 @@
|
||||
<p>{{ infoParams.diagResults }}</p>
|
||||
</div>
|
||||
<div style="width: 94%; position: absolute; bottom: 20px; right: 20px">
|
||||
<div style="text-align: center" v-if="infoParams.showQRcode">
|
||||
<Qrcode
|
||||
:text="
|
||||
VITE_BASE_URL_YunJiaoPian + '?no=' + infoParams.regId + '&orgId=' + infoParams.orgId
|
||||
"
|
||||
:width="90"
|
||||
/>
|
||||
<div class="-mt-6px mb-1px" style="font-size: 11px">扫码查看云胶片</div>
|
||||
</div>
|
||||
<hr />
|
||||
<el-row style="font-size: 14px">
|
||||
<el-col :span="6" class="pl-6px">报告医师:{{ infoParams.diagDoctor }}</el-col>
|
||||
@ -74,6 +83,11 @@ defineOptions({ name: 'ReportInfoCT' })
|
||||
**/
|
||||
/** 导入内容 **/
|
||||
const infoParams = defineProps({
|
||||
showQRcode: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
required: false
|
||||
},
|
||||
id: String,
|
||||
examId: String,
|
||||
regId: String,
|
||||
@ -95,6 +109,8 @@ const infoParams = defineProps({
|
||||
})
|
||||
|
||||
/** 数据内容 **/
|
||||
const VITE_BASE_URL_YunJiaoPian = ref(import.meta.env.VITE_BASE_URL_YunJiaoPian)
|
||||
|
||||
const age = computed(() => {
|
||||
let birthdate = infoParams.birthday
|
||||
if (!birthdate) {
|
||||
@ -152,7 +168,7 @@ onMounted(async () => {})
|
||||
}
|
||||
|
||||
.ultrasound-recommendation {
|
||||
margin-bottom: 90px;
|
||||
margin-bottom: 174px;
|
||||
}
|
||||
|
||||
.ultrasound-findings p,
|
||||
|
@ -36,8 +36,17 @@
|
||||
<h3>超声提示:</h3>
|
||||
<p>{{ infoParams.diagResults }}</p>
|
||||
</div>
|
||||
<div style="position: absolute; bottom: 20px; right: 20px">
|
||||
<p>医生签名:{{ infoParams.reviewDoctor }}</p>
|
||||
<div style="width: 94%; position: absolute; bottom: 20px; right: 20px">
|
||||
<div style="text-align: center" v-if="infoParams.showQRcode">
|
||||
<Qrcode
|
||||
:text="
|
||||
VITE_BASE_URL_YunJiaoPian + '?no=' + infoParams.regId + '&orgId=' + infoParams.orgId
|
||||
"
|
||||
:width="90"
|
||||
/>
|
||||
<div class="-mt-6px -mb-8px" style="font-size: 11px">扫码查看云胶片</div>
|
||||
</div>
|
||||
<p style="text-align: right">医生签名:{{ infoParams.reviewDoctor }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -52,6 +61,11 @@ defineOptions({ name: 'ReportInfoUS' })
|
||||
**/
|
||||
/** 导入内容 **/
|
||||
const infoParams = defineProps({
|
||||
showQRcode: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
required: false
|
||||
},
|
||||
id: String,
|
||||
examId: String,
|
||||
regId: String,
|
||||
@ -73,6 +87,8 @@ const infoParams = defineProps({
|
||||
})
|
||||
|
||||
/** 数据内容 **/
|
||||
const VITE_BASE_URL_YunJiaoPian = ref(import.meta.env.VITE_BASE_URL_YunJiaoPian)
|
||||
|
||||
const age = computed(() => {
|
||||
let birthdate = infoParams.birthday
|
||||
if (!birthdate) {
|
||||
@ -148,7 +164,7 @@ onMounted(async () => {
|
||||
}
|
||||
|
||||
.ultrasound-recommendation {
|
||||
margin-bottom: 90px;
|
||||
margin-bottom: 178px;
|
||||
}
|
||||
|
||||
.ultrasound-findings p,
|
||||
|
@ -213,6 +213,7 @@
|
||||
v-model="activeDrawer"
|
||||
direction="rtl"
|
||||
:with-header="false"
|
||||
:modal="activeDrawerModal"
|
||||
:size="activeDrawerSize"
|
||||
@opened="drawerOpened"
|
||||
@closed="
|
||||
@ -220,6 +221,7 @@
|
||||
reportsList = []
|
||||
reportInfoType = ''
|
||||
activeTabName = ''
|
||||
activeDrawerModal = true
|
||||
activeDrawerSize = '74%'
|
||||
}
|
||||
"
|
||||
@ -409,10 +411,10 @@
|
||||
</div>
|
||||
<div id="printMe">
|
||||
<template v-if="reportInfoType == 'us'">
|
||||
<ReportInfoUS v-bind="{ ...infoParams }" class="page-item" />
|
||||
<ReportInfoUS v-bind="{ ...infoParams, showQRcode }" class="page-item" />
|
||||
</template>
|
||||
<template v-if="reportInfoType == 'ct'">
|
||||
<ReportInfoCT v-bind="{ ...infoParams }" class="page-item" />
|
||||
<ReportInfoCT v-bind="{ ...infoParams, showQRcode }" class="page-item" />
|
||||
</template>
|
||||
</div>
|
||||
<div style="margin-bottom: 40px"></div>
|
||||
@ -447,11 +449,11 @@
|
||||
v-if="index && index > 0"
|
||||
></div>
|
||||
<ReportInfoUS
|
||||
v-bind="{ ...item }"
|
||||
v-bind="{ ...item, showQRcode }"
|
||||
v-if="item.deviceType && item.deviceType.trim().toLowerCase() == 'us'"
|
||||
class="page-item"
|
||||
/>
|
||||
<ReportInfoCT v-bind="{ ...item }" v-else class="page-item" />
|
||||
<ReportInfoCT v-bind="{ ...item, showQRcode }" v-else class="page-item" />
|
||||
</template>
|
||||
</div>
|
||||
<div style="margin-bottom: 40px"></div>
|
||||
@ -467,6 +469,8 @@
|
||||
import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
|
||||
import download from '@/utils/download'
|
||||
import { ReportPrintStatisticsApi } from '@/api/applyregistration/reportPrintStatistics'
|
||||
import { getUserProfile } from '@/api/system/user/profile'
|
||||
import { ElLoading } from 'element-plus'
|
||||
import ReportInfoCT from './ReportInfoCT.vue'
|
||||
import ReportInfoUS from './ReportInfoUS.vue'
|
||||
|
||||
@ -487,9 +491,11 @@ const printBatch = ref()
|
||||
const message = useMessage()
|
||||
const { t } = useI18n()
|
||||
const activeDrawer = ref(false)
|
||||
const activeDrawerModal = ref(true)
|
||||
const activeDrawerSize = ref<any>('74%')
|
||||
const activeTabName = ref('diagnosisInfo')
|
||||
const reportInfoType = ref('') //us、ct
|
||||
const showQRcode = ref(false)
|
||||
const diagnosisInfo_readonly = ref(true)
|
||||
const age = ref<any>('')
|
||||
const examItemNameEdit = ref('')
|
||||
@ -579,13 +585,37 @@ const resetDiagnosisInfo = async () => {
|
||||
infoFormRef.value?.clearValidate()
|
||||
}
|
||||
|
||||
const showQRcodeSet = async () => {
|
||||
showQRcode.value = false
|
||||
try {
|
||||
let orgInfo: any = null
|
||||
let userInfo = await getUserProfile()
|
||||
if (userInfo && userInfo.orgId)
|
||||
orgInfo = await ReportPrintStatisticsApi.getOrg(userInfo.orgId.trim())
|
||||
if (orgInfo && orgInfo.enableCloudDicom && orgInfo.enableCloudDicom.trim() == '1')
|
||||
showQRcode.value = true
|
||||
} catch {
|
||||
showQRcode.value = false
|
||||
}
|
||||
}
|
||||
|
||||
/****** 可参考内容 ******/
|
||||
/** 组件事件 **/
|
||||
const drawerOpened = async () => {
|
||||
try {
|
||||
if (true && activeTabName && activeTabName.value == 'reportInfoBatch') {
|
||||
printBatch.value.$el.click()
|
||||
activeDrawer.value = false
|
||||
const loading = ElLoading.service({
|
||||
lock: true,
|
||||
text: '打印加载中',
|
||||
background: 'rgba(0, 0, 0, 0.74)'
|
||||
})
|
||||
nextTick(() => {
|
||||
setTimeout(() => {
|
||||
printBatch.value?.$el?.click() //用?防止按键Esc
|
||||
loading.close()
|
||||
activeDrawer.value = false
|
||||
}, 2500)
|
||||
})
|
||||
}
|
||||
} finally {
|
||||
}
|
||||
@ -626,6 +656,7 @@ const getList = async () => {
|
||||
const handleQuery = async () => {
|
||||
queryParams.value.pageNo = 1
|
||||
getList()
|
||||
await showQRcodeSet()
|
||||
}
|
||||
|
||||
const resetQuery = async () => {
|
||||
@ -654,6 +685,7 @@ const handleRowClick = async (row) => {
|
||||
if (row.deviceType && row.deviceType.trim().toLowerCase() == 'us') reportInfoType.value = 'us'
|
||||
else reportInfoType.value = 'ct'
|
||||
}
|
||||
await showQRcodeSet()
|
||||
activeTabName.value = 'diagnosisInfo'
|
||||
activeDrawer.value = true
|
||||
}
|
||||
@ -675,7 +707,9 @@ const handlePrint = async () => {
|
||||
return compare
|
||||
})
|
||||
reportsList.value = infoList
|
||||
await showQRcodeSet()
|
||||
activeTabName.value = 'reportInfoBatch'
|
||||
activeDrawerModal.value = false
|
||||
activeDrawerSize.value = 0.01
|
||||
activeDrawer.value = true
|
||||
}
|
||||
@ -685,6 +719,7 @@ const handlePrint = async () => {
|
||||
onMounted(async () => {
|
||||
deviceList.value = await ReportPrintStatisticsApi.getDeviceList()
|
||||
getList()
|
||||
await showQRcodeSet()
|
||||
})
|
||||
|
||||
/** 防空作用域 **/
|
||||
|
2
types/env.d.ts
vendored
2
types/env.d.ts
vendored
@ -26,6 +26,8 @@ interface ImportMetaEnv {
|
||||
readonly VITE_DROP_CONSOLE: string
|
||||
readonly VITE_SOURCEMAP: string
|
||||
readonly VITE_OUT_DIR: string
|
||||
//自定义内容
|
||||
readonly VITE_BASE_URL_YunJiaoPian: string
|
||||
}
|
||||
|
||||
declare global {
|
||||
|
Loading…
Reference in New Issue
Block a user