vue使用iview跳转另一页面打印部分页面内容
时间: 2023-09-20 12:08:18 浏览: 117
vue+element实现打印页面功能
5星 · 资源好评率100%
您可以使用`iview`的`Print`组件来打印页面的部分内容。以下是实现的步骤:
1. 在需要打印的元素上添加一个特定的类名,例如`print-only`。
2. 在需要跳转的页面中使用`router-link`进行跳转,同时将需要打印的元素的类名传递给目标页面。
```vue
<template>
<div>
<div class="print-only">需要打印的内容</div>
<router-link :to="{ name: 'print', params: { printable: 'print-only' } }">跳转并打印</router-link>
</div>
</template>
<script>
export default {
name: 'Page',
};
</script>
```
3. 在目标页面中获取传递过来的类名,并使用`Print`组件进行打印。
```vue
<template>
<div>
<div :class="printable">需要打印的内容</div>
<Button type="primary" @click="print">打印</Button>
<Print :printable=".print-only">
<div slot="printable">需要打印的内容</div>
</Print>
</div>
</template>
<script>
import { Button, Print } from 'iview';
export default {
name: 'PrintPage',
components: {
Button,
Print,
},
computed: {
printable() {
return `.${this.$route.params.printable}`;
},
},
methods: {
print() {
this.$refs.print.handlePrint();
},
},
};
</script>
```
4. 然后在`methods`中通过`$refs`获取`Print`组件的实例,并调用`handlePrint()`方法进行打印。
5. 打印完成后,会自动返回原页面。
注意:`Print`组件只能打印通过`slot`传递的内容,因此需要将需要打印的内容作为`slot`传递给组件。
阅读全文