08335 / hivui-platform-template
hivui平台项目模板
Newer
Older
hivui-platform-template / project / hivuiBirt / components / Birt / ToolBar / index.vue
<template>
  <div class="no-print zhc-birt-print-bar">
    <el-pagination
      v-if="totalPage > 1"
      background
      layout="prev, pager, next"
      :page-size="1"
      :pager-count="5"
      :total="totalPage"
      :current-page="currentPage"
      @current-change="onCurrentPageChange"
      style="float: left"
    ></el-pagination>
    <el-button-group>
      <slot></slot>
      <el-button icon="el-icon-printer" @click="doPrint()">打印</el-button>
      <el-dropdown>
        <el-button>
          输出
          <i class="el-icon-download el-icon--right"></i>
        </el-button>
        <el-dropdown-menu slot="dropdown">
          <el-dropdown-item>
            <span @click="onExprotPdf()">PDF</span>
          </el-dropdown-item>
          <el-dropdown-item>Excel</el-dropdown-item>
          <el-dropdown-item>Word</el-dropdown-item>
          <el-dropdown-item>图片</el-dropdown-item>
        </el-dropdown-menu>
      </el-dropdown>
    </el-button-group>
  </div>
</template>

<script>
// import print from "print-js";
// import { exportPdf } from "@birt/api/html-export.js";

export default {
  name: "birt-tool-bar",
  props: {
    totalPage: {
      type: Number,
      default: 1,
    },
  },
  data() {
    return {
      currentPage: 1,
    };
  },
  methods: {
    doPrint() {
      this.$parent.print();
    },
    setCurrentPage(pageIndex) {
      this.currentPage = pageIndex;
    },
    onCurrentPageChange(pageIndex) {
      this.$emit("page-change", pageIndex - 1);
    },
    onExprotPdf() {
      console.log(window.location);
      // exportPdf(window.location.href)
      //   .then(response => {
      //     const url = window.URL.createObjectURL(new Blob([response.data]));
      //     window.open(url);
      //   })
      //   .catch(err => {
      //     console.log(err); // 这里catch到错误timeout
      //   });
    },
  },
};
</script>

<style lang="scss" scoped>
.zhc-birt-print-bar {
  text-align: right;
  padding: 10px;
}
</style>