Merge branch 'dev-yjl' into 'shenzhen-dev'
项目版-安全教育 扫一扫考试页面开发 See merge request !122
This commit is contained in:
commit
f08f9c3919
BIN
src/assets/images/Pass.png
Normal file
BIN
src/assets/images/Pass.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
BIN
src/assets/images/noPass.png
Normal file
BIN
src/assets/images/noPass.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
BIN
src/assets/images/onlineTest_bg.png
Normal file
BIN
src/assets/images/onlineTest_bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 231 KiB |
@ -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");
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="fullHeight">
|
||||
<!-- <image src="/static/onlineTest_bg.png" class="onlineTest_bg"></image> -->
|
||||
<div class="centerBox">
|
||||
<img src="@/assets/images/aqjy.png" class="aqjyImg" />
|
||||
<div class="inputContent">
|
||||
<input
|
||||
class="inputBox"
|
||||
type="text"
|
||||
v-model="idCard"
|
||||
placeholder="请输入身份证号码"
|
||||
/>
|
||||
<div class="confirmBtn" @click="verifyFn">开始培训</div>
|
||||
</div>
|
||||
<div class="fullHeight">
|
||||
<img src="@/assets/images/onlineTest_bg.png" class="onlineTest_bg" />
|
||||
<div class="centerBox">
|
||||
<!-- <img src="@/assets/images/aqjy.png" class="aqjyImg" /> -->
|
||||
<div class="inputContent">
|
||||
<input
|
||||
class="inputBox"
|
||||
type="text"
|
||||
v-model="idCard"
|
||||
placeholder="请输入身份证号码"
|
||||
/>
|
||||
</div>
|
||||
<div type="primary" class="btn submitBtn big" @click="verifyFn">
|
||||
<span>开始培训</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -28,9 +28,10 @@ export default {
|
||||
eduId: ''
|
||||
}
|
||||
},
|
||||
created(options) {
|
||||
this.projectSn = this.$store.state.projectSn
|
||||
this.eduId = '1636008037212958721'
|
||||
created() {
|
||||
console.log('收到的参数 :', this.$route.query)
|
||||
this.projectSn = this.$route.query.projectSn
|
||||
this.eduId = this.$route.query.eduId
|
||||
},
|
||||
methods: {
|
||||
verifyFn() {
|
||||
@ -43,7 +44,11 @@ export default {
|
||||
projectSn: this.projectSn
|
||||
}).then((result) => {
|
||||
if (result.result) {
|
||||
this.$message.success('验证成功!')
|
||||
// this.$message({
|
||||
// message: '验证成功!',
|
||||
// type: 'success'
|
||||
// })
|
||||
// this.$message.success('验证成功!')
|
||||
setTimeout(() => {
|
||||
this.$router.push({
|
||||
path: '/videoLearning',
|
||||
@ -60,22 +65,27 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style lang='less' scoped>
|
||||
.onlineTest_bg {
|
||||
width: 100%;
|
||||
height: 180rem;
|
||||
margin-top: -83rem;
|
||||
}
|
||||
.fullHeight {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.centerBox {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
top: 90%;
|
||||
transform: translate(-50%, -50%);
|
||||
text-align: center;
|
||||
}
|
||||
.aqjyImg {
|
||||
width: 120px;
|
||||
height: 100px;
|
||||
margin-bottom: 30px;
|
||||
width: 50rem;
|
||||
height: 40rem;
|
||||
margin-bottom: 15rem;
|
||||
}
|
||||
.inputContent {
|
||||
/* position: fixed;
|
||||
@ -87,21 +97,29 @@ export default {
|
||||
justify-content: center;
|
||||
}
|
||||
.inputBox {
|
||||
margin-top: 30rem;
|
||||
background-color: white;
|
||||
border-radius: 4px;
|
||||
padding: 10px 10px;
|
||||
width: 200px;
|
||||
font-size: 15px;
|
||||
border-radius: 2rem;
|
||||
padding: 3rem 0rem;
|
||||
width: 80rem;
|
||||
font-size: 6.5rem;
|
||||
display: inline-block;
|
||||
margin-right: 10px;
|
||||
border: 1px solid rgba(63, 83, 110, 0.5);
|
||||
margin-right: 2rem;
|
||||
border: 0.5rem solid rgba(63, 83, 110, 0.5);
|
||||
/* margin-left: 2rem; */
|
||||
}
|
||||
.confirmBtn {
|
||||
background-color: #4181fe;
|
||||
color: white;
|
||||
font-size: 15px;
|
||||
padding: 10px 20px;
|
||||
border-radius: 4px;
|
||||
width: 60px;
|
||||
.submitBtn {
|
||||
margin: -55rem -13rem;
|
||||
position: fixed;
|
||||
bottom: 10rem;
|
||||
/* left: 20px; */
|
||||
width: calc(130% - 0rem);
|
||||
background: #4181fe;
|
||||
height: 15rem;
|
||||
border: none;
|
||||
color: #fff;
|
||||
font-size: 7.5rem;
|
||||
border-radius: 10rem;
|
||||
line-height: 15rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -102,13 +102,15 @@
|
||||
</template>
|
||||
</dialogs>
|
||||
<div class="testResultBox" v-if="showResult">
|
||||
<image
|
||||
<img
|
||||
v-if="isQualified == 1"
|
||||
src="/static/Pass.png"
|
||||
src="@/assets/images/Pass.png"
|
||||
class="resultImg"
|
||||
></image>
|
||||
<image v-else src="/static/noPass.png" class="resultImg"></image>
|
||||
<div class="score">{{ score }}分</div>
|
||||
/>
|
||||
<img v-else src="@/assets/images/noPass.png" class="resultImg" />
|
||||
<div class="score">
|
||||
<span>{{ score }}分</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -267,45 +269,44 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style lang="less" scoped>
|
||||
.tips {
|
||||
font-size: 14px;
|
||||
font-size: 7rem;
|
||||
color: red;
|
||||
margin: 10px 0;
|
||||
margin: 5rem 5rem;
|
||||
text-align: center;
|
||||
}
|
||||
.blockBox {
|
||||
box-shadow: 0 4px 24px 0px rgba(212, 220, 236, 0.69);
|
||||
border-radius: 8px;
|
||||
margin: 15px;
|
||||
padding: 15px;
|
||||
box-shadow: 0 2rem 12rem 0px rgba(212, 220, 236, 0.69);
|
||||
border-radius: 4rem;
|
||||
margin: 7.5rem;
|
||||
padding: 5rem;
|
||||
position: relative;
|
||||
}
|
||||
.optionItem {
|
||||
/* padding-left: 20px; */
|
||||
margin-top: 10px;
|
||||
font-size: 14px;
|
||||
margin-top: 5rem;
|
||||
font-size: 7rem;
|
||||
display: block;
|
||||
}
|
||||
.desc {
|
||||
margin-left: 5px;
|
||||
margin-left: 2.5rem;
|
||||
}
|
||||
.checkbox {
|
||||
transform: scale(0.8);
|
||||
}
|
||||
.submitBtn {
|
||||
/* margin: 15px 20px; */
|
||||
/* position: fixed;
|
||||
bottom: 20px;
|
||||
left: 20px; */
|
||||
width: calc(100% - 40px);
|
||||
margin: 20px;
|
||||
height: 44px;
|
||||
border-radius: 20px;
|
||||
margin: -70rem 5rem;
|
||||
position: fixed;
|
||||
bottom: 10rem;
|
||||
/* left: 20px; */
|
||||
width: calc(100% - 10rem);
|
||||
background: #4181fe;
|
||||
color: #fff;
|
||||
height: 15rem;
|
||||
border: none;
|
||||
font-size: 20px;
|
||||
color: #fff;
|
||||
font-size: 7.5rem;
|
||||
border-radius: 10rem;
|
||||
}
|
||||
.testResultBox {
|
||||
position: fixed;
|
||||
@ -316,29 +317,68 @@ export default {
|
||||
z-index: 99999;
|
||||
}
|
||||
.resultImg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
width: 90%;
|
||||
height: 180%;
|
||||
margin: -30rem 6rem;
|
||||
}
|
||||
.score {
|
||||
position: fixed;
|
||||
position: relative;
|
||||
left: 50%;
|
||||
top: 55%;
|
||||
font-size: 70px;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
top: -32%;
|
||||
width: 55rem;
|
||||
height: 55rem;
|
||||
border-radius: 50%;
|
||||
border: 8px solid #fdcb05;
|
||||
color: #fdcb05;
|
||||
border: 4rem solid #fdcb05;
|
||||
text-align: center;
|
||||
line-height: 200px;
|
||||
line-height: 100rem;
|
||||
transform: translate(-50%, -50%);
|
||||
|
||||
span {
|
||||
width: 55rem;
|
||||
position: absolute;
|
||||
// display: inline-block;
|
||||
color: #fdcb05;
|
||||
font-size: 20rem;
|
||||
margin-top: -22rem;
|
||||
margin-left: -28rem;
|
||||
}
|
||||
}
|
||||
.headers {
|
||||
border-bottom: 1px solid #f3f3f3;
|
||||
height: 50px;
|
||||
/* border-bottom: 0.5rem solid #f3f3f3; */
|
||||
height: 8rem;
|
||||
color: #3d4490;
|
||||
font-size: 18px;
|
||||
font-size: 7.5rem;
|
||||
text-align: center;
|
||||
line-height: 50px;
|
||||
line-height: 6rem;
|
||||
margin-top: -55%;
|
||||
/* background-color: pink; */
|
||||
}
|
||||
.testTilte {
|
||||
font-size: 6rem;
|
||||
}
|
||||
|
||||
::v-deep .el-checkbox__label {
|
||||
font-size: 4rem;
|
||||
line-height: 10rem;
|
||||
}
|
||||
::v-deep .el-checkbox__inner {
|
||||
margin-top: -2rem;
|
||||
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
line-height: 10rem;
|
||||
|
||||
/* border: 0.5rem solid #fff; */
|
||||
}
|
||||
::v-deep .el-radio__inner {
|
||||
margin-top: -2rem;
|
||||
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
line-height: 10rem;
|
||||
}
|
||||
::v-deep .el-radio__label {
|
||||
font-size: 4rem;
|
||||
line-height: 10rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -95,36 +95,54 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.fullHeight {
|
||||
width: 100%;
|
||||
height: 120%;
|
||||
}
|
||||
.videoBox {
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
margin: 10px 0;
|
||||
height: 100rem;
|
||||
margin: 0rem 0;
|
||||
}
|
||||
.courseTitle {
|
||||
padding: 0 15px;
|
||||
font-size: 7.5rem;
|
||||
|
||||
padding: 2rem 7.5rem;
|
||||
}
|
||||
.desc {
|
||||
font-size: 12px;
|
||||
font-size: 6rem;
|
||||
opacity: 0.6;
|
||||
padding: 5px 0 0 15px;
|
||||
padding: 2.5rem 0 0 7.5rem;
|
||||
}
|
||||
.submitBtn {
|
||||
/* margin: 15px 20px; */
|
||||
margin: -70rem 5rem;
|
||||
position: fixed;
|
||||
bottom: 20px;
|
||||
bottom: 10rem;
|
||||
/* left: 20px; */
|
||||
width: calc(100% - 0px);
|
||||
width: calc(100% - 10rem);
|
||||
background: #4181fe;
|
||||
height: 44px;
|
||||
height: 15rem;
|
||||
border: none;
|
||||
color: #fff;
|
||||
font-size: 7.5rem;
|
||||
border-radius: 10rem;
|
||||
}
|
||||
.headers {
|
||||
border-bottom: 1px solid #f3f3f3;
|
||||
height: 50px;
|
||||
/* border-bottom: 0.5rem solid #f3f3f3; */
|
||||
height: 8rem;
|
||||
color: #3d4490;
|
||||
font-size: 18px;
|
||||
font-size: 7.5rem;
|
||||
text-align: center;
|
||||
line-height: 50px;
|
||||
line-height: 6rem;
|
||||
margin-top: -55%;
|
||||
/* background-color: pink; */
|
||||
}
|
||||
|
||||
/* 播放器按钮 */
|
||||
::v-deep video::-webkit-media-controls-play-button {
|
||||
/* background-image: url(play-button.png); */
|
||||
/* display: none; */
|
||||
width: 200rem;
|
||||
height: 200rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -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, // 二维码内容
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user