diff --git a/src/assets/images/Pass.png b/src/assets/images/Pass.png new file mode 100644 index 00000000..3f583618 Binary files /dev/null and b/src/assets/images/Pass.png differ diff --git a/src/assets/images/noPass.png b/src/assets/images/noPass.png new file mode 100644 index 00000000..6a210f1e Binary files /dev/null and b/src/assets/images/noPass.png differ diff --git a/src/assets/images/onlineTest_bg.png b/src/assets/images/onlineTest_bg.png new file mode 100644 index 00000000..9e1b749b Binary files /dev/null and b/src/assets/images/onlineTest_bg.png differ diff --git a/src/pages/index/index.js b/src/pages/index/index.js index f9c6ed4f..b4f7b82c 100644 --- a/src/pages/index/index.js +++ b/src/pages/index/index.js @@ -1,67 +1,71 @@ -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' -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' -import SlideVerify from 'vue-monoplasty-slide-verify'; //滑动验证 -import VueAwesomeSwiper from 'vue-awesome-swiper'; -import scroll from 'vue-seamless-scroll' -Vue.use(scroll) -import VueQuillEditor from 'vue-quill-editor' - -import 'quill/dist/quill.core.css' - -import 'quill/dist/quill.snow.css' - -import 'quill/dist/quill.bubble.css' +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"; +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"; +import SlideVerify from "vue-monoplasty-slide-verify"; //滑动验证 +import VueAwesomeSwiper from "vue-awesome-swiper"; +import scroll from "vue-seamless-scroll"; +Vue.use(scroll); +import VueQuillEditor from "vue-quill-editor"; -Vue.use(VueQuillEditor) // 注册富文本编辑器 +import "quill/dist/quill.core.css"; + +import "quill/dist/quill.snow.css"; + +import "quill/dist/quill.bubble.css"; + +Vue.use(VueQuillEditor); // 注册富文本编辑器 Vue.use(SlideVerify); Vue.use(VueAwesomeSwiper); // 全局组件挂载 -Vue.component('Pagination', Pagination) +Vue.component("Pagination", Pagination); // 全局方法挂载 -Vue.prototype.resetForm = resetForm +Vue.prototype.resetForm = resetForm; - - -if (COMPANY == 'xingxuan') { - if(window.location.href.indexOf('?project_id=') != -1) { - const projectId = window.location.href.split('?project_id=')[1].split('&')[0]; - login(projectId) +if (COMPANY == "xingxuan") { + if (window.location.href.indexOf("?project_id=") != -1) { + const projectId = window.location.href + .split("?project_id=")[1] + .split("&")[0]; + login(projectId); } function login(projectNumber) { - autoLogin({ projectNumber }).then(res => { - if (res.code != 200) return + autoLogin({ projectNumber }).then((res) => { + if (res.code != 200) return; parseLoginData(res.result); - }) + }); } function parseLoginData(data) { - window._paq.push(['trackEvent', '点击', '登录', '登录账号']) + window._paq.push(["trackEvent", "点击", "登录", "登录账号"]); axios.defaults.headers.common["Authorization"] = "Bearer" + " " + data.token; @@ -105,7 +109,7 @@ if (COMPANY == 'xingxuan') { switch (data.accountType) { case 1: store.commit("setMenuList", menu2); - store.commit("setProjectManageMenuList", menu2) + store.commit("setProjectManageMenuList", menu2); store.commit("setIsShowBackIndex", false); router.push("/registerAudit"); break; @@ -114,11 +118,11 @@ if (COMPANY == 'xingxuan') { case 4: case 7: store.commit("setMenuList", companyModule); - store.commit("setProjectManageMenuList", companyModule) + store.commit("setProjectManageMenuList", companyModule); store.commit("setIsShowBackIndex", false); - console.log('跳转路由',companyModule[0].modulePath); + console.log("跳转路由", companyModule[0].modulePath); router.push(companyModule[0].modulePath); - + break; case 5: store.commit("setProjectSn", data.sn); @@ -130,94 +134,93 @@ if (COMPANY == 'xingxuan') { } } - function handler(data, sn) { - console.log(data + sn, 'dllmhjc'); - console.log(sn, 'dllmhjc -- sn'); + console.log(data + sn, "dllmhjc"); + console.log(sn, "dllmhjc -- sn"); - window._paq.push(['trackEvent', '点击', '登录', '登录账号']) - axios.defaults.headers.common['Authorization'] = 'Bearer' + ' ' + data.token - axios.defaults.headers.common['operateId'] = data.userId + window._paq.push(["trackEvent", "点击", "登录", "登录账号"]); + axios.defaults.headers.common["Authorization"] = "Bearer" + " " + data.token; + axios.defaults.headers.common["operateId"] = data.userId; store.commit("setProjectSn", sn); - store.commit('setUserInfo', data) - var moduleList = data.menuAuthority.moduleList ? data.menuAuthority.moduleList : [] - var companyModule = [] + store.commit("setUserInfo", data); + var moduleList = data.menuAuthority.moduleList + ? data.menuAuthority.moduleList + : []; + var companyModule = []; if (moduleList.length == 0 && data.accountType != 1) { - return false + return false; } - moduleList.forEach(element => { + moduleList.forEach((element) => { if (element.moduleType == 1) { - companyModule.push(element) + companyModule.push(element); } - }) + }); var 菜单 = [ - { menuName: '企业管理', id: 9199, path: '/registerAudit' }, - { menuName: '模块菜单管理', id: 9299, path: '/moduleMenuManage' }, - { menuName: 'app版本管理', id: 9297, path: '/operateManage' }, - { menuName: '塔吊模型管理', id: 9298, path: '/brand' } - ] + { 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', 菜单) - store.commit('setProjectManageMenuList', 菜单) - store.commit('setIsShowBackIndex', false) - router.push('/registerAudit') - break + store.commit("setMenuList", 菜单); + store.commit("setProjectManageMenuList", 菜单); + store.commit("setIsShowBackIndex", false); + router.push("/registerAudit"); + break; case 2: case 3: case 4: case 7: - store.commit('setMenuList', companyModule) - store.commit('setProjectManageMenuList', companyModule) - store.commit('setIsShowBackIndex', false) - router.push(companyModule[0].modulePath) - store.commit('setProjectSn', sn) - break + store.commit("setMenuList", companyModule); + store.commit("setProjectManageMenuList", companyModule); + store.commit("setIsShowBackIndex", false); + router.push(companyModule[0].modulePath); + store.commit("setProjectSn", sn); + break; case 5: case 6: - if(PROJECT_TYPE != "zjsj"){ - //看看项目看板内有没有菜单 - let arr = data.menuAuthority.moduleList - let arr2=[] - arr.forEach(element => { - if(element.moduleType==4){ - arr2.push(element) - return - } - }); - console.log('arr2',arr2) - // 如果数组为空表示该用户没有权限访问 - if (!arr2.length) { - router.push("/projectIndex"); - }else{ - router.push(arr2[0].modulePath); - - } - }else{ - if (data.styleType == 1 || !data.styleType) { - router.push('/projectIndex') - } else if (data.styleType == 2) { - router.push('/projectV2/taskList') + if (PROJECT_TYPE != "zjsj") { + //看看项目看板内有没有菜单 + let arr = data.menuAuthority.moduleList; + let arr2 = []; + arr.forEach((element) => { + if (element.moduleType == 4) { + arr2.push(element); + return; + } + }); + console.log("arr2", arr2); + // 如果数组为空表示该用户没有权限访问 + if (!arr2.length) { + router.push("/projectIndex"); } else { - router.push('/projectV3/taskList') + router.push(arr2[0].modulePath); } - store.commit('setProjectSn', data.sn) - break + } else { + 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() } -let url = '' -console.log(COMPANY) -if (COMPANY == 'longguang') { - url = 'http://matomo.logan.com.cn'; +let url = ""; +console.log(COMPANY); +if (COMPANY == "longguang") { + url = "http://matomo.logan.com.cn"; } Vue.use(VueMatomo, { // url http://matomo-sit.logan.com.cn/index.php测试地址 - host: 'http://matomo.logan.com.cn', //生产 + host: "http://matomo.logan.com.cn", //生产 // host:'http://matomo-sit.logan.com.cn', //测试 // host:url, siteId: 47, @@ -229,82 +232,96 @@ Vue.use(VueMatomo, { requireCookieConsent: false, enableHeartBeatTimer: true, heartBeatTimerInterval: 15, - userId: '', - trackerFileName: 'matomo', + userId: "", + trackerFileName: "matomo", trackerUrl: undefined, trackerScriptUrl: undefined, debug: true, -}) -Vue.use(preview) +}); +Vue.use(preview); Vue.use(uploader); -Vue.prototype.$EventBus = new Vue() -Object.keys(filters).forEach(key => { - Vue.filter(key, filters[key]) -}) +Vue.prototype.$EventBus = new Vue(); +Object.keys(filters).forEach((key) => { + Vue.filter(key, filters[key]); +}); -Vue.config.productionTip = false +Vue.config.productionTip = false; Vue.use(vuescroll, { ops: { bar: { background: "rgba(166, 166, 167, 0.6)", onlyShowBarOnScroll: false, size: "5px", - minSize: 0.2 - } - } + minSize: 0.2, + }, + }, }); - // 加载缩略图 -Vue.prototype.downloadImgMin = function (row) { - let fileUrl = store.state.FILEURL + row.fileUrl - return fileUrl - +Vue.prototype.downloadImgMin = function(row) { + let fileUrl = store.state.FILEURL + row.fileUrl; + return fileUrl; }; //获取文件下载路径 -Vue.prototype.getDownloadFilePath = function (row) { - let fileUrl = store.state.FILEURL + row.fileUrl - return fileUrl +Vue.prototype.getDownloadFilePath = function(row) { + let fileUrl = store.state.FILEURL + row.fileUrl; + return fileUrl; }; //文件查看大图 -Vue.prototype.getViewFilePath = function (row) { - let fileUrl = store.state.FILEURL + row.fileUrl - return fileUrl +Vue.prototype.getViewFilePath = function(row) { + let fileUrl = store.state.FILEURL + row.fileUrl; + return fileUrl; }; + + + //路由监听 router.beforeEach((to, form, next) => { - const direction = to.query.direction - console.log('跳转',direction); - if (direction) { - const info = JSON.parse(decode(direction)) - const account = { account: info.acount, password: info.pwd } + const whitepage = ["/authentication", "/test", "/videoLearning",'/pages/projectEnd/safetyEducation/authentication']; - const tentative = res => { - console.log('res-----',res); - handler(res.result, info.projectSn) - return next({ path: to.path }) - } + console.log('白名单跳转生效了嘛==============11111111111 :',to); + + if (whitepage.includes(to.path)) { + console.log('白名单跳转生效了嘛=============='); + return next(); + } + const direction = to.query.direction; + console.log("跳转", direction); + if (direction) { + const info = JSON.parse(decode(direction)); + const account = { account: info.acount, password: info.pwd }; + + const tentative = (res) => { + console.log("res-----", res); + handler(res.result, info.projectSn); + return next({ path: to.path }); + }; if (LOGINTYPE == 1) { - loginApi(account).then(tentative) + loginApi(account).then(tentative); } else if (LOGINTYPE == 2) { - companyLoginApi(account).then(tentative) + companyLoginApi(account).then(tentative); } else if (LOGINTYPE == 3) { - projectLoginApi(account).then(tentative) + projectLoginApi(account).then(tentative); } - - }else { - if (COMPANY == 'xingxuan') return next() + } 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: '/' }); + } else if ( + !store.state.userInfo && + to.path != "/login" && + to.path != "/" && + to.path != "/sign" && + !isDockingToWoer && + to.path != "/authorization" + ) { + next({ path: "/" }); } else { next(); } } -}) - +}); // Vue.prototype.$EventBus = new Vue() @@ -312,6 +329,5 @@ new Vue({ router, store, i18n, - render: h => h(App) -}).$mount('#app') - + render: (h) => h(App), +}).$mount("#app"); diff --git a/src/views/projectFront/examination/authentication.vue b/src/views/projectFront/examination/authentication.vue index fb81671c..927b9c5d 100644 --- a/src/views/projectFront/examination/authentication.vue +++ b/src/views/projectFront/examination/authentication.vue @@ -1,18 +1,18 @@
- - -
{{ score }}分
+ /> + +
+ {{ score }}分 +
@@ -267,45 +269,44 @@ export default { } - diff --git a/src/views/projectFront/examination/videoLearning.vue b/src/views/projectFront/examination/videoLearning.vue index 6a22a818..86026019 100644 --- a/src/views/projectFront/examination/videoLearning.vue +++ b/src/views/projectFront/examination/videoLearning.vue @@ -95,36 +95,54 @@ export default { diff --git a/src/views/projectFront/safetyEducation/addCourse.vue b/src/views/projectFront/safetyEducation/addCourse.vue index 14782903..a980a3c5 100644 --- a/src/views/projectFront/safetyEducation/addCourse.vue +++ b/src/views/projectFront/safetyEducation/addCourse.vue @@ -663,9 +663,10 @@ export default { new QRCode('workerQRcode' + index, { width: width, height: height, // 高度 + text: url + - '/authentication?eduId=' + + '#/authentication?eduId=' + this.eduId + '&projectSn=' + this.$store.state.projectSn, // 二维码内容