<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 upgrade from "./mixins/upgrade.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,upgrade, 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 index = path.indexOf('/platf')
// 编译后多e5
if(index > 0){
path = path.substring(index, path.length)
}
// 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>