zhgdyun/src/pages/index/index.js

379 lines
11 KiB
JavaScript
Raw Normal View History

2022-06-08 14:51:11 +08:00
import Vue from 'vue'
import App from './index.vue'
import router from '@/router/index'
import VueMatomo from 'vue-matomo'
import store from '@/store'
import '@/plugins/element.js'
import vuescroll from 'vuescroll'
import uploader from 'vue-simple-uploader'
2022-06-08 14:51:11 +08:00
import i18n from '@/assets/i18n/i18n'
import preview from 'vue-photo-preview'
import 'vue-photo-preview/dist/skin.css'
import * as filters from '@/filters/index.js'
import '@/assets/iconfont/iconfont.css'
import '@/assets/style/layout.less'
import '@/assets/style/button.less'
import '@/assets/style/table.less'
import '@/assets/style/dialog.less'
import '@/assets/style/pagination.less'
import axios from 'axios'
import { Message } from 'element-ui'
import Pagination from '@/components/Pagination'
import { resetForm } from '@/util'
import { autoLogin } from '@/assets/js/api/autoLogin-xingXuan'
import { decode, encode } from 'js-base64'
import { loginApi, companyLoginApi, projectLoginApi } from '@/assets/js/api/loginSign'
2022-06-08 14:51:11 +08:00
// 全局组件挂载
Vue.component('Pagination', Pagination)
// 全局方法挂载
Vue.prototype.resetForm = resetForm
2022-06-08 14:51:11 +08:00
if (COMPANY == 'xingxuan') {
// tag: 测试功能
if (window.location.href.indexOf('?project_id=') != -1) {
2022-06-08 14:51:11 +08:00
const projectId = window.location.href.split('?project_id=')[1].split('&')[0];
login(projectId)
2022-06-08 14:51:11 +08:00
}
function login(projectNumber) {
2022-06-08 14:51:11 +08:00
// TODO: 对接登录接口
autoLogin({ projectNumber }).then(res => {
if (res.code != 200) return
parseLoginData(res.result);
})
2022-06-08 14:51:11 +08:00
}
function parseLoginData(data) {
window._paq.push(['trackEvent', '点击', '登录', '登录账号'])
2022-06-08 14:51:11 +08:00
axios.defaults.headers.common["Authorization"] =
"Bearer" + " " + data.token;
axios.defaults.headers.common["operateId"] = data.userId;
store.commit("setUserInfo", data);
var moduleList = data.menuAuthority.moduleList
? data.menuAuthority.moduleList
: [];
var companyModule = [];
if (moduleList.length == 0 && data.accountType != 1) {
Message.warning("当前账号还没分配权限");
return false;
}
moduleList.forEach((element) => {
if (element.moduleType == 1) {
companyModule.push(element);
}
});
var menu2 = [
{
menuName: "企业管理",
id: 9199,
path: "/registerAudit",
},
{
menuName: "模块菜单管理",
id: 9299,
path: "/moduleMenuManage",
},
{
menuName: "app版本管理",
id: 9297,
path: "/operateManage",
},
{
menuName: "塔吊模型管理",
id: 9298,
path: "/brand",
},
];
switch (data.accountType) {
case 1:
store.commit("setMenuList", menu2);
store.commit("setProjectManageMenuList", menu2)
2022-06-08 14:51:11 +08:00
store.commit("setIsShowBackIndex", false);
router.push("/registerAudit");
break;
case 2:
store.commit("setMenuList", companyModule);
store.commit("setProjectManageMenuList", companyModule)
2022-06-08 14:51:11 +08:00
store.commit("setIsShowBackIndex", false);
router.push(companyModule[0].modulePath);
break;
case 3:
store.commit("setMenuList", companyModule);
store.commit("setProjectManageMenuList", companyModule)
2022-06-08 14:51:11 +08:00
store.commit("setIsShowBackIndex", false);
router.push(companyModule[0].modulePath);
break;
case 4:
store.commit("setMenuList", companyModule);
store.commit("setProjectManageMenuList", companyModule)
2022-06-08 14:51:11 +08:00
store.commit("setIsShowBackIndex", false);
router.push(companyModule[0].modulePath);
break;
case 7:
store.commit("setMenuList", companyModule);
store.commit("setProjectManageMenuList", companyModule)
2022-06-08 14:51:11 +08:00
store.commit("setIsShowBackIndex", false);
router.push(companyModule[0].modulePath);
break;
case 5:
// if (data.styleType == 1 || !data.styleType) {
// debugger
// router.push("/projectIndex");
// } else {
// router.push("/projectV2/taskList");
// }
2022-06-08 14:51:11 +08:00
store.commit("setProjectSn", data.sn);
break;
case 6:
// if (data.styleType == 1 || !data.styleType) {
// debugger
// router.push("/projectIndex");
// } else {
// router.push("/projectV2/taskList");
// }
2022-06-08 14:51:11 +08:00
store.commit("setProjectSn", data.sn);
break;
}
}
}
function parseLoginData(data) {
console.log(data, 'dllmhjc');
window._paq.push(['trackEvent', '点击', '登录', '登录账号'])
axios.defaults.headers.common['Authorization'] = 'Bearer' + ' ' + data.token
axios.defaults.headers.common['operateId'] = data.userId
store.commit('setUserInfo', data)
const sn = data.sn
const xxx = JSON.parse(sessionStorage.getItem('vuex'))
xxx.projectSn = sn
console.log(data, 'sssssssssssssssssssssssssssss', xxx);
var moduleList = data.menuAuthority.moduleList ? data.menuAuthority.moduleList : []
var companyModule = []
if (moduleList.length == 0 && data.accountType != 1) {
return false
}
moduleList.forEach(element => {
if (element.moduleType == 1) {
companyModule.push(element)
}
})
var menu2 = [
{
menuName: '企业管理',
id: 9199,
path: '/registerAudit'
},
{
menuName: '模块菜单管理',
id: 9299,
path: '/moduleMenuManage'
},
{
menuName: 'app版本管理',
id: 9297,
path: '/operateManage'
},
{
menuName: '塔吊模型管理',
id: 9298,
path: '/brand'
}
]
switch (data.accountType) {
case 1:
store.commit('setMenuList', menu2)
store.commit('setProjectManageMenuList', menu2)
console.log('-----------', menu2)
store.commit('setIsShowBackIndex', false)
router.push('/registerAudit')
break
case 2:
store.commit('setMenuList', companyModule)
store.commit('setProjectManageMenuList', companyModule)
store.commit('setIsShowBackIndex', false)
router.push(companyModule[0].modulePath)
break
case 3:
store.commit('setMenuList', companyModule)
store.commit('setProjectManageMenuList', companyModule)
store.commit('setIsShowBackIndex', false)
router.push(companyModule[0].modulePath)
break
case 4:
store.commit('setMenuList', companyModule)
store.commit('setProjectManageMenuList', companyModule)
store.commit('setIsShowBackIndex', false)
router.push(companyModule[0].modulePath)
break
case 7:
store.commit('setMenuList', companyModule)
store.commit('setProjectManageMenuList', companyModule)
store.commit('setIsShowBackIndex', false)
router.push(companyModule[0].modulePath)
break
case 5:
// styleType == 3 衢州版
if (data.styleType == 1 || !data.styleType) {
router.push('/projectIndex')
} else if (data.styleType == 2) {
router.push('/projectV2/taskList')
} else {
router.push('/projectV3/taskList')
}
store.commit('setProjectSn', data.sn)
break
case 6:
if (data.styleType == 1 || !data.styleType) {
router.push('/projectIndex')
} else if (data.styleType == 2) {
router.push('/projectV2/taskList')
} else {
router.push('/projectV3/taskList')
}
store.commit('setProjectSn', data.sn)
break
}
// this.selectMp3FileList()
}
2022-06-08 14:51:11 +08:00
let url = ''
console.log(COMPANY)
if (COMPANY == 'longguang') {
2022-06-08 14:51:11 +08:00
url = 'http://matomo.logan.com.cn';
}
Vue.use(VueMatomo, {
2022-06-08 14:51:11 +08:00
// url http://matomo-sit.logan.com.cn/index.php测试地址
host: 'http://matomo.logan.com.cn', //生产
// host:'http://matomo-sit.logan.com.cn', //测试
// host:url,
siteId: 47,
router: router,
requireConsent: false,
enbleLinkTracking: true,
trackInitialView: true,
disableCookies: false,
2022-06-08 14:51:11 +08:00
requireCookieConsent: false,
enableHeartBeatTimer: true,
heartBeatTimerInterval: 15,
// trackerFileName: 'piwik',
userId: '',
2022-06-08 14:51:11 +08:00
trackerFileName: 'matomo',
trackerUrl: undefined,
trackerScriptUrl: undefined,
debug: true,
})
Vue.use(preview)
Vue.use(uploader);
Vue.prototype.$EventBus = new Vue()
Object.keys(filters).forEach(key => {
Vue.filter(key, filters[key])
})
Vue.config.productionTip = false
Vue.use(vuescroll, {
ops: {
bar: {
// background: "rgba(54, 51, 106, 0.6)",
background: "rgba(166, 166, 167, 0.6)",
// keepShow: false,
onlyShowBarOnScroll: false,
size: "5px",
minSize: 0.2
}
}
});
// 加载缩略图
Vue.prototype.downloadImgMin = function (row) {
let fileUrl = store.state.FILEURL + row.fileUrl
2022-06-08 14:51:11 +08:00
// let isOSS = row.isOSS
// if (isOSS == 1) { //阿里云OSS对象存储
// fileUrl = "https://" + sessionStorage.getItem("viewDomain") + fileUrl + "?x-oss-process=image/resize,m_fill,h_150,w_150/rotate,0";
// } else { //本地磁盘存储
// let index = fileUrl.lastIndexOf(".");
// fileUrl = "api" + fileUrl.substr(0, index) + "_min" + fileUrl.substr(index);
// }
return fileUrl
2022-06-08 14:51:11 +08:00
};
/**
* 当然你还可以在这里封装并挂载更多的全局函数在这里示例同上
*/
//获取文件下载路径
Vue.prototype.getDownloadFilePath = function (row) {
let fileUrl = store.state.FILEURL + row.fileUrl
// let isOSS = row.isOSS
// if (isOSS == 1) { //阿里云OSS对象存储
// fileUrl = "https://" + sessionStorage.getItem("downloadDomain") + fileUrl;
// } else { //本地磁盘存储
// fileUrl = "api" + fileUrl;
// }
return fileUrl
};
//文件查看大图
Vue.prototype.getViewFilePath = function (row) {
let fileUrl = store.state.FILEURL + row.fileUrl
// let isOSS = row.isOSS
// if (isOSS == 1) { //阿里云OSS对象存储
// fileUrl = "https://" + sessionStorage.getItem("viewDomain") + fileUrl;
// } else { //本地磁盘存储
// fileUrl = "api" + fileUrl;
// }
return fileUrl
};
2022-06-08 14:51:11 +08:00
//监听 路由
router.beforeEach((to, form, next) => {
const direction = to.query.direction
if (direction) {
const info = JSON.parse(decode(direction))
console.log(to, encode('{"account":"17512009894","password":"123456789"}'));
if (LOGINTYPE == 1) {
loginApi(info).then(res => {
parseLoginData(res.result)
return next({ path: to.path })
})
} else if (LOGINTYPE == 2) {
companyLoginApi(info).then(res => {
parseLoginData(res.result)
return next({ path: to.path })
})
} else if (LOGINTYPE == 3) {
projectLoginApi(info).then(res => {
parseLoginData(res.result)
return next({ path: to.path })
})
}
} else {
if (COMPANY == 'xingxuan') return next()
if (store.state.userInfo) {
next();
} else if (!store.state.userInfo && to.path != '/login' && to.path != '/' && to.path != '/sign' && !isDockingToWoer && to.path != '/authorization') {
// next({path:'login'});
next({ path: '/' });
} else {
next();
}
2022-06-08 14:51:11 +08:00
}
})
// Vue.prototype.$EventBus = new Vue()
new Vue({
router,
store,
i18n,
render: h => h(App)
}).$mount('#app')