GitBucket
4.6.0
Toggle navigation
Sign in
Files
Branches
1
Tags
Issues
Pull Requests
Labels
Milestones
Wiki
08335
/
hivui-platform-template
hivui平台项目模板
Browse code
Merge branch 'master' of http://192.168.4.105:8080/gitbucket/git/08335/hivui-platform-template
master
commit
966cdd53e23e4dca42928e6bce6d5fad56885138
2 parents
12aecaa
+
ec8de41
12112
authored
on 25 Feb 2022
Showing
4 changed files
package.json
project/hivuiBirt/App.vue
project/hivuiBirt/funclib/LoadUtil.js
project/hivuiBirt/index.js
Ignore Space
Show notes
View
package.json
{ "name": "hi-vui-template", "version": "1.1.8", "description": "A hi-vui-template project", "author": "zhcTeam", "scripts": { "rm:vite": "rimraf node_modules/.vite && rimraf node_modules/.cache", "pm2:start": "pm2 start processes.json", "dev": "vite --host", "build": "node build/copyBaseAssets.js && cross-env NODE_ENV=production node build/webpack.prod.conf.js", "build:modules": "cross-env NODE_ENV=production node build/webpack.prod.conf.js", "build1": "webpack --mode production --config build/webpack.prod.conf.js", "dll": "webpack --config build/webpack.dll.conf.js", "start": "webpack-dev-server --config build/webpack.dev.conf.js", "copyassets": "node build/copyBaseAssets.js" }, "devDependencies": { "@babel/core": "^7.1.2", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", "@babel/plugin-proposal-optional-chaining": "^7.16.7", "@babel/plugin-syntax-dynamic-import": "^7.0.0", "@babel/preset-env": "^7.1.0", "@vitejs/plugin-vue-jsx": "^1.3.3", "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", "@vue/babel-preset-jsx": "^1.2.4", "add-asset-html-webpack-plugin": "^3.2.0", "autoprefixer": "^9.1.5", "babel-loader": "^8.0.4", "babel-plugin-component": "^1.1.1", "babel-plugin-transform-vite-meta-env": "^1.0.3", "chalk": "^5.0.0", "clean-webpack-plugin": "^0.1.19", "copy-webpack-plugin": "^4.5.3", "cross-env": "^7.0.3", "css-loader": "^1.0.0", "dotenv": "^10.0.0", "file-loader": "^2.0.0", "happypack": "^5.0.1", "html-webpack-plugin": "^4.5.2", "less": "^4.1.2", "less-loader": "^5.0.0", "mini-css-extract-plugin": "^1.6.2", "node-sass": "^4.9.3", "optimize-css-assets-webpack-plugin": "^5.0.1", "parallel-webpack": "^2.6.0", "postcss-import": "^11.1.0", "postcss-loader": "^2.1.6", "postcss-url": "^7.3.2", "progress-bar-webpack-plugin": "^2.1.0", "sass": "^1.49.0", "sass-loader": "^7.1.0", "style-loader": "^0.23.0", "thread-loader": "^3.0.4", "uglifyjs-webpack-plugin": "^2.0.1", "url-loader": "^1.1.1", "vite": "2.3.7", "vite-plugin-html": "^2.1.1", "vite-plugin-imp": "^2.0.11", "vite-plugin-pagedata": "^1.0.4", "vite-plugin-vue2": "^1.9.0", "vue-loader": "^15.4.2", "vue-template-compiler": "^2.5.17", "webpack": "^4.46.0", "webpack-cli": "^4.9.2", "webpack-dev-server": "^3.11.3", "webpack-merge": "^4.1.4" }, "dependencies": { "axios": "^0.24.0", "babel-polyfill": "^6.26.0", "canvas": "^2.9.0", "classnames": "^2.3.1", "deep-lu-trans": "^1.0.5", "element-ui": "^2.15.6", "enquire.js": "^2.1.6", "font-awesome": "^4.7.0", "hi-taskcenter": "^1.0.9", "hi-ui": "^1.1.1006", "js-cookie": "^3.0.1", "js-pinyin": "^0.1.9", "lodash": "^4.17.11", "md5": "^2.3.0", "qrcodejs2": "0.0.2", "screenfull": "^6.0.0", "sortablejs": "^1.14.0", "v-clipboard": "^2.2.3", "vue": "^2.5.17", "vue-draggable-resizable": "^2.3.0", "vue-gemini-scrollbar": "^2.0.1", "vue-jstree": "^2.1.6", "vue-qr": "^3.2.4", "vue-router": "^3.0.1", "vuex": "^3.6.2", "zhc-birt-cmps": "^2.4.8" } }
{ "name": "hi-vui-template", "version": "1.1.7", "description": "A hi-vui-template project", "author": "zhcTeam", "scripts": { "rm:vite": "rimraf node_modules/.vite && rimraf node_modules/.cache", "pm2:start": "pm2 start processes.json", "dev": "vite --host", "build": "node build/copyBaseAssets.js && cross-env NODE_ENV=production node build/webpack.prod.conf.js", "build:modules": "cross-env NODE_ENV=production node build/webpack.prod.conf.js", "build1": "webpack --mode production --config build/webpack.prod.conf.js", "dll": "webpack --config build/webpack.dll.conf.js", "start": "webpack-dev-server --config build/webpack.dev.conf.js", "copyassets": "node build/copyBaseAssets.js" }, "devDependencies": { "@babel/core": "^7.1.2", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", "@babel/plugin-proposal-optional-chaining": "^7.16.7", "@babel/plugin-syntax-dynamic-import": "^7.0.0", "@babel/preset-env": "^7.1.0", "@vitejs/plugin-vue-jsx": "^1.3.3", "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", "@vue/babel-preset-jsx": "^1.2.4", "add-asset-html-webpack-plugin": "^3.2.0", "autoprefixer": "^9.1.5", "babel-loader": "^8.0.4", "babel-plugin-component": "^1.1.1", "babel-plugin-transform-vite-meta-env": "^1.0.3", "chalk": "^5.0.0", "clean-webpack-plugin": "^0.1.19", "copy-webpack-plugin": "^4.5.3", "cross-env": "^7.0.3", "css-loader": "^1.0.0", "dotenv": "^10.0.0", "file-loader": "^2.0.0", "happypack": "^5.0.1", "html-webpack-plugin": "^4.5.2", "less": "^4.1.2", "less-loader": "^5.0.0", "mini-css-extract-plugin": "^1.6.2", "node-sass": "^4.9.3", "optimize-css-assets-webpack-plugin": "^5.0.1", "parallel-webpack": "^2.6.0", "postcss-import": "^11.1.0", "postcss-loader": "^2.1.6", "postcss-url": "^7.3.2", "progress-bar-webpack-plugin": "^2.1.0", "sass": "^1.49.0", "sass-loader": "^7.1.0", "style-loader": "^0.23.0", "thread-loader": "^3.0.4", "uglifyjs-webpack-plugin": "^2.0.1", "url-loader": "^1.1.1", "vite": "2.3.7", "vite-plugin-html": "^2.1.1", "vite-plugin-imp": "^2.0.11", "vite-plugin-pagedata": "^1.0.4", "vite-plugin-vue2": "^1.9.0", "vue-loader": "^15.4.2", "vue-template-compiler": "^2.5.17", "webpack": "^4.46.0", "webpack-cli": "^4.9.2", "webpack-dev-server": "^3.11.3", "webpack-merge": "^4.1.4" }, "dependencies": { "axios": "^0.24.0", "babel-polyfill": "^6.26.0", "canvas": "^2.9.0", "classnames": "^2.3.1", "deep-lu-trans": "^1.0.5", "element-ui": "^2.15.6", "enquire.js": "^2.1.6", "font-awesome": "^4.7.0", "hi-taskcenter": "^1.0.9", "hi-ui": "^1.1.922", "js-cookie": "^3.0.1", "js-pinyin": "^0.1.9", "lodash": "^4.17.11", "md5": "^2.3.0", "qrcodejs2": "0.0.2", "screenfull": "^6.0.0", "sortablejs": "^1.14.0", "v-clipboard": "^2.2.3", "vue": "^2.5.17", "vue-draggable-resizable": "^2.3.0", "vue-gemini-scrollbar": "^2.0.1", "vue-jstree": "^2.1.6", "vue-qr": "^3.2.4", "vue-router": "^3.0.1", "vuex": "^3.6.2", "zhc-birt-cmps": "^2.4.5" } }
Ignore Space
Show notes
View
project/hivuiBirt/App.vue
<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' let vId = this.getQueryVariable('viewItemId') LoadUtil.loadJsBirtModel({ loadModelUrl: this.$HI.birtModel, routePath: routePath, token: token, pn: this.pn, viewItemId: vId }) .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(); }); }); }, // 获取地址栏参数 getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split("="); if (pair[0] == variable) { return pair[1]; } } return false; }, }, mounted() { var path = window.location.pathname; // 编译后多e5 if (window.HIVUI_SETTING) { var serverName = window.HIVUI_SETTING.serverName; if (serverName && path.startsWith(serverName)) { path = path.substring(serverName.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>
<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 // 编译后多e5 if(window.HIVUI_SETTING){ var serverName = window.HIVUI_SETTING.serverName if(serverName && path.startsWith(serverName)){ path = path.substring(serverName.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>
Ignore Space
Show notes
View
project/hivuiBirt/funclib/LoadUtil.js
/** * 原生 动态加载后台资源js,json工具类 * @author cls * @date 2021-01-30 * import { LoadUtil } from "@birt/funclib/LoadUtil"; */ export const LoadUtil = { loadJs(url) { return new Promise((resolve, reject) => { let srcArr = document.getElementsByTagName("script"); let hasLoaded = false; for (let i = 0; i < srcArr.length; i++) { //判断当前js是否加载上 hasLoaded = (srcArr[i].src == url) ? true : false; } if (hasLoaded) { resolve(); return; } let script = document.createElement('script') script.type = 'text/javascript'; script.src = url; document.body.appendChild(script); script.onload = () => { resolve(); } script.onerror = () => { reject(); } }) }, // 动态加载报表模型(js) loadJsBirtModel({ loadModelUrl, routePath, token,pn,vId }) { return new Promise((resolve, reject) => { let url = this._getBirtModelUrl(loadModelUrl, routePath, token,pn,vId); this.loadJs(url).then((response) => { resolve(); }).catch(() => { reject(); }) }) }, // 获取加载报表模型地址 _getBirtModelUrl(loadModelUrl, routePath, token,pn,vId) { // let pi = routePath.lastIndexOf("."); // if (pi != -1) { // routePath = routePath.substring(0, pi); // } let url = `${loadModelUrl}?bizpath=${routePath}&access_token=${token}&pn=${pn}`; if(vId){ url += `&viewItemId=${vId}` } return url; } };
/** * 原生 动态加载后台资源js,json工具类 * @author cls * @date 2021-01-30 * import { LoadUtil } from "@birt/funclib/LoadUtil"; */ export const LoadUtil = { loadJs(url) { return new Promise((resolve, reject) => { let srcArr = document.getElementsByTagName("script"); let hasLoaded = false; for (let i = 0; i < srcArr.length; i++) { //判断当前js是否加载上 hasLoaded = (srcArr[i].src == url) ? true : false; } if (hasLoaded) { resolve(); return; } let script = document.createElement('script') script.type = 'text/javascript'; script.src = url; document.body.appendChild(script); script.onload = () => { resolve(); } script.onerror = () => { reject(); } }) }, // 动态加载报表模型(js) loadJsBirtModel({ loadModelUrl, routePath, token,pn }) { return new Promise((resolve, reject) => { let url = this._getBirtModelUrl(loadModelUrl, routePath, token,pn); this.loadJs(url).then((response) => { resolve(); }).catch(() => { reject(); }) }) }, // 获取加载报表模型地址 _getBirtModelUrl(loadModelUrl, routePath, token,pn) { let pi = routePath.lastIndexOf("."); if (pi != -1) { routePath = routePath.substring(0, pi); } let url = `${loadModelUrl}?bizpath=/deploy${routePath}.js&access_token=${token}&pn=${pn}`; return url; } };
Ignore Space
Show notes
View
project/hivuiBirt/index.js
import App from './App.vue' // import ElementUI from 'element-ui'; // import "hi-ui/lib/hi-ui.css"; // import 'font-awesome/css/font-awesome.css' Vue.use(ELEMENT, { size: 'mini' }) import Message from './components/vue-m-message' Vue.use(Message) // will mount `Vue.prototype.$message` import './assets/icon/iconfont.css'; import './styles/index.css'; import './assets/icon/iconfont.css'; import './styles/index.css' import "hi-taskcenter/hi-taskcenter.css" import hitaskcenter from 'hi-taskcenter'; Vue.use(hitaskcenter); import 'zhc-flowchart/lib/zhc-flowchart.css' import zhcflowchart from "zhc-flowchart"; Vue.use(zhcflowchart) import ZhcBirtCmps from 'zhc-birt-cmps' Vue.use(ZhcBirtCmps) // import window.HIVUI_SETTING from './window.HIVUI_SETTING' import { $HCBIRT } from "@birt/funclib/HCBIRT" import Cookies from 'js-cookie' import { setToken, } from "./utils/auth.js"; // Vue.use(ElementUI) console.log('token', Cookies.get('EAP-Token')) setToken(Cookies.get('EAP-Token') || '') import axios from "./funclib/AxiosUtil"; import pinyin from 'js-pinyin' Vue.prototype.Pinyin = pinyin import md5 from 'md5' Vue.prototype.Md5 = md5 import { Loading } from 'element-ui'; Vue.prototype.Loading = Loading Vue.prototype.$HCBIRT = $HCBIRT; Vue.prototype.$HI = { projectName: window.HIVUI_SETTING.projectName, serverUrl: window.HIVUI_SETTING.serverUrl, serverName: window.HIVUI_SETTING.serverName, request: axios, queryOperate: 'like', pageSize: 20, saveUrl: window.HIVUI_SETTING.saveUrl, queryUrl: window.HIVUI_SETTING.queryUrl, querysUrl: window.HIVUI_SETTING.serverUrl + "/data/querys", policyUrl: window.HIVUI_SETTING.policyUrl, enumsUrl: window.HIVUI_SETTING.serverUrl + "/platf/xtgn/enums/fgroupid/", upload: window.HIVUI_SETTING.upload, download: window.HIVUI_SETTING.download, review: window.HIVUI_SETTING.review, getFlowInfo: window.HIVUI_SETTING.getFlowInfo, getApprovalInfo: window.HIVUI_SETTING.getApprovalInfo, processFlow: window.HIVUI_SETTING.processFlow, queryTask: window.HIVUI_SETTING.queryTask, withdrawtask: window.HIVUI_SETTING.withdrawtask, taskDiagram: window.HIVUI_SETTING.taskDiagram, openOrdernumber: window.HIVUI_SETTING.openOrdernumber, birtModel: window.HIVUI_SETTING.serverUrl + "/birt/model1" }; console.log(5555,window.HIVUI_SETTING.queryUrl) new Vue({ render: h => h(App), }).$mount('#app')
import App from './App.vue' // import ElementUI from 'element-ui'; // import "hi-ui/lib/hi-ui.css"; // import 'font-awesome/css/font-awesome.css' Vue.use(ELEMENT, { size: 'mini' }) import Message from './components/vue-m-message' Vue.use(Message) // will mount `Vue.prototype.$message` import './assets/icon/iconfont.css'; import './styles/index.css'; import './assets/icon/iconfont.css'; import './styles/index.css' import "hi-taskcenter/hi-taskcenter.css" import hitaskcenter from 'hi-taskcenter'; Vue.use(hitaskcenter); import 'zhc-flowchart/lib/zhc-flowchart.css' import zhcflowchart from "zhc-flowchart"; Vue.use(zhcflowchart) import ZhcBirtCmps from 'zhc-birt-cmps' Vue.use(ZhcBirtCmps) // import window.HIVUI_SETTING from './window.HIVUI_SETTING' import { $HCBIRT } from "@birt/funclib/HCBIRT" import Cookies from 'js-cookie' import { setToken, } from "./utils/auth.js"; // Vue.use(ElementUI) console.log('token', Cookies.get('EAP-Token')) setToken(Cookies.get('EAP-Token') || '') import axios from "./funclib/AxiosUtil"; import pinyin from 'js-pinyin' Vue.prototype.Pinyin = pinyin import md5 from 'js-md5' Vue.prototype.Md5 = md5 import { Loading } from 'element-ui'; Vue.prototype.Loading = Loading Vue.prototype.$HCBIRT = $HCBIRT; Vue.prototype.$HI = { projectName: window.HIVUI_SETTING.projectName, serverUrl: window.HIVUI_SETTING.serverUrl, serverName: window.HIVUI_SETTING.serverName, request: axios, queryOperate: 'like', pageSize: 20, saveUrl: window.HIVUI_SETTING.saveUrl, queryUrl: window.HIVUI_SETTING.queryUrl, querysUrl: window.HIVUI_SETTING.serverUrl + "/data/querys", policyUrl: window.HIVUI_SETTING.policyUrl, enumsUrl: window.HIVUI_SETTING.serverUrl + "/platf/xtgn/enums/fgroupid/", upload: window.HIVUI_SETTING.upload, download: window.HIVUI_SETTING.download, review: window.HIVUI_SETTING.review, getFlowInfo: window.HIVUI_SETTING.getFlowInfo, getApprovalInfo: window.HIVUI_SETTING.getApprovalInfo, processFlow: window.HIVUI_SETTING.processFlow, queryTask: window.HIVUI_SETTING.queryTask, withdrawtask: window.HIVUI_SETTING.withdrawtask, taskDiagram: window.HIVUI_SETTING.taskDiagram, openOrdernumber: window.HIVUI_SETTING.openOrdernumber, birtModel: window.HIVUI_SETTING.serverUrl + "/birt/model1" }; console.log(5555,window.HIVUI_SETTING.queryUrl) new Vue({ render: h => h(App), }).$mount('#app')
Show line notes below