|
|
@@ -57,13 +57,7 @@
|
|
|
<el-table v-loading="loading" :data="pagedList" border stripe>
|
|
|
<el-table-column label="长者" prop="elderName" width="110" fixed />
|
|
|
<el-table-column label="床位" prop="bedName" width="180" />
|
|
|
- <el-table-column label="类型" width="90" align="center">
|
|
|
- <template #default="{ row }">
|
|
|
- <el-tag :type="row.orderType === 1 ? 'primary' : 'warning'" size="small" effect="plain">
|
|
|
- {{ row.orderType === 1 ? '长期' : '临时' }}
|
|
|
- </el-tag>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ <el-table-column label="年龄" prop="elderAge" width="80" align="center" />
|
|
|
<el-table-column label="医嘱内容" prop="orderContent" min-width="220" show-overflow-tooltip />
|
|
|
<el-table-column label="频次" width="90" align="center">
|
|
|
<template #default="{ row }">{{ freqCn(row.frequency) }}</template>
|
|
|
@@ -167,11 +161,11 @@
|
|
|
<el-dialog
|
|
|
v-model="printDialogVisible"
|
|
|
:title="printMode === 'all' ? '医嘱执行单' : '医嘱执行单(单条)'"
|
|
|
- width="1080px"
|
|
|
+ width="95%"
|
|
|
append-to-body
|
|
|
:close-on-click-modal="false"
|
|
|
>
|
|
|
- <!-- 汇总(当日全量):A4 横版 270mm,列宽按 mm,日期时间上下两行,去缩写 -->
|
|
|
+ <!-- 汇总(当日全量):A4 竖版,弹填 95% dialog,列宽按 %,日期时间上下两行,去缩写 -->
|
|
|
<div v-if="printMode === 'all'" id="execPrintArea" class="exec-print" v-loading="loading">
|
|
|
<h2 class="doc-title">医嘱执行单</h2>
|
|
|
<div class="info-row">
|
|
|
@@ -184,26 +178,26 @@
|
|
|
</div>
|
|
|
<table class="order-table">
|
|
|
<colgroup>
|
|
|
- <col style="width: 6mm" />
|
|
|
- <col style="width: 22mm" />
|
|
|
- <col style="width: 22mm" />
|
|
|
- <col style="width: 14mm" />
|
|
|
- <col style="width: 75mm" />
|
|
|
- <col style="width: 14mm" />
|
|
|
- <col style="width: 14mm" />
|
|
|
- <col style="width: 12mm" />
|
|
|
- <col style="width: 22mm" />
|
|
|
- <col style="width: 16mm" />
|
|
|
- <col style="width: 22mm" />
|
|
|
- <col style="width: 13mm" />
|
|
|
- <col style="width: 18mm" />
|
|
|
+ <col style="width: 3.09%" />
|
|
|
+ <col style="width: 8.25%" />
|
|
|
+ <col style="width: 8.25%" />
|
|
|
+ <col style="width: 5.67%" />
|
|
|
+ <col style="width: 18.04%" />
|
|
|
+ <col style="width: 5.67%" />
|
|
|
+ <col style="width: 5.67%" />
|
|
|
+ <col style="width: 5.67%" />
|
|
|
+ <col style="width: 8.25%" />
|
|
|
+ <col style="width: 7.22%" />
|
|
|
+ <col style="width: 8.25%" />
|
|
|
+ <col style="width: 5.67%" />
|
|
|
+ <col style="width: 10.31%" />
|
|
|
</colgroup>
|
|
|
<thead>
|
|
|
<tr>
|
|
|
<th>序号</th>
|
|
|
<th>长者</th>
|
|
|
<th>床位</th>
|
|
|
- <th>类型</th>
|
|
|
+ <th>年龄</th>
|
|
|
<th>医嘱内容</th>
|
|
|
<th>频次</th>
|
|
|
<th>给药时间</th>
|
|
|
@@ -220,7 +214,7 @@
|
|
|
<td>{{ idx + 1 }}</td>
|
|
|
<td>{{ item.elderName }}</td>
|
|
|
<td>{{ item.bedName }}</td>
|
|
|
- <td>{{ item.orderType === 1 ? '长期' : '临时' }}</td>
|
|
|
+ <td>{{ item.elderAge || '' }}</td>
|
|
|
<td
|
|
|
><span class="cell-value pre">{{ item.orderContent }}</span></td
|
|
|
>
|
|
|
@@ -249,7 +243,7 @@
|
|
|
</table>
|
|
|
</div>
|
|
|
|
|
|
- <!-- 单条(A4 横版 270mm,左字段 / 右字段 两列网格,更宽更舒展) -->
|
|
|
+ <!-- 单条(A4 竖版,左字段 / 右字段 两列网格,弹填 95% dialog) -->
|
|
|
<div v-else id="singlePrintArea" class="exec-print" v-loading="loading">
|
|
|
<div v-if="singlePrintRow">
|
|
|
<h2 class="doc-title">医嘱执行单(单条)</h2>
|
|
|
@@ -263,10 +257,10 @@
|
|
|
</div>
|
|
|
<table class="order-table single-info">
|
|
|
<colgroup>
|
|
|
- <col style="width: 24mm" />
|
|
|
- <col style="width: 96mm" />
|
|
|
- <col style="width: 24mm" />
|
|
|
- <col style="width: 96mm" />
|
|
|
+ <col style="width: 10%" />
|
|
|
+ <col style="width: 40%" />
|
|
|
+ <col style="width: 10%" />
|
|
|
+ <col style="width: 40%" />
|
|
|
</colgroup>
|
|
|
<tbody>
|
|
|
<tr>
|
|
|
@@ -276,8 +270,8 @@
|
|
|
<td>{{ singlePrintRow.bedName }}</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
- <th>类型</th>
|
|
|
- <td>{{ singlePrintRow.orderType === 1 ? '长期医嘱' : '临时医嘱' }}</td>
|
|
|
+ <th>年龄</th>
|
|
|
+ <td>{{ singlePrintRow.elderAge || '' }}</td>
|
|
|
<th>状态</th>
|
|
|
<td>{{ statusText(singlePrintRow.status) }}</td>
|
|
|
</tr>
|
|
|
@@ -472,6 +466,7 @@ const makeRow = (orderType: number, e: any, planTime: string, vo: any) => ({
|
|
|
orderEntryId: e.id,
|
|
|
elderId: vo.elderId,
|
|
|
elderName: vo.elderName,
|
|
|
+ elderAge: vo.elderAge ?? '',
|
|
|
bedName: vo.bedName,
|
|
|
orderContent: e.orderContent,
|
|
|
frequency: e.frequency,
|
|
|
@@ -675,6 +670,7 @@ const buildMockLong = (execDate: string): any[] => [
|
|
|
id: 1001,
|
|
|
elderId: 801,
|
|
|
elderName: '张建国',
|
|
|
+ elderAge: 78,
|
|
|
bedName: '1号楼-301-01',
|
|
|
tenantId: queryParams.tenantIds,
|
|
|
entries: [
|
|
|
@@ -704,6 +700,7 @@ const buildMockLong = (execDate: string): any[] => [
|
|
|
id: 1002,
|
|
|
elderId: 802,
|
|
|
elderName: '刘秀英',
|
|
|
+ elderAge: 72,
|
|
|
bedName: '2号楼-205-03',
|
|
|
tenantId: queryParams.tenantIds,
|
|
|
entries: [
|
|
|
@@ -727,6 +724,7 @@ const buildMockShort = (execDate: string): any[] => [
|
|
|
id: 2001,
|
|
|
elderId: 803,
|
|
|
elderName: '王德海',
|
|
|
+ elderAge: 65,
|
|
|
bedName: '1号楼-402-02',
|
|
|
tenantId: queryParams.tenantIds,
|
|
|
entries: [
|
|
|
@@ -860,19 +858,22 @@ onMounted(() => {
|
|
|
</script>
|
|
|
|
|
|
<!--
|
|
|
- 打印样式参照 long-doctor-order/Print.vue 的 A4 横版范式:
|
|
|
- - 容器宽度 270mm(A4 横版可用区 281mm - 11mm 物理边距余量)
|
|
|
- - 表格列宽按 mm 设计,医嘱内容拉宽 75mm 避免折行竖排
|
|
|
+ 打印样式参照 long-doctor-order/Print.vue 的 A4 竖版范式:
|
|
|
+ - 容器宽度 100%(弹填 dialog),colgroup 按 % 切分,比例与原 194mm 设计一致
|
|
|
+ - 表格列宽用 %(避免窄视口 + Windows 缩放下 mm 物理宽度溢出 dialog)
|
|
|
- 日期/时间上下两行展示,节省横向空间
|
|
|
- 频次/给药时间/途径去缩写只显中文
|
|
|
+ - 边框 1px solid #999(淡灰,与长期医嘱单一致)
|
|
|
-->
|
|
|
<style lang="scss" scoped>
|
|
|
.exec-print {
|
|
|
- padding: 4px 6px;
|
|
|
+ padding: 4px 0;
|
|
|
color: #000;
|
|
|
background: #fff;
|
|
|
- width: 270mm;
|
|
|
- margin: 0 auto;
|
|
|
+ /* 屏幕预览弹填 dialog(width:100%),左侧距 dialog 内壁 4px,右贴边。
|
|
|
+ 打印时 @page A4 portrait 纸张可用 ~194mm,容器按其自动调整。 */
|
|
|
+ width: 100%;
|
|
|
+ margin: 0;
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
.doc-title {
|
|
|
@@ -906,7 +907,7 @@ onMounted(() => {
|
|
|
|
|
|
th,
|
|
|
td {
|
|
|
- border: 1px solid #333;
|
|
|
+ border: 1px solid #555;
|
|
|
padding: 4px 4px;
|
|
|
text-align: center;
|
|
|
vertical-align: middle;
|
|
|
@@ -960,7 +961,7 @@ onMounted(() => {
|
|
|
background: #f6f6f6;
|
|
|
font-weight: bold;
|
|
|
text-align: center;
|
|
|
- width: 24mm;
|
|
|
+ width: 10%;
|
|
|
}
|
|
|
tbody td {
|
|
|
text-align: left;
|
|
|
@@ -979,14 +980,14 @@ onMounted(() => {
|
|
|
|
|
|
<!--
|
|
|
@page 必须 un-scoped(CSS 规范限制),单独放一个 style 块。
|
|
|
- A4 横版 297×210mm,纸张方向 + 边距由浏览器根据此规则应用到打印渲染。
|
|
|
+ A4 竖版 210×297mm,纸张方向 + 边距由浏览器根据此规则应用到打印渲染。
|
|
|
- thead { display: table-header-group }:浏览器自动在每页重复表头
|
|
|
- tr { page-break-inside: avoid }:单条医嘱行不被切断
|
|
|
-->
|
|
|
<style lang="scss">
|
|
|
@media print {
|
|
|
@page {
|
|
|
- size: A4 landscape;
|
|
|
+ size: A4 portrait;
|
|
|
margin: 8mm;
|
|
|
}
|
|
|
.exec-print .order-table thead {
|