实验报告等修复

Branch_d40a2540
yujialong 2 years ago
parent c4728b007c
commit 7bc3f3313c
  1. 8
      src/api/index.js
  2. 11
      src/components/pdf/index.vue
  3. 5
      src/layouts/header/index.vue
  4. 2
      src/pages/account/login/index.vue
  5. 23
      src/pages/achievement/show/index.vue
  6. 8
      src/pages/project/add/index.vue
  7. 23
      src/pages/station/preview/index.vue
  8. 4
      src/pages/student/list/index.vue
  9. 2
      src/pages/system/list/staff.vue
  10. 13
      src/setting.js
  11. 5
      src/store/modules/user.js

@ -1,7 +1,7 @@
import Setting from "@/setting"; import Setting from "@/setting";
const host = Setting.apiBaseURL const host = Setting.apiBaseURL
const uploadURL = Setting.upload.apiURL; const uploadURL = Setting.upload.apiURL;
const host1 = "http://121.37.12.51:8080/" const host1 = "https://www.occupationlab.com:8080/"
const host2 = 'http://192.168.31.137:9000/' const host2 = 'http://192.168.31.137:9000/'
export default { export default {
@ -46,7 +46,7 @@ export default {
saveOrg: `occupationlab/occupationlab/architecture/save`, // 新增组织架构 saveOrg: `occupationlab/occupationlab/architecture/save`, // 新增组织架构
updateOrg: `occupationlab/occupationlab/architecture/update`, // 编辑组织架构 updateOrg: `occupationlab/occupationlab/architecture/update`, // 编辑组织架构
deleteOrg: `occupationlab/occupationlab/architecture/delete`, // 删除组织架构 deleteOrg: `occupationlab/occupationlab/architecture/delete`, // 删除组织架构
studentTemplate: `http://121.37.12.51/template/学生导入模板.xlsx`, // 学生导入模板 studentTemplate: `https://www.occupationlab.com/template/学生导入模板.xlsx`, // 学生导入模板
// 测评管理 // 测评管理
questionsList: `occupationlab/occupationlab/questions/list`, // 题库列表查询 questionsList: `occupationlab/occupationlab/questions/list`, // 题库列表查询
@ -55,7 +55,7 @@ export default {
questionsDetail: `occupationlab/occupationlab/questions/detail`, // 查看当前题库信息 questionsDetail: `occupationlab/occupationlab/questions/detail`, // 查看当前题库信息
questionsDelete: `occupationlab/occupationlab/questions/delete`, // 根据主键删除 questionsDelete: `occupationlab/occupationlab/questions/delete`, // 根据主键删除
questionsIsDisable: `occupationlab/occupationlab/questions/isDisable`, // 是否禁用试题 questionsIsDisable: `occupationlab/occupationlab/questions/isDisable`, // 是否禁用试题
questionsTemplate: `http://121.37.12.51/template/试题导入模板.xlsx`, //excel模板文件下载 questionsTemplate: `https://www.occupationlab.com/template/试题导入模板.xlsx`, //excel模板文件下载
questionsImport: `${host}occupationlab/occupationlab/questions/importQuestion`, // 批量导入题库 questionsImport: `${host}occupationlab/occupationlab/questions/importQuestion`, // 批量导入题库
questionsExportFailure: `${host}occupationlab/occupationlab/questions/exportFailure`, // 批量导入题库失败数据导出 questionsExportFailure: `${host}occupationlab/occupationlab/questions/exportFailure`, // 批量导入题库失败数据导出
questionsInfo: `occupationlab/occupationlab/questions/info`, // 测评规则信息的展示 questionsInfo: `occupationlab/occupationlab/questions/info`, // 测评规则信息的展示
@ -230,7 +230,7 @@ export default {
modifyStaff: `occupationlab/occupationlab/staff/modifyStaff`, //编辑员工 modifyStaff: `occupationlab/occupationlab/staff/modifyStaff`, //编辑员工
delStaff: `occupationlab/occupationlab/staff/delStaff`, //删除员工 delStaff: `occupationlab/occupationlab/staff/delStaff`, //删除员工
staffList: `occupationlab/occupationlab/staff/staffList`, //员工列表 staffList: `occupationlab/occupationlab/staff/staffList`, //员工列表
staffTemplate: `http://121.37.12.51/template/员工用户导入模板.xlsx`, //员工用户导入模板 staffTemplate: `https://www.occupationlab.com/template/员工用户导入模板.xlsx`, //员工用户导入模板
exportFailureStaff: `${host}occupationlab/occupationlab/staff/exportFailure`, //批量导入员工失败数据导出 exportFailureStaff: `${host}occupationlab/occupationlab/staff/exportFailure`, //批量导入员工失败数据导出
importStaff: `${host}occupationlab/occupationlab/staff/importStaff`, //批量导入员工 importStaff: `${host}occupationlab/occupationlab/staff/importStaff`, //批量导入员工
// 角色管理 // 角色管理

@ -9,12 +9,15 @@
:modal="false" :modal="false"
:append-to-body="true"> :append-to-body="true">
<div> <div>
<button type="button" aria-label="Close" class="el-dialog__headerbtn" @click="closePdf"><i class="el-dialog__close el-icon el-icon-close"></i></button> <button type="button" aria-label="Close" class="el-dialog__headerbtn" @click="closePdf"><i
class="el-dialog__close el-icon el-icon-close"></i></button>
<div class="pdf"> <div class="pdf">
<p class="arrow"> <p class="arrow">
<span @click="changePdfPage(0)" class="turn el-icon-arrow-left" :class="{grey: currentPage==1}"></span> <span @click="changePdfPage(0)" class="turn el-icon-arrow-left"
:class="{grey: currentPage==1}"></span>
{{ currentPage }} / {{ pageCount }} {{ currentPage }} / {{ pageCount }}
<span @click="changePdfPage(1)" class="turn el-icon-arrow-right" :class="{grey: currentPage==pageCount}"></span> <span @click="changePdfPage(1)" class="turn el-icon-arrow-right"
:class="{grey: currentPage==pageCount}"></span>
</p> </p>
<pdf <pdf
class="pdf-wrap" class="pdf-wrap"
@ -51,7 +54,7 @@ export default {
methods: { methods: {
closePdf() { closePdf() {
this.$emit("update:visible", false); this.$emit("update:visible", false);
this.$emit("update:src", ""); // this.$emit("update:src", "");
this.currentPage = 1; this.currentPage = 1;
}, },
changePdfPage(val) { changePdfPage(val) {

@ -63,7 +63,7 @@ export default {
}, },
methods: { methods: {
...mapMutations("user", [ ...mapMutations("user", [
'SET_SCHOOLID' 'SET_SCHOOLID', 'setUserId'
]), ]),
...mapActions("user", [ ...mapActions("user", [
"setTitle", "setLogoUrl", "setAvatar", "setUserName", 'logout' "setTitle", "setLogoUrl", "setAvatar", "setUserName", 'logout'
@ -87,7 +87,8 @@ export default {
this.$get(this.api.queryUserInfoDetails).then(res => { this.$get(this.api.queryUserInfoDetails).then(res => {
let { hrUserInfo } = res.result let { hrUserInfo } = res.result
if (hrUserInfo) { if (hrUserInfo) {
const { userAvatars, userName } = hrUserInfo const { userAvatars, userName, userId } = hrUserInfo
this.setUserId(userId)
userAvatars && this.setAvatar(userAvatars) userAvatars && this.setAvatar(userAvatars)
this.setUserName(userName) this.setUserName(userName)
} else { } else {

@ -37,7 +37,7 @@
<el-dialog title="绑定手机号" :visible.sync="phoneVisible" :close-on-click-modal="false" width="30%"> <el-dialog title="绑定手机号" :visible.sync="phoneVisible" :close-on-click-modal="false" width="30%">
<div style='padding: 0 13px 20px 13px;'> <div style='padding: 0 13px 20px 13px;'>
依据国家政策法规需绑定手机号进行网络实名才可登录使用本平台 依据国家政策法规需绑定手机号进行网络实名才可登录使用本平台
</div> </div>
<el-form ref="form" label-width="60px"> <el-form ref="form" label-width="60px">
<el-form-item label="手机号"> <el-form-item label="手机号">

@ -90,7 +90,7 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="ruleAnswer" label="参考答案" style='word-wrap: break-word' align="center"> <el-table-column prop="ruleAnswer" label="参考答案" style='word-wrap: break-word'>
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if='scope.row.lcRuleRecords'> <div v-if='scope.row.lcRuleRecords'>
<div v-for="(item, index) in scope.row.lcRuleRecords" :key="index"> <div v-for="(item, index) in scope.row.lcRuleRecords" :key="index">
@ -102,7 +102,7 @@
<div v-else v-html="scope.row.referenceAnswer"></div> <div v-else v-html="scope.row.referenceAnswer"></div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="userAnswer" label="学生答案" align="center"> <el-table-column prop="userAnswer" label="学生答案">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if='scope.row.lcRuleRecords'> <div v-if='scope.row.lcRuleRecords'>
<div v-for="(item, index) in scope.row.lcRuleRecords" :key="index"> <div v-for="(item, index) in scope.row.lcRuleRecords" :key="index">
@ -115,6 +115,9 @@
</div> </div>
</div> </div>
<div v-else v-html='scope.row.answer' style='white-space: pre-wrap'></div> <div v-else v-html='scope.row.answer' style='white-space: pre-wrap'></div>
<template v-if="scope.row.runThePictureList">
<img v-for="(img, i) in scope.row.runThePictureList" :key="i" width="200" class="result-pic" :src="img" alt="">
</template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="score" label="得分" width="80" align="center"></el-table-column> <el-table-column prop="score" label="得分" width="80" align="center"></el-table-column>
@ -152,7 +155,8 @@ export default {
editing: false, editing: false,
loadIns: null, loadIns: null,
loading: false, loading: false,
project:false project:false,
userScores: []
}; };
}, },
mounted() { mounted() {
@ -176,6 +180,7 @@ export default {
userName: form.userName userName: form.userName
} }
const data = report.data const data = report.data
this.userScores = userScores
// data使 // data使
if (!data) { if (!data) {
this.handleList(userScores) this.handleList(userScores)
@ -184,7 +189,7 @@ export default {
data: JSON.stringify(userScores) data: JSON.stringify(userScores)
}).then(res => {}).catch(err => {}) }).then(res => {}).catch(err => {})
} else { } else {
this.handleList(JSON.parse(data)) this.handleList(userScores.find(e => e.lcRuleRecords) ? userScores : JSON.parse(data))
} }
}).catch(res => {}) }).catch(res => {})
}, },
@ -206,11 +211,14 @@ export default {
this.expData = list this.expData = list
}, },
exportPage() { exportPage() {
const form = JSON.parse(JSON.stringify(this.form)) const form = Object.assign(this.form, this.infoData)
const list = JSON.parse(JSON.stringify(this.expData)) const list = JSON.parse(JSON.stringify(this.expData))
list.map((e, i) => { list.map((e, i) => {
const item = this.userScores.find(n => n.judgmentId == e.judgmentId)
if (item && item.runThePicture) e.runThePicture = item.runThePicture
if (item && item.runThePictureList) e.runThePictureList = item.runThePictureList
e.id = i + 1 e.id = i + 1
if (e.referenceAnswer && typeof e.referenceAnswer === 'string') e.referenceAnswer = e.referenceAnswer.replace(/<[^>]+>/g, '').replace(/(&nbsp;|&amp;|%s)/g, '').replace(/>/g, '&gt;').replace(/</g, '&lt;') // if (e.referenceAnswer && typeof e.referenceAnswer === 'string') e.referenceAnswer = e.referenceAnswer.replace(/<[^>]+>/g, '').replace(/(&nbsp;|&amp;|%s)/g, '').replace(/>/g, '&gt;').replace(/</g, '&lt;')
if (e.answer && typeof e.answer === 'string') e.answer = e.answer.replace(/<[^>]+>/g, '').replace(/(&nbsp;|&amp;|%s)/g, '').replace(/>/g, '&gt;').replace(/</g, '&lt;') if (e.answer && typeof e.answer === 'string') e.answer = e.answer.replace(/<[^>]+>/g, '').replace(/(&nbsp;|&amp;|%s)/g, '').replace(/>/g, '&gt;').replace(/</g, '&lt;')
}) })
for (const i in form) { for (const i in form) {
@ -343,6 +351,9 @@ code, kbd, samp{
} }
} }
} }
.result-pic {
margin: 10px 0;
}
@media (max-width: 1650px) { @media (max-width: 1650px) {
.wrap { .wrap {
padding: 12px 200px 20px; padding: 12px 200px 20px;

@ -200,7 +200,7 @@ export default {
isDetail: Boolean(this.$route.query.show), isDetail: Boolean(this.$route.query.show),
projectManage: { projectManage: {
founder: 0, // (0 1) founder: 1, // (0 1)
projectName: "", // projectName: "", //
permissions: 0, // (0 1 2) permissions: 0, // (0 1 2)
systemId: this.$store.state.project.lastSystemId, // id systemId: this.$store.state.project.lastSystemId, // id
@ -510,7 +510,7 @@ export default {
}; };
if (systemId == 2 || systemId == 3) { if (systemId == 2 || systemId == 3) {
console.log("系统id:", systemId); console.log("系统id:", systemId);
} else if (systemId == 11) { } else if (systemId == 11 || systemId == 12) {
// () // ()
this.rowKey = "lcId"; this.rowKey = "lcId";
this.getProcessClassData(params); this.getProcessClassData(params);
@ -586,7 +586,7 @@ export default {
console.log(systemId); console.log(systemId);
} else if (systemId == 3) { } else if (systemId == 3) {
console.log(systemId); console.log(systemId);
} else if (systemId == 11) { } else if (systemId == 11 || systemId == 12) {
// //
href = `${jumpPath}#/Transaction?isView=true&systemId=${systemId}&lcId=${row.judgmentId}&token=${this.token}&referrer=${window.btoa(location.href)}`; href = `${jumpPath}#/Transaction?isView=true&systemId=${systemId}&lcId=${row.judgmentId}&token=${this.token}&referrer=${window.btoa(location.href)}`;
} else { } else {
@ -599,7 +599,7 @@ export default {
console.log(systemId); console.log(systemId);
} else if (systemId == 3) { } else if (systemId == 3) {
console.log(systemId); console.log(systemId);
} else if (systemId == 11) { } else if (systemId == 11 || systemId == 12) {
// //
href = `${jumpPath}#/Transaction?isEdit=true&systemId=${systemId}&lcId=${row.judgmentId}&token=${this.token}&referrer=${btoa(location.href)}`; href = `${jumpPath}#/Transaction?isEdit=true&systemId=${systemId}&lcId=${row.judgmentId}&token=${this.token}&referrer=${btoa(location.href)}`;
} else { } else {

@ -26,6 +26,7 @@
</template> </template>
</template> </template>
<div class="pdf inner" v-else-if="pdfSrc"> <div class="pdf inner" v-else-if="pdfSrc">
<img class="full" src="@/assets/img/screen/full.png" alt="" @click="fullScreen">
<p class="arrow"> <p class="arrow">
<span @click="changePdfPage(0)" class="turn el-icon-arrow-left" <span @click="changePdfPage(0)" class="turn el-icon-arrow-left"
:class="{grey: currentPage==1}"></span> :class="{grey: currentPage==1}"></span>
@ -100,6 +101,8 @@
<img src="@/assets/img/wechat-code.jpeg" alt=""> <img src="@/assets/img/wechat-code.jpeg" alt="">
</div> </div>
</el-dialog> </el-dialog>
<pdfDia :key="pdfVisible" :visible.sync="pdfVisible" :src.sync="pdfSrc"/>
</div> </div>
</template> </template>
@ -111,10 +114,9 @@ import pdf from "vue-pdf";
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";
import bus from "@/libs/bus"; import pdfDia from '@/components/pdf'
export default { export default {
components: { pdf }, components: { pdf, pdfDia },
data() { data() {
return { return {
courseId: this.$route.query.courseId, courseId: this.$route.query.courseId,
@ -262,7 +264,6 @@ export default {
this.coverUrl = row.fileUrl; this.coverUrl = row.fileUrl;
} else if (row.fileType == "pdf") { } else if (row.fileType == "pdf") {
this.pdfSrc = row.fileUrl; this.pdfSrc = row.fileUrl;
this.pdfVisible = true;
} else { } else {
this.$get(`${this.api.curriculumGetSubsection}/${row.id}`).then(res => { this.$get(`${this.api.curriculumGetSubsection}/${row.id}`).then(res => {
if (row.fileType == "pptx") { if (row.fileType == "pptx") {
@ -328,6 +329,10 @@ export default {
loadPdfHandler(e) { loadPdfHandler(e) {
this.currentPage = 1; this.currentPage = 1;
}, },
// pdf
fullScreen() {
this.pdfVisible = true
},
// //
selectProject(item) { selectProject(item) {
this.curProject = item.projectId this.curProject = item.projectId
@ -401,7 +406,7 @@ export default {
location.href = `${Setting.bankPath}/#/index/list?curriculumName=${this.curriculumName}&token=${token}&cid=${this.courseId}&systemId=${this.systemIds}&projectId=${this.curProject}&assessmentId=&classId=&stopTime=&test=true&manager=1` location.href = `${Setting.bankPath}/#/index/list?curriculumName=${this.curriculumName}&token=${token}&cid=${this.courseId}&systemId=${this.systemIds}&projectId=${this.curProject}&assessmentId=&classId=&stopTime=&test=true&manager=1`
} else if (systemId == 12) { } else if (systemId == 12) {
// //
window.open(`http://120.78.139.126:8879?systemId=${systemId}&courseId=${this.courseId}&projectId=${this.curProject}&token=${token}`); window.open(`http://120.78.139.126:8879?systemId=${systemId}&courseId=${this.courseId}&projectId=${this.curProject}&token=${token}&userId=${this.userId}&classId=1`);
} else if (systemId == 21) { } else if (systemId == 21) {
window.open(`http://121.37.29.24:80/yyyflogin?userId=${this.userId}&userName=${userName}&userType=${roleId}&reqType=1&reqId=3989a0ad671849b99dcbdcc208782333&caseId=9681f86902314b10bc752909121f9ab9&authorization=87DIVy348Oxzj3ha&classId=1876&courserId=7ff5d4715b114b7398b6f26c20fac460`); window.open(`http://121.37.29.24:80/yyyflogin?userId=${this.userId}&userName=${userName}&userType=${roleId}&reqType=1&reqId=3989a0ad671849b99dcbdcc208782333&caseId=9681f86902314b10bc752909121f9ab9&authorization=87DIVy348Oxzj3ha&classId=1876&courserId=7ff5d4715b114b7398b6f26c20fac460`);
} else if (systemId == 22) { } else if (systemId == 22) {
@ -625,6 +630,14 @@ $height: 700px;
} }
} }
.pdf{ .pdf{
position: relative;
margin-top: 0 !important;
.full {
position: absolute;
top: 7px;
right: 10px;
cursor: pointer;
}
.arrow{ .arrow{
padding: 10px 0; padding: 10px 0;
display: flex; display: flex;

@ -572,7 +572,7 @@ export default {
architectureId: this.architectureId, architectureId: this.architectureId,
level: this.orgLevel, level: this.orgLevel,
keyWord: this.keyWord, keyWord: this.keyWord,
pageNum: 1, pageNum: this.page,
pageSize: this.pageSize pageSize: this.pageSize
}; };
this.$post(this.api.organizationalStudentList, params).then(res => { this.$post(this.api.organizationalStudentList, params).then(res => {
@ -679,7 +679,7 @@ export default {
}, },
resetPassword(row) { // resetPassword(row) { //
this.$confirm(`重置后的密码为:${Setting.initialPassword},确定重置?`, "提示", { type: "warning" }).then(() => { this.$confirm(`重置后的密码为:${Setting.initialPassword},确定重置?`, "提示", { type: "warning" }).then(() => {
this.$get(`${this.api.resetPassword}?userId=${row.userId}&newPwd=111aaa`).then(res => { this.$get(`${this.api.resetPassword}?userId=${row.userId}&newPwd=1122aa`).then(res => {
util.successMsg("重置成功"); util.successMsg("重置成功");
}).catch(res => { }).catch(res => {
}); });

@ -300,7 +300,7 @@ export default {
}, },
resetPassword(row) { // resetPassword(row) { //
this.$confirm(`重置后的密码为:${Setting.initialPassword},确定重置?`, "提示", { type: "warning" }).then(() => { this.$confirm(`重置后的密码为:${Setting.initialPassword},确定重置?`, "提示", { type: "warning" }).then(() => {
this.$get(`${this.api.resetPassword}?userId=${row.userId}&newPwd=111aaa`).then(res => { this.$get(`${this.api.resetPassword}?userId=${row.userId}&newPwd=1122aa`).then(res => {
util.successMsg("重置成功"); util.successMsg("重置成功");
}).catch(res => { }).catch(res => {
}); });

@ -12,23 +12,22 @@ const isTest = url.includes('121.37.12.51'); //中台测试服
let bankPath = `${location.origin}/banksystem` // 银行系统地址 let bankPath = `${location.origin}/banksystem` // 银行系统地址
let jumpPath = `${location.origin}/judgmentPoint` let jumpPath = `${location.origin}/judgmentPoint`
let host = `${location.origin}/` let host = `${location.origin}/`
let uploadURL = `http://121.37.12.51/` let uploadURL = `${location.origin}/`
let title = (isHh || isCH) ? '教师管理端' : '职站服务端管理系统' let title = (isHh || isCH) ? '教师管理端' : '职站服务端管理系统'
if (isPro || isZxy) { if (isPro) {
if (isPro) bankPath = `https://www.huorantech.cn/banksystem` bankPath = `https://www.huorantech.cn/banksystem`
// 职站生产 // 职站生产
uploadURL = `https://www.huorantech.cn/` uploadURL = `https://www.huorantech.cn/`
jumpPath = `https://www.huorantech.cn/judgmentPoint/` jumpPath = `https://www.huorantech.cn/judgmentPoint/`
} else if (isDev) { } else if (isDev) {
jumpPath = `http://${location.hostname}:8087/` jumpPath = `http://${location.hostname}:8087/`
bankPath = `http://${location.hostname}:8093` bankPath = `http://${location.hostname}:8093`
uploadURL = `http://121.37.12.51/`
host = "http://121.37.12.51/"; // 中台测试服 host = "http://121.37.12.51/"; // 中台测试服
// host = 'https://www.occupationlab.com/' // 正式服 // host = 'https://www.occupationlab.com/' // 正式服
// host = "http://192.168.31.51:9000/"; // 榕 host = "http://192.168.31.51:9000/"; // 榕
// host = 'http://192.168.31.116:9000/'; // 赓 // host = 'http://192.168.31.116:9000/'; // 赓
} else if (isZxy) {
uploadURL = `https://izhixinyun.com/`
} }
const Setting = { const Setting = {
@ -68,7 +67,7 @@ const Setting = {
/** /**
* 默认密码 * 默认密码
*/ */
initialPassword: "111aaa", initialPassword: "1122aa",
/** /**
* 多语言配置 * 多语言配置
* */ * */

@ -15,7 +15,7 @@ export default {
title: "", title: "",
logoUrl: "", logoUrl: "",
avatar: "https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png", avatar: "https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png",
userId: 3, userId: '',
userName: "", userName: "",
roleId: "", roleId: "",
dataTime: "", dataTime: "",
@ -62,6 +62,9 @@ export default {
SET_LOG: (state) => { SET_LOG: (state) => {
state.logView = true state.logView = true
}, },
setUserId: (state, userId) => {
state.userId = userId
},
}, },
actions: { actions: {
login({ state, commit }, userInfo) { login({ state, commit }, userInfo) {

Loading…
Cancel
Save