|
@@ -1,63 +1,103 @@
|
|
|
<template>
|
|
|
- <page-layer>
|
|
|
- <template #header>
|
|
|
- <el-button @click="horizontalPrint" type="primary">打印</el-button>
|
|
|
- </template>
|
|
|
- <template #main>
|
|
|
- <div style="width: 800px; height: 50px; padding: 10px 0 10px 20px; background: silver;display: flex">
|
|
|
- <div id="qrcode"></div>
|
|
|
- <div style="width: 20px"></div>
|
|
|
- <div>
|
|
|
- <div id="person" style="font-size: 12px;font-weight: bold">姓名:一二三四五六七八九 / 性别:男 / 年龄:37</div>
|
|
|
- <div id="department" style="font-size: 12px; margin-top: 5px;font-weight: bold">入院科室:呼吸内科</div>
|
|
|
- <div id="contact" style="font-size: 12px; margin-top: 5px;font-weight: bold">紧急联系人:13698072587</div>
|
|
|
+ <div style="width:100%;height:100%;display: flex;align-items: center;justify-content: center">
|
|
|
+ <div style="display: flex">
|
|
|
+ <div>
|
|
|
+ <div style="width: 220px">
|
|
|
+ <el-select v-model="printer1" placeholder="请选择普通腕带打印机" style="width:100%">
|
|
|
+ <el-option v-for="item in printers" :key="item.code" :value="item.code" :label="item.name"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 4px">
|
|
|
+ <el-button @click="printNormalWristStrap" type="primary" style="width: 100%">打印普通腕带</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </template>
|
|
|
- </page-layer>
|
|
|
+ <div style="width: 20px"></div>
|
|
|
+ <div>
|
|
|
+ <div style="width: 220px">
|
|
|
+ <el-select v-model="printer2" placeholder="请选择儿童腕带打印机" style="width:100%">
|
|
|
+ <el-option v-for="item in printers" :key="item.code" :value="item.code" :label="item.name"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 4px">
|
|
|
+ <el-button @click="printChildWristStrap" type="primary" style="width: 100%">打印儿童腕带</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-
|
|
|
// 280mm * 30mm
|
|
|
-
|
|
|
import { initLodop, getLodop } from '@/utils/c-lodop'
|
|
|
import {onMounted} from "vue";
|
|
|
-import {qrcanvas} from "qrcanvas";
|
|
|
-import PageLayer from "@/layout/PageLayer.vue";
|
|
|
-
|
|
|
-const PRINTER_NAME = 'DASCOM DL-520Z'
|
|
|
-const inpatientNo = ref('0374562')
|
|
|
-
|
|
|
-const drawQrcoce = (inpatientNo) => {
|
|
|
- const labelCanvas = qrcanvas({
|
|
|
- data: inpatientNo,
|
|
|
- size: '50',
|
|
|
- })
|
|
|
- document.getElementById('qrcode').appendChild(labelCanvas)
|
|
|
-}
|
|
|
+import {ElMessage} from "element-plus";
|
|
|
+
|
|
|
+let LODOP;
|
|
|
+const inpatientNo = ref('0420227')
|
|
|
+
|
|
|
+const printers = ref([])
|
|
|
+const printer1 = ref(null);
|
|
|
+const printer2 = ref(null);
|
|
|
|
|
|
-const horizontalPrint = () => {
|
|
|
- let LODOP = getLodop()
|
|
|
+// SET_PRINT_PAGESIZE(intOrient, PageWidth,PageHeight,strPageName)
|
|
|
+// ADD_PRINT_HTM(Top,Left,Width,Height,strHtmlContent)
|
|
|
+const printNormalWristStrap = () => {
|
|
|
+ if (!printer1.value) {
|
|
|
+ ElMessage({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请选择打印机!'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ LODOP = getLodop();
|
|
|
LODOP.PRINT_INIT('inpatient_info2')
|
|
|
- LODOP.SET_PRINTER_INDEX(PRINTER_NAME)
|
|
|
+ LODOP.SET_PRINTER_INDEX(printer1.value)
|
|
|
LODOP.SET_PRINT_PAGESIZE(2, 0, 0, '')
|
|
|
LODOP.SET_PRINT_STYLE('FontSize', 9)
|
|
|
LODOP.SET_PRINT_STYLE('Bold', 1)
|
|
|
-
|
|
|
LODOP.ADD_PRINT_BARCODE('7mm', '30mm', '18.5mm', '18.5mm', 'QRCode', inpatientNo.value)
|
|
|
+ LODOP.ADD_PRINT_TEXT('8mm', '50mm', '220mm', '7mm', '姓名:陈晓莺 / 性别:女 / 年龄:56')
|
|
|
+ LODOP.ADD_PRINT_TEXT('14mm', '50mm', '220mm', '7mm', '入院科室:脊柱外科')
|
|
|
+ LODOP.ADD_PRINT_TEXT('20mm', '50mm', '220mm', '7mm', '紧急联系人:13908453983')
|
|
|
+ LODOP.PREVIEW()
|
|
|
+}
|
|
|
|
|
|
- // ADD_PRINT_HTM(Top,Left,Width,Height,strHtmlContent)
|
|
|
- LODOP.ADD_PRINT_TEXT('8mm', '50mm', '220mm', '7mm', document.getElementById('person').innerHTML)
|
|
|
- LODOP.ADD_PRINT_TEXT('14mm', '50mm', '220mm', '7mm', document.getElementById('department').innerHTML)
|
|
|
- LODOP.ADD_PRINT_TEXT('20mm', '50mm', '220mm', '7mm', document.getElementById('contact').innerHTML)
|
|
|
-
|
|
|
+const printChildWristStrap = () => {
|
|
|
+ if (!printer2.value) {
|
|
|
+ ElMessage({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请选择打印机!'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ LODOP = getLodop()
|
|
|
+ LODOP.PRINT_INIT('inpatient_info3')
|
|
|
+ LODOP.SET_PRINTER_INDEX(printer2.value)
|
|
|
+ LODOP.SET_PRINT_PAGESIZE(2, 0, 0, '')
|
|
|
+ LODOP.SET_PRINT_STYLE('FontSize', 5)
|
|
|
+ LODOP.SET_PRINT_STYLE('Bold', 1)
|
|
|
+ LODOP.ADD_PRINT_BARCODE('10mm', '27mm', '15mm', '15mm', 'QRCode', inpatientNo.value)
|
|
|
+ LODOP.ADD_PRINT_TEXT('11mm', '40mm', '50mm', '3mm', '姓名:陈晓莺 / 性别:女 / 年龄:12')
|
|
|
+ LODOP.ADD_PRINT_TEXT('15mm', '40mm', '50mm', '3mm', '入院科室:脊柱外科')
|
|
|
+ LODOP.ADD_PRINT_TEXT('18.5mm', '40mm', '50mm', '3mm', '紧急联系人:13908453983')
|
|
|
LODOP.PREVIEW()
|
|
|
}
|
|
|
|
|
|
+const getPrinters = () => {
|
|
|
+ LODOP = getLodop()
|
|
|
+ var count = LODOP.GET_PRINTER_COUNT();
|
|
|
+ for (var i = 0; i < count; i++) {
|
|
|
+ //根据设备序号获取设备名
|
|
|
+ var printerName = LODOP.GET_PRINTER_NAME(i);
|
|
|
+ printers.value.push({code: i, name: printerName})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
initLodop()
|
|
|
- drawQrcoce(inpatientNo.value)
|
|
|
+ setTimeout(() => {
|
|
|
+ getPrinters()
|
|
|
+ }, 500)
|
|
|
})
|
|
|
|
|
|
</script>
|