Merge branch 'dev-yjl' into 'shenzhen-dev'

项目版-安全教育 扫一扫考试页面开发

See merge request !122
This commit is contained in:
袁晶琳 2023-03-17 10:47:05 +08:00
commit f08f9c3919
8 changed files with 342 additions and 249 deletions

BIN
src/assets/images/Pass.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 KiB

View File

@ -1,67 +1,71 @@
import Vue from 'vue' import Vue from "vue";
import App from './index.vue' import App from "./index.vue";
import router from '@/router/index' import router from "@/router/index";
import VueMatomo from 'vue-matomo' import VueMatomo from "vue-matomo";
import store from '@/store' import store from "@/store";
import '@/plugins/element.js' import "@/plugins/element.js";
import vuescroll from 'vuescroll' import vuescroll from "vuescroll";
import uploader from 'vue-simple-uploader' import uploader from "vue-simple-uploader";
import i18n from '@/assets/i18n/i18n' import i18n from "@/assets/i18n/i18n";
import preview from 'vue-photo-preview' import preview from "vue-photo-preview";
import 'vue-photo-preview/dist/skin.css' import "vue-photo-preview/dist/skin.css";
import * as filters from '@/filters/index.js' import * as filters from "@/filters/index.js";
import '@/assets/iconfont/iconfont.css' import "@/assets/iconfont/iconfont.css";
import '@/assets/style/layout.less' import "@/assets/style/layout.less";
import '@/assets/style/button.less' import "@/assets/style/button.less";
import '@/assets/style/table.less' import "@/assets/style/table.less";
import '@/assets/style/dialog.less' import "@/assets/style/dialog.less";
import '@/assets/style/pagination.less' import "@/assets/style/pagination.less";
import axios from 'axios' import axios from "axios";
import { Message } from 'element-ui' import { Message } from "element-ui";
import Pagination from '@/components/Pagination' import Pagination from "@/components/Pagination";
import { resetForm } from '@/util' import { resetForm } from "@/util";
import { autoLogin } from '@/assets/js/api/autoLogin-xingXuan' import { autoLogin } from "@/assets/js/api/autoLogin-xingXuan";
import { decode, encode } from 'js-base64' import { decode, encode } from "js-base64";
import { loginApi, companyLoginApi, projectLoginApi } from '@/assets/js/api/loginSign' import {
import SlideVerify from 'vue-monoplasty-slide-verify'; //滑动验证 loginApi,
import VueAwesomeSwiper from 'vue-awesome-swiper'; companyLoginApi,
import scroll from 'vue-seamless-scroll' projectLoginApi,
Vue.use(scroll) } from "@/assets/js/api/loginSign";
import VueQuillEditor from 'vue-quill-editor' 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.core.css";
import 'quill/dist/quill.snow.css' import "quill/dist/quill.snow.css";
import 'quill/dist/quill.bubble.css' import "quill/dist/quill.bubble.css";
Vue.use(VueQuillEditor) // 注册富文本编辑器 Vue.use(VueQuillEditor); // 注册富文本编辑器
Vue.use(SlideVerify); Vue.use(SlideVerify);
Vue.use(VueAwesomeSwiper); 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) {
if (COMPANY == 'xingxuan') { const projectId = window.location.href
if(window.location.href.indexOf('?project_id=') != -1) { .split("?project_id=")[1]
const projectId = window.location.href.split('?project_id=')[1].split('&')[0]; .split("&")[0];
login(projectId) login(projectId);
} }
function login(projectNumber) { function login(projectNumber) {
autoLogin({ projectNumber }).then(res => { autoLogin({ projectNumber }).then((res) => {
if (res.code != 200) return if (res.code != 200) return;
parseLoginData(res.result); parseLoginData(res.result);
}) });
} }
function parseLoginData(data) { function parseLoginData(data) {
window._paq.push(['trackEvent', '点击', '登录', '登录账号']) window._paq.push(["trackEvent", "点击", "登录", "登录账号"]);
axios.defaults.headers.common["Authorization"] = axios.defaults.headers.common["Authorization"] =
"Bearer" + " " + data.token; "Bearer" + " " + data.token;
@ -105,7 +109,7 @@ if (COMPANY == 'xingxuan') {
switch (data.accountType) { switch (data.accountType) {
case 1: case 1:
store.commit("setMenuList", menu2); store.commit("setMenuList", menu2);
store.commit("setProjectManageMenuList", menu2) store.commit("setProjectManageMenuList", menu2);
store.commit("setIsShowBackIndex", false); store.commit("setIsShowBackIndex", false);
router.push("/registerAudit"); router.push("/registerAudit");
break; break;
@ -114,9 +118,9 @@ if (COMPANY == 'xingxuan') {
case 4: case 4:
case 7: case 7:
store.commit("setMenuList", companyModule); store.commit("setMenuList", companyModule);
store.commit("setProjectManageMenuList", companyModule) store.commit("setProjectManageMenuList", companyModule);
store.commit("setIsShowBackIndex", false); store.commit("setIsShowBackIndex", false);
console.log('跳转路由',companyModule[0].modulePath); console.log("跳转路由", companyModule[0].modulePath);
router.push(companyModule[0].modulePath); router.push(companyModule[0].modulePath);
break; break;
@ -130,94 +134,93 @@ if (COMPANY == 'xingxuan') {
} }
} }
function handler(data, sn) { function handler(data, sn) {
console.log(data + sn, 'dllmhjc'); console.log(data + sn, "dllmhjc");
console.log(sn, 'dllmhjc -- sn'); console.log(sn, "dllmhjc -- sn");
window._paq.push(['trackEvent', '点击', '登录', '登录账号']) window._paq.push(["trackEvent", "点击", "登录", "登录账号"]);
axios.defaults.headers.common['Authorization'] = 'Bearer' + ' ' + data.token axios.defaults.headers.common["Authorization"] = "Bearer" + " " + data.token;
axios.defaults.headers.common['operateId'] = data.userId axios.defaults.headers.common["operateId"] = data.userId;
store.commit("setProjectSn", sn); store.commit("setProjectSn", sn);
store.commit('setUserInfo', data) store.commit("setUserInfo", data);
var moduleList = data.menuAuthority.moduleList ? data.menuAuthority.moduleList : [] var moduleList = data.menuAuthority.moduleList
var companyModule = [] ? data.menuAuthority.moduleList
: [];
var companyModule = [];
if (moduleList.length == 0 && data.accountType != 1) { if (moduleList.length == 0 && data.accountType != 1) {
return false return false;
} }
moduleList.forEach(element => { moduleList.forEach((element) => {
if (element.moduleType == 1) { if (element.moduleType == 1) {
companyModule.push(element) companyModule.push(element);
} }
}) });
var 菜单 = [ var 菜单 = [
{ menuName: '企业管理', id: 9199, path: '/registerAudit' }, { menuName: "企业管理", id: 9199, path: "/registerAudit" },
{ menuName: '模块菜单管理', id: 9299, path: '/moduleMenuManage' }, { menuName: "模块菜单管理", id: 9299, path: "/moduleMenuManage" },
{ menuName: 'app版本管理', id: 9297, path: '/operateManage' }, { menuName: "app版本管理", id: 9297, path: "/operateManage" },
{ menuName: '塔吊模型管理', id: 9298, path: '/brand' } { menuName: "塔吊模型管理", id: 9298, path: "/brand" },
] ];
switch (data.accountType) { switch (data.accountType) {
case 1: case 1:
store.commit('setMenuList', 菜单) store.commit("setMenuList", 菜单);
store.commit('setProjectManageMenuList', 菜单) store.commit("setProjectManageMenuList", 菜单);
store.commit('setIsShowBackIndex', false) store.commit("setIsShowBackIndex", false);
router.push('/registerAudit') router.push("/registerAudit");
break break;
case 2: case 2:
case 3: case 3:
case 4: case 4:
case 7: case 7:
store.commit('setMenuList', companyModule) store.commit("setMenuList", companyModule);
store.commit('setProjectManageMenuList', companyModule) store.commit("setProjectManageMenuList", companyModule);
store.commit('setIsShowBackIndex', false) store.commit("setIsShowBackIndex", false);
router.push(companyModule[0].modulePath) router.push(companyModule[0].modulePath);
store.commit('setProjectSn', sn) store.commit("setProjectSn", sn);
break break;
case 5: case 5:
case 6: case 6:
if(PROJECT_TYPE != "zjsj"){ if (PROJECT_TYPE != "zjsj") {
//看看项目看板内有没有菜单 //看看项目看板内有没有菜单
let arr = data.menuAuthority.moduleList let arr = data.menuAuthority.moduleList;
let arr2=[] let arr2 = [];
arr.forEach(element => { arr.forEach((element) => {
if(element.moduleType==4){ if (element.moduleType == 4) {
arr2.push(element) arr2.push(element);
return return;
} }
}); });
console.log('arr2',arr2) console.log("arr2", arr2);
// 如果数组为空表示该用户没有权限访问 // 如果数组为空表示该用户没有权限访问
if (!arr2.length) { if (!arr2.length) {
router.push("/projectIndex"); 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')
} else { } else {
router.push('/projectV3/taskList') router.push(arr2[0].modulePath);
} }
store.commit('setProjectSn', data.sn) } else {
break 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() // this.selectMp3FileList()
} }
let url = '' let url = "";
console.log(COMPANY) console.log(COMPANY);
if (COMPANY == 'longguang') { if (COMPANY == "longguang") {
url = 'http://matomo.logan.com.cn'; url = "http://matomo.logan.com.cn";
} }
Vue.use(VueMatomo, { Vue.use(VueMatomo, {
// url http://matomo-sit.logan.com.cn/index.php测试地址 // 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:'http://matomo-sit.logan.com.cn', //测试
// host:url, // host:url,
siteId: 47, siteId: 47,
@ -229,82 +232,96 @@ Vue.use(VueMatomo, {
requireCookieConsent: false, requireCookieConsent: false,
enableHeartBeatTimer: true, enableHeartBeatTimer: true,
heartBeatTimerInterval: 15, heartBeatTimerInterval: 15,
userId: '', userId: "",
trackerFileName: 'matomo', trackerFileName: "matomo",
trackerUrl: undefined, trackerUrl: undefined,
trackerScriptUrl: undefined, trackerScriptUrl: undefined,
debug: true, debug: true,
}) });
Vue.use(preview) Vue.use(preview);
Vue.use(uploader); Vue.use(uploader);
Vue.prototype.$EventBus = new Vue() Vue.prototype.$EventBus = new Vue();
Object.keys(filters).forEach(key => { Object.keys(filters).forEach((key) => {
Vue.filter(key, filters[key]) Vue.filter(key, filters[key]);
}) });
Vue.config.productionTip = false Vue.config.productionTip = false;
Vue.use(vuescroll, { Vue.use(vuescroll, {
ops: { ops: {
bar: { bar: {
background: "rgba(166, 166, 167, 0.6)", background: "rgba(166, 166, 167, 0.6)",
onlyShowBarOnScroll: false, onlyShowBarOnScroll: false,
size: "5px", size: "5px",
minSize: 0.2 minSize: 0.2,
} },
} },
}); });
// 加载缩略图 // 加载缩略图
Vue.prototype.downloadImgMin = function (row) { Vue.prototype.downloadImgMin = function(row) {
let fileUrl = store.state.FILEURL + row.fileUrl let fileUrl = store.state.FILEURL + row.fileUrl;
return fileUrl return fileUrl;
}; };
//获取文件下载路径 //获取文件下载路径
Vue.prototype.getDownloadFilePath = function (row) { Vue.prototype.getDownloadFilePath = function(row) {
let fileUrl = store.state.FILEURL + row.fileUrl let fileUrl = store.state.FILEURL + row.fileUrl;
return fileUrl return fileUrl;
}; };
//文件查看大图 //文件查看大图
Vue.prototype.getViewFilePath = function (row) { Vue.prototype.getViewFilePath = function(row) {
let fileUrl = store.state.FILEURL + row.fileUrl let fileUrl = store.state.FILEURL + row.fileUrl;
return fileUrl return fileUrl;
}; };
//路由监听 //路由监听
router.beforeEach((to, form, next) => { router.beforeEach((to, form, next) => {
const direction = to.query.direction const whitepage = ["/authentication", "/test", "/videoLearning",'/pages/projectEnd/safetyEducation/authentication'];
console.log('跳转',direction);
if (direction) {
const info = JSON.parse(decode(direction))
const account = { account: info.acount, password: info.pwd }
const tentative = res => { console.log('白名单跳转生效了嘛==============11111111111 :',to);
console.log('res-----',res);
handler(res.result, info.projectSn) if (whitepage.includes(to.path)) {
return next({ path: 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) { if (LOGINTYPE == 1) {
loginApi(account).then(tentative) loginApi(account).then(tentative);
} else if (LOGINTYPE == 2) { } else if (LOGINTYPE == 2) {
companyLoginApi(account).then(tentative) companyLoginApi(account).then(tentative);
} else if (LOGINTYPE == 3) { } else if (LOGINTYPE == 3) {
projectLoginApi(account).then(tentative) projectLoginApi(account).then(tentative);
} }
} else {
}else { if (COMPANY == "xingxuan") return next();
if (COMPANY == 'xingxuan') return next()
if (store.state.userInfo) { if (store.state.userInfo) {
next(); next();
} else if (!store.state.userInfo && to.path != '/login' && to.path != '/' && to.path != '/sign' && !isDockingToWoer && to.path != '/authorization') { } else if (
next({ path: '/' }); !store.state.userInfo &&
to.path != "/login" &&
to.path != "/" &&
to.path != "/sign" &&
!isDockingToWoer &&
to.path != "/authorization"
) {
next({ path: "/" });
} else { } else {
next(); next();
} }
} }
}) });
// Vue.prototype.$EventBus = new Vue() // Vue.prototype.$EventBus = new Vue()
@ -312,6 +329,5 @@ new Vue({
router, router,
store, store,
i18n, i18n,
render: h => h(App) render: (h) => h(App),
}).$mount('#app') }).$mount("#app");

View File

@ -1,9 +1,8 @@
<template> <template>
<div>
<div class="fullHeight"> <div class="fullHeight">
<!-- <image src="/static/onlineTest_bg.png" class="onlineTest_bg"></image> --> <img src="@/assets/images/onlineTest_bg.png" class="onlineTest_bg" />
<div class="centerBox"> <div class="centerBox">
<img src="@/assets/images/aqjy.png" class="aqjyImg" /> <!-- <img src="@/assets/images/aqjy.png" class="aqjyImg" /> -->
<div class="inputContent"> <div class="inputContent">
<input <input
class="inputBox" class="inputBox"
@ -11,8 +10,9 @@
v-model="idCard" v-model="idCard"
placeholder="请输入身份证号码" placeholder="请输入身份证号码"
/> />
<div class="confirmBtn" @click="verifyFn">开始培训</div>
</div> </div>
<div type="primary" class="btn submitBtn big" @click="verifyFn">
<span>开始培训</span>
</div> </div>
</div> </div>
</div> </div>
@ -28,9 +28,10 @@ export default {
eduId: '' eduId: ''
} }
}, },
created(options) { created() {
this.projectSn = this.$store.state.projectSn console.log('收到的参数 :', this.$route.query)
this.eduId = '1636008037212958721' this.projectSn = this.$route.query.projectSn
this.eduId = this.$route.query.eduId
}, },
methods: { methods: {
verifyFn() { verifyFn() {
@ -43,7 +44,11 @@ export default {
projectSn: this.projectSn projectSn: this.projectSn
}).then((result) => { }).then((result) => {
if (result.result) { if (result.result) {
this.$message.success('验证成功!') // this.$message({
// message: '',
// type: 'success'
// })
// this.$message.success('')
setTimeout(() => { setTimeout(() => {
this.$router.push({ this.$router.push({
path: '/videoLearning', path: '/videoLearning',
@ -60,22 +65,27 @@ export default {
} }
</script> </script>
<style scoped> <style lang='less' scoped>
.onlineTest_bg { .onlineTest_bg {
width: 100%;
height: 180rem;
margin-top: -83rem;
}
.fullHeight {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.centerBox { .centerBox {
position: absolute; position: absolute;
left: 50%; left: 50%;
top: 50%; top: 90%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
text-align: center; text-align: center;
} }
.aqjyImg { .aqjyImg {
width: 120px; width: 50rem;
height: 100px; height: 40rem;
margin-bottom: 30px; margin-bottom: 15rem;
} }
.inputContent { .inputContent {
/* position: fixed; /* position: fixed;
@ -87,21 +97,29 @@ export default {
justify-content: center; justify-content: center;
} }
.inputBox { .inputBox {
margin-top: 30rem;
background-color: white; background-color: white;
border-radius: 4px; border-radius: 2rem;
padding: 10px 10px; padding: 3rem 0rem;
width: 200px; width: 80rem;
font-size: 15px; font-size: 6.5rem;
display: inline-block; display: inline-block;
margin-right: 10px; margin-right: 2rem;
border: 1px solid rgba(63, 83, 110, 0.5); border: 0.5rem solid rgba(63, 83, 110, 0.5);
/* margin-left: 2rem; */
} }
.confirmBtn { .submitBtn {
background-color: #4181fe; margin: -55rem -13rem;
color: white; position: fixed;
font-size: 15px; bottom: 10rem;
padding: 10px 20px; /* left: 20px; */
border-radius: 4px; width: calc(130% - 0rem);
width: 60px; background: #4181fe;
height: 15rem;
border: none;
color: #fff;
font-size: 7.5rem;
border-radius: 10rem;
line-height: 15rem;
} }
</style> </style>

View File

@ -102,13 +102,15 @@
</template> </template>
</dialogs> </dialogs>
<div class="testResultBox" v-if="showResult"> <div class="testResultBox" v-if="showResult">
<image <img
v-if="isQualified == 1" v-if="isQualified == 1"
src="/static/Pass.png" src="@/assets/images/Pass.png"
class="resultImg" class="resultImg"
></image> />
<image v-else src="/static/noPass.png" class="resultImg"></image> <img v-else src="@/assets/images/noPass.png" class="resultImg" />
<div class="score">{{ score }}</div> <div class="score">
<span>{{ score }}</span>
</div>
</div> </div>
</div> </div>
</template> </template>
@ -267,45 +269,44 @@ export default {
} }
</script> </script>
<style scoped> <style lang="less" scoped>
.tips { .tips {
font-size: 14px; font-size: 7rem;
color: red; color: red;
margin: 10px 0; margin: 5rem 5rem;
text-align: center; text-align: center;
} }
.blockBox { .blockBox {
box-shadow: 0 4px 24px 0px rgba(212, 220, 236, 0.69); box-shadow: 0 2rem 12rem 0px rgba(212, 220, 236, 0.69);
border-radius: 8px; border-radius: 4rem;
margin: 15px; margin: 7.5rem;
padding: 15px; padding: 5rem;
position: relative; position: relative;
} }
.optionItem { .optionItem {
/* padding-left: 20px; */ /* padding-left: 20px; */
margin-top: 10px; margin-top: 5rem;
font-size: 14px; font-size: 7rem;
display: block; display: block;
} }
.desc { .desc {
margin-left: 5px; margin-left: 2.5rem;
} }
.checkbox { .checkbox {
transform: scale(0.8); transform: scale(0.8);
} }
.submitBtn { .submitBtn {
/* margin: 15px 20px; */ margin: -70rem 5rem;
/* position: fixed; position: fixed;
bottom: 20px; bottom: 10rem;
left: 20px; */ /* left: 20px; */
width: calc(100% - 40px); width: calc(100% - 10rem);
margin: 20px;
height: 44px;
border-radius: 20px;
background: #4181fe; background: #4181fe;
color: #fff; height: 15rem;
border: none; border: none;
font-size: 20px; color: #fff;
font-size: 7.5rem;
border-radius: 10rem;
} }
.testResultBox { .testResultBox {
position: fixed; position: fixed;
@ -316,29 +317,68 @@ export default {
z-index: 99999; z-index: 99999;
} }
.resultImg { .resultImg {
width: 100%; width: 90%;
height: 100%; height: 180%;
margin: -30rem 6rem;
} }
.score { .score {
position: fixed; position: relative;
left: 50%; left: 50%;
top: 55%; top: -32%;
font-size: 70px; width: 55rem;
width: 200px; height: 55rem;
height: 200px;
border-radius: 50%; border-radius: 50%;
border: 8px solid #fdcb05; border: 4rem solid #fdcb05;
color: #fdcb05;
text-align: center; text-align: center;
line-height: 200px; line-height: 100rem;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
span {
width: 55rem;
position: absolute;
// display: inline-block;
color: #fdcb05;
font-size: 20rem;
margin-top: -22rem;
margin-left: -28rem;
}
} }
.headers { .headers {
border-bottom: 1px solid #f3f3f3; /* border-bottom: 0.5rem solid #f3f3f3; */
height: 50px; height: 8rem;
color: #3d4490; color: #3d4490;
font-size: 18px; font-size: 7.5rem;
text-align: center; 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> </style>

View File

@ -95,36 +95,54 @@ export default {
</script> </script>
<style scoped> <style scoped>
.fullHeight {
width: 100%;
height: 120%;
}
.videoBox { .videoBox {
width: 100%; width: 100%;
height: 300px; height: 100rem;
margin: 10px 0; margin: 0rem 0;
} }
.courseTitle { .courseTitle {
padding: 0 15px; font-size: 7.5rem;
padding: 2rem 7.5rem;
} }
.desc { .desc {
font-size: 12px; font-size: 6rem;
opacity: 0.6; opacity: 0.6;
padding: 5px 0 0 15px; padding: 2.5rem 0 0 7.5rem;
} }
.submitBtn { .submitBtn {
/* margin: 15px 20px; */ margin: -70rem 5rem;
position: fixed; position: fixed;
bottom: 20px; bottom: 10rem;
/* left: 20px; */ /* left: 20px; */
width: calc(100% - 0px); width: calc(100% - 10rem);
background: #4181fe; background: #4181fe;
height: 44px; height: 15rem;
border: none; border: none;
color: #fff; color: #fff;
font-size: 7.5rem;
border-radius: 10rem;
} }
.headers { .headers {
border-bottom: 1px solid #f3f3f3; /* border-bottom: 0.5rem solid #f3f3f3; */
height: 50px; height: 8rem;
color: #3d4490; color: #3d4490;
font-size: 18px; font-size: 7.5rem;
text-align: center; 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> </style>

View File

@ -663,9 +663,10 @@ export default {
new QRCode('workerQRcode' + index, { new QRCode('workerQRcode' + index, {
width: width, width: width,
height: height, // height: height, //
text: text:
url + url +
'/authentication?eduId=' + '#/authentication?eduId=' +
this.eduId + this.eduId +
'&projectSn=' + '&projectSn=' +
this.$store.state.projectSn, // this.$store.state.projectSn, //