-
+
- 汇总保存
- 提交
+ 汇总保存
+ 提交
+
@@ -106,8 +108,8 @@
-
-
+
+
@@ -130,8 +132,10 @@
-
- {{ analyseFlag ? '【' : '' }} {{ item.itemResult }} {{ analyseFlag ? '】' : '' }}
-
+ {{ analyseFlag ? '【' : '' }} {{ item.groupname }} {{ analyseFlag ? '】' : '' }}
+
+
+
@@ -148,6 +152,50 @@ import {DICT_TYPE, getIntDictOptions} from "@/utils/dict";
import {onMounted, ref} from "vue";
import {PatientApi} from "@/api/inspect/inspectpatient";
+import { useRouter } from 'vue-router'
+import {newHiprintPrintTemplate} from "@/views/summary/utils/template-helper";
+import printData from "@/views/summary/print/printData";
+import {usePaper} from "@/views/summary/hooks/use-paper";
+import {useZoom} from "@/views/summary/hooks/use-zoom";
+import template from "../print/template";
+import {groupNameItemsOfMedicalSn} from "@/api/summary";
+const router = useRouter()
+
+const go = () => {
+ router.push({
+ name: 'PrintInfo',
+ params: {
+ medicalSn: medicalSn.value // 对应路由中的动态片段 :id
+ }
+ })
+}
+
+const templateRef = ref(template);
+let hiprintTemplate;
+const TEMPLATE_KEY = getCurrentInstance().type.name; // 存储模板对象的 key
+const { paperTypes, curPaperType, paperPopVisible, paperWidth, paperHeight, showPaperPop, setPaper, setPaperOther } = usePaper(TEMPLATE_KEY);
+const { scaleValue, changeScale } = useZoom(TEMPLATE_KEY);
+const goto = () =>{
+ hiprintTemplate = newHiprintPrintTemplate(TEMPLATE_KEY, {
+ template: templateRef.value, // 模板json(object)
+ settingContainer: "#PrintElementOptionSetting", // 元素参数容器
+ });
+ // 参数: 打印时设置 左偏移量,上偏移量
+ let options = { leftOffset: -1, topOffset: -1 };
+ // 扩展
+ let ext = {
+ callback: () => {
+ console.log("浏览器打印窗口已打开");
+ },
+ styleHandler: () => {
+ // 重写 文本 打印样式
+ return "";
+ },
+ };
+ // 调用浏览器打印
+ hiprintTemplate.print(printData, options, ext);
+}
+
const { t } = useI18n() // 国际化
const message = useMessage() // 消息弹窗
@@ -156,6 +204,7 @@ const list3 = ref([]) // 列表的数
const showNumbers = ref(false)
const analyseFlag = ref(false)
+const editFlag = ref(true)
const checkAll = () => {
showNumbers.value = false; // 切换显示序号的状态
@@ -209,7 +258,7 @@ const formData2 = ref({
const handleBlur = async () =>{
const patientInfo = await SummaryApi.getPatient(medicalSn.value)
- const patientItemsInfo = await SummaryApi.getPatientItems(medicalSn.value)
+ const patientItemsInfo = await SummaryApi.groupNameItemsOfMedicalSn(medicalSn.value)
formData2.value = patientInfo
//list.value = patientItemsInfo
const isCheck = await SummaryApi.isExistUncheck(medicalSn.value);
@@ -222,6 +271,7 @@ const handleBlur = async () =>{
})
}else {
list.value = patientItemsInfo
+
}
}
@@ -230,7 +280,10 @@ const save = async () =>{
message.error(t('请选择患者或者输入条码!'))
return
}
-
+ if (formData2.value.auditStatus == 2){
+ message.error(t('已提交,不能进行修改汇总!'))
+ return
+ }
const isCheck = await SummaryApi.isExistUncheck(medicalSn.value);
if (isCheck){
await ElMessageBox({
@@ -245,21 +298,28 @@ const save = async () =>{
}else {
await SummaryApi.updateItemsAnalyse(list3.value)
message.success(t('保存成功'))
+ await fetchPatientsByDate()
}
-
}
-
}
+const submitFlag = ref(false)
const submit = async () =>{
+ if (submitFlag.value){
+ message.error(t('已提交,无须再次提交!'))
+ return
+ }
if(formData2.value.medicalSn == null || formData2.value.medicalSn == ''){
- message.error(t('请选择患者或者输入条码!'))
+ message.error(t('请选择患者!'))
return
}
if(formData2.value.auditStatus == 0){
message.error(t('已审核通过,无须再次提交!'))
+ }else if (formData2.value.auditStatus == 2){
+ message.error(t('已提交,无须再次提交!'))
}else {
await SummaryApi.updateAudit(medicalSn.value,2,'')
message.success(t('提交成功'))
+ submitFlag.value = true
}
}
@@ -281,9 +341,14 @@ const handlePatientSelect = async (patient) => {
medicalSn.value = patient.medicalSn
selectedPatient.value = patient
const patientInfo = await SummaryApi.getPatient(patient.medicalSn)
- const patientItemsInfo = await SummaryApi.getPatientItems(patient.medicalSn)
+ const patientItemsInfo = await SummaryApi.groupNameItemsOfMedicalSn(patient.medicalSn)
formData2.value = patientInfo
//list.value = patientItemsInfo
+ if(patientInfo.auditStatus == 0 || patientInfo.auditStatus == 2){
+ editFlag.value = false
+ }else {
+ editFlag.value = true
+ }
const isCheck = await SummaryApi.isExistUncheck(patient.medicalSn);
if (isCheck){
await ElMessageBox({
@@ -295,12 +360,17 @@ const handlePatientSelect = async (patient) => {
}else {
list.value = patientItemsInfo
}
+ if(patientInfo.auditStatus == 0){
+ analyseFlag.value = true;
+ showNumbers.value = true; // 切换显示序号的状态
+ list3.value = patientItemsInfo
+ }
}
const pageNo = ref(1)
const pageSize = ref(20)
const total = ref(0)
-const inspectionStatus = ref()
+const inspectionStatus = ref(1)
// 添加分页处理函数
const handleCurrentChange = (val) => {
pageNo.value = val
@@ -311,7 +381,7 @@ onMounted(() => {
// 清理页面状态
patients.value = []
selectedPatient.value = null
- inspectionStatus.value = null
+ inspectionStatus.value = 1
// 获取今日数据
fetchPatientsByDate()
diff --git a/src/views/summary/hooks/use-paper.js b/src/views/summary/hooks/use-paper.js
new file mode 100644
index 0000000..b33b98e
--- /dev/null
+++ b/src/views/summary/hooks/use-paper.js
@@ -0,0 +1,108 @@
+/*
+ * @Description:
+ * @Author: CcSimple
+ * @Github: https://github.com/CcSimple
+ * @Date: 2023-02-09 13:32:39
+ * @LastEditors: CcSimple
+ * @LastEditTime: 2023-02-09 23:38:03
+ */
+import { reactive, computed, toRefs } from "vue";
+import { getHiprintPrintTemplate } from "../utils/template-helper";
+
+/**
+ * vue3 组合式函数
+ * 把一些逻辑抽离出来,方便复用
+ * 返回 使用方 可用的方法和数据
+ */
+export function usePaper(key) {
+ // 数据
+ const state = reactive({
+ curPaper: {
+ type: "A4",
+ width: 210,
+ height: 296.6,
+ },
+ paperTypes: {
+ A3: {
+ width: 420,
+ height: 296.6,
+ },
+ A4: {
+ width: 210,
+ height: 296.6,
+ },
+ A5: {
+ width: 210,
+ height: 147.6,
+ },
+ B3: {
+ width: 500,
+ height: 352.6,
+ },
+ B4: {
+ width: 250,
+ height: 352.6,
+ },
+ B5: {
+ width: 250,
+ height: 175.6,
+ },
+ },
+ // 自定义纸张
+ paperPopVisible: false,
+ paperWidth: "220",
+ paperHeight: "80",
+ });
+ // 计算属性
+ const curPaperType = computed(() => {
+ let type = "other";
+ let types = state.paperTypes;
+ for (const key in types) {
+ let item = types[key];
+ let { width, height } = state.curPaper;
+ if (item.width === width && item.height === height) {
+ type = key;
+ }
+ }
+ return type;
+ });
+ const tp = () => {
+ return getHiprintPrintTemplate(key);
+ };
+ // 方法
+ const showPaperPop = () => {
+ state.paperPopVisible = true;
+ };
+ const hidePaperPop = () => {
+ state.paperPopVisible = false;
+ };
+ const setPaper = (type, value) => {
+ try {
+ if (Object.keys(state.paperTypes).includes(type)) {
+ state.curPaper = { type: type, width: value.width, height: value.height };
+ tp().setPaper(value.width, value.height);
+ } else {
+ state.curPaper = { type: "other", width: value.width, height: value.height };
+ tp().setPaper(value.width, value.height);
+ }
+ } catch (error) {
+ alert(`操作失败: ${error}`);
+ }
+ };
+ const setPaperOther = () => {
+ let value = {};
+ value.width = state.paperWidth;
+ value.height = state.paperHeight;
+ state.paperPopVisible = false;
+ setPaper("other", value);
+ };
+ // 暴露给使用方
+ return {
+ ...toRefs(state),
+ curPaperType,
+ showPaperPop,
+ hidePaperPop,
+ setPaper,
+ setPaperOther,
+ };
+}
diff --git a/src/views/summary/hooks/use-zoom.js b/src/views/summary/hooks/use-zoom.js
new file mode 100644
index 0000000..d17c545
--- /dev/null
+++ b/src/views/summary/hooks/use-zoom.js
@@ -0,0 +1,49 @@
+/*
+ * @Description:
+ * @Author: CcSimple
+ * @Github: https://github.com/CcSimple
+ * @Date: 2023-02-09 13:32:39
+ * @LastEditors: CcSimple
+ * @LastEditTime: 2023-02-10 16:00:54
+ */
+import { reactive, toRefs } from "vue";
+import { getHiprintPrintTemplate } from "../utils/template-helper";
+
+/**
+ * vue3 组合式函数
+ * 把一些逻辑抽离出来,方便复用
+ * 返回 使用方 可用的方法和数据
+ */
+export function useZoom(key) {
+ // 数据
+ const state = reactive({
+ scaleValue: 1,
+ scaleMax: 5,
+ scaleMin: 0.5,
+ });
+ // 获取 template
+ const tp = () => {
+ return getHiprintPrintTemplate(key);
+ };
+ // 方法
+ const changeScale = (big) => {
+ let scaleValue = state.scaleValue;
+ if (big) {
+ scaleValue += 0.1;
+ if (scaleValue > state.scaleMax) scaleValue = 5;
+ } else {
+ scaleValue -= 0.1;
+ if (scaleValue < state.scaleMin) scaleValue = 0.5;
+ }
+ if (tp()) {
+ // scaleValue: 放大缩小值, false: 不保存(不传也一样), 如果传 true, 打印时也会放大
+ tp().zoom(scaleValue);
+ state.scaleValue = scaleValue;
+ }
+ };
+ // 暴露给使用方
+ return {
+ ...toRefs(state),
+ changeScale,
+ };
+}
\ No newline at end of file
diff --git a/src/views/summary/print/index.vue b/src/views/summary/print/index.vue
new file mode 100644
index 0000000..64219f5
--- /dev/null
+++ b/src/views/summary/print/index.vue
@@ -0,0 +1,398 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
设置纸张宽高(mm)
+
+
+ x
+
+
+
+
+
+
+
+
+
+
{{ (scaleValue * 100).toFixed(0) }}%
+
+
+
+
+
+
+
+
+
+
+
+
provider1 默认样式
+
+
+
+
provider2 自定义样式
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/summary/print/printData.js b/src/views/summary/print/printData.js
new file mode 100644
index 0000000..8ac1fe8
--- /dev/null
+++ b/src/views/summary/print/printData.js
@@ -0,0 +1,108 @@
+export default {
+ name: "黄磊",
+ logoTest: "https://portrait.gitee.com/uploads/avatars/user/1800/5400665_CcSimple_1591166830.png!avatar60",
+ password: "12346",
+ longText:
+ "浙江在线3月29日讯最近,\n一篇小学五年级学生写的作文引起了钱报记者的关注这篇作文的题目叫做《脏话风波》,讲述的是小作者班级里发生的一种不文明现象——讲脏话的同学越来越多,有的人说话甚至句句“带把儿”。班主任为了遏制这种现象,煞费苦心想了很多办法,跟学生斗智斗勇……看到这篇作文,记者突然想到,自己读六年级的儿子有天突然冒出一句脏话。此前,他是从不说脏话的。问他怎么学会的,他也说不出个所以然来。于是,记者做了这个小学生脏话现象调查。经过了解才发现,小学生爱说脏话竟然较为普遍,一般三年级会冒出苗头。无论是学习成绩好的,还是平时不太起眼的,都会说脏话。而且,说脏话会“传染”,一旦冒头不制止,到了五六年级甚至可能在班里大爆发。以下为作文《脏话风波》浙江在线3月29日讯最近,一篇小学五年级学生写的作文引起了钱报记者的关注。这篇作文的题目叫做《脏话风波》,讲述的是小作者班级里发生的一种不文明现象——讲脏话的同学越来越多,有的人说话甚至句句“带把儿”。班主任为了遏制这种现象,煞费苦心想了很多办法,跟学生斗智斗勇……看到这篇作文,记者突然想到,自己读六年级的儿子有天突然冒出一句脏话。此前,他是从不说脏话的。问他怎么学会的,他也说不出个所以然来。于是,记者做了这个小学生脏话现象调查。经过了解才发现,小学生爱说脏话竟然较为普遍,一般三年级会冒出苗头。无论是学习成绩好的,还是平时不太起眼的,都会说脏话。而且,说脏话会“传染”,一旦冒头不制止,到了五六年级甚至可能在班里大爆发。以下为作文《脏话风波》浙江在线3月29日讯最近,一篇小学五年级学生写的作文引起了钱报记者的关注。这篇作文的题目叫做《脏话风波》,讲述的是小作者班级里发生的一种不文明现象——讲脏话的同学越来越多,有的人说话甚至句句“带把儿”。班主任为了遏制这种现象,煞费苦心想了很多办法,跟学生斗智斗勇……看到这篇作文,记者突然想到,自己读六年级的儿子有天突然冒出一句脏话。此前,他是从不说脏话的。问他怎么学会的,他也说不出个所以然来。于是,记者做了这个小学生脏话现象调查。经过了解才发现,小学生爱说脏话竟然较为普遍,一般三年级会冒出苗头。无论是学习成绩好的,还是平时不太起眼的,都会说脏话。而且,说脏话会“传染”,一旦冒头不制止,到了五六年级甚至可能在班里大爆发。以下为作文《脏话风波》浙江在线3月29日讯最近,一篇小学五年级学生写的作文引起了钱报记者的关注。这篇作文的题目叫做《脏话风波》,讲述的是小作者班级里发生的一种不文明现象——讲脏话的同学越来越多,有的人说话甚至句句“带把儿”。班主任为了遏制这种现象,煞费苦心想了很多办法,跟学生斗智斗勇……看到这篇作文,记者突然想到,自己读六年级的儿子有天突然冒出一句脏话。此前,他是从不说脏话的。问他怎么学会的,他也说不出个所以然来。于是,记者做了这个小学生脏话现象调查。经过了解才发现,小学生爱说脏话竟然较为普遍,一般三年级会冒出苗头。无论是学习成绩好的,还是平时不太起眼的,都会说脏话。而且,说脏话会“传染”,一旦冒头不制止,到了五六年级甚至可能在班里大爆发。以下为作文《脏话风波》浙江在线3月29日讯最近,一篇小学五年级学生写的作文引起了钱报记者的关注。这篇作文的题目叫做《脏话风波》,讲述的是小作者班级里发生的一种不文明现象——讲脏话的同学越来越多,有的人说话甚至句句“带把儿”。班主任为了遏制这种现象,煞费苦心想了很多办法,跟学生斗智斗勇……看到这篇作文,记者突然想到,自己读六年级的儿子有天突然冒出一句脏话。此前,他是从不说脏话的。问他怎么学会的,他也说不出个所以然来。于是,记者做了这个小学生脏话现象调查。经过了解才发现,小学生爱说脏话竟然较为普遍,一般三年级会冒出苗头。无论是学习成绩好的,还是平时不太起眼的,都会说脏话。而且,说脏话会“传染”,一旦冒头不制止,到了五六年级甚至可能在班里大爆发。以下为作文讲述的是小作者班级里发生的一种不文明现象——讲脏话的同学越来越多,有的人说话甚至句句“带把儿”。班主任为了遏制这种现象,煞费苦心想了很多办法,跟学生斗智斗勇……看到这篇作文,记者突然想到,自己读六年级的儿子有天突然冒出一句脏话。此前,他是从不说脏话的。问他怎么学会的,他也说不出个所以然来。于是,记者做了这个小学生脏话现象调查。经过了解才发现,小学生爱说脏话竟然较为普遍,一般三年级会冒出苗头。无论是学习成绩好的,还是平时不太起眼的,都会说脏话。而且,说脏话会“传染”,一旦冒头不制止,到了五六年级甚至可能在班里大爆发。以下为作文经过了解才发现,小学生爱说脏话竟然较为普遍,一般三年级会冒出苗头。无论是学习成绩好的,还是平时不太起眼的,都会说脏话。而且,说脏话会“传染”,一旦冒头不制止,到了五六年级甚至可能在班里大爆发。以下为作文讲述的是小作者班级里发生的一种不文明现象——讲脏话的同学越来越多,有的人说话甚至句句“带把儿”。班主任为了遏制这种现象,煞费苦心想了很多办法,跟学生斗智斗勇……看到这篇作文,记者突然想到,自己读六年级的儿子有天突然冒出一句脏话。此前,他是从不说脏话的。问他怎么学会的,他也说不出个所以然来。于是,记者做了这个小学生脏话现象调查。经过了解才发现,小学生爱说脏话竟然较为普遍,一般三年级会冒出苗头。无论是学习成绩好的,还是平时不太起眼的,都会说脏话。而且,说脏话会“传染”,一旦冒头不制止,到了五六年级甚至可能在班里大爆发。以下为作文",
+ table: [
+ { id: "1", name: "王小可", gender: "男", count: "120", amount: "9089元" },
+ { id: "2", name: "梦之遥", gender: "女", count: "20", amount: "89元" },
+ { id: "3", name: "梦之遥", gender: "女", count: "720", amount: "29089元" },
+ { id: "4", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "5", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "6", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "7", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "8", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "9", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "10", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "11", name: "王小可", gender: "男", count: "120", amount: "9089元" },
+ { id: "12", name: "梦之遥", gender: "女", count: "20", amount: "89元" },
+ { id: "13", name: "梦之遥", gender: "女", count: "720", amount: "29089元" },
+ { id: "14", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "15", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "16", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "17", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "18", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "19", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "20", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "21", name: "王小可", gender: "男", count: "120", amount: "9089元" },
+ { id: "22", name: "梦之遥", gender: "女", count: "20", amount: "89元" },
+ { id: "23", name: "梦之遥", gender: "女", count: "720", amount: "29089元" },
+ { id: "24", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "25", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "26", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "27", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "28", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "29", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "21", name: "王小可", gender: "男", count: "120", amount: "9089元" },
+ { id: "22", name: "梦之遥", gender: "女", count: "20", amount: "89元" },
+ { id: "23", name: "梦之遥", gender: "女", count: "720", amount: "29089元" },
+ { id: "24", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "25", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "26", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "27", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "28", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "29", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "21", name: "王小可", gender: "男", count: "120", amount: "9089元" },
+ { id: "22", name: "梦之遥", gender: "女", count: "20", amount: "89元" },
+ { id: "23", name: "梦之遥", gender: "女", count: "720", amount: "29089元" },
+ { id: "29", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "30", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ ],
+ examine1:"【人体成分分析】【内科检查】【妇科常规检査】【白带常规检查】【宫颈液基薄层细胞学检测】【心电图】【腹部彩超】【女性盆腔彩超】【颈动脉彩超】【甲状腺彩超】【乳腺彩超】【颈椎侧位DR】【低剂量螺旋CT(颅脑)】【低剂量螺旋CT(胸部)】【尿常规】【静脉采血】【血常规五分类】【肝功4价)【超路4项产重白(hCRP)】【降功能3项】【空碶血糖】【心肌酶",
+ examine2:"【一般情况】",
+ examine3:"【外科女)【幽门螺杆菌抗体检测】【同型半晓氨酸】【肿瘤2项】【甲状腺功能3项】【抗甲状腺球蛋白抗体测定】【抗甲状腺过氧化物酶抗体测定】",
+};
+
+
+/*export default {
+ name: "黄磊",
+ age: 20,
+ sex: "女",
+ time: "2022-10-10",
+ table: [
+ { id: "1", name: "王小可", gender: "男", count: "120", amount: "9089元" },
+ { id: "2", name: "梦之遥", gender: "女", count: "20", amount: "89元" },
+ { id: "3", name: "梦之遥", gender: "女", count: "720", amount: "29089元" },
+ { id: "4", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "5", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "6", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "7", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "8", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "9", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "10", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "11", name: "王小可", gender: "男", count: "120", amount: "9089元" },
+ { id: "12", name: "梦之遥", gender: "女", count: "20", amount: "89元" },
+ { id: "13", name: "梦之遥", gender: "女", count: "720", amount: "29089元" },
+ { id: "14", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "15", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "16", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "17", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "18", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "19", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "20", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "21", name: "王小可", gender: "男", count: "120", amount: "9089元" },
+ { id: "22", name: "梦之遥", gender: "女", count: "20", amount: "89元" },
+ { id: "23", name: "梦之遥", gender: "女", count: "720", amount: "29089元" },
+ { id: "24", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "25", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "26", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "27", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "28", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "29", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "21", name: "王小可", gender: "男", count: "120", amount: "9089元" },
+ { id: "22", name: "梦之遥", gender: "女", count: "20", amount: "89元" },
+ { id: "23", name: "梦之遥", gender: "女", count: "720", amount: "29089元" },
+ { id: "24", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "25", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "26", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "27", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "28", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "29", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "21", name: "王小可", gender: "男", count: "120", amount: "9089元" },
+ { id: "22", name: "梦之遥", gender: "女", count: "20", amount: "89元" },
+ { id: "23", name: "梦之遥", gender: "女", count: "720", amount: "29089元" },
+ { id: "29", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ { id: "30", name: "黄小菊", gender: "女", count: "420", amount: "19089元" },
+ ]
+};*/
diff --git a/src/views/summary/print/provider1.js b/src/views/summary/print/provider1.js
new file mode 100644
index 0000000..4e07e49
--- /dev/null
+++ b/src/views/summary/print/provider1.js
@@ -0,0 +1,158 @@
+/*
+ * @Description:
+ * @Author: CcSimple
+ * @Github: https://github.com/CcSimple
+ * @Date: 2023-02-09 10:40:26
+ * @LastEditors: CcSimple
+ * @LastEditTime: 2023-02-09 11:37:21
+ */
+import { hiprint } from "vue-plugin-hiprint";
+export const provider1 = function (options) {
+ console.log(options);
+ var addElementTypes = function (context) {
+ context.removePrintElementTypes("providerModule1");
+ context.addPrintElementTypes("providerModule1", [
+ new hiprint.PrintElementTypeGroup("常规", [
+ options.config,
+ {
+ tid: "providerModule1.header",
+ title: "单据表头",
+ data: "单据表头",
+ type: "text",
+ options: {
+ testData: "单据表头",
+ height: 17,
+ fontSize: 16.5,
+ fontWeight: "700",
+ textAlign: "center",
+ hideTitle: true,
+ },
+ },
+ {
+ tid: "providerModule1.type",
+ title: "单据类型",
+ data: "单据类型",
+ type: "text",
+ options: {
+ testData: "单据类型",
+ height: 16,
+ fontSize: 15,
+ fontWeight: "700",
+ textAlign: "center",
+ hideTitle: true,
+ },
+ },
+ {
+ tid: "providerModule1.order",
+ title: "订单编号",
+ data: "XS888888888",
+ type: "text",
+ options: {
+ field: "order",
+ testData: "XS888888888",
+ height: 16,
+ fontSize: 6.75,
+ fontWeight: "700",
+ textAlign: "left",
+ textContentVerticalAlign: "middle",
+ },
+ },
+ {
+ tid: "providerModule1.date",
+ title: "业务日期",
+ data: "2020-01-01",
+ type: "text",
+ options: {
+ field: "date",
+ testData: "2020-01-01",
+ height: 16,
+ fontSize: 6.75,
+ fontWeight: "700",
+ textAlign: "left",
+ textContentVerticalAlign: "middle",
+ },
+ },
+ {
+ tid: "providerModule1.barcode",
+ title: "条形码",
+ data: "XS888888888",
+ type: "text",
+ options: {
+ field: "barcode",
+ testData: "XS888888888",
+ height: 32,
+ fontSize: 12,
+ lineHeight: 18,
+ textAlign: "left",
+ textType: "barcode",
+ },
+ },
+ {
+ tid: "providerModule1.qrcode",
+ title: "二维码",
+ data: "XS888888888",
+ type: "text",
+ options: {
+ field: "qrcode",
+ testData: "XS888888888",
+ height: 32,
+ fontSize: 12,
+ lineHeight: 18,
+ textType: "qrcode",
+ },
+ },
+ {
+ tid: "providerModule1.platform",
+ title: "平台名称",
+ data: "平台名称",
+ type: "text",
+ options: {
+ field: "platform",
+ testData: "平台名称",
+ height: 17,
+ fontSize: 16.5,
+ fontWeight: "700",
+ textAlign: "center",
+ hideTitle: true,
+ },
+ },
+ { tid: "providerModule1.image", title: "Logo", data: "", type: "image" },
+ ]),
+ new hiprint.PrintElementTypeGroup("客户", [
+ {
+ tid: "providerModule1.khname",
+ title: "客户名称",
+ data: "高级客户",
+ type: "text",
+ options: {
+ field: "name",
+ testData: "高级客户",
+ height: 16,
+ fontSize: 6.75,
+ fontWeight: "700",
+ textAlign: "left",
+ textContentVerticalAlign: "middle",
+ },
+ },
+ {
+ tid: "providerModule1.tel",
+ title: "客户电话",
+ data: "18888888888",
+ type: "text",
+ options: {
+ field: "tel",
+ testData: "18888888888",
+ height: 16,
+ fontSize: 6.75,
+ fontWeight: "700",
+ textAlign: "left",
+ textContentVerticalAlign: "middle",
+ },
+ },
+ ]),
+ ]);
+ };
+ return {
+ addElementTypes: addElementTypes,
+ };
+};
diff --git a/src/views/summary/print/provider2.js b/src/views/summary/print/provider2.js
new file mode 100644
index 0000000..fe3b4f9
--- /dev/null
+++ b/src/views/summary/print/provider2.js
@@ -0,0 +1,90 @@
+/*
+ * @Description:
+ * @Author: CcSimple
+ * @Github: https://github.com/CcSimple
+ * @Date: 2023-02-09 10:40:26
+ * @LastEditors: CcSimple
+ * @LastEditTime: 2023-02-09 10:50:02
+ */
+import { hiprint } from "vue-plugin-hiprint";
+export const provider2 = function (options) {
+ console.log(options);
+ var addElementTypes = function (context) {
+ context.removePrintElementTypes("providerModule2");
+ context.addPrintElementTypes("providerModule2", [
+ new hiprint.PrintElementTypeGroup("表格/其他", [
+ {
+ tid: "providerModule2.table",
+ title: "订单数据",
+ type: "table",
+ options: {
+ field: "table",
+ fields: [
+ { text: "名称", field: "NAME" },
+ { text: "数量", field: "SL" },
+ { text: "规格", field: "GG" },
+ { text: "条码", field: "TM" },
+ { text: "单价", field: "DJ" },
+ { text: "金额", field: "JE" },
+ { text: "备注", field: "DETAIL" },
+ ],
+ },
+ columns: [
+ [
+ { title: "名称", align: "center", field: "NAME", width: 100 },
+ { title: "数量", align: "center", field: "SL", width: 100 },
+ { title: "条码", align: "center", field: "TM", width: 100 },
+ { title: "规格", align: "center", field: "GG", width: 100 },
+ { title: "单价", align: "center", field: "DJ", width: 100 },
+ { title: "金额", align: "center", field: "JE", width: 100 },
+ { title: "备注", align: "center", field: "DETAIL", width: 100 },
+ ],
+ ],
+ footerFormatter: function (options, rows, data, currentPageGridRowsData) {
+ console.log(currentPageGridRowsData);
+ if (data && data["totalCap"]) {
+ return `
${"应收金额大写: " + data["totalCap"]} | `;
+ }
+ return '
应收金额大写: | ';
+ },
+ },
+ { tid: "providerModule2.customText", title: "文本", customText: "自定义文本", custom: true, type: "text" },
+ {
+ tid: "providerModule2.longText",
+ title: "长文本",
+ type: "longText",
+ options: {
+ field: "test.longText",
+ width: 200,
+ testData: "长文本分页/不分页测试",
+ },
+ },
+ ]),
+ new hiprint.PrintElementTypeGroup("辅助", [
+ {
+ tid: "providerModule2.hline",
+ title: "横线",
+ type: "hline",
+ },
+ {
+ tid: "providerModule2.vline",
+ title: "竖线",
+ type: "vline",
+ },
+ {
+ tid: "providerModule2.rect",
+ title: "矩形",
+ type: "rect",
+ },
+ {
+ tid: "providerModule2.oval",
+ title: "椭圆",
+ type: "oval",
+ },
+ ]),
+ ]);
+ };
+ return {
+ addElementTypes: addElementTypes,
+ };
+};
diff --git a/src/views/summary/print/template.js b/src/views/summary/print/template.js
new file mode 100644
index 0000000..d162efb
--- /dev/null
+++ b/src/views/summary/print/template.js
@@ -0,0 +1,1524 @@
+/*export default {
+ panels: [
+ {
+ index: 0,
+ height: 297,
+ width: 210,
+ paperHeader: 49.5,
+ paperFooter: 780,
+ printElements: [
+ {
+ options: {
+ left: 175.5,
+ top: 10.5,
+ height: 27,
+ width: 259,
+ title: "HiPrint自定义模块打印插件",
+ fontSize: 19,
+ fontWeight: "600",
+ textAlign: "center",
+ lineHeight: 26,
+ coordinateSync: true,
+ widthHeightSync: true,
+ draggable: false,
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: { left: 60, top: 27, height: 13, width: 52, title: "页眉线", textAlign: "center" },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: { left: 25.5, top: 57, height: 705, width: 9, fixed: true, borderStyle: "dotted" },
+ printElementType: { type: "vline" },
+ },
+ {
+ options: { left: 60, top: 61.5, height: 48, width: 87, src: "", fit: "contain" },
+ printElementType: { title: "图片", type: "image" },
+ },
+ {
+ options: {
+ left: 153,
+ top: 64.5,
+ height: 39,
+ width: 276,
+ title: "二维码以及条形码均采用svg格式打印。不同打印机打印不会造成失真。图片打印:不同DPI打印可能会导致失真,",
+ fontFamily: "微软雅黑",
+ textAlign: "center",
+ lineHeight: 18,
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: {
+ left: 457.5,
+ top: 79.5,
+ height: 13,
+ width: 120,
+ title: "姓名",
+ field: "name",
+ testData: "古力娜扎",
+ color: "#f00808",
+ textDecoration: "underline",
+ textAlign: "center",
+ fields: [
+ { text: "id", field: "id" },
+ { text: "姓名", field: "name" },
+ { text: "性别", field: "gender" },
+ { text: "数量", field: "count" },
+ ],
+ },
+ printElementType: { title: "文本", type: "text" },
+ },
+ {
+ options: {
+ left: 483,
+ top: 124.5,
+ height: 43,
+ width: 51,
+ title: "123456789",
+ textType: "qrcode",
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: {
+ left: 285,
+ top: 130.5,
+ height: 34,
+ width: 175,
+ title: "123456789",
+ fontFamily: "微软雅黑",
+ textAlign: "center",
+ textType: "barcode",
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: {
+ left: 60,
+ top: 132,
+ height: 19,
+ width: 213,
+ title: "所有打印元素都可已拖拽的方式来改变元素大小",
+ fontFamily: "微软雅黑",
+ textAlign: "center",
+ lineHeight: 18,
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: {
+ left: 153,
+ top: 189,
+ height: 13,
+ width: 238,
+ title: "单击元素,右侧可自定义元素属性",
+ textAlign: "center",
+ fontFamily: "微软雅黑",
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: { left: 60, top: 190.5, height: 13, width: 51, title: "横线", textAlign: "center" },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: {
+ left: 415.5,
+ top: 190.5,
+ height: 13,
+ width: 164,
+ title: "可以配置各属性的默认值",
+ textAlign: "center",
+ fontFamily: "微软雅黑",
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: { left: 60, top: 214.5, height: 10, width: 475.5 },
+ printElementType: { title: "横线", type: "hline" },
+ },
+ {
+ options: {
+ left: 235.5,
+ top: 220.5,
+ height: 32,
+ width: 342,
+ title: "自定义表格:用户可左键选中表头,右键查看可操作项,操作类似Excel,双击表头单元格可进行编辑。内容:title#field",
+ fontFamily: "微软雅黑",
+ textAlign: "center",
+ lineHeight: 15,
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: {
+ left: 156,
+ top: 265.5,
+ height: 13,
+ width: 94,
+ title: "表头列大小可拖动",
+ fontFamily: "微软雅黑",
+ textAlign: "center",
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: {
+ left: 60,
+ top: 265.5,
+ height: 13,
+ width: 90,
+ title: "红色区域可拖动",
+ fontFamily: "微软雅黑",
+ textAlign: "center",
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: {
+ left: 60,
+ top: 285,
+ height: 56,
+ width: 511.5,
+ field: "table",
+ tableFooterRepeat: "",
+ fields: [
+ { text: "id", field: "id" },
+ { text: "姓名", field: "name" },
+ { text: "性别", field: "gender" },
+ { text: "数量", field: "count" },
+ ],
+ columns: [
+ [
+ { width: 85.25, colspan: 1, rowspan: 1, checked: true },
+ {
+ title: "性别",
+ field: "gender",
+ width: 85.25,
+ colspan: 1,
+ rowspan: 1,
+ checked: false,
+ },
+ {
+ title: "姓名",
+ field: "name",
+ width: 85.25,
+ align: "center",
+ colspan: 1,
+ rowspan: 1,
+ checked: true,
+ tableSummary: "count",
+ },
+ {
+ title: "数量",
+ field: "count",
+ width: 85.25,
+ align: "center",
+ colspan: 1,
+ rowspan: 1,
+ checked: true,
+ tableSummary: "sum",
+ },
+ {
+ width: 85.25,
+ colspan: 1,
+ rowspan: 1,
+ checked: true,
+ },
+ { width: 85.25, colspan: 1, rowspan: 1, checked: true },
+ ],
+ ],
+ },
+ printElementType: {
+ title: "表格",
+ type: "table",
+ },
+ },
+ {
+ options: {
+ left: 21,
+ top: 346.5,
+ height: 61.5,
+ width: 15,
+ title: "装订线",
+ lineHeight: 18,
+ fixed: true,
+ contentPaddingTop: 3.75,
+ backgroundColor: "#ffffff",
+ },
+ printElementType: { type: "text" },
+ },
+ {
+ options: {
+ left: 225,
+ top: 355,
+ height: 13,
+ width: 346.5,
+ title: "自定义模块:主要为开发人员设计,能够快速,简单,实现自己功能",
+ textAlign: "center",
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: { left: 60, top: 370.5, height: 18, width: 79, title: "配置项表格", textAlign: "center" },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: {
+ left: 225,
+ top: 385.5,
+ height: 38,
+ width: 346.5,
+ title: "配置模块:主要为客户使用,开发人员可以配置属性,字段,标题等,客户直接使用,配置模块请参考实例2",
+ fontFamily: "微软雅黑",
+ lineHeight: 15,
+ textAlign: "center",
+ color: "#d93838",
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: {
+ left: 60,
+ top: 487.5,
+ height: 13,
+ width: 123,
+ title: "长文本会自动分页",
+ textAlign: "center",
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: { left: 60, top: 507, height: 40, width: 511.5, field: "longText" },
+ printElementType: { title: "长文", type: "longText" },
+ },
+ {
+ options: { left: 475.5, top: 565.5, height: 100, width: 100 },
+ printElementType: { title: "矩形", type: "rect" },
+ },
+ {
+ options: { left: 174, top: 568.5, height: 13, width: 90, title: "竖线", textAlign: "center" },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: { left: 60, top: 574.5, height: 100, width: 10 },
+ printElementType: { title: "竖线", type: "vline" },
+ },
+ {
+ options: { left: 210, top: 604.5, height: 13, width: 120, title: "横线", textAlign: "center" },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: { left: 130.5, top: 625.5, height: 10, width: 277 },
+ printElementType: { title: "横线", type: "hline" },
+ },
+ {
+ options: {
+ left: 364.5,
+ top: 649.5,
+ height: 13,
+ width: 101,
+ title: "矩形",
+ textAlign: "center",
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: { left: 525, top: 784.5, height: 13, width: 63, title: "页尾线", textAlign: "center" },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: { left: 12, top: 786, height: 49, width: 49 },
+ printElementType: { title: "html", type: "html" },
+ },
+ {
+ options: {
+ left: 75,
+ top: 790.5,
+ height: 13,
+ width: 137,
+ title: "红色原型是自动定义的Html",
+ textAlign: "center",
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ {
+ options: {
+ left: 334.5,
+ top: 810,
+ height: 13,
+ width: 205,
+ title: "页眉线已上。页尾下以下每页都会重复打印",
+ textAlign: "center",
+ },
+ printElementType: { title: "自定义文本", type: "text" },
+ },
+ ],
+ paperNumberLeft: 565.5,
+ paperNumberTop: 819,
+ },
+ ],
+};*/
+
+export default {
+ panels: [
+ {
+ "index": 0,
+ "paperType": "A4",
+ "height": 297,
+ "width": 210,
+ "paperHeader": 88.5,
+ "paperFooter": 780,
+ "printElements": [
+ {
+ "options": {
+ "left": 49.5,
+ "top": 6,
+ "height": 43,
+ "width": 51,
+ "title": "123456789",
+ "textType": "qrcode"
+ }, "printElementType": {"title": "自定义文本", "type": "text"}
+ }, {
+ "options": {"left": 99, "top": 7.5, "height": 40.5, "width": 16.5, "title": "扫码关注"},
+ "printElementType": {"type": "text"}
+ },/* {
+ "options": {
+ "left": 414,
+ "top": 7.5,
+ "height": 34,
+ "width": 175,
+ "testData": "123456789",
+ "field": "barcode",
+ "title": "123456789",
+ "fontFamily": "微软雅黑",
+ "textAlign": "center",
+ "textType": "barcode"
+ }, "printElementType": {"title": "自定义文本", "type": "text"}
+ },*/ {
+ "options": {
+ "left": 414,
+ "top": 7.5,
+ "height": 34,
+ "width": 175,
+ "title": "123",
+ "fontFamily": "微软雅黑",
+ "textAlign": "center",
+ "textType": "barcode"
+ },
+ "printElementType": {"title": "自定义文本", "type": "text"},
+ }, {
+ "options": {
+ "left": 174,
+ "top": 9,
+ "height": 27,
+ "width": 204,
+ "title": "体检中心 导检单",
+ "fontSize": 19,
+ "fontWeight": "600",
+ "textAlign": "center",
+ "lineHeight": 26
+ }, "printElementType": {"title": "自定义文本", "type": "text"}
+ }, {
+ "options": {
+ "left": 264,
+ "top": 63,
+ "height": 9.75,
+ "width": 70.5,
+ "title": "年龄",
+ "field": "age",
+ "testData": "20"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 159,
+ "top": 63,
+ "height": 9.75,
+ "width": 64.5,
+ "title": "性别",
+ "field": "gender",
+ "testData": "男"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 379.5,
+ "top": 63,
+ "height": 9.75,
+ "width": 120,
+ "title": "电话",
+ "field": "phone",
+ "testData": "15511063022"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 49.5,
+ "top": 63,
+ "height": 9.75,
+ "width": 73.5,
+ "title": "姓名",
+ "field": "pName",
+ "testData": "张三"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 265.5,
+ "top": 81,
+ "height": 9.75,
+ "width": 120,
+ "title": "通讯地址",
+ "field": "examine2"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 49.5,
+ "top": 81,
+ "height": 9.75,
+ "width": 120,
+ "title": "体检编号",
+ "field": "medicalSn"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 45, "top": 97.5, "height": 9, "width": 528},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {
+ "left": 36,
+ "top": 106.5,
+ "height": 36,
+ "width": 550,
+ "columns": [[{
+ "title": "医生签名",
+ "width": 100,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "餐前检查项日",
+ "field": "",
+ "width": 275,
+ "colspan": 2,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "放弃签名",
+ "width": 100,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }], [{
+ "width": 71.59763313609467,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "检查",
+ "width": 89.53474112426034,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "",
+ "field": "examine2",
+ "width": 304.25224112426037,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 84.61538461538461,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }], [{
+ "title": "医生签名",
+ "width": 160.24031472353565,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "营养早餐",
+ "width": 200.38476787592222,
+ "colspan": 2,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "放弃签名",
+ "width": 189.37491740054216,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }], [{
+ "width": 75.11531472353565,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "餐厅",
+ "width": 82.68063393796109,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "【免费早餐】",
+ "width": 202.8291339379611,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 189.37491740054216,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }], [{
+ "title": "医生签名",
+ "width": 75.11531472353565,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "餐后检查项目",
+ "width": 82.68063393796108,
+ "colspan": 2,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "放弃签名",
+ "width": 189.37491740054216,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }], [{
+ "width": 75.11531472353565,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "基础检查",
+ "width": 82.68063393796108,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "",
+ "field": "examine1",
+ "width": 202.8291339379611,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 189.37491740054216,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }], [{
+ "title": "医生签名",
+ "width": 75.11531472353565,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "其他检查",
+ "width": 82.68063393796108,
+ "colspan": 2,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "放弃签名",
+ "width": 189.37491740054216,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }], [{
+ "width": 75.11531472353565,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "其他科室",
+ "width": 82.68063393796108,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "",
+ "field": "examine3",
+ "width": 202.8291339379611,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {"width": 189.37491740054216, "colspan": 1, "rowspan": 1, "checked": true}]]
+ }, "printElementType": {"title": "表格", "type": "table"}
+ }, {
+ "options": {
+ "left": 36,
+ "top": 155,
+ "height": 15,
+ "width": 120,
+ "title": "以下内容由体检护士填写",
+ "fontSize": 10.5,
+ "lineHeight": 12
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 36,
+ "top": 178,
+ "height": 36,
+ "width": 550,
+ "columns": [[{
+ "title": "身高(cm)/体重(kg)",
+ "width": 79.97132944399706,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": " / ",
+ "width": 82.66907944399708,
+ "colspan": 1,
+ "rowspan": 1,
+ "align": "center",
+ "checked": true
+ }, {
+ "title": "腰围(cm)臀围(cm)",
+ "field": "",
+ "width": 83.25571070690796,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "/",
+ "width": 118.22236265361866,
+ "colspan": 1,
+ "rowspan": 1,
+ "align": "center",
+ "checked": true
+ }, {
+ "title": "护士签字",
+ "width": 101.26613313609462,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 84.61538461538461,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }], [{
+ "title": "血压(mmHg)",
+ "width": 79.97132944399706,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "",
+ "field": "",
+ "width": 82.66907944399708,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "复测血压(mmHtg)",
+ "width": 83.25571070690796,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 118.22236265361866,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "心率",
+ "width": 101.26613313609462,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 84.61538461538461,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }], [{
+ "title": "裸视力",
+ "width": 84.09557944399708,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "",
+ "field": "",
+ "width": 86.43182944399706,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "矫正视力",
+ "width": 74.70871070690794,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 118.8823626536187,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "辨色力",
+ "width": 101.26613313609462,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {"width": 84.61538461538461, "colspan": 1, "rowspan": 1, "checked": true}]]
+ }, "printElementType": {"title": "表格", "type": "table"}
+ }, {
+ "options": {"left": 334.5, "top": 417, "height": 9.75, "width": 16.5, "title": "左"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 286.5, "top": 418.5, "height": 9.75, "width": 16.5, "title": "右"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 118.5, "top": 420, "height": 9.75, "width": 13.5, "title": "左"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 171, "top": 420, "height": 9.75, "width": 13.5, "title": "右"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 225,
+ "top": 251,
+ "height": 15,
+ "width": 120,
+ "title": "加项信息",
+ "fontSize": 12,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "lineHeight": 12
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 36,
+ "top": 275,
+ "height": 36,
+ "width": 550,
+ "textAlign": "center",
+ "columns": [[{
+ "title": "加项项目",
+ "width": 140.97107944399707,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "检查结果",
+ "width": 140.97107944399707,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "客人签字",
+ "width": 51.26221070690802,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "加项项目",
+ "width": 60.58261265361857,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "检查结果",
+ "width": 71.59763313609467,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "窖人签字",
+ "width": 84.61538461538461,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }], [{
+ "width": 140.97107944399707,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 140.97107944399707,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 51.26221070690802,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 60.58261265361857,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 71.59763313609467,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 84.61538461538461,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }], [{
+ "width": 101.97182944399705,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 105.02057944399706,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 47.942710706908,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 117.95611265361862,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 127.75088313609466,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {"width": 49.35788461538462, "colspan": 1, "rowspan": 1, "checked": true}]]
+ }, "printElementType": {"title": "表格", "type": "table"}
+ }, {
+ "options": {
+ "left": 252,
+ "top": 522.5,
+ "height": 16.5,
+ "width": 315,
+ "title": "体检结束后,请您将此单交于前台,否则影响健检报告。",
+ "fontSize": 12,
+ "fontWeight": "bold",
+ "lineHeight": 12.75
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 12, "top": 786, "height": 49, "width": 49},
+ "printElementType": {"title": "html", "type": "html"}
+ }],
+ "paperNumberLeft": 565.5,
+ "paperNumberTop": 819
+ },
+ {
+ "index": 1,
+ "height": 297,
+ "width": 210,
+ "paperHeader": 105,
+ "paperFooter": 780,
+ "printElements": [{
+ "options": {
+ "left": 49.5,
+ "top": 6,
+ "height": 43,
+ "width": 51,
+ "title": "123456789",
+ "textType": "qrcode"
+ }, "printElementType": {"title": "自定义文本", "type": "text"}
+ }, {
+ "options": {"left": 99, "top": 7.5, "height": 40.5, "width": 16.5, "title": "扫码关注"},
+ "printElementType": {"type": "text"}
+ },/* {
+ "options": {
+ "left": 414,
+ "top": 7.5,
+ "height": 34,
+ "width": 175,
+ "testData": "123456789",
+ "field": "barcode",
+ "title": "123456789",
+ "fontFamily": "微软雅黑",
+ "textAlign": "center",
+ "textType": "barcode"
+ }, "printElementType": {"title": "自定义文本", "type": "text"}
+ },*/ {
+ "options": {
+ "left": 414,
+ "top": 7.5,
+ "height": 34,
+ "width": 175,
+ "title": "123",
+ "fontFamily": "微软雅黑",
+ "textAlign": "center",
+ "textType": "barcode",
+ },
+ "printElementType": {"title": "自定义文本", "type": "text"}
+ }, {
+ "options": {
+ "left": 174,
+ "top": 9,
+ "height": 27,
+ "width": 204,
+ "title": "体检中心 导检单",
+ "fontSize": 19,
+ "fontWeight": "600",
+ "textAlign": "center",
+ "lineHeight": 26
+ }, "printElementType": {"title": "自定义文本", "type": "text"}
+ }, {
+ "options": {
+ "left": 264,
+ "top": 63,
+ "height": 9.75,
+ "width": 70.5,
+ "title": "年龄",
+ "field": "age",
+ "testData": "20"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 159,
+ "top": 63,
+ "height": 9.75,
+ "width": 64.5,
+ "title": "性别",
+ "field": "gender",
+ "testData": "男"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 379.5,
+ "top": 63,
+ "height": 9.75,
+ "width": 120,
+ "title": "电话",
+ "field": "phone",
+ "testData": "15511063022"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 49.5,
+ "top": 63,
+ "height": 9.75,
+ "width": 73.5,
+ "title": "姓名",
+ "field": "pName",
+ "testData": "张三"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 265.5,
+ "top": 81,
+ "height": 9.75,
+ "width": 120,
+ "title": "通讯地址",
+ "field": "examine2"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 49.5,
+ "top": 81,
+ "height": 9.75,
+ "width": 120,
+ "title": "体检编号",
+ "field": "medicalSn"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 45, "top": 97.5, "height": 9, "width": 528},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {
+ "left": 331.5,
+ "top": 114,
+ "height": 9.75,
+ "width": 60,
+ "title": "腰围",
+ "field": "waistline"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 454.5,
+ "top": 114,
+ "height": 9.75,
+ "width": 67.5,
+ "title": "臀围",
+ "field": "Hips"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 531, "top": 114, "height": 9.75, "width": 16.5, "title": "CM"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 400.5, "top": 114, "height": 9.75, "width": 16.5, "title": "CM"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 264, "top": 115.5, "height": 9.75, "width": 27, "title": "KG"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 127.5, "top": 115.5, "height": 9.75, "width": 16.5, "title": "CM"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 193.5,
+ "top": 115.5,
+ "height": 9.75,
+ "width": 64.5,
+ "title": "体重",
+ "field": "weight"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 51,
+ "top": 115.5,
+ "height": 9.75,
+ "width": 75,
+ "title": "身高",
+ "field": "height"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 351, "top": 123, "height": 9, "width": 49.5},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {"left": 478.5, "top": 123, "height": 9, "width": 52.5},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {"left": 216, "top": 124.5, "height": 9, "width": 46.5},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {"left": 73.5, "top": 124.5, "height": 9, "width": 51},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {
+ "left": 193.5,
+ "top": 138,
+ "height": 9.75,
+ "width": 69,
+ "title": "心率",
+ "field": "heartRate"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 265.5, "top": 138, "height": 9.75, "width": 25.5, "title": "次/分"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 129, "top": 139.5, "height": 9.75, "width": 30, "title": "mmHg"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 51,
+ "top": 139.5,
+ "height": 9.75,
+ "width": 75,
+ "title": "血压",
+ "field": "bloodPressure"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 216, "top": 147, "height": 9, "width": 48},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {"left": 75, "top": 148.5, "height": 9, "width": 51},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {"left": 90, "top": 159, "height": 42, "width": 9},
+ "printElementType": {"type": "vline"}
+ }, {
+ "options": {"left": 451.5, "top": 159, "height": 45, "width": 9},
+ "printElementType": {"type": "vline"}
+ }, {
+ "options": {"left": 523.5, "top": 159, "height": 43.5, "width": 9},
+ "printElementType": {"type": "vline"}
+ }, {
+ "options": {"left": 37.5, "top": 159, "height": 43.5, "width": 9},
+ "printElementType": {"type": "vline"}
+ }, {
+ "options": {"left": 579, "top": 159, "height": 43.5, "width": 9},
+ "printElementType": {"type": "vline"}
+ }, {
+ "options": {"left": 37.5, "top": 159, "height": 9, "width": 541.5},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {"left": 103.5, "top": 166.5, "height": 9.75, "width": 42, "title": "裸视"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 160.5, "top": 166.5, "height": 9.75, "width": 19.5, "title": "左:"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 288, "top": 166.5, "height": 9.75, "width": 22.5, "title": "右:"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 43.5,
+ "top": 172.5,
+ "height": 9.75,
+ "width": 34.5,
+ "title": "视力",
+ "textAlign": "center"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 174, "top": 175.5, "height": 9, "width": 90},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {"left": 543, "top": 175.5, "height": 9.75, "width": 24, "title": "正常色弱"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 307.5, "top": 175.5, "height": 9, "width": 90},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {"left": 462, "top": 177, "height": 9.75, "width": 33, "title": "辩色"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 90, "top": 180, "height": 9, "width": 363},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {"left": 160.5, "top": 186, "height": 9.75, "width": 19.5, "title": "左:"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 288, "top": 186, "height": 9.75, "width": 22.5, "title": "右:"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 103.5, "top": 186, "height": 9.75, "width": 43.5, "title": "纠正视力"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 177, "top": 195, "height": 9, "width": 90},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {"left": 309, "top": 196.5, "height": 9, "width": 90},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {"left": 37.5, "top": 202.5, "height": 9, "width": 543},
+ "printElementType": {"type": "hline"}
+ },
+ {
+ "options": {
+ "left": 39,
+ "top": 222,
+ "height": 36,
+ "width": 550,
+ "field": "table",
+ "textAlign": "center",
+ "columns": [[{
+ "title": "检查项目",
+ "field": "name",
+ "width": 119.7585597256597,
+ "colspan": 1,
+ "rowspan": 2,
+ "checked": true
+ }, {
+ "title": "医生签名/放弃签名",
+ "width": 78.26174287970275,
+ "colspan": 1,
+ "rowspan": 2,
+ "checked": true
+ }, {
+ "title": "温馨提示及结果",
+ "width": 220.2663169895397,
+ "colspan": 1,
+ "rowspan": 2,
+ "checked": true
+ }, {
+ "title": "满意度调查",
+ "width": 100,
+ "colspan": 3,
+ "rowspan": 1,
+ "checked": true
+ }], [{
+ "title": "满意",
+ "width": 45.737862653618734,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "一般",
+ "width": 46.149383136094556,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "title": "不满意",
+ "width": 39.826134615384575,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }]]
+ }, "printElementType": {"title": "表格", "type": "table"}
+ }, {
+ "options": {"left": 39, "top": 283.5, "height": 9.75, "width": 120, "title": "加项检查:"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 39,
+ "top": 295.5,
+ "height": 36,
+ "width": 550,
+ "columns": [[{
+ "width": 166.6021847974511,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 166.6021847974511,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 60.58261265361857,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 71.59763313609467,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 84.61538461538461,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }], [{
+ "width": 166.6021847974511,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 166.6021847974511,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 60.58261265361857,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 71.59763313609467,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 84.61538461538461,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }], [{
+ "width": 116.85243479745108,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 121.87218479745108,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 106.49161265361859,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {
+ "width": 103.23488313609465,
+ "colspan": 1,
+ "rowspan": 1,
+ "checked": true
+ }, {"width": 101.5488846153846, "colspan": 1, "rowspan": 1, "checked": true}]]
+ }, "printElementType": {"title": "表格", "type": "table"}
+ }, {
+ "options": {
+ "left": 228,
+ "top": 376.5,
+ "height": 19.5,
+ "width": 120,
+ "title": "体检知情通知书",
+ "fontSize": 12,
+ "textAlign": "center",
+ "lineHeight": 18
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 37.5,
+ "top": 405,
+ "height": 12,
+ "width": 550,
+ "title": "(1)孕期、哺乳期女士或准备生育的男士、女士请不要做X光检查。"
+ }, "printElementType": {"type": "longText"}
+ }, {
+ "options": {
+ "left": 37.5,
+ "top": 423,
+ "height": 10.5,
+ "width": 550,
+ "title": "(2)无性行为、孕期、经期的女性请不要做妇科检查及阴式超声。"
+ }, "printElementType": {"type": "longText"}
+ }, {
+ "options": {
+ "left": 37.5,
+ "top": 438,
+ "height": 22.5,
+ "width": 550,
+ "title": "(3)根据卫生部通知要求,已取消健康体检套餐中乙肝检测项目,如果需要可由本人自选为加项,如单位统一选择该项检测,体检者个人可选择放弃。"
+ }, "printElementType": {"type": "longText"}
+ }, {
+ "options": {
+ "left": 37.5,
+ "top": 463.5,
+ "height": 24,
+ "width": 550,
+ "title": "(4)仔细阅读以下报告获取方式,建议您选择亲自到体检中心领取,如选择单位代领、委托别人代领、快递、电子邮件等其他方式,将有可能造成您个人体检信息泄露,我中心不承担因此造成的一切损失。"
+ }, "printElementType": {"type": "longText"}
+ }, {
+ "options": {
+ "left": 37.5,
+ "top": 490.5,
+ "height": 12,
+ "width": 550,
+ "title": "(5)出具体检报告日期:普通体检7个工作日内;贵宾体检10个工作日内,敬请留意短信提示"
+ }, "printElementType": {"type": "longText"}
+ }, {
+ "options": {
+ "left": 37.5,
+ "top": 508.5,
+ "height": 21,
+ "width": 550,
+ "title": "(6)身份证号码是体检检查在本机构唯一识别码,可依据此作为体检资料保存、查询及历年体检数据对比的可靠代码。本人在了解此告知后,未提供身份证号码,为放弃上述服务的表示。"
+ }, "printElementType": {"type": "longText"}
+ }, {
+ "options": {
+ "left": 138,
+ "top": 537,
+ "height": 15,
+ "width": 342,
+ "title": "以上告知内容本人已充分了解,所选体检项目本人均同意。",
+ "fontSize": 12,
+ "fontWeight": "bold",
+ "lineHeight": 15
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 385.5,
+ "top": 564,
+ "height": 15,
+ "width": 58.5,
+ "title": "确定签名:",
+ "fontSize": 10.5,
+ "lineHeight": 10.5
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 435, "top": 576, "height": 9, "width": 90},
+ "printElementType": {"type": "hline"}
+ }, {
+ "options": {
+ "left": 168,
+ "top": 583.5,
+ "height": 15,
+ "width": 226.5,
+ "title": "体检报告获取方式(仅限于个检)",
+ "fontSize": 15,
+ "fontWeight": "bold",
+ "lineHeight": 15
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 37.5,
+ "top": 613.5,
+ "height": 9.75,
+ "width": 69,
+ "title": "尊敬的客人:"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 58.5,
+ "top": 627,
+ "height": 13.5,
+ "width": 424.5,
+ "title": "感谢您惠顾健康体检中心。对于您体检报告的获取,我们有以下方式供您选择:"
+ }, "printElementType": {"type": "longText"}
+ }, {
+ "options": {"left": 234, "top": 646.5, "height": 12, "width": 12},
+ "printElementType": {"type": "rect"}
+ }, {
+ "options": {"left": 402, "top": 646.5, "height": 12, "width": 12},
+ "printElementType": {"type": "rect"}
+ }, {
+ "options": {
+ "left": 426,
+ "top": 646.5,
+ "height": 9.75,
+ "width": 120,
+ "title": "特快专递送达"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 58.5, "top": 646.5, "height": 12, "width": 12},
+ "printElementType": {"title": "矩形", "type": "rect"}
+ }, {
+ "options": {
+ "left": 78,
+ "top": 648,
+ "height": 9.75,
+ "width": 120,
+ "title": "E-mail邮件发送"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 250.5,
+ "top": 648,
+ "height": 9.75,
+ "width": 120,
+ "title": "销售经理转送"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 58.5, "top": 663, "height": 12, "width": 12},
+ "printElementType": {"type": "rect"}
+ }, {
+ "options": {
+ "left": 78,
+ "top": 664.5,
+ "height": 9.75,
+ "width": 120,
+ "title": "到体检中心自取"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 58.5,
+ "top": 685.5,
+ "height": 9.75,
+ "width": 120,
+ "title": "以上方式只可选择一种。"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {
+ "left": 78,
+ "top": 702,
+ "height": 9.75,
+ "width": 159,
+ "title": "请您在选择获取方式左侧的中划”√”"
+ }, "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 492, "top": 720, "height": 9.75, "width": 40.5, "title": "健康体检"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 513, "top": 747, "height": 9.75, "width": 13.5, "title": "月"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 483, "top": 747, "height": 9.75, "width": 13.5, "title": "年"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 541.5, "top": 747, "height": 9.75, "width": 12, "title": "日"},
+ "printElementType": {"type": "text"}
+ }, {
+ "options": {"left": 12, "top": 786, "height": 49, "width": 49},
+ "printElementType": {"title": "html", "type": "html"}
+ }],
+ "paperNumberLeft": 565.5,
+ "paperNumberTop": 819
+ }
+ ]
+}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/summary/utils/modal.js b/src/views/summary/utils/modal.js
new file mode 100644
index 0000000..7c77b9f
--- /dev/null
+++ b/src/views/summary/utils/modal.js
@@ -0,0 +1,89 @@
+import { createApp } from "vue";
+
+/*
+ * @Description: 封装的一个 Modal, 使用 Api 形式调用
+ * @Author: CcSimple
+ * @Github: https://github.com/CcSimple
+ * @Date: 2023-02-09 16:12:54
+ * @LastEditors: CcSimple
+ * @LastEditTime: 2023-02-09 23:25:36
+ */
+const Modal = {
+ props: {
+ title: {
+ type: String,
+ required: true,
+ },
+ bodyStyle: {
+ type: String,
+ default: "",
+ },
+ headerStyle: {
+ type: String,
+ default: "",
+ },
+ footerStyle: {
+ type: String,
+ default: "padding:10px",
+ },
+ },
+ render(ctx) {
+ const { $props, $emit } = ctx;
+ const cancel = (e) => {
+ e.stopPropagation();
+ $emit("cancel");
+ };
+ const confirm = (e) => {
+ e.stopPropagation();
+ $emit("confirm");
+ };
+ const stopPropagation = (e) => {
+ e.stopPropagation();
+ };
+ return (
+
+ );
+ },
+};
+
+export function showModal(options) {
+ const div = document.createElement("div");
+ document.body.appendChild(div);
+ const { title, bodyStyle, headerStyle, footerStyle } = options;
+ const { onCancel, onConfirm } = options;
+ const hide = (modal) => {
+ modal.unmount();
+ div.remove();
+ };
+ const modal = createApp(Modal, {
+ title: title,
+ bodyStyle: bodyStyle,
+ headerStyle: headerStyle,
+ footerStyle: footerStyle,
+ onCancel() {
+ hide(modal);
+ onCancel && onCancel();
+ },
+ onConfirm() {
+ onConfirm && onConfirm(() => hide(modal));
+ },
+ });
+ modal.mount(div);
+}
diff --git a/src/views/summary/utils/template-helper.js b/src/views/summary/utils/template-helper.js
new file mode 100644
index 0000000..6a8291a
--- /dev/null
+++ b/src/views/summary/utils/template-helper.js
@@ -0,0 +1,21 @@
+/*
+ * @Description:
+ * @Author: CcSimple
+ * @Github: https://github.com/CcSimple
+ * @Date: 2023-02-09 23:26:18
+ * @LastEditors: CcSimple
+ * @LastEditTime: 2023-02-09 23:35:20
+ */
+import { hiprint } from "vue-plugin-hiprint";
+
+const templateMap = {};
+
+export function newHiprintPrintTemplate(key, options) {
+ let template = new hiprint.PrintTemplate(options);
+ templateMap[key] = template;
+ return template;
+}
+
+export function getHiprintPrintTemplate(key) {
+ return templateMap[key];
+}