diff --git a/src/App.vue b/src/App.vue
index db71ed9..ff6d150 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,24 +1,25 @@
-
+
\ No newline at end of file
diff --git a/src/api/index.js b/src/api/index.js
index fb67be2..f121e7b 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -1,32 +1,43 @@
-import Setting from '@/setting';
+import Setting from "@/setting";
// let host = Setting.apiBaseURL
-let host = 'http://192.168.31.151:9000/'; // 榕
+let host = "http://192.168.31.151:9000/"; // 榕
// let host = 'http://192.168.31.125:9000/'; // 坤
-let xsHost = 'http://39.108.250.202:9000/'; // 线上
+let xsHost = "http://39.108.250.202:9000/"; // 线上
let uploadURL = Setting.upload.apiURL;
-let host1 = 'http://39.108.250.202:8080/'; // 川大
+let host1 = "http://39.108.250.202:8080/"; // 川大
export default {
// fileupload: `${uploadURL}oss/manage/fileupload`,
queryToken: `${host}liuwanr/userInfo/queryToken`,
logins: `${host}users/users/user/login`, //登录
- verification:`${host}users/users/user/captcha`,// 验证码图片
+ verification: `${host}users/users/user/captcha`,// 验证码图片
// bindPhoneOrEmail:`${host}users/users/userAccount/bindPhoneOrEmail`,// 绑定手机
// sendPhoneOrEmailCode:`${host} users/users/userAccount/sendPhoneOrEmailCode`,// 手机验证码
- // 考核管理
- pageByCondition: `${host}occupationlab/assessment/pageByCondition`, // 考核管理列表
- saveAssessment: `${host}occupationlab/assessment/saveAssessment`, // 创建考核
- modifyAssessment: `${host}occupationlab/assessment/modifyAssessment`, // 编辑考核
- getDetailById: `${host}occupationlab/assessment/getDetailById`, // 根据考核Id查询考核详情
- deleteAssessment: `${host}occupationlab/assessment/deleteAssessment`, // 单个、批量删除
- collectPaper: `${host}occupationlab/assessment/collectPaper`, // 收卷(提前结束)
- // 学生组织架构
- treeList: `${host}occupationlab/architecture/treeList`, // 学生组织架构树形列表
+ //学生管理
+ resetPassword: `${host}users/users/userAccount/resetPwd`, // 密码重置
+ updateAccountEnable: `${host}occupationlab/architecture/updateAccountEnable`, // 密码重置
+ checkEmailOrPhone: `${host}occupationlab/architecture/checkEmailOrPhone`, // 新增学生前:校验手机号或者邮箱
+ checkWorkNumOrAccount: `${host}occupationlab/architecture/checkWorkNumOrAccount`, // 新增/编辑学生前:校验学号或者学生账号
+ delStudent: `${host}occupationlab/architecture/delStudent`, // 单个、批量删除学生
+ addStudent: `${host}occupationlab/architecture/addStudent`, // 新增学生
+ modifyStudent: `${host}occupationlab/architecture/modifyStudent`, // 编辑学生
+ getStudentInfoByAccountId: `${host}occupationlab/architecture/getStudentInfoByAccountId`, // 查看学生信息
+ getDetailByAccount: `${host}occupationlab/architecture/getDetailByAccount`, // 新增用户前调用:按帐户获取详细信息
+ importStudent: `${host}occupationlab/architecture/importStudent`, // 批量导入学生
+ exportFailure: `${host}occupationlab/architecture/exportFailure`, // 批量导入学生失败数据导出
+ removeStudent: `${host}occupationlab/architecture/removeStudent`, // 移除学生
+ organizationalStudentList: `${host}occupationlab/architecture/organizationalStudentList`, // 根据组织架构筛选学生列表
+ studentList: `${host}occupationlab/architecture/studentList`, // 学生列表
+ stuOrganizationTree: `${host}occupationlab/architecture/stuOrganizationTree`, // 学生组织架构树
+ treeList: `${host}occupationlab/architecture/treeList`, // 学生组织架构树形列表
+ saveOrg: `${host}occupationlab/architecture/save`, // 新增组织架构
+ updateOrg: `${host}occupationlab/architecture/update`, // 编辑组织架构
+ deleteOrg: `${host}occupationlab/architecture/delete`, // 删除组织架构
// 测评管理
questionsList: `${host}occupationlab/questions/list`, // 题库列表查询
@@ -41,6 +52,25 @@ export default {
questionsInfo: `${host}occupationlab/questions/info`, // 测评规则信息的展示
questionsUpdateRules: `${host}occupationlab/questions/updateEvaluationRules`, // 修改测评规则信息
+ // 考核管理
+ pageByCondition: `${host}occupationlab/assessment/pageByCondition`, // 考核管理列表
+ saveAssessment: `${host}occupationlab/assessment/saveAssessment`, // 创建考核
+ modifyAssessment: `${host}occupationlab/assessment/modifyAssessment`, // 编辑考核
+ getDetailById: `${host}occupationlab/assessment/getDetailById`, // 根据考核Id查询考核详情
+ deleteAssessment: `${host}occupationlab/assessment/deleteAssessment`, // 单个、批量删除
+ collectPaper: `${host}occupationlab/assessment/collectPaper`, // 收卷(提前结束)
+ schoolCourse: `${host}nakadai/nakadai/curriculum/schoolCourse`, // 获取学校购买订单后的课程
+ projectListByCourseId: `${host}nakadai/nakadai/curriculum/projectListByCourseId`, // 获取学校购买订单后的课程
+
+ // 成绩管理
+ deleteExperimentalReport: `${host}occupationlab/achievement/deleteExperimentalReport`, // 单个、批量删除实验报告
+ exportAssessmentInfo: `${host}occupationlab/achievement/exportAssessmentInfo`, // 批量导出考核成绩
+ exportPracticeInfo: `${host}occupationlab/achievement/exportPracticeInfo`, // 批量导出练习成绩
+ getAchievementInfo: `${host}occupationlab/achievement/getAchievementInfo`, // 管理端成绩管理
+ getAssessmentDetail: `${host}occupationlab/achievement/getAssessmentDetail`, // 管理端考核成绩详情
+ getPracticeDetail: `${host}occupationlab/achievement/getPracticeDetail`, // 管理端练习成绩详情
+ myClass: `${host}occupationlab/achievement/myClass`, // 教师端:我的班级
+ deleteReportById: `${host}occupationlab/achievement/deleteReportById`, // 批量删除成绩管理中的项目/批量删除成绩管理中的考核
// 项目管理
avgValues: `${host}occupationlab/projectManage/avgValues`, // 平均分分配值
@@ -78,7 +108,6 @@ export default {
disableApplicant: `${host}occupationlab/enterprise/match/applicant/disableApplicant`,
batchExport: `${host}occupationlab/enterprise/match/applicant/batchExport`,
-
// 栏目管理
addColumn: `${host}occupationlab/enterprise/information/column/addColumn`,
deleteColumn: `${host}occupationlab/enterprise/information/column/deleteColumn`,
@@ -95,7 +124,6 @@ export default {
queryArticleByCondition: `${host}occupationlab/enterprise/information/article/queryArticleByCondition`,
articleSort: `${host}occupationlab/enterprise/information/article/articleSort`,
-
// 课程管理
queryCourseByCondition: `${host}occupationlab/management/edu/course/queryCourseByCondition`, // 课程列表分页条件查询
addCourse: `${host}occupationlab/management/edu/course/addCourse`, // 添加课程
@@ -122,16 +150,10 @@ export default {
editSubsection: `${host}occupationlab/management/edu/courseSubsection/editSubsection`, // 修改小节
getSubsection: `${host}occupationlab/management/edu/courseSubsection/getSubsection`, // 根据小节id获取预览文件地址
-
// 阿里云文件/视频管理
fileDeletion: `${host}nakadai/nakadai/oss/fileDeletion`, // 删除OSS文件
fileupload: `${host}nakadai/nakadai/oss/fileUpload`, // 文件上传
-
-
-
- getPlayAuth: `${host}occupationlab/oss/manage/getPlayAuth`,
- removeMoreVideo: `${host}occupationlab/oss/manage/removeMoreVideo`,
- removeVideo: `${host}occupationlab/oss/manage/removeVideo`,
+ getPlayAuth: `${host}nakadai/nakadai/oss/getPlayAuth`, // 获取播放凭证
@@ -143,6 +165,9 @@ export default {
+ // getPlayAuth: `${host}occupationlab/oss/manage/getPlayAuth`,
+ removeMoreVideo: `${host}occupationlab/oss/manage/removeMoreVideo`,
+ removeVideo: `${host}occupationlab/oss/manage/removeVideo`,
updateLogInNumber: `${host}liuwanr/userInfo/updateLogInNumber`, //用户登录修改登录次数和登陆时间
@@ -181,65 +206,6 @@ export default {
bindPhone: `${host}evaluation/tms/user/bindPhone`,//校验手机验证码
examinePassword: `${host}evaluation/tms/user/examinePassword`,//更换密码
- // 测评管理
- list: `${host}evaluation/tms/questions/list`, //分页加条件查询试题信息
- info: `${host}evaluation/tms/evaluationrules/info`, //测评规则信息的展示
- update: `${host}evaluation/tms/evaluationrules/update`, //修改测评规则信息
- delete: `${host}evaluation/tms/questions/delete`, //批量删除试题信息
- // questionsTemplate: `${host}template/试题导入模板.xlsx`, //excel模板文件下载
- import: `${host}evaluation/tms/questions/import`, //通过excel批量导入
- infoId: `${host}evaluation/tms/questions/info/`, //根据试题id查询试题详情信息
- isenable: `${host}evaluation/tms/questions/isenable`, //是否禁用试题
- save: `${host}evaluation/tms/questions/save`, //新增一道试题
- // questionsUpdate: `${host}evaluation/tms/questions/update`, //根据试题id修改试题信息
- upload: `${host}evaluation/tms/questions/upload`, //excel模板文件上传
- export_failure: `${host}evaluation/tms/questions/export_failure`, //导出导入失败的数据和失败原因
-
- expDelete: `${host}evaluation/tms/exp/delete`, //删除实验教学
- expList: `${host}evaluation/tms/exp/list`, //实验教学列表
- expSave: `${host}evaluation/tms/exp/save`, //添加实验教学
- expUpdate: `${host}evaluation/tms/exp/update`, //修改实验教学
- expInfo: `${host}evaluation/tms/exp/getById/`, //实验教学详情
- expCheck: `${host}evaluation/tms/exp/check`, //实验名称判重
- getInvitationCode: `${host}evaluation/tms/exp/getInvitationCode`, //查询邀请码是否存在
- expInfo1: `${host}evaluation/tms/exp/upload`, //实验教学提前结束
-
- // queryAllManagements: `${host}project/ProjectManagement/queryAllManagements`, //项目管理列表信息
- queryManagements: `${host}project/ProjectManagement/queryManagements`, //项目管理列表信息
- addRole: `${host}project/ProjectManagement/addRole`, //新增案例对象
- // avgValues: `${host}project/ProjectManagement/avgValues`, //平均分配分值
- getByRoleId: `${host}project/ProjectManagement/getByRoleId`, //根据角色id查询信息
- getByjudgmentPointsId: `${host}project/ProjectManagement/getByjudgmentPointsId`, //实验任务表格信息的展示
- queryAllJudgmentPoints: `${host}project/ProjectManagement/queryAllJudgmentPoints`, //添加判分点面板的数据展示+条件筛选
- getProjectId: `${host}project/ProjectManagement/getProjectId`, //根据项目管理id查询对应信息
- updateProjectManagement: `${host}project/ProjectManagement/updateProjectManagement`, //编辑项目管理
- addProjectManagement: `${host}project/ProjectManagement/addProjectManagement`, //添加项目管理
- removeProjectManagement: `${host}project/ProjectManagement/removeProjectManagement`, //删除
- getJudgmentPoints: `${host}project/ProjectManagement/getJudgmentPoints`, //复制项目获取数据
- getZZJudgmentPoints: `${host}project/ProjectManagement/getZZJudgmentPoints`, //复制项目获取数据
- updateRole: `${host}project/ProjectManagement/updateRole`, //修改实验数据—角色信息
- isNameExistis: `${host}project/ProjectManagement/isNameExistis`, //项目名称是否存在
- QueryPfdInformation: `${host}judgment/pointOfJudgement/queryPfdInformation`, //判分点详细信息
- addProjectManagementTrad: `${host}project/ProjectManagement/newAddProjectManagement`,
- getTrdingJudgmentPoints: `${host}project/ProjectManagement/getTrdingJudgmentPoints`,
- updateProjectManagementTrad: `${host}project/ProjectManagement/newUpdateProjectManagement`,
- enableProject: `${host}project/ProjectManagement/enable`,
- QueryPointOfJudgement: `${host}judgment/pointOfJudgement/queryPointOfJudgement`, //判分点列表查询
- queryUserIds: `${host}liuwanr/userInfo/queryUserIds`,
-
- // 学生管理
- addStudent: `${host}evaluation/tms/student/zzAddStudent`,
- daleteStudent: `${host}evaluation/tms/student/daleteStudent`,
- disableAccount: `${host}evaluation/tms/student/disableAccount`,
- queryStudent: `${host}evaluation/tms/student/queryStudent`,
- reSetPassword: `${host}evaluation/tms/student/reSetPassword`,
- updateStudent: `${host}evaluation/tms/student/updateStudent`,
- downloadStudent: `${host}evaluation/tms/student/download`,
- uploadFile: `${host}evaluation/tms/student/uploadFile`,
- export_failureStudent: `${host}evaluation/tms/student/export_failure`,
- queryAccountStudent: `${host}evaluation/tms/student/queryAccount`,
- studentTemplate: `${host}template/student.xlsx`,
-
// 员工管理
addStaff: `${host}evaluation/tms/system/addStaff`,
daleteBatchStaff: `${host}evaluation/tms/system/daleteBatchStaff`,
@@ -250,7 +216,7 @@ export default {
export_failureStaff: `${host}evaluation/tms/system/export_failure`,
uploadFileStaff: `${host}evaluation/tms/system/uploadFile`,
queryAccountStaff: `${host}evaluation/tms/system/queryAccount`,
- resetPwd: `${host}evaluation/tms/system/resetPwd`,
+ // resetPwd: `${host}evaluation/tms/system/resetPwd`,
dalStaffByStaffGradeId: `${host}evaluation/tms/system/dalStaffByStaffGradeId`,
dalStaffByProfessionalId: `${host}evaluation/tms/system/dalStaffByProfessionalId`,
staffTemplate: `${host}template/staff.xlsx`,
@@ -263,21 +229,6 @@ export default {
queryPermissionArrById: `${host}evaluation/sys-permission/queryPermissionArrById`,
roleTree: `${host}evaluation/sys-permission/tree`,
- // 成绩管理
- getImitationAchievement: `${host}evaluation/Achievement/getImitationAchievement`,
- getTeachAchievement: `${host}evaluation/Achievement/getTeachAchievement`,
- addReport: `${host}evaluation/Achievement/addReport`,
- deleteReport: `${host}evaluation/Achievement/deleteReport`,
- deleteReportById: `${host}evaluation/Achievement/deleteReportById`,
- exportAchievement: `${host}evaluation/Achievement/exportAchievement`,
- // queryAchievement:`${host}evaluation/Achievement/queryAchievement`,
- queryAchievement: `${host}evaluation/Achievement/list`,
- queryAchievementNew: `${host}evaluation/Achievement/newList`,
- queryEvaluationReport: `${host}evaluation/Achievement/queryEvaluationReport`,
- queryReport: `${host}evaluation/Achievement/queryReport`,
- queryArchievement: `${host}evaluation/tms/classTech/queryExperimentalReport`, //查看教学实验报告
- queryVirtualReport: `${host}evaluation/tms/classTech/queryVirtualReport`, //查看虚仿实验报告
-
// 教师评语
addComment: `${host}evaluation/comment/addComment`,
queryComment: `${host}evaluation/comment/queryComment`,
@@ -298,6 +249,6 @@ export default {
// 川大
firstLevel: `${host1}sichuan/point/firstLevel`,
secondaryLevel: `${host1}sichuan/point/secondaryLevel`,
- thirdLevel: `${host1}sichuan/point/thirdLevel`,
+ thirdLevel: `${host1}sichuan/point/thirdLevel`
};
\ No newline at end of file
diff --git a/src/components/pdf/index.vue b/src/components/pdf/index.vue
index e822cb5..00899d9 100644
--- a/src/components/pdf/index.vue
+++ b/src/components/pdf/index.vue
@@ -13,16 +13,16 @@
- {{currentPage}} / {{pageCount}}
+ {{ currentPage }} / {{ pageCount }}
@@ -32,93 +32,100 @@
\ No newline at end of file
diff --git a/src/components/quill/index.vue b/src/components/quill/index.vue
index 4a4122b..1d7c558 100644
--- a/src/components/quill/index.vue
+++ b/src/components/quill/index.vue
@@ -15,203 +15,205 @@
diff --git a/src/components/quill/options.js b/src/components/quill/options.js
index 5a90edd..b368bcb 100644
--- a/src/components/quill/options.js
+++ b/src/components/quill/options.js
@@ -1,16 +1,16 @@
export default [
- ['bold', 'italic', 'underline', 'strike'],
- ['blockquote', 'code-block'],
- [{ 'header': 1 }, { 'header': 2 }],
- [{ 'list': 'ordered' }, { 'list': 'bullet' }],
- [{ 'script': 'sub' }, { 'script': 'super' }],
- [{ 'indent': '-1' }, { 'indent': '+1' }],
- [{ 'direction': 'rtl' }],
- [{ 'size': ['small', false, 'large', 'huge'] }],
- [{ 'header': [1, 2, 3, 4, 5, 6, false] }],
- [{ 'color': [] }, { 'background': [] }],
- [{ 'font': [] }],
- [{ 'align': [] }],
- ['clean'],
- ['link', 'image', 'video']
-]
\ No newline at end of file
+ ["bold", "italic", "underline", "strike"],
+ ["blockquote", "code-block"],
+ [{ "header": 1 }, { "header": 2 }],
+ [{ "list": "ordered" }, { "list": "bullet" }],
+ [{ "script": "sub" }, { "script": "super" }],
+ [{ "indent": "-1" }, { "indent": "+1" }],
+ [{ "direction": "rtl" }],
+ [{ "size": ["small", false, "large", "huge"] }],
+ [{ "header": [1, 2, 3, 4, 5, 6, false] }],
+ [{ "color": [] }, { "background": [] }],
+ [{ "font": [] }],
+ [{ "align": [] }],
+ ["clean"],
+ ["link", "image", "video"]
+];
\ No newline at end of file
diff --git a/src/i18n/index.js b/src/i18n/index.js
index 299d2da..a35ee1e 100644
--- a/src/i18n/index.js
+++ b/src/i18n/index.js
@@ -1,30 +1,30 @@
export const messages = {
- 'zh': {
+ "zh": {
i18n: {
- breadcrumb: '国际化产品',
- tips: '通过切换语言按钮,来改变当前内容的语言。',
- btn: '切换英文',
- title1: '常用用法',
- p1: '要是你把你的秘密告诉了风,那就别怪风把它带给树。',
- p2: '没有什么比信念更能支撑我们度过艰难的时光了。',
- p3: '只要能把自己的事做好,并让自己快乐,你就领先于大多数人了。',
- title2: '组件插值',
- info: 'Element组件需要国际化,请参考 {action}。',
- value: '文档'
+ breadcrumb: "国际化产品",
+ tips: "通过切换语言按钮,来改变当前内容的语言。",
+ btn: "切换英文",
+ title1: "常用用法",
+ p1: "要是你把你的秘密告诉了风,那就别怪风把它带给树。",
+ p2: "没有什么比信念更能支撑我们度过艰难的时光了。",
+ p3: "只要能把自己的事做好,并让自己快乐,你就领先于大多数人了。",
+ title2: "组件插值",
+ info: "Element组件需要国际化,请参考 {action}。",
+ value: "文档"
}
},
- 'en': {
+ "en": {
i18n: {
- breadcrumb: 'International Products',
- tips: 'Click on the button to change the current language. ',
- btn: 'Switch Chinese',
- title1: 'Common usage',
+ breadcrumb: "International Products",
+ tips: "Click on the button to change the current language. ",
+ btn: "Switch Chinese",
+ title1: "Common usage",
p1: "If you reveal your secrets to the wind you should not blame the wind for revealing them to the trees.",
p2: "Nothing can help us endure dark times better than our faith. ",
p3: "If you can do what you do best and be happy, you're further along in life than most people.",
- title2: 'Component interpolation',
- info: 'The default language of Element is Chinese. If you wish to use another language, please refer to the {action}.',
- value: 'documentation'
+ title2: "Component interpolation",
+ info: "The default language of Element is Chinese. If you wish to use another language, please refer to the {action}.",
+ value: "documentation"
}
}
-}
\ No newline at end of file
+};
\ No newline at end of file
diff --git a/src/layouts/footer/index.vue b/src/layouts/footer/index.vue
index b00f26e..c230ffa 100644
--- a/src/layouts/footer/index.vue
+++ b/src/layouts/footer/index.vue
@@ -8,36 +8,35 @@
\ No newline at end of file
diff --git a/src/layouts/header/index.vue b/src/layouts/header/index.vue
index 13f2744..d6c430d 100644
--- a/src/layouts/header/index.vue
+++ b/src/layouts/header/index.vue
@@ -5,7 +5,7 @@
- {{userName}}
+ {{ userName }}
退出
@@ -13,34 +13,35 @@
\ No newline at end of file
diff --git a/src/layouts/navbar/index.vue b/src/layouts/navbar/index.vue
index 5693ce1..100c131 100644
--- a/src/layouts/navbar/index.vue
+++ b/src/layouts/navbar/index.vue
@@ -29,99 +29,100 @@
@@ -130,12 +131,15 @@ export default {
.sidebar::-webkit-scrollbar {
width: 0;
}
+
.sidebar-el-menu:not(.el-menu--collapse) {
width: 100%;
}
-.el-menu.el-menu--horizontal{
+
+.el-menu.el-menu--horizontal {
border-bottom: none;
}
+
.sidebar > ul {
height: 100%;
}
diff --git a/src/libs/auth/generateBtnPermission.js b/src/libs/auth/generateBtnPermission.js
index a8c9b53..da85a20 100644
--- a/src/libs/auth/generateBtnPermission.js
+++ b/src/libs/auth/generateBtnPermission.js
@@ -2,20 +2,21 @@
* @description 生成按钮级别权限组
* */
-import store from '@/store';
-export default function(data){
- let result = []
+import store from "@/store";
+
+export default function(data) {
+ let result = [];
data.map(e => {
e.children.map(n => {
- if(n.children.length){
- result.push(`${e.name}:${n.name}`)
+ if (n.children.length) {
+ result.push(`${e.name}:${n.name}`);
n.children.map(j => {
- e.menuUrl ? result.push(`${e.menuUrl}:${n.name}:${j.name}`) : result.push(`${n.menuUrl}:${j.name}`)
- })
- }else{
- result.push(`${e.menuUrl}:${n.name}`)
+ e.menuUrl ? result.push(`${e.menuUrl}:${n.name}:${j.name}`) : result.push(`${n.menuUrl}:${j.name}`);
+ });
+ } else {
+ result.push(`${e.menuUrl}:${n.name}`);
}
- })
- })
- store.dispatch('auth/addBtnAuth',result)
+ });
+ });
+ store.dispatch("auth/addBtnAuth", result);
}
diff --git a/src/libs/bus.js b/src/libs/bus.js
index b433c90..87fc642 100644
--- a/src/libs/bus.js
+++ b/src/libs/bus.js
@@ -1,4 +1,4 @@
-import Vue from 'vue';
+import Vue from "vue";
// 使用 Event Bus
const bus = new Vue();
diff --git a/src/libs/random_str.js b/src/libs/random_str.js
index d9b5838..f012ef8 100644
--- a/src/libs/random_str.js
+++ b/src/libs/random_str.js
@@ -1,8 +1,8 @@
// 生成随机字符串
-export default function (len = 32) {
- const $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
+export default function(len = 32) {
+ const $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
const maxPos = $chars.length;
- let str = '';
+ let str = "";
for (let i = 0; i < len; i++) {
str += $chars.charAt(Math.floor(Math.random() * maxPos));
}
diff --git a/src/libs/resize/index.js b/src/libs/resize/index.js
index 0bf38b6..8c2831f 100644
--- a/src/libs/resize/index.js
+++ b/src/libs/resize/index.js
@@ -1,16 +1,18 @@
// rem等比适配配置文件
// 基准大小
-const baseSize = 16
+const baseSize = 16;
+
// 设置 rem 函数
-function setRem () {
- // 当前页面宽度相对于 1920宽的缩放比例,可根据自己需要修改。
- const scale = document.documentElement.clientWidth / 1920
- // 设置页面根节点字体大小(“Math.min(scale, 2)” 指最高放大比例为2,可根据实际业务需求调整)
- document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px'
+function setRem() {
+ // 当前页面宽度相对于 1920宽的缩放比例,可根据自己需要修改。
+ const scale = document.documentElement.clientWidth / 1920;
+ // 设置页面根节点字体大小(“Math.min(scale, 2)” 指最高放大比例为2,可根据实际业务需求调整)
+ document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + "px";
}
+
// 初始化
-setRem()
+setRem();
// 改变窗口大小时重新设置 rem
-window.onresize = function () {
- setRem()
-}
\ No newline at end of file
+window.onresize = function() {
+ setRem();
+};
\ No newline at end of file
diff --git a/src/libs/route/addRoutes.js b/src/libs/route/addRoutes.js
index da226f7..cfadc51 100644
--- a/src/libs/route/addRoutes.js
+++ b/src/libs/route/addRoutes.js
@@ -1,31 +1,31 @@
-import store from '@/store';
-import router from '@/router';
-import generateBtnPermission from '../auth/generateBtnPermission';
+import store from "@/store";
+import router from "@/router";
+import generateBtnPermission from "../auth/generateBtnPermission";
-const newRoutes = []
+const newRoutes = [];
-function createMeta(item){
- let meta = { title: item.name }
- return meta
+function createMeta(item) {
+ let meta = { title: item.name };
+ return meta;
}
-function createRoute(data){
+function createRoute(data) {
data.map(e => {
- if(e.menuUrl){
- let meta = createMeta(e)
+ if (e.menuUrl) {
+ let meta = createMeta(e);
newRoutes.push({
name: e.menuUrl,
path: e.menuUrl,
meta
- })
+ });
}
// 递归生成路由集合
- e.children && e.children.length && createRoute(e.children)
- })
+ e.children && e.children.length && createRoute(e.children);
+ });
}
-export default function(data,path){
- generateBtnPermission(data)
- createRoute(data)
- store.dispatch('auth/addRoutes',newRoutes)
+export default function(data, path) {
+ generateBtnPermission(data);
+ createRoute(data);
+ store.dispatch("auth/addRoutes", newRoutes);
}
\ No newline at end of file
diff --git a/src/libs/route/generateRoutes.js b/src/libs/route/generateRoutes.js
index 638f846..9db8a7b 100644
--- a/src/libs/route/generateRoutes.js
+++ b/src/libs/route/generateRoutes.js
@@ -1,26 +1,26 @@
-import store from '@/store';
-import router from '@/router';
+import store from "@/store";
+import router from "@/router";
-export default function(){
+export default function() {
setTimeout(() => {
- let routes = store.state.auth.routes
+ let routes = store.state.auth.routes;
routes.forEach(e => {
- if(e.path == '/'){
- e.component = () => import('@/layouts/home/index.vue')
- }else{
- e.component = () => import(`@/pages/${e.path}.vue`)
+ if (e.path == "/") {
+ e.component = () => import("@/layouts/home/index.vue");
+ } else {
+ e.component = () => import(`@/pages/${e.path}.vue`);
}
-
+
e.children && e.children.forEach(n => {
- n.path && (n.component = () => import(`@/pages/${n.path}.vue`))
- })
- })
-
+ n.path && (n.component = () => import(`@/pages/${n.path}.vue`));
+ });
+ });
+
routes.push({
- path: '*',
- redirect: '404'
- })
-
- router.addRoutes(routes)
- },500)
+ path: "*",
+ redirect: "404"
+ });
+
+ router.addRoutes(routes);
+ }, 500);
}
\ No newline at end of file
diff --git a/src/libs/route/resetRouter.js b/src/libs/route/resetRouter.js
index 096e4f5..d955318 100644
--- a/src/libs/route/resetRouter.js
+++ b/src/libs/route/resetRouter.js
@@ -1,6 +1,6 @@
-import router from '@/router';
+import router from "@/router";
-export default function(){
- const newRouter = createRouter()
- router.matcher = newRouter.matcher
+export default function() {
+ const newRouter = createRouter();
+ router.matcher = newRouter.matcher;
}
\ No newline at end of file
diff --git a/src/libs/util.cookies.js b/src/libs/util.cookies.js
index 63c9a8b..75c1c8d 100644
--- a/src/libs/util.cookies.js
+++ b/src/libs/util.cookies.js
@@ -1,5 +1,5 @@
-import Cookies from 'js-cookie';
-import Setting from '@/setting';
+import Cookies from "js-cookie";
+import Setting from "@/setting";
const cookies = {};
@@ -9,7 +9,7 @@ const cookies = {};
* @param {String} value cookie value
* @param {Object} cookieSetting cookie setting
*/
-cookies.set = function (name = 'default', value = '', cookieSetting = {}) {
+cookies.set = function(name = "default", value = "", cookieSetting = {}) {
let currentCookieSetting = {
expires: Setting.cookiesExpires
};
@@ -21,14 +21,14 @@ cookies.set = function (name = 'default', value = '', cookieSetting = {}) {
* @description 拿到 cookie 值
* @param {String} name cookie name
*/
-cookies.get = function (name = 'default') {
+cookies.get = function(name = "default") {
return Cookies.get(`admin-${name}`);
};
/**
* @description 拿到 cookie 全部的值
*/
-cookies.getAll = function () {
+cookies.getAll = function() {
return Cookies.get();
};
@@ -36,7 +36,7 @@ cookies.getAll = function () {
* @description 删除 cookie
* @param {String} name cookie name
*/
-cookies.remove = function (name = 'default') {
+cookies.remove = function(name = "default") {
return Cookies.remove(`admin-${name}`);
};
diff --git a/src/libs/util.db.js b/src/libs/util.db.js
index 944ea81..847371d 100644
--- a/src/libs/util.db.js
+++ b/src/libs/util.db.js
@@ -13,10 +13,10 @@ var _local = {
var data = Object.assign(params, { startTime: new Date().getTime() });
localStorage.setItem(key, JSON.stringify(data));
} else {
- if (Object.prototype.toString.call(value) == '[object Object]') {
+ if (Object.prototype.toString.call(value) == "[object Object]") {
value = JSON.stringify(value);
}
- if (Object.prototype.toString.call(value) == '[object Array]') {
+ if (Object.prototype.toString.call(value) == "[object Array]") {
value = JSON.stringify(value);
}
localStorage.setItem(key, value);
@@ -55,20 +55,20 @@ var _local = {
clear() {
localStorage.clear();
}
-}
+};
/**
* sessionStorage
*/
var _session = {
- get: function (key) {
+ get: function(key) {
var data = sessionStorage[key];
if (!data || data === "null") {
return null;
}
return data;
},
- set: function (key, value) {
+ set: function(key, value) {
sessionStorage[key] = value;
},
// 删除
@@ -79,5 +79,5 @@ var _session = {
clear() {
sessionStorage.clear();
}
-}
-export { _local, _session }
\ No newline at end of file
+};
+export { _local, _session };
\ No newline at end of file
diff --git a/src/libs/util.js b/src/libs/util.js
index a4b1ff6..f51044f 100644
--- a/src/libs/util.js
+++ b/src/libs/util.js
@@ -1,187 +1,225 @@
-import cookies from './util.cookies'
-import {_local,_session} from './util.db'
-import { Message } from 'element-ui'
-import store from '@/store'
-import axios from 'axios'
-import api from '@/api'
-import Setting from '@/setting'
+import cookies from "./util.cookies";
+import { _local, _session } from "./util.db";
+import { Message } from "element-ui";
+import store from "@/store";
+import axios from "axios";
+import api from "@/api";
+import Setting from "@/setting";
-let logout = false
+let logout = false;
const roleList = {
- '1': '超级管理员',
- '13': '管理员',
- '14': '老师',
- '4': '学生'
-}
+ "1": "超级管理员",
+ "13": "管理员",
+ "14": "老师",
+ "4": "学生"
+};
const util = {
- cookies,
- local: _local,
- session: _session,
- // 传入身份证获取生日
- getBirth(idCard) {
- var birthday = "";
- if(idCard != null && idCard != ""){
- if(idCard.length == 15){
- birthday = "19"+idCard.slice(6,12);
- } else if(idCard.length == 18){
- birthday = idCard.slice(6,14);
- }
- birthday = birthday.replace(/(.{4})(.{2})/,"$1-$2-");
- //通过正则表达式来指定输出格式为:1990-01-01
- }
- return birthday;
- },
- // new Date('2020-11-12 00:00:00') 在IE下失效,因此把-替换成/
- dateCompatible(date) {
- return date.replace(/\-/g, '/')
- },
- // 日期时间前面补零
- formateTime(num) {
- return num < 10 ? `0${num}` : num
- },
- //返回格式化时间,传参例如:"yyyy-MM-dd hh:mm:ss"
- formatDate(fmt,date) {
- var date = date ? date : new Date()
- var o = {
- "M+" : date.getMonth()+1, //月份
- "d+" : date.getDate(), //日
- "h+" : date.getHours(), //小时
- "m+" : date.getMinutes(), //分
- "s+" : date.getSeconds(), //秒
- "q+" : Math.floor((date.getMonth()+3)/3), //季度
- "S" : date.getMilliseconds() //毫秒
- };
- if(/(y+)/.test(fmt)) {
- fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
- }
- for(var k in o) {
- if(new RegExp("("+ k +")").test(fmt)){
- fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
+ cookies,
+ local: _local,
+ session: _session,
+ // 传入身份证获取生日
+ getBirth(idCard) {
+ var birthday = "";
+ if (idCard != null && idCard != "") {
+ if (idCard.length == 15) {
+ birthday = "19" + idCard.slice(6, 12);
+ } else if (idCard.length == 18) {
+ birthday = idCard.slice(6, 14);
+ }
+ birthday = birthday.replace(/(.{4})(.{2})/, "$1-$2-");
+ //通过正则表达式来指定输出格式为:1990-01-01
}
- }
- return fmt;
- },
- // 移除数组中指定值
- removeByValue(arr, val) {
- for(var i=0; i
{
- n[attr] = n[attr].replace(/<\/?.+?>/gi,'')
- })
- return list
- },
- // 传入文件名获取文件后缀
- getFileExt(fileName) {
- return fileName.substring(fileName.lastIndexOf('.') + 1)
- },
- // 传入文件名和路径,下载图片视频,支持跨域,a标签加download不支持跨域
- downloadFile(fileName,url) {
- var x = new XMLHttpRequest()
- x.open("GET", url, true)
- x.responseType = 'blob'
- x.onload=function(e) {
- var url = window.URL.createObjectURL(x.response)
- var a = document.createElement('a')
- a.href = url
- a.download = fileName
- a.click()
- }
- x.send()
- },
- // 传入文件名和数据,下载文件
- downloadFileDirect(fileName,data) {
- if ('download' in document.createElement('a')) { // 非IE下载
- const elink = document.createElement('a')
- elink.download = fileName
- elink.style.display = 'none'
- elink.href = URL.createObjectURL(data)
- document.body.appendChild(elink)
- elink.click()
- URL.revokeObjectURL(elink.href) // 释放URL 对象
- document.body.removeChild(elink)
- } else { // IE10+下载
- navigator.msSaveBlob(data, fileName)
- }
- },
- // 传入字符串,返回去除[]后的字符串,因为通过get请求带入方括号的话会有问题
- encodeStr(str) {
- if(str.includes('[') || str.includes(']')){
- let newStr = ''
- for(let i of str){
- if(i == '[' || i == ']'){
- newStr += encodeURI(i)
- }else{
- newStr += i
+ for (var k in o) {
+ if (new RegExp("(" + k + ")").test(fmt)) {
+ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
+ }
}
- }
- return newStr
- }
- return str
- },
- // 成功提示
- successMsg(message,duration = 3000) {
- Message.closeAll();
- return Message.success({message,showClose: true,offset: (document.documentElement.clientHeight - 40) / 2,duration})
- },
- // 警告提示
- warningMsg(message,duration = 3000) {
- Message.closeAll();
- return Message.warning({message,showClose: true,offset: (document.documentElement.clientHeight - 40) / 2,duration})
- },
- // 错误提示
- errorMsg(message,duration = 3000) {
- Message.closeAll();
- return Message.error({message,showClose: true,offset: (document.documentElement.clientHeight - 40) / 2,duration})
- },
- // 传入roleId,返回角色名称
- getRoleName(roleId){
- return roleList[roleId] || '未知状态'
- },
- // 登录互踢
- getToken(){
- if(process.env.NODE_ENV != 'production'){
- if(store.state.user.dataTime && !logout){
- axios.get(`${api.queryToken}?token=${_local.get(Setting.tokenKey)}`).then(res => {
- if(store.state.user.dataTime && (res.data.message != store.state.user.dataTime)){
- logout || Message.error('您已在另一台设备登录,本次登录已下线!')
- logout = true
- setTimeout(() => {
- _local.remove(Setting.storeKey)
- _local.remove(Setting.tokenKey)
- location.reload()
- },1500)
+ return fmt;
+ },
+ // 移除数组中指定值
+ removeByValue(arr, val) {
+ for (var i = 0; i < arr.length; i++) {
+ if (arr[i] == val) {
+ arr.splice(i, 1);
+ break;
+ }
+ }
+ },
+ // 传入文件后缀判断是否是视频
+ isVideo(ext) {
+ if ("mp4,3gp,mov,m4v,avi,dat,mkv,flv,vob,rmvb,rm,qlv".includes(ext)) return true;
+ return false;
+ },
+ // 传入文件后缀判断是否是音频
+ isAudio(ext) {
+ if ("mp3,aac,ape,flac,wav,wma,amr,mid".includes(ext)) return true;
+ return false;
+ },
+ // 传入文件后缀判断是否是图片
+ isImg(ext) {
+ if ("jpg,jpeg,png,gif,svg,psd".includes(ext)) return true;
+ return false;
+ },
+ // 传入文件后缀判断是否是pdf以外的文档
+ isDoc(ext) {
+ if (!util.isVideo(ext) && !util.isAudio(ext) && !util.isImg(ext) && ext != "pdf") return true;
+ return false;
+ },
+ // 循环去除html标签
+ removeHtmlTag(list, attr) {
+ list.map(n => {
+ n[attr] = n[attr].replace(/<\/?.+?>/gi, "");
+ });
+ return list;
+ },
+ // 传入文件名获取文件后缀
+ getFileExt(fileName) {
+ return fileName.substring(fileName.lastIndexOf(".") + 1);
+ },
+ // 传入文件名和路径,下载图片视频,支持跨域,a标签加download不支持跨域
+ downloadFile(fileName, url) {
+ var x = new XMLHttpRequest();
+ x.open("GET", url, true);
+ x.responseType = "blob";
+ x.onload = function(e) {
+ var url = window.URL.createObjectURL(x.response);
+ var a = document.createElement("a");
+ a.href = url;
+ a.download = fileName;
+ a.click();
+ };
+ x.send();
+ },
+ // 传入文件名和数据,下载文件
+ downloadFileDirect(fileName, data) {
+ if ("download" in document.createElement("a")) { // 非IE下载
+ const elink = document.createElement("a");
+ elink.download = fileName;
+ elink.style.display = "none";
+ elink.href = URL.createObjectURL(data);
+ document.body.appendChild(elink);
+ elink.click();
+ URL.revokeObjectURL(elink.href); // 释放URL 对象
+ document.body.removeChild(elink);
+ } else { // IE10+下载
+ navigator.msSaveBlob(data, fileName);
+ }
+ },
+ // 传入字符串,返回去除[]后的字符串,因为通过get请求带入方括号的话会有问题
+ encodeStr(str) {
+ if (str.includes("[") || str.includes("]")) {
+ let newStr = "";
+ for (let i of str) {
+ if (i == "[" || i == "]") {
+ newStr += encodeURI(i);
+ } else {
+ newStr += i;
}
- }).catch(err => {})
+ }
+ return newStr;
+ }
+ return str;
+ },
+ // 成功提示
+ successMsg(message, duration = 3000) {
+ Message.closeAll();
+ return Message.success({ message, showClose: true, offset: (document.documentElement.clientHeight - 40) / 2, duration });
+ },
+ // 警告提示
+ warningMsg(message, duration = 3000) {
+ Message.closeAll();
+ return Message.warning({ message, showClose: true, offset: (document.documentElement.clientHeight - 40) / 2, duration });
+ },
+ // 错误提示
+ errorMsg(message, duration = 3000) {
+ Message.closeAll();
+ return Message.error({ message, showClose: true, offset: (document.documentElement.clientHeight - 40) / 2, duration });
+ },
+ // 传入roleId,返回角色名称
+ getRoleName(roleId) {
+ return roleList[roleId] || "未知状态";
+ },
+ // 登录互踢
+ getToken() {
+ if (process.env.NODE_ENV != "production") {
+ if (store.state.user.dataTime && !logout) {
+ axios.get(`${api.queryToken}?token=${_local.get(Setting.tokenKey)}`).then(res => {
+ if (store.state.user.dataTime && (res.data.message != store.state.user.dataTime)) {
+ logout || Message.error("您已在另一台设备登录,本次登录已下线!");
+ logout = true;
+ setTimeout(() => {
+ _local.remove(Setting.storeKey);
+ _local.remove(Setting.tokenKey);
+ location.reload();
+ }, 1500);
+ }
+ }).catch(err => {
+ });
+ }
+ }
+ },
+ debounce(fn, delay) { // 防抖
+ let timeout = null;
+ return function() {
+ const context = this;
+ const args = arguments;
+ clearTimeout(timeout);
+ timeout = setTimeout(() => {
+ fn.apply(context, args);
+ }, delay);
+ };
+ },
+ deepCopy(obj) { // 深拷贝
+ if (obj == null) {
+ return null;
+ }
+ if (typeof obj !== "object") return obj;
+ let result;
+ if (Array.isArray(obj)) {
+ result = [];
+ obj.forEach(item => {
+ result.push(
+ typeof item === "object" && !(item instanceof Date)
+ ? util.deepCopy(item)
+ : item
+ );
+ });
+ } else {
+ result = {};
+ Object.keys(obj).forEach(key => {
+ result[key] =
+ typeof obj[key] === "object" && !(obj[key] instanceof Date)
+ ? util.deepCopy(obj[key])
+ : obj[key];
+ });
}
+ return result;
}
- }
-}
+};
-export default util
\ No newline at end of file
+export default util;
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index a438311..91459fd 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,26 +1,26 @@
-import Vue from 'vue';
-import App from '@/App.vue';
-import router from '@/router';
-import ElementUI from 'element-ui';
-import '@/styles/index.scss'
-import VueI18n from 'vue-i18n';
-import mixinApp from '@/mixins/app';
-import { messages } from '@/i18n';
-import 'babel-polyfill';
-import '@/libs/resize';
-import { post, get, del, put } from '@/plugins/requests/index.js';
-import api from '@/api';
-import store from '@/store'
-import Setting from '@/setting';
-import permission from '@/router/permission';
+import Vue from "vue";
+import App from "@/App.vue";
+import router from "@/router";
+import ElementUI from "element-ui";
+import "@/styles/index.scss";
+import VueI18n from "vue-i18n";
+import mixinApp from "@/mixins/app";
+import { messages } from "@/i18n";
+import "babel-polyfill";
+import "@/libs/resize";
+import { post, get, del, put } from "@/plugins/requests/index.js";
+import api from "@/api";
+import store from "@/store";
+import Setting from "@/setting";
+import permission from "@/router/permission";
// 插件
-import plugins from '@/plugins';
-import filters from '@/plugins/filters'
+import plugins from "@/plugins";
+import filters from "@/plugins/filters";
Vue.use(plugins);
-Object.keys(filters).forEach(item => Vue.filter(item, filters[item]))
+Object.keys(filters).forEach(item => Vue.filter(item, filters[item]));
Vue.prototype.api = api;
Vue.prototype.$get = get;
@@ -30,7 +30,7 @@ Vue.prototype.$put = put;
Vue.config.productionTip = false;
Vue.use(VueI18n);
-Vue.use(ElementUI, { size: 'small' });
+Vue.use(ElementUI, { size: "small" });
const i18n = new VueI18n({
locale: Setting.i18n.default,
messages
@@ -42,4 +42,4 @@ new Vue({
i18n,
store,
render: h => h(App)
-}).$mount('#app');
+}).$mount("#app");
diff --git a/src/mixins/app.js b/src/mixins/app.js
index 64aaa70..fa8020a 100644
--- a/src/mixins/app.js
+++ b/src/mixins/app.js
@@ -4,8 +4,8 @@
export default {
methods: {
// 当 $route 更新时触发
- appRouteChange (to, from) {
+ appRouteChange(to, from) {
}
}
-}
+};
diff --git a/src/mixins/setBackground/index.js b/src/mixins/setBackground/index.js
index 9d9fd4a..3c058de 100644
--- a/src/mixins/setBackground/index.js
+++ b/src/mixins/setBackground/index.js
@@ -1,8 +1,8 @@
export default {
beforeCreate() {
- document.querySelector('body').setAttribute('style', 'background-color:#fff')
+ document.querySelector("body").setAttribute("style", "background-color:#fff");
},
beforeDestroy() {
- document.body.removeAttribute('style')
+ document.body.removeAttribute("style");
}
-}
\ No newline at end of file
+};
\ No newline at end of file
diff --git a/src/pages/account/login/index.vue b/src/pages/account/login/index.vue
index 108d0f6..0ad3c3c 100644
--- a/src/pages/account/login/index.vue
+++ b/src/pages/account/login/index.vue
@@ -28,7 +28,7 @@
@keyup.enter.native="submitForm('param')"
>
-
+
马上登录
@@ -54,7 +54,7 @@
@keyup.enter.native="submitForm('param')"
>
-
+
马上登录
@@ -68,70 +68,73 @@
\ No newline at end of file
diff --git a/src/pages/achievement/list/index.vue b/src/pages/achievement/list/index.vue
index a6a71c4..2b5b058 100644
--- a/src/pages/achievement/list/index.vue
+++ b/src/pages/achievement/list/index.vue
@@ -6,16 +6,31 @@
时间
- {{item.name}}
+ {{ item.name }}
实验项目分类
- {{item.name}}
+ {{ item.name }}
+
+ 班级
+
+
+
+
+
+
+
-
+
- {{scope.$index + (page - 1) * pageSize + 1}}
+ {{ scope.$index + (page - 1) * pageSize + 1 }}
-
+
- {{scope.row.projectPermissions == 2 ? '竞赛' : projectType.find(n => n.id === scope.row.projectPermissions).name}}
+ {{ scope.row.permissions == 2 ? "竞赛" : projectType.find(n => n.id === scope.row.permissions).name }}
-
-
+
+
成绩管理
- 删除
+ 删除
@@ -71,207 +87,210 @@
\ No newline at end of file
diff --git a/src/pages/achievement/show/index.vue b/src/pages/achievement/show/index.vue
index 3c265af..c78393b 100644
--- a/src/pages/achievement/show/index.vue
+++ b/src/pages/achievement/show/index.vue
@@ -5,7 +5,7 @@
-
+
@@ -56,7 +56,7 @@
- {{scope.$index + 1}}
+ {{ scope.$index + 1 }}
@@ -89,328 +89,359 @@
\ No newline at end of file
diff --git a/src/pages/achievement/teach/index.vue b/src/pages/achievement/teach/index.vue
index 082e4c7..ae81a6c 100644
--- a/src/pages/achievement/teach/index.vue
+++ b/src/pages/achievement/teach/index.vue
@@ -1,29 +1,25 @@
-
-
+
+
-
-
-
+
+
+
+
实验总人数
-
{{total}}
+
{{ peopleNum }}
-
+
实验平均分
-
{{avg}}
+
{{ avgScore }}
@@ -33,7 +29,13 @@
-
+
批量删除
@@ -44,18 +46,16 @@
- {{scope.$index + (page - 1) * pageSize + 1}}
+ {{ scope.$index + (page - 1) * pageSize + 1 }}
- {{experimentalName}}
+ {{ experimentalName }}
-
-
@@ -78,201 +78,193 @@
\ No newline at end of file
diff --git a/src/pages/assessment/list/index.vue b/src/pages/assessment/list/index.vue
index 0019e89..0181eb2 100644
--- a/src/pages/assessment/list/index.vue
+++ b/src/pages/assessment/list/index.vue
@@ -6,7 +6,7 @@
实验时间
- {{item.name}}
+ {{ item.name }}
@@ -35,7 +35,7 @@
-
+
@@ -45,10 +45,10 @@
-
+
- {{scope.$index + (pageNum - 1) * pageSize + 1}}
+ {{ scope.$index + (pageNum - 1) * pageSize + 1 }}
@@ -57,41 +57,40 @@
-
+
- {{scope.row.isEnableCode == 0 ? scope.row.invitationCode : ''}}
+ {{ scope.row.isEnableCode == 0 ? scope.row.invitationCode : "" }}
-
+
- {{types[scope.row.type]}}
+ {{ types[scope.row.type] }}
- {{transferTime(scope.row.startTime,scope.row.type)}}
+ {{ transferTime(scope.row.startTime) }}
-
+
- {{transferTime(scope.row.stopTime,scope.row.type)}}
+ {{ transferTime(scope.row.stopTime) }}
-
+
- {{scope.row.surplusTime}}
- 00:00:00
+ {{ timeChange(scope.row.countDown) }}
- {{status[scope.row.status]}}
+ {{ status[scope.row.status] }}
@@ -117,162 +116,180 @@
\ No newline at end of file
diff --git a/src/pages/course/courseManagement/add.vue b/src/pages/course/courseManagement/add.vue
index 725b783..3cdb0e0 100644
--- a/src/pages/course/courseManagement/add.vue
+++ b/src/pages/course/courseManagement/add.vue
@@ -50,7 +50,7 @@
- {{ id ? '更新' : '创建' }}
+ {{ id ? "更新" : "创建" }}
@@ -58,35 +58,34 @@
diff --git a/src/pages/exception/error/404/index.vue b/src/pages/exception/error/404/index.vue
index bbb8580..816709c 100644
--- a/src/pages/exception/error/404/index.vue
+++ b/src/pages/exception/error/404/index.vue
@@ -1,59 +1,64 @@
-
40 4
-
啊哦~ 你所访问的页面不存在
-
-
- 返回首页
-
- 返回上一页
-
+
40 4
+
啊哦~ 你所访问的页面不存在
+
+
+ 返回首页
+
+ 返回上一页
+
diff --git a/src/pages/exception/i18n/index.vue b/src/pages/exception/i18n/index.vue
index 69074bd..55d1ab1 100644
--- a/src/pages/exception/i18n/index.vue
+++ b/src/pages/exception/i18n/index.vue
@@ -2,22 +2,22 @@
- {{$t('i18n.breadcrumb')}}
+ {{ $t("i18n.breadcrumb") }}
-
{{$t('i18n.tips')}}
-
{{$t('i18n.btn')}}
+
{{ $t("i18n.tips") }}
+
{{ $t("i18n.btn") }}
-
{{$t('i18n.title1')}}
-
{{$t('i18n.p1')}}
-
{{$t('i18n.p2')}}
-
{{$t('i18n.p3')}}
+
{{ $t("i18n.title1") }}
+
{{ $t("i18n.p1") }}
+
{{ $t("i18n.p2") }}
+
{{ $t("i18n.p3") }}
-
{{$t('i18n.title2')}}
+
{{ $t("i18n.title2") }}
@@ -26,21 +26,22 @@
diff --git a/src/pages/exception/icon/index.vue b/src/pages/exception/icon/index.vue
index 352d38b..4eab051 100644
--- a/src/pages/exception/icon/index.vue
+++ b/src/pages/exception/icon/index.vue
@@ -8,7 +8,7 @@
使用方法
- 直接通过设置类名为 el-icon-lx-iconName 来使用即可。例如:(共{{iconList.length}}个图标)
+ 直接通过设置类名为 el-icon-lx-iconName 来使用即可。例如:(共{{ iconList.length }}个图标)
@@ -31,7 +31,7 @@
- {{item}}
+ {{ item }}
@@ -41,172 +41,177 @@
\ No newline at end of file
diff --git a/src/pages/information/contentManage/index.vue b/src/pages/information/contentManage/index.vue
index 7a25122..4031e8a 100644
--- a/src/pages/information/contentManage/index.vue
+++ b/src/pages/information/contentManage/index.vue
@@ -35,10 +35,11 @@
\ No newline at end of file
diff --git a/src/pages/match/manage/index.vue b/src/pages/match/manage/index.vue
index 4fb89c0..723c63c 100644
--- a/src/pages/match/manage/index.vue
+++ b/src/pages/match/manage/index.vue
@@ -3,12 +3,12 @@
-
+
@@ -22,19 +22,20 @@
@@ -307,7 +315,7 @@ export default {
$upload-width: 220px;
$upload-height: 140px;
$upload-lg-height: 150px;
-/deep/.avatar-uploader{
+/deep/ .avatar-uploader {
.el-upload {
position: relative;
width: $upload-width;
@@ -316,22 +324,26 @@ $upload-lg-height: 150px;
border-radius: 6px;
cursor: pointer;
overflow: hidden;
+
&:hover {
border-color: #cb221c;
}
- .uploader-default{
+
+ .uploader-default {
display: flex;
height: $upload-height;
flex-direction: column;
justify-content: center;
text-align: center;
background: rgba(0, 0, 0, 0.04);
- i{
+
+ i {
font-size: 20px;
font-weight: bold;
color: #8c939d;
}
- p{
+
+ p {
margin-top: 10px;
font-size: 14px;
color: rgba(0, 0, 0, 0.65);
@@ -339,68 +351,80 @@ $upload-lg-height: 150px;
}
}
}
- &.avatar-uploader-lg{
+
+ &.avatar-uploader-lg {
.el-upload {
width: 100%;
max-width: 960px;
height: $upload-lg-height;
- .uploader-default{
+
+ .uploader-default {
height: $upload-lg-height;
}
}
}
+
.avatar {
display: block;
width: $upload-width;
height: $upload-height;
}
+
.avatar-lg {
display: block;
width: 100%;
height: $upload-lg-height;
}
- .el-upload__tip{
+
+ .el-upload__tip {
margin-top: 0;
- p{
+
+ p {
font-size: 14px;
color: rgba(0, 0, 0, 0.45);
line-height: 1;
- &:first-child{
+
+ &:first-child {
margin-bottom: 5px;
}
}
}
}
-/deep/.d-inline-block{
+/deep/ .d-inline-block {
width: 216px;
- .el-select,.el-input{
+
+ .el-select, .el-input {
width: 100%;
}
}
-.inline-input{
- .input-wrap{
+
+.inline-input {
+ .input-wrap {
display: flex;
align-items: center;
margin-bottom: 10px;
- .el-input{
+ .el-input {
display: inline-block;
width: 216px;
margin-right: 8px;
}
- .remove{
+
+ .remove {
width: 16px;
height: 16px;
background: url(../../../assets/img/close.png) 0 0/cover no-repeat;
cursor: pointer;
}
}
- .add-btn{
+
+ .add-btn {
margin-left: 32px;
}
}
-.add-btn{
+
+.add-btn {
display: flex;
justify-content: center;
align-items: center;
@@ -412,7 +436,8 @@ $upload-lg-height: 150px;
border: 1px dashed rgba(0, 0, 0, 0.15);
border-radius: 4px;
cursor: pointer;
- i{
+
+ i {
margin-right: 8px;
font-size: 14px;
font-weight: bold;
diff --git a/src/pages/match/manage/matchProgress.vue b/src/pages/match/manage/matchProgress.vue
index ec603dc..edafda8 100644
--- a/src/pages/match/manage/matchProgress.vue
+++ b/src/pages/match/manage/matchProgress.vue
@@ -1,10 +1,10 @@
-
+
- {{scope.$index + (pageNo - 1) * pageSize + 1}}
+ {{ scope.$index + (pageNo - 1) * pageSize + 1 }}
@@ -38,24 +38,25 @@
\ No newline at end of file
diff --git a/src/pages/system/list/staffSide.vue b/src/pages/system/list/staffSide.vue
index 1a667ef..4e6504d 100644
--- a/src/pages/system/list/staffSide.vue
+++ b/src/pages/system/list/staffSide.vue
@@ -2,9 +2,9 @@
diff --git a/src/pages/system/list/stafftree.vue b/src/pages/system/list/stafftree.vue
index b17aa80..415c9b8 100644
--- a/src/pages/system/list/stafftree.vue
+++ b/src/pages/system/list/stafftree.vue
@@ -13,8 +13,12 @@
/>
- {{item.label}}
-
+ {{ item.label }}
+
+
+
@@ -23,8 +27,12 @@
-
{{item1.label}}
-
+
{{ item1.label }}
+
+
+
@@ -34,7 +42,7 @@
-
-
-
-
+
+
IconFont Demo
+
+
+
+
+
+
+
+
+
-
+
-
- Unicode
- Font class
- Symbol
-
-
-
查看项目
-
+
+ Unicode
+ Font class
+ Symbol
+
+
+
查看项目
+
-
-
-
-
-
- 已勾选32
- 
-
-
-
-
- 未勾选32
- 
-
-
-
-
- 未勾选40
- 
-
-
-
-
- 已勾选40
- 
-
-
-
-
- 实 向右箭头-01
- 
-
-
-
-
- 实 向下箭头-01
- 
-
-
-
-
- 加号-填充
- 
-
-
-
-
- 42指向上、上箭头
- 
-
-
-
-
- 44指向下、下箭头
- 
-
-
-
-
- 群蜂删除-充
- 
-
-
-
-
- qq
- 
-
-
-
-
- 微信-36
- 
-
-
-
-
-
Unicode 引用
-
-
-
Unicode 是字体在网页端最原始的应用方式,特点是:
-
- 兼容性最好,支持 IE6+,及所有现代浏览器。
- 支持按字体的方式去动态调整图标大小,颜色等等。
- 但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。
-
-
- 注意:新版 iconfont 支持多色图标,这些多色图标在 Unicode 模式下将不能使用,如果有需求建议使用symbol 的引用方式
-
-
Unicode 使用步骤如下:
-
第一步:拷贝项目下面生成的 @font-face
-
@font-face {
+
+
+
+
+
+ 已勾选32
+ 
+
+
+
+
+ 未勾选32
+ 
+
+
+
+
+ 未勾选40
+ 
+
+
+
+
+ 已勾选40
+ 
+
+
+
+
+ 实 向右箭头-01
+ 
+
+
+
+
+ 实 向下箭头-01
+ 
+
+
+
+
+ 加号-填充
+ 
+
+
+
+
+ 42指向上、上箭头
+ 
+
+
+
+
+ 44指向下、下箭头
+ 
+
+
+
+
+ 群蜂删除-充
+ 
+
+
+
+
+ qq
+ 
+
+
+
+
+ 微信-36
+ 
+
+
+
+
+
Unicode 引用
+
+
+
Unicode 是字体在网页端最原始的应用方式,特点是:
+
+ 兼容性最好,支持 IE6+,及所有现代浏览器。
+ 支持按字体的方式去动态调整图标大小,颜色等等。
+ 但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。
+
+
+ 注意:新版 iconfont 支持多色图标,这些多色图标在 Unicode 模式下将不能使用,如果有需求建议使用symbol 的引用方式
+
+
Unicode 使用步骤如下:
+
第一步:拷贝项目下面生成的 @font-face
+
@font-face {
font-family: 'iconfont';
src: url('iconfont.eot');
src: url('iconfont.eot?#iefix') format('embedded-opentype'),
@@ -129,9 +129,9 @@
url('iconfont.svg#iconfont') format('svg');
}
-
第二步:定义使用 iconfont 的样式
-
.iconfont {
+ 第二步:定义使用 iconfont 的样式
+ .iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
@@ -139,271 +139,271 @@
-moz-osx-font-smoothing: grayscale;
}
- 第三步:挑选相应图标并获取字体编码,应用于页面
-
+ 第三步:挑选相应图标并获取字体编码,应用于页面
+
<span class="iconfont">3</span>
-
- "iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。
-
-
-
-
-
-
-
font-class 引用
-
-
-
font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。
-
与 Unicode 使用方式相比,具有如下特点:
-
- 兼容性良好,支持 IE8+,及所有现代浏览器。
- 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
- 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
- 不过因为本质上还是使用的字体,所以多色图标还是不支持的。
-
-
使用步骤如下:
-
第一步:引入项目下面生成的 fontclass 代码:
-
<link rel="stylesheet" href="./iconfont.css">
+
+
+
+
+
font-class 引用
+
+
+
font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。
+
与 Unicode 使用方式相比,具有如下特点:
+
+ 兼容性良好,支持 IE8+,及所有现代浏览器。
+ 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
+ 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
+ 不过因为本质上还是使用的字体,所以多色图标还是不支持的。
+
+
使用步骤如下:
+
第一步:引入项目下面生成的 fontclass 代码:
+
<link rel="stylesheet" href="./iconfont.css">
-
第二步:挑选相应图标并获取类名,应用于页面:
-
<span class="iconfont icon-xxx"></span>
+ 第二步:挑选相应图标并获取类名,应用于页面:
+ <span class="iconfont icon-xxx"></span>
-
- "
- iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。
-
-
-
-
-
-
-
Symbol 引用
-
-
-
这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章
- 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:
-
- 支持多色图标了,不再受单色限制。
- 通过一些技巧,支持像字体那样,通过 font-size
, color
来调整样式。
- 兼容性较差,支持 IE9+,及现代浏览器。
- 浏览器渲染 SVG 的性能一般,还不如 png。
-
-
使用步骤如下:
-
第一步:引入项目下面生成的 symbol 代码:
-
<script src="./iconfont.js"></script>
+
+ "
+ iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。
+
+
+
+
+
+
+
Symbol 引用
+
+
+
这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章
+ 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:
+
+ 支持多色图标了,不再受单色限制。
+ 通过一些技巧,支持像字体那样,通过 font-size
, color
来调整样式。
+ 兼容性较差,支持 IE9+,及现代浏览器。
+ 浏览器渲染 SVG 的性能一般,还不如 png。
+
+
使用步骤如下:
+
第一步:引入项目下面生成的 symbol 代码:
+
<script src="./iconfont.js"></script>
-
第二步:加入通用 CSS 代码(引入一次就行):
-
<style>
+ 第二步:加入通用 CSS 代码(引入一次就行):
+ <style>
.icon {
width: 1em;
height: 1em;
@@ -413,34 +413,34 @@
}
</style>
- 第三步:挑选相应图标并获取类名,应用于页面:
-<svg class="icon" aria-hidden="true">
+ 第三步:挑选相应图标并获取类名,应用于页面:
+ <svg class="icon" aria-hidden="true">
<use xlink:href="#icon-xxx"></use>
</svg>
-
-
+
+
-
-
+
+