打印调整
This commit is contained in:
		
							parent
							
								
									e548ac1986
								
							
						
					
					
						commit
						a2af653e46
					
				@ -44,7 +44,7 @@
 | 
			
		||||
      <!--  采购单信息   -->
 | 
			
		||||
      <el-card class="hl-card-info">
 | 
			
		||||
        <template #header>
 | 
			
		||||
          <div class="hl-card-info-icona"></div><span class="hl-card-info-text">入库单信息</span>
 | 
			
		||||
          <div class="hl-card-info-icona"></div><span class="hl-card-info-text">采购单信息</span>
 | 
			
		||||
        </template>
 | 
			
		||||
        <el-row>
 | 
			
		||||
          <el-col>
 | 
			
		||||
@ -87,61 +87,52 @@
 | 
			
		||||
          <span style="margin-left:20px; width: 170px;">入库日期:{{ formatDate(printData.ordDate) }}</span>
 | 
			
		||||
          <span style="margin-left:20px;width: 250px">供应商:{{ printData.supplierName }}</span>
 | 
			
		||||
         </div>
 | 
			
		||||
         <!-- <div style="display: flex;">
 | 
			
		||||
          <span style="margin-left:20px;width: 110px">联系人:{{ printData.contactName }}</span>
 | 
			
		||||
          <span style="margin-left:20px;width: 150px">电话:{{ printData.contactMobile }}</span>
 | 
			
		||||
          </div> -->
 | 
			
		||||
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <table class="print-table">
 | 
			
		||||
        <colgroup>
 | 
			
		||||
<col style="width: 10%;" />
 | 
			
		||||
<col style="width: 10%;" />
 | 
			
		||||
<col style="width: 10%;" />
 | 
			
		||||
<col style="width: 10%;" />
 | 
			
		||||
<col style="width: 10%;" />
 | 
			
		||||
<col style="width: 10%;" />
 | 
			
		||||
<col style="width: 10%;" />
 | 
			
		||||
<col style="width: 10%;" />
 | 
			
		||||
<col style="width: 10%;" />
 | 
			
		||||
<col style="width: 10%;" />
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  </colgroup>
 | 
			
		||||
  <thead>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th>序号</th>
 | 
			
		||||
      <th>物料号</th>
 | 
			
		||||
      <th>零件名称</th>
 | 
			
		||||
      <th>规格</th>
 | 
			
		||||
      <th>单位</th>
 | 
			
		||||
      <th>入库数量</th>
 | 
			
		||||
      <th>单价(元)</th>
 | 
			
		||||
      <th>小计(元)</th>
 | 
			
		||||
      <th>项目名称</th>
 | 
			
		||||
      <th>备注</th>
 | 
			
		||||
    </tr>
 | 
			
		||||
  </thead>
 | 
			
		||||
  <tbody>
 | 
			
		||||
  <tr v-for="(item, index) in 17" :key="index">
 | 
			
		||||
    <td>{{ index + 1 }}</td>
 | 
			
		||||
    <td>{{ printData.storageInDetailDOList[index]?.materialCode || '' }}</td>
 | 
			
		||||
    <td>{{ printData.storageInDetailDOList[index]?.boomName ? limitTo20Chars(printData.storageInDetailDOList[index].boomName) : '' }}</td>
 | 
			
		||||
    <td>{{ printData.storageInDetailDOList[index]?.boomSpec || '' }}</td>
 | 
			
		||||
    <td>{{ printData.storageInDetailDOList[index]?.unit || '' }}</td>
 | 
			
		||||
      <td>{{ printData.storageInDetailDOList[index]?.storageAmount || '' }}</td>
 | 
			
		||||
    <td>{{ printData.storageInDetailDOList[index]?.price || '' }}</td>
 | 
			
		||||
    <td>{{ printData.storageInDetailDOList[index]?.estimatedPrice || '' }}</td>
 | 
			
		||||
    <td>{{ printData.storageInDetailDOList[index]?.projectName || '' }}</td>
 | 
			
		||||
    <td>{{ printData.storageInDetailDOList[index]?.description || '' }}</td>
 | 
			
		||||
  </tr>
 | 
			
		||||
   <!-- <tr>
 | 
			
		||||
      <td colspan="9"></td>
 | 
			
		||||
      <td style="font-weight: bold;">合计</td>
 | 
			
		||||
      <td style="font-weight: bold;">{{ printData.estimatedPriceSum }}</td>
 | 
			
		||||
      </tr> -->
 | 
			
		||||
</tbody>
 | 
			
		||||
          <col style="width: 8%;" />   <!-- 序号 -->
 | 
			
		||||
          <col style="width: 18%;" />  <!-- 零件名称 -->
 | 
			
		||||
          <col style="width: 10%;" />  <!-- 规格 -->
 | 
			
		||||
          <col style="width: 8%;" />   <!-- 单位 -->
 | 
			
		||||
          <col style="width: 10%;" />  <!-- 入库数量 -->
 | 
			
		||||
          <col style="width: 10%;" />  <!-- 单价 -->
 | 
			
		||||
          <col style="width: 10%;" />  <!-- 小计 -->
 | 
			
		||||
          <col style="width: 12%;" />  <!-- 项目名称 -->
 | 
			
		||||
          <col style="width: 14%;" />  <!-- 备注 - 给更多空间 -->
 | 
			
		||||
        </colgroup>
 | 
			
		||||
        <thead>
 | 
			
		||||
          <tr>
 | 
			
		||||
            <th>序号</th>
 | 
			
		||||
            <th>零件名称</th>
 | 
			
		||||
            <th>规格</th>
 | 
			
		||||
            <th>单位</th>
 | 
			
		||||
            <th>入库数量</th>
 | 
			
		||||
            <th>单价(元)</th>
 | 
			
		||||
            <th>小计(元)</th>
 | 
			
		||||
            <th>项目名称</th>
 | 
			
		||||
            <th>备注</th>
 | 
			
		||||
          </tr>
 | 
			
		||||
        </thead>
 | 
			
		||||
        <tbody>
 | 
			
		||||
        <tr v-for="(item, index) in 17" :key="index">
 | 
			
		||||
          <td>{{ index + 1 }}</td>
 | 
			
		||||
          <td style="word-wrap: break-word; word-break: break-all; max-width: 150px;">
 | 
			
		||||
            {{ printData.storageInDetailDOList[index]?.boomName ? limitTo20Chars(printData.storageInDetailDOList[index].boomName) : '' }}
 | 
			
		||||
          </td>
 | 
			
		||||
          <td style="word-wrap: break-word; word-break: break-all;">{{ printData.storageInDetailDOList[index]?.boomSpec || '' }}</td>
 | 
			
		||||
          <td>{{ printData.storageInDetailDOList[index]?.unit || '' }}</td>
 | 
			
		||||
          <td>{{ printData.storageInDetailDOList[index]?.storageAmount || '' }}</td>
 | 
			
		||||
          <td>{{ printData.storageInDetailDOList[index]?.price || '' }}</td>
 | 
			
		||||
          <td>{{ printData.storageInDetailDOList[index]?.estimatedPrice || '' }}</td>
 | 
			
		||||
          <td style="word-wrap: break-word; word-break: break-all; max-width: 120px;">
 | 
			
		||||
            {{ printData.storageInDetailDOList[index]?.projectName || '' }}
 | 
			
		||||
          </td>
 | 
			
		||||
          <td style="word-wrap: break-word; word-break: break-all; white-space: normal; padding: 4px; max-width: 100px; min-height: 30px;">
 | 
			
		||||
            {{ printData.storageInDetailDOList[index]?.description || '' }}
 | 
			
		||||
          </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
      </tbody>
 | 
			
		||||
 | 
			
		||||
</table>
 | 
			
		||||
<div class="order-info" style="margin-top: 10px;border-bottom: 1px solid #ccc;padding-bottom: 10px;">
 | 
			
		||||
@ -150,17 +141,10 @@
 | 
			
		||||
 | 
			
		||||
  </div>
 | 
			
		||||
  <div style="display: flex;width: 20%;justify-content: center;">
 | 
			
		||||
        <!-- <span style="margin-left:20px;width: 150px">审核:{{ printData.auditorName }}</span> -->
 | 
			
		||||
        <!-- <span style="margin-left:20px;width: 120px">仓库签字:</span> -->
 | 
			
		||||
 | 
			
		||||
  </div>
 | 
			
		||||
    <div style="display: flex; width: 40%;justify-content: right;">
 | 
			
		||||
                     <span style="margin-left:20px;width: 150px">仓库签字:{{ printData.signature }}</span>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      <span style="margin-left:20px;width: 150px">仓库签字:{{ printData.signature }}</span>
 | 
			
		||||
      <span style="margin-left:20px;width: 150px">日期:{{ printData.date }}</span>
 | 
			
		||||
    <!-- <span style="margin-left:20px;width: 150px">接收人:{{ printData.username }}</span> -->
 | 
			
		||||
      <!-- <span style="margin-left:20px;width: 150px">电话:{{ printData.userMobile }}</span> -->
 | 
			
		||||
        </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
@ -190,7 +174,6 @@ const tagsViewStore = useTagsViewStore()
 | 
			
		||||
import * as StorageinApi from '@/api/heli/storagein'
 | 
			
		||||
import * as StorageinDetailApi from '@/api/heli/storageindetail'
 | 
			
		||||
import {ref} from "vue";
 | 
			
		||||
import {updateIsPrint} from "@/api/heli/storagein";
 | 
			
		||||
 | 
			
		||||
const dialogVisible = ref(false) // 弹窗的是否展示
 | 
			
		||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
 | 
			
		||||
@ -222,12 +205,6 @@ const total = ref(0) // 列表的总页数
 | 
			
		||||
const subBoomFormLoading = ref(false)
 | 
			
		||||
const subBoomFormRef = ref()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const userList = ref<UserApi.UserVO[]>([]) // 用户列表
 | 
			
		||||
 | 
			
		||||
const queryParams = reactive({
 | 
			
		||||
@ -237,6 +214,7 @@ const queryParams = reactive({
 | 
			
		||||
})
 | 
			
		||||
// 页面数据加载初始化
 | 
			
		||||
onMounted(async () => {
 | 
			
		||||
  // 获取物料需求计划信息
 | 
			
		||||
  formData.value = await StorageinApi.getStorageIn(query.id)
 | 
			
		||||
  getList();
 | 
			
		||||
})
 | 
			
		||||
@ -328,24 +306,63 @@ function doPrint() {
 | 
			
		||||
            width: 100%;
 | 
			
		||||
            border-collapse: collapse;
 | 
			
		||||
            margin-top: 10px;
 | 
			
		||||
            table-layout: fixed; 
 | 
			
		||||
            table-layout: fixed;
 | 
			
		||||
            border: 2px solid #000 !important; /* 加粗外边框 */
 | 
			
		||||
          }
 | 
			
		||||
          .print-table th, .print-table td {
 | 
			
		||||
            border: 1px solid #ddd;
 | 
			
		||||
            padding: 5px;
 | 
			
		||||
            border: 1px solid #000 !important; /* 使用黑色边框,更清晰 */
 | 
			
		||||
            padding: 4px;
 | 
			
		||||
            text-align: center;
 | 
			
		||||
            height: 20px;         /* 设置固定高度 */
 | 
			
		||||
            line-height: 20px;    /* 垂直居中 */
 | 
			
		||||
            height: auto;
 | 
			
		||||
            min-height: 30px;
 | 
			
		||||
            line-height: 1.4;
 | 
			
		||||
            word-wrap: break-word;
 | 
			
		||||
            word-break: break-all;
 | 
			
		||||
            vertical-align: top;
 | 
			
		||||
          }
 | 
			
		||||
          .print-table th {
 | 
			
		||||
            background-color: #f5f5f5;
 | 
			
		||||
            font-weight: bold;
 | 
			
		||||
            border: 1px solid #000 !important;
 | 
			
		||||
          }
 | 
			
		||||
          /* 特别加强最后一列(备注列)的右边框 */
 | 
			
		||||
          .print-table th:last-child,
 | 
			
		||||
          .print-table td:last-child {
 | 
			
		||||
            border-right: 2px solid #000 !important;
 | 
			
		||||
            white-space: normal !important;
 | 
			
		||||
            word-wrap: break-word !important;
 | 
			
		||||
            word-break: break-all !important;
 | 
			
		||||
            overflow-wrap: break-word !important;
 | 
			
		||||
            padding: 4px 2px;
 | 
			
		||||
          }
 | 
			
		||||
          @media print {
 | 
			
		||||
            body { margin: 0; }
 | 
			
		||||
            body { 
 | 
			
		||||
              margin: 0; 
 | 
			
		||||
              -webkit-print-color-adjust: exact !important;
 | 
			
		||||
              color-adjust: exact !important;
 | 
			
		||||
            }
 | 
			
		||||
            .print-content {
 | 
			
		||||
              width: 100%;
 | 
			
		||||
              margin: 0;
 | 
			
		||||
              padding: 10px;
 | 
			
		||||
              padding: 8px; /* 减少内边距,避免被裁剪 */
 | 
			
		||||
              box-sizing: border-box;
 | 
			
		||||
            }
 | 
			
		||||
            .print-table {
 | 
			
		||||
              page-break-inside: avoid;
 | 
			
		||||
              border: 2px solid #000 !important;
 | 
			
		||||
              width: 98% !important; /* 稍微减小宽度,避免右边框被裁剪 */
 | 
			
		||||
              margin: 0 auto;
 | 
			
		||||
            }
 | 
			
		||||
            .print-table th, .print-table td {
 | 
			
		||||
              border: 1px solid #000 !important;
 | 
			
		||||
              -webkit-print-color-adjust: exact !important;
 | 
			
		||||
              color-adjust: exact !important;
 | 
			
		||||
            }
 | 
			
		||||
            .print-table th:last-child,
 | 
			
		||||
            .print-table td:last-child {
 | 
			
		||||
              border-right: 2px solid #000 !important;
 | 
			
		||||
              white-space: normal !important;
 | 
			
		||||
              word-wrap: break-word !important;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        </style>
 | 
			
		||||
@ -362,7 +379,6 @@ function doPrint() {
 | 
			
		||||
    iframe.contentWindow?.print()
 | 
			
		||||
    setTimeout(() => document.body.removeChild(iframe), 1000)
 | 
			
		||||
  }
 | 
			
		||||
   StorageinApi.updateIsPrint(query.id);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -450,18 +466,21 @@ const getList = async () => {
 | 
			
		||||
  border-collapse: collapse;
 | 
			
		||||
  margin-top: 10px;
 | 
			
		||||
  border: 1px solid #ccc;
 | 
			
		||||
  table-layout: fixed; 
 | 
			
		||||
  table-layout: fixed;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
.print-table th,
 | 
			
		||||
.print-table td {
 | 
			
		||||
  border: 1px solid #ccc;
 | 
			
		||||
  padding: 6px 8px;
 | 
			
		||||
  border: 1px solid #000 !important; /* 使用黑色边框 */
 | 
			
		||||
  padding: 6px 4px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-size: 13px !important;
 | 
			
		||||
  height: 30px;         /* 设置固定高度 */
 | 
			
		||||
  line-height: 30px;    /* 垂直居中 */
 | 
			
		||||
 | 
			
		||||
  height: auto;
 | 
			
		||||
  min-height: 30px;
 | 
			
		||||
  line-height: 1.4;
 | 
			
		||||
  word-wrap: break-word;
 | 
			
		||||
  word-break: break-all;
 | 
			
		||||
  vertical-align: top;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.print-table th {
 | 
			
		||||
@ -469,8 +488,40 @@ const getList = async () => {
 | 
			
		||||
  color: #303133;
 | 
			
		||||
  font-weight: 600;
 | 
			
		||||
  font-size: 13px !important;
 | 
			
		||||
  border: 1px solid #000 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* 备注列特殊样式 - 加强右边框 */
 | 
			
		||||
.print-table th:last-child,
 | 
			
		||||
.print-table td:last-child {
 | 
			
		||||
  border-right: 2px solid #000 !important;
 | 
			
		||||
  white-space: normal !important;
 | 
			
		||||
  word-wrap: break-word !important;
 | 
			
		||||
  word-break: break-all !important;
 | 
			
		||||
  overflow-wrap: break-word !important;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  padding: 4px 2px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* 打印专用样式 */
 | 
			
		||||
@media print {
 | 
			
		||||
  .print-table {
 | 
			
		||||
    width: 98% !important; /* 稍微减小宽度避免边框被裁剪 */
 | 
			
		||||
    margin: 0 auto;
 | 
			
		||||
    border: 2px solid #000 !important;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  .print-table th,
 | 
			
		||||
  .print-table td {
 | 
			
		||||
    border: 1px solid #000 !important;
 | 
			
		||||
    -webkit-print-color-adjust: exact !important;
 | 
			
		||||
    color-adjust: exact !important;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  .print-table th:last-child,
 | 
			
		||||
  .print-table td:last-child {
 | 
			
		||||
    border-right: 2px solid #000 !important;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
</style>
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user