08335 / hivui-platform-template
hivui平台项目模板
Newer
Older
hivui-platform-template / project / hivuiBirt / App.vue
<template>
<div>
  <birt-work-book :conf="birtModel"></birt-work-book>
</div>
</template>
<script>
import HcPage from "./components/Birt/Page";
import { BirtModelFactory } from "./templates/BirtModelFactory";
import { LoadUtil } from "./funclib/LoadUtil";
import { getToken } from "./utils/auth";
import { Tool } from "./funclib/Tool";
import user from './mixins/user.js'
import resource from './mixins/resource.js'
import permission_assign from './mixins/permission_assign.js'
import permission_modify from './mixins/permission_modify.js'
import permission_check from './mixins/permission_check.js'
// import { getBirtModel } from "./birtModel"
 import {baseURL,projectName,requestUrl} from '@birt/config'

export default {
  extends: HcPage,
  mixins: [user, resource, permission_assign, permission_modify,permission_check],
  data() {
    return {
      birtModel: {},
      VUE_APP_BASE_API: requestUrl,
      pn: projectName || 'birt'
    };
  },
  watch: {
    // $route() {
    //   this.loadBirtModel(this.$route.path);
    // },
  },
  methods: {
    // 动态加载报表模型方法
    birtModelMethod(routePath, birtModelMethod, scope) {
      debugger
      return new Promise((resolve, reject) => {
        debugger
        let me = this;
        let token = getToken()
        // let token = '3d3fe30c-3d99-41e8-9aea-addd8528aa07'
        LoadUtil.loadJsBirtModel({
          loadModelUrl: this.$HI.birtModel,
          routePath: routePath,
          token: token,
          pn: this.pn
        })
          .then(() => {
            try {
              let birtModel = BirtModelFactory.buildModel(
                getBirtModel(scope || me, Tool)
              );
              birtModel.token = token;
              birtModel.birtModelMethod = birtModelMethod;
              resolve(birtModel);
            } catch (e) {
              console.error(e);
            }
          })
          .catch(() => {
            reject();
          });
      });
    },
    loadBirtModel(routePath) {
      return new Promise((resolve, reject) => {
        let me = this;
        this.birtModelMethod(routePath, this.birtModelMethod).then(
          (birtModel) => {
            debugger
            me.birtModel = birtModel;
            console.log('birtModel', birtModel)
            // me.applyRouteParam();
            me.setWorkBookParam();
            resolve()
          }
        ).catch(() =>{
          reject();
        })
      })
    },
  },
  mounted() {
    var path = window.location.pathname
    var _push = window.scpRequestData
    // var path = '/platf/user-info/func/query.func'
    this.loadBirtModel(path).then(()=>{
      if(path == '/platf/permission/func/assign.func')
      this.getOrgData(-1);
      else if (path == '/platf/permission/func/modify.func')
      this.getOrgDataM(-1);
    });
  },
};
</script>
<style scope>
.el-row>.zhc-birt-cell-children>.el-button {
    border: none;
    border-right: 1px solid #ddd;
    border-radius: 0;
    padding: 5px 15px;
}
</style>