Vue3项目里面:前端做打印页面信息,实现打印功能,前端打印界面某个部门。 ...

打印 上一主题 下一主题

主题 1031|帖子 1031|积分 3093

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、先看效果:



二、利用的依赖:

利用的是:vue3-print-nb
版本号"vue3-print-nb": "^0.1.4",
  1. npm install vue3-print-nb
复制代码
三、注册利用:

下好依赖后在项目里的 main.js 文件里面注册利用一下
  1. import print from 'vue3-print-nb'
  2. app.use(print);
复制代码


四、打印页面代码:

通过 v-print="printInfoObj" 自界说指令绑定打印的按钮。
必要打印的地域通过利用 id="printInfo"  绑定。
完备代码:
  1. <template>
  2.   <el-button type="primary" v-print="printInfoObj">打印</el-button>
  3.   <!-- 需要打印的区域 -->
  4.   <div class="print_info_box" id="printInfo">
  5.     <div class="title_box">收货人信息表</div>
  6.     <div>
  7.       <el-row class="public">
  8.         <el-col :span="12">
  9.           <span>收&nbsp; 货&nbsp; 人:</span>
  10.           <span>张三三</span>
  11.         </el-col>
  12.         <el-col :span="12">
  13.           <span>下单日期:</span>
  14.           <span>2024-12-05 14:32:55</span>
  15.         </el-col>
  16.       </el-row>
  17.       <el-row class="public">
  18.         <el-col :span="12">
  19.           <span>收货地址:</span>
  20.           <span>北京市-朝阳区-188号</span>
  21.         </el-col>
  22.         <el-col :span="12">
  23.           <span>订单编号:</span>
  24.           <span>8564795214986528</span>
  25.         </el-col>
  26.       </el-row>
  27.     </div>
  28.     <table border="1" cellspacing="0" width="100%" class="tableStyle">
  29.       <tr height="60">
  30.         <td>商品</td>
  31.         <td colspan="2">规格</td>
  32.         <td>合计</td>
  33.       </tr>
  34.       <tr height="50">
  35.         <td>连衣裙</td>
  36.         <td>白色*5</td>
  37.         <td>粉色*15</td>
  38.         <td>20</td>
  39.       </tr>
  40.       <tr height="50">
  41.         <td>牛仔裤</td>
  42.         <td>黑色*13</td>
  43.         <td>蓝色*19</td>
  44.         <td>32</td>
  45.       </tr>
  46.       <tr height="50">
  47.         <td>冲锋衣</td>
  48.         <td>黑色*3</td>
  49.         <td>白色*1</td>
  50.         <td>4</td>
  51.       </tr>
  52.       <tr height="50">
  53.         <td colspan="3">总计</td>
  54.         <td>56</td>
  55.       </tr>
  56.     </table>
  57.     <div>
  58.       <el-row class="public">
  59.         <el-col :span="6">
  60.           <span>调配人:</span>
  61.           <span>________</span>
  62.         </el-col>
  63.         <el-col :span="6">
  64.           <span>核对人:</span>
  65.           <span>________</span>
  66.         </el-col>
  67.         <el-col :span="6">
  68.           <span>对接人:</span>
  69.           <span>________</span>
  70.         </el-col>
  71.         <el-col :span="6">
  72.           <span>发货人:</span>
  73.           <span>________</span>
  74.         </el-col>
  75.       </el-row>
  76.     </div>
  77.   </div>
  78. </template>
  79. <script setup>
  80. // 打印区域配置对象
  81. const printInfoObj = {
  82.   id: "printInfo",
  83.   popTitle: "收货人信息表", // 打印页面的页眉
  84.   preview: false,  // 是否开启预览
  85.   beforeOpenCallback(vue) {
  86.     // console.log('触发打印工具打开前回调')
  87.     vue.printLoading = true;
  88.   },
  89.   openCallback(vue) {
  90.     // console.log('触发打印工具打开的回调')
  91.     vue.printLoading = false;
  92.   },
  93.   closeCallback() {
  94.     // console.log('触发关闭打印工具回调')
  95.   },
  96.   previewBeforeOpenCallback() {
  97.     // console.log('触发预览前回调')
  98.   },
  99.   previewOpenCallback() {
  100.     // console.log('触发预览的回调')
  101.   },
  102. };
  103. </script>
  104. <style lang="less" scoped>
  105. // 去掉页眉页脚
  106. // @page {
  107. //   size: auto;
  108. //   margin: 0mm;
  109. // }
  110. // 隐藏左下方页脚URL链接
  111. // @page {
  112. //   size: A4(JIS);
  113. //   margin: 10mm 18mm;
  114. // }
  115. .print_info_box {
  116.   padding: 25px 50px;
  117.   .title_box {
  118.     text-align: center;
  119.     font-size: 26px;
  120.     font-weight: 700;
  121.     margin-bottom: 30px;
  122.   }
  123.   .tableStyle {
  124.     font-size: 14px;
  125.     color: #000;
  126.     text-align: center;
  127.     margin-bottom: 30px;
  128.   }
  129.   .public {
  130.     margin-bottom: 15px;
  131.   }
  132. }
  133. </style>
复制代码

五、欢迎参考:

打印的方式许多,各人选择得当自己项目标即可

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

河曲智叟

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表