最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue項目純前端實現(xiàn)的模板打印功能示例代碼

 更新時間:2024年10月18日 09:04:38   作者:_chang.  
在Vue項目中,通過使用vue-print-nb插件,可以實現(xiàn)頁面的打印功能,這篇文章主要介紹了vue項目純前端實現(xiàn)的模板打印功能的相關(guān)資料,需要的朋友可以參考下

下載一個插件 npm i vue-print-nb --save

在main中引入 import Print from “vue-print-nb”

                           Vue.use(Print);

在postcss.config.js里面展示這個數(shù)據(jù)樣式,如果你的項目中沒有這個文件

   那就下載一個插件"npm i postcss-px-to-view --save-dev";

module.exports = {
  plugins: {
    autoprefixer: {},
    "postcss-px-to-viewport": {
      viewportWidth: 1920, //  視窗的寬度,對應(yīng)的是我們設(shè)計稿的寬度,移動端一般是750,如果是pc端那就是類似1920這樣的尺寸
      // viewportHeight: 1344, // 視窗的高度,移動端一般指定1334,也可以不配置
      unitPrecision: 3, // 指定`px`轉(zhuǎn)換為視窗單位值的小數(shù)位數(shù)(很多時候無法整除)
      viewportUnit: "vw", // 指定需要轉(zhuǎn)換成的視窗單位,建議使用vw
      selectorBlackList: ['.nocalssvw'], // 指定不轉(zhuǎn)換為視窗單位的類,可以自定義,可以無限添加,建議定義一至兩個通用的類名
      exclude: [/printPersone/],
      // propList:["*", "!font-size"],//能轉(zhuǎn)化為vw的屬性列表
      minPixelValue: 1, // 小于或等于`1px`不轉(zhuǎn)換為視窗單位,你也可以設(shè)置為你想要的值
      mediaQuery: false // 允許在媒體查詢中轉(zhuǎn)換`px`
    }
  }
};

創(chuàng)建一個和“selectorBlackList”里面名字一樣的vue,如上:printPersone.vue

父組件    
<template>
    <div>
        <el-dialog title="表" :visible.sync="dialogVisible" width="70%" :before-close="handleClose">
            <el-button type="primary" plain style="margin-bottom:5px;" @click="handlePrint">打印</el-button>
            <el-row>
                <el-col :span="12">
                    <div>
                        <table border="1" class="tableOne" v-for="(item, index) in dataList" :key="index">
                            <thead>
                                <tr>
                                    <th>姓名</th>
                                    <td>張三</td>
                                    <th>性別</th>
                                    <td>男</td>
                                    <th>出生年月</th>
                                    <td>1985.5.10</td>
                                    <td rowspan="4" style="width: 130px;"></td>
                                </tr>
                                <tr>
                                    <th>民族</th>
                                    <td>漢</td>
                                    <th>籍貫</th>
                                    <td>漢</td>
                                    <th>出生地</th>
                                    <td>山東</td>
                                </tr>
                            </thead>
                        </table>

                    </div>
                </el-col>
            </el-row>
            <!-- 引用那個打印的模板 -->
            <print-person ref="myPrintPerson" :list="dataList" />

        </el-dialog>
    </div>
</template>
  
<script>
import PrintPerson from './components/printPersone.vue'
export default {
    components: {
        PrintPerson,
    },
    data() {
        return {
            dialogVisible: false,
            dataList: [],
        };
    },
    created() {

    },
    methods: {
        init(dataList) {
            this.dialogVisible = true;
            this.dataList = dataList;
            this.getList();
        },
        handleClose(done) {
            done();
        },

        // 打印按鈕的事件
        handlePrint() {
            let refPrint = this.$refs['myPrintPerson']
            refPrint && refPrint.print()
        },
    }
};
</script>

打印的模板

打印的模板組件
<template>
    <div>
      <button ref="printbtn" class="myprintbtn" v-print="'#myprintDom'"></button>
      <div id="myprintDom" class="nocalssvw">
        <div class="print-warp" style="page-break-before:always;" v-for="(item, ix) in list" :key="ix">
          <table border="1" class="primt-table print-tableOne">
            <thead>
              <tr>
                <td style="width: 68px;" class="pt">姓名</td>
                <td style="width: 58px;">張三</td>
                <td style="width: 68px;" class="pt">性別</td>
                <td style="width: 68px;" class="ptw84">男</td>
                <td style="width: 68px;" class="pt">出生年月</td>
                <td style="width: 68px;">1987.5.10</td>
                <td rowspan="4" colspan="2" style="width: 120px;"></td>
              </tr>
              <tr>
                <td class="pt">民族</td>
                <td>漢</td>
                <td class="pt">籍貫</td>
                <td>漢</td>
                <td class="pt">出生地</td>
                <td>山東</td>
              </tr>
            </thead>
          </table>
        </div>
      </div>
    </div>
  </template>
    
  <script>
  export default {
    props: {
      list: {
        type: Array,
        default: () => [],
        required: true,
      },
    },
    data() {
      return {
        myPrint: {
          id: 'myprintDom',
          extarCss: ''
        }
      }
    },
    methods: {
      print() {
        this.$refs['printbtn'].click();
      }
    },
  }
  </script>

總結(jié) 

到此這篇關(guān)于vue項目純前端實現(xiàn)的模板打印功能的文章就介紹到這了,更多相關(guān)vue純前端模板打印功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue中接收二進制文件流實現(xiàn)pdf預覽的方法

    Vue中接收二進制文件流實現(xiàn)pdf預覽的方法

    本文主要介紹了Vue中接收二進制文件流實現(xiàn)pdf預覽的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • vue項目中的支付功能實現(xiàn)(微信支付和支付寶支付)

    vue項目中的支付功能實現(xiàn)(微信支付和支付寶支付)

    本文主要介紹了vue項目中的支付功能實現(xiàn)(微信支付和支付寶支付),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • vue3 emit is not a function問題及解決

    vue3 emit is not a function問題及解決

    這篇文章主要介紹了vue3 emit is not a function問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • VueJS如何引入css或者less文件的一些坑

    VueJS如何引入css或者less文件的一些坑

    本篇文章主要介紹了VueJS如何引入css或者less文件的一些坑,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • vue 按鈕 權(quán)限控制介紹

    vue 按鈕 權(quán)限控制介紹

    這篇文章主要介紹了vue 按鈕 權(quán)限控制,在日常項目中,會碰到需要根據(jù)后臺接口返回的數(shù)據(jù),來判斷當前用戶的操作權(quán)限,必須當有刪除權(quán)限時,就顯示刪除按鈕,下面我們就來了解一下具體的解決方法,需要的朋友也可以參考一下
    2021-12-12
  • Vue中代碼傳送(teleport)的實現(xiàn)

    Vue中代碼傳送(teleport)的實現(xiàn)

    本文主要介紹了Vue中代碼傳送(teleport)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • vue登錄注冊組件源碼詳解(注釋)

    vue登錄注冊組件源碼詳解(注釋)

    用戶自行開發(fā)了一個Vue登錄注冊組件,采用Bootstrap表單樣式,簡單實現(xiàn)防短信轟炸功能,但因接口存在bug僅模擬了登錄注冊流程
    2025-07-07
  • Vue3中關(guān)于ref和reactive的問題

    Vue3中關(guān)于ref和reactive的問題

    這篇文章主要介紹了Vue3中關(guān)于ref和reactive的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue實現(xiàn)可拖拽div大小的方法

    vue實現(xiàn)可拖拽div大小的方法

    這篇文章主要介紹了vue實現(xiàn)可拖拽div大小的方法,可封裝為全局方法在項目中所需要地方直接調(diào)用(mixins),本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • React?Diff算法不采用Vue的雙端對比原因詳解

    React?Diff算法不采用Vue的雙端對比原因詳解

    這篇文章主要介紹了React?Diff算法不采用Vue雙端對比算法原因詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07

最新評論

安图县| 苗栗县| 陆丰市| 汝州市| 阳东县| 吉木乃县| 贡山| 志丹县| 平潭县| 黔南| 武邑县| 太仆寺旗| 弥勒县| 峨山| 阿克苏市| 辉县市| 扬州市| 兰考县| SHOW| 喀什市| 六枝特区| 中卫市| 金昌市| 奉节县| 佳木斯市| 六安市| 台湾省| 高州市| 漠河县| 柏乡县| 阳东县| 武乡县| 衡东县| 乌拉特后旗| 绥化市| 紫阳县| 义乌市| 虞城县| 南郑县| 通渭县| 渭源县|