vue3 print ts打印组件

依赖安装

npm install vue3-print-ts

vue3.2.*请使用v0.2.*版本;vue3.3.*请使用v0.3.*版本

全局注入

import { createApp } from 'vue'
import App from './App.vue'
import Print from 'vue3-print-ts'

const app = createApp(App)
app.directive("print", Print)

页面使用(element plus ui 例子)

<template>
  <div class="container">
    <el-row :gutter="24">
      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
        相关文档:
        <a href="https://github.com/huang-long/vue3-print-ts" target="_blank">vue3-print-ts</a>
      </el-col>
    </el-row>

    <el-divider content-position="left">print</el-divider>

    <el-row :gutter="24">
      <el-button type="primary" size="small" icon="Printer" v-print="printObj">打印</el-button>
      <div id="loading" v-show="printLoading"></div>
    </el-row>
    <el-divider content-position="center">打印区域</el-divider>
    <div id="printMe" class="print-area">
      <el-table :data="tableData" stripe style="width: 100%">
        <el-table-column prop="date" label="Date" width="180" />
        <el-table-column prop="name" label="Name" width="180" />
        <el-table-column prop="address" label="Address" />
      </el-table>
    </div>
    <el-divider content-position="center">打印区域</el-divider>
  </div>
</template>

<script lang="ts" setup name="DemoPrint" directives="print">
import { ref } from 'vue';
import type { PrintConf } from 'vue3-print-ts';

const tableData = ref([
  {
    date: '2016-05-03',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-02',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-04',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
])

let printLoading = ref(true);
let printObj= ref<PrintConf>({
  ids: "printMe",
  printTitle: '打印测试',
  extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>',
  showBackground: true,
  beforePrint() {
    console.log('打印之前')
  },
  afterPrint() {
    console.log('打印之后')
  }
})
</script>
<style lang="less" scoped>
.print-area {
  max-width: 800px;
}
</style>

文档说明

ParameExplainTypeOptionalValueDefaultValue
idsRange print ID ,required valueStringString[]
standardDocument typeStringString[]html5/loose/strict
extraHead<head></head>Add DOM nodes in the node, example:<meta charset="UTF-8">StringString[]
extraCss<link> New CSS style sheet, example: http://www.**.com/aa.cssString-
printTitle<title></title> Content of labelString-
beforePrintCallback function before calling printing tool, example: calback(event)VoidFunction-
afterPrintCallback function after calling printing tool, example: calback(event)VoidFunction-
showBackgroundprint page show background styleBooleanfalse

例子源代码:vue-sys-manage-el

vue3-print-ts组件:vue3-print-ts

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3是一种流行的JavaScript框架,而TypeScript是一种类型安全的JavaScript超集。结合使用Vue3和TypeScript可以提供更好的开发体验和代码可维护性。 在Vue3中,可以使用TypeScript来编写组件。下面是一个简单的Vue3+TypeScript评论组件的示例: ```typescript <template> <div> <h2>评论列表</h2> <ul> <li v-for="comment in comments" :key="comment.id"> {{ comment.text }} </li> </ul> <form @submit.prevent="addComment"> <input type="text" v-model="newComment" placeholder="请输入评论" /> <button type="submit">添加评论</button> </form> </div> </template> <script lang="ts"> import { defineComponent, ref } from 'vue'; interface Comment { id: number; text: string; } export default defineComponent({ name: 'CommentComponent', data() { return { comments: [] as Comment[], newComment: '', }; }, methods: { addComment() { const newId = this.comments.length + 1; this.comments.push({ id: newId, text: this.newComment }); this.newComment = ''; }, }, }); </script> ``` 在上面的示例中,我们定义了一个名为`CommentComponent`的Vue组件组件包含一个评论列表和一个表单用于添加新的评论。`comments`数组用于存储评论数据,`newComment`变量用于绑定输入框的值。 通过使用`defineComponent`函数和`ref`函数,我们可以定义组件的数据和方法,并将其导出供其他组件使用。 相关问题: 1. Vue3是什么? 2. TypeScript在Vue3中的作用是什么? 3. 请解释一下Vue3+TypeScript评论组件的代码逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值