@ -0,0 +1,3 @@ |
||||
> 1% |
||||
last 2 versions |
||||
not ie <= 8 |
@ -0,0 +1,22 @@ |
||||
.DS_Store |
||||
node_modules |
||||
/dist |
||||
example.html |
||||
favicon.ico |
||||
# local env files |
||||
.env.local |
||||
.env.*.local |
||||
|
||||
# Log files |
||||
npm-debug.log* |
||||
yarn-debug.log* |
||||
yarn-error.log* |
||||
|
||||
# Editor directories and files |
||||
.idea |
||||
.vscode |
||||
*.suo |
||||
*.ntvs* |
||||
*.njsproj |
||||
*.sln |
||||
*.sw* |
@ -0,0 +1,6 @@ |
||||
{ |
||||
"tabWidth": 4, |
||||
"singleQuote": true, |
||||
"trailingComma": "none", |
||||
"printWidth": 140 |
||||
} |
@ -0,0 +1,21 @@ |
||||
MIT License |
||||
|
||||
Copyright (c) 2016-2019 vue-manage-system |
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
of this software and associated documentation files (the "Software"), to deal |
||||
in the Software without restriction, including without limitation the rights |
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
copies of the Software, and to permit persons to whom the Software is |
||||
furnished to do so, subject to the following conditions: |
||||
|
||||
The above copyright notice and this permission notice shall be included in all |
||||
copies or substantial portions of the Software. |
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||
SOFTWARE. |
@ -0,0 +1,5 @@ |
||||
module.exports = { |
||||
presets: [ |
||||
'@vue/app' |
||||
] |
||||
} |
@ -0,0 +1,41 @@ |
||||
{ |
||||
"name": "vue-manage-system", |
||||
"version": "4.2.0", |
||||
"private": true, |
||||
"scripts": { |
||||
"dev": "npm run serve", |
||||
"serve": "vue-cli-service serve", |
||||
"build": "vue-cli-service build" |
||||
}, |
||||
"dependencies": { |
||||
"axios": "^0.26.1", |
||||
"babel-polyfill": "^6.26.0", |
||||
"core-js": "^2.6.10", |
||||
"echarts": "^4.9.0", |
||||
"element-theme": "^2.0.1", |
||||
"element-ui": "^2.15.6", |
||||
"html2canvas": "^1.3.2", |
||||
"js-cookie": "^2.2.1", |
||||
"jspdf": "^2.4.0", |
||||
"mavon-editor": "^2.9.1", |
||||
"vue": "^2.6.14", |
||||
"vue-cropperjs": "^3.0.0", |
||||
"vue-i18n": "^8.26.5", |
||||
"vue-pdf": "^4.3.0", |
||||
"vue-quill-editor": "^3.0.6", |
||||
"vue-router": "^3.5.3", |
||||
"vuedraggable": "^2.24.3", |
||||
"vuex": "^3.6.2", |
||||
"wow.js": "^1.2.2" |
||||
}, |
||||
"devDependencies": { |
||||
"@vue/cli-plugin-babel": "^3.9.0", |
||||
"@vue/cli-service": "^3.9.0", |
||||
"browserslist": "^4.17.5", |
||||
"caniuse-lite": "^1.0.30001271", |
||||
"element-theme-chalk": "^2.15.6", |
||||
"node-sass": "^4.14.0", |
||||
"sass-loader": "^8.0.2", |
||||
"vue-template-compiler": "^2.6.14" |
||||
} |
||||
} |
@ -0,0 +1,5 @@ |
||||
module.exports = { |
||||
plugins: { |
||||
autoprefixer: {} |
||||
} |
||||
} |
@ -0,0 +1,21 @@ |
||||
<!DOCTYPE html> |
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="utf-8"> |
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
||||
<meta name="keywords" content="职站,教学,教育,在线编程"> |
||||
<meta name="description" content="职站是一款辅助院校教师开展虚拟仿真实验教学的智能云实践平台。平台采用了大数据,云计算等技术,为学校搭建信息化平台提供了基础,可助力院校实现教学智能化升级。职站平台设计遵循着极简、高效的理念,可帮助老师轻松开展实验教学,并支持自定义发布考核和练习,智能统计和检验学生的日常实训练习效果;老师还可以通过可视化图表报告直观查看学生实训成绩,评估教学成果。"/> |
||||
<meta name="baidu-site-verification" content="code-TRfXe8xIkJ" /> |
||||
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"> |
||||
<link rel="stylesheet" href="//at.alicdn.com/t/font_830376_qzecyukz0s.css"> |
||||
<title>或然官网</title> |
||||
</head> |
||||
<body> |
||||
<noscript> |
||||
<strong>We're sorry but vms doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> |
||||
</noscript> |
||||
<div id="app"></div> |
||||
<!-- built files will be auto injected --> |
||||
</body> |
||||
|
||||
</html> |
@ -0,0 +1,25 @@ |
||||
<template> |
||||
<div id="app"> |
||||
<router-view></router-view> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import Setting from "@/setting"; |
||||
import util from "@/libs/util"; |
||||
|
||||
export default { |
||||
name: "App", |
||||
created() { |
||||
//在页面加载时读取localStorage里的状态信息 |
||||
if (util.local.get(Setting.storeKey)) { |
||||
this.$store.replaceState(Object.assign({}, this.$store.state, util.local.get(Setting.storeKey))); |
||||
} |
||||
|
||||
//在页面刷新时将vuex里的信息保存到localStorage里 |
||||
window.addEventListener("beforeunload", () => { |
||||
util.local.get(Setting.tokenKey) && util.local.set(Setting.storeKey, this.$store.state); |
||||
}); |
||||
} |
||||
}; |
||||
</script> |
@ -0,0 +1,115 @@ |
||||
import Setting from "@/setting"; |
||||
|
||||
const host = Setting.apiBaseURL; |
||||
const uploadURL = location.origin + '/' |
||||
|
||||
export default { |
||||
logins: `users/users/user/login`, |
||||
verification: `${host}users/users/user/captcha`,// 验证码图片
|
||||
logoDetail: `occupationlab/occupationlab/sys/logo/detail`, //查看系统设置信息
|
||||
isClient: `${host}users/users/user/isClient`, |
||||
sendPhoneVerificationCode: `users/users/user/sendPhoneVerificationCode`, |
||||
getToken: `users/users/user/getToken`, |
||||
getOtherAccountByPhone: `users/users/user/getOtherAccountByPhone`, |
||||
unbindAccounts: `users/users/user/unbindAccounts`, |
||||
|
||||
platformLogList: `nakadai/nakadai/log/platformLogList`, |
||||
logNotification: `nakadai/nakadai/log/logNotification`, |
||||
//实验台
|
||||
curriculumDetail: `nakadai/nakadai/curriculum/curriculumDetail`, // 课程详情
|
||||
curriculumChapter: `nakadai/nakadai/curriculum/chapter/queryChaptersAndSubsections`, // 根据课程id查询章节小节,树状结构
|
||||
curriculumGetSubsection: `nakadai/nakadai/curriculum/subsection/getSubsection`, // 根据小节id获取预览文件地址
|
||||
getProjectBySystemId: 'occupationlab/occupationlab/projectManage/getProjectBySystemId', |
||||
getTheMostRecentlyRunProject: 'python/python/getTheMostRecentlyRunProject', |
||||
|
||||
// 能力测评
|
||||
canExperiment: `occupationlab/occupationlab/evaluationrecord/can_experiment`, // 查询是否能够开启实验
|
||||
experimentDetail: `occupationlab/occupationlab/evaluationrecord/detail`, // 成绩详情
|
||||
experimentNext: `occupationlab/occupationlab/evaluationrecord/next`, // 下一题
|
||||
experimentNotmade: `occupationlab/occupationlab/evaluationrecord/not_made`, // 提交之前查询是否还有未做完的试题
|
||||
openExercise: `occupationlab/occupationlab/evaluationrecord/openExercise`, // 查询是否能开启虚拟仿真实验
|
||||
openTeaching: `occupationlab/occupationlab/evaluationrecord/openTeaching`, // 查询是否能开启教学实验
|
||||
experimentPrevious: `occupationlab/occupationlab/evaluationrecord/previous`, // 上一题
|
||||
experimentRemaining: `occupationlab/occupationlab/evaluationrecord/remaining`, // 获取测评剩余时间
|
||||
experimentStart: `occupationlab/occupationlab/evaluationrecord/start`, // 开始测评
|
||||
experimentSubmit: `occupationlab/occupationlab/evaluationrecord/submit`, // 提交测评
|
||||
|
||||
// 实验记录
|
||||
schoolCourse: `nakadai/nakadai/curriculum/schoolCourse`, // 获取学校购买订单后的课程
|
||||
experimentOverview: `occupationlab/occupationlab/achievement/experimentOverview`, //实验概览
|
||||
queryAssessmentByStudent: `occupationlab/occupationlab/achievement/queryAssessmentByStudent`, //学生端考核成绩
|
||||
queryPracticeByStudent: `occupationlab/occupationlab/achievement/queryPracticeByStudent`, //学生端练习成绩
|
||||
exportAssessmentByStudent: `occupationlab/occupationlab/achievement/exportAssessmentByStudent`, // 批量导出考核成绩
|
||||
exportPracticeByStudent: `${host}occupationlab/occupationlab/achievement/exportPracticeByStudent`, // 批量导出练习成绩
|
||||
practiceByStudentDetail: `occupationlab/occupationlab/achievement/practiceByStudentDetail`, // 学生端练习实验情况
|
||||
exportPracticeByStudentDetail: `${host}occupationlab/occupationlab/achievement/exportPracticeByStudentDetail`, // 导出学生端练习实验情况
|
||||
reportDetail: `occupationlab/occupationlab/achievement/reportDetail`, // 成绩报告详情
|
||||
updateReport: `occupationlab/occupationlab/achievement/updateReport`, // 更新成绩报告
|
||||
schoolCourseByAchievement: `nakadai/nakadai/curriculum/schoolCourseByAchievement`, // 获取学校购买订单后的课程
|
||||
exportLabReport: `occupationlab/occupationlab/achievement/exportLabReport`, |
||||
exportBankExperimentReport: `occupationlab/occupationlab/achievement/exportBankExperimentReport`, |
||||
queryBcJudgmentPointByBcId: 'judgment/judgment/bcJudgmentPoint/queryBcJudgmentPointByBcId', |
||||
editExperimentalData: 'occupationlab/occupationlab/experimentalReport/editExperimentalData', |
||||
|
||||
// 考核列表
|
||||
pageStuAssessment: `occupationlab/occupationlab/assessment/pageStuAssessment`, // 学生端——学生考核列表
|
||||
getPythonSysByStuAccountId: `occupationlab/occupationlab/assessment/getPythonSysByStuAccountId`, // 学生端——课程名称
|
||||
myClassByStudent: `occupationlab/occupationlab/achievement/myClassByStudent`, // 学生端:我的班级
|
||||
getStudentInfoByAccountId: `occupationlab/occupationlab/architecture/getStudentInfoByAccountId`, // 查看学生信息
|
||||
enterExam: `occupationlab/occupationlab/assessment/enterExam`, // 学生端——进入考试
|
||||
collectPaper: `occupationlab/occupationlab/assessment/collectPaper`, // 自动结束考试
|
||||
|
||||
// 课程学习
|
||||
queryGlClassification: `occupationlab/occupationlab/management/edu/courseClassification/queryGlClassification`, // 查询课程分类
|
||||
queryCourseByCondition: `occupationlab/occupationlab/management/edu/course/queryCourseByCondition`, // 课程列表分页条件查询
|
||||
getCourseById: `occupationlab/occupationlab/management/edu/course/getCourse`, // 根据id查询课程
|
||||
queryChaptersAndSubsections: `occupationlab/occupationlab/management/edu/courseChapter/queryChaptersAndSubsections`, // 根据课程id查询章节小节,树状结构
|
||||
getSubsection: `occupationlab/occupationlab/management/edu/courseSubsection/getSubsection`, // 根据小节id获取预览文件地址
|
||||
|
||||
// 资讯
|
||||
queryAllColumns: `occupationlab/occupationlab/enterprise/information/column/queryAllColumns`, // 栏目树
|
||||
queryArticleByCondition: `occupationlab/occupationlab/enterprise/information/article/queryArticleByCondition`, // 文章列表分页条件查询
|
||||
getArticle: `occupationlab/occupationlab/enterprise/information/article/getArticle`, // 根据id查询文章
|
||||
firstLevelColumn: `occupationlab/occupationlab/enterprise/information/column/firstLevelColumn`, |
||||
secondaryColumnsByFirst: `occupationlab/occupationlab/enterprise/information/column/secondaryColumnsByFirst`, |
||||
|
||||
// 线上赛事
|
||||
notLoggedInBeforeStudentEvents: `occupationlab/occupationlab/enterprise/match/contest/notLoggedInBeforeStudentEvents`, |
||||
contestPageConditionQueryByOccupationlabStu: `occupationlab/occupationlab/enterprise/match/contest/contestPageConditionQueryByOccupationlabStu`, |
||||
contestPageConditionQueryByOccupationlab: `occupationlab/occupationlab/enterprise/match/contest/onlineCompetitionByStudent`, |
||||
listOfRegisteredEvents: `occupationlab/occupationlab/enterprise/match/contest/listOfRegisteredEvents`, |
||||
addApplicant: `occupationlab/occupationlab/enterprise/match/applicant/addApplicant`, // 添加报名人员
|
||||
getContestProgress: `occupationlab/occupationlab/enterprise/match/contest-progress/getContestProgress`, // 根据赛事id查询竞赛进展
|
||||
getContest: `occupationlab/occupationlab/enterprise/match/contest/getContest`, // 根据id查询赛事
|
||||
queryAnnouncementByContestId: `occupationlab/occupationlab/contest/announcement/queryAnnouncementByContestId`, |
||||
queryAnnouncementDetails: `occupationlab/occupationlab/contest/announcement/queryAnnouncementDetails`, |
||||
contestAfterLogin: `occupationlab/occupationlab/enterprise/match/contest/contestAfterLogin`, |
||||
|
||||
// 阿里云文件/视频管理
|
||||
fileDeletion: `${uploadURL}oss/manage/fileDeletion`, // 删除OSS文件
|
||||
fileupload: `${uploadURL}oss/manage/fileupload`, // 文件上传
|
||||
getPlayAuth: `${uploadURL}oss/manage/getPlayAuth`, // 获取播放凭证
|
||||
|
||||
queryProvince: `nakadai/nakadai/province/queryProvince`, //查询省份
|
||||
queryCity: `nakadai/nakadai/city/queryCity`, //查询城市
|
||||
querySchool: `nakadai/nakadai/school/querySchool`, //根据学校名称查询学校信息
|
||||
queryCourseDiscipline: `nakadai/nakadai/subject/courseDiscipline`, //查询课程学科
|
||||
queryCourseProfessionalClass: `nakadai/nakadai/subject/courseProfessionalClass`, //查询专业类
|
||||
queryCourseProfessional: `nakadai/nakadai/subject/courseProfessional`, //查询专业
|
||||
|
||||
// 个人中心
|
||||
uploadUserAvatars: `${host}users/users/userAccount/updateUserAvatars`, //更改头像
|
||||
queryUserInfoDetails: `users/users/userAccount/queryUserInfoDetails`,//个人中心信息展示
|
||||
updatePersonCenter: `users/users/userAccount/updatePersonCenter`,//个人中心信息修改
|
||||
examinePassword: `users/users/userAccount/examinePassword`,//更换密码
|
||||
bindPhoneOrEmail: `users/users/userAccount/bindPhoneOrEmail`,// 绑定手机或邮箱
|
||||
sendPhoneOrEmailCode: `users/users/userAccount/sendPhoneOrEmailCode`,// 更换手机号或邮箱--发送手机验证码
|
||||
unbindMobilePhone: `users/users/userAccount/unbindMobilePhone`, |
||||
|
||||
joinPractice: `tms/classTech/joinPractice`, //通过邀请码进入实验
|
||||
queryArchievement: `tms/classTech/queryExperimentalReport`, //查看教学实验报告
|
||||
queryVirtualReport: `tms/classTech/queryVirtualReport`, //查看虚仿实验报告
|
||||
checkInvitationCode: `tms/classTech/checkInvitationCode`, //校验是否需要邀请码
|
||||
userRecord: `tms/classTech/userRecord`, //查询班级实验列表信息
|
||||
modifyReport: `Achievement/modify` |
||||
}; |
After Width: | Height: | Size: 201 B |
After Width: | Height: | Size: 288 B |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 9.3 KiB |
After Width: | Height: | Size: 122 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 95 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 364 B |
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 181 B |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 275 B |
After Width: | Height: | Size: 336 B |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 408 B |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 147 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 243 B |
After Width: | Height: | Size: 244 B |
After Width: | Height: | Size: 709 B |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 403 B |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 107 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 133 KiB |
After Width: | Height: | Size: 8.0 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 102 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 129 KiB |
After Width: | Height: | Size: 135 KiB |
After Width: | Height: | Size: 460 B |
After Width: | Height: | Size: 691 B |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 363 B |
After Width: | Height: | Size: 696 B |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 3.3 KiB |