08335 / hivui-platform-template
hivui平台项目模板
Newer
Older
hivui-platform-template / project / hivuiBirt / components / Birt / Page / index.vue
<template>
  <div>
    <birt-work-book
      v-if="birtModel.controlName == 'BirtWorkBook'"
      :ref="birtModel.controlId"
      :conf="birtModel"
      :param="birtParam"
    />
    <!-- <birt-work-book
      v-for="wb in printPage"
      :key="wb.controlId"
      :ref="wb.controlId"
      :conf="wb"
      :param="birtParam"
    >
    </birt-work-book> -->
  </div>
</template>

<script>
import page from "./mixins/page";
import func from "./mixins/func";
import flow from "./mixins/flow";
import axios from 'axios';

export default {
  name: "birt-page",
  mixins: [page, func, flow],
  props: {
    conf: {
      type: Object,
      default: function () {
        return {};
      },
    },
  },
  data() {
    return {
      param: {},
      birtModel: {},
      birtParam: {},
      // printPage: [],
    };
  },
  methods: {
    // 获取报表workbook实例
    _getWorkBook() {
      return this.$refs[this.birtModel.controlId];
    },
    // 根据模型路径获取数据集实例对象
    _getStore(modelFilePath) {
      let wb = this._getWorkBook();
      if (wb) {
        let stores = wb.getStores();
        for (let i = 0, l = stores.length; i < l; i++) {
          let dsInsc = stores[i];
          if (dsInsc.modelFilePath == modelFilePath) {
            return dsInsc;
          }
        }
      }
    },
    // 应用地址栏参数
    applyRouteParam() {
      if (this.birtModel && this.birtModel.controlName) {
        let param = '';
        this._setParam(param);
        this._initPage();
      }
    },
    // 设置页面下推参数
    setWorkBookParam() {
      this.$nextTick(() => {
        let wb = this._getWorkBook();
        wb && wb.setParam(this.param);
        // this.$set(this, "birtParam", this.param);
        // this.birtParam = this.param;
      });
    },
  },
  created() {
    this.applyRouteParam();
  },
  mounted() {
    this.setWorkBookParam();
  },
};
</script>

<style lang="scss" scoped>
</style>