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 }}
  • +
  • + + + + +
  • + + +
    + +
    批量删除
    - + - - + + @@ -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 @@ @@ -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 @@ \ 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 @@
    - + @@ -57,41 +57,40 @@ - + - + - + - + @@ -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 @@ 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 @@ \ 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 @@
    @@ -34,12 +34,13 @@
    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 + + + + + + + + + -
    +

    -
    -
      - -
    • - -
      已勾选32
      -
      &#xe63d;
      -
    • - -
    • - -
      未勾选32
      -
      &#xe63e;
      -
    • - -
    • - -
      未勾选40
      -
      &#xe64a;
      -
    • - -
    • - -
      已勾选40
      -
      &#xe64b;
      -
    • - -
    • - -
      实 向右箭头-01
      -
      &#xe626;
      -
    • - -
    • - -
      实 向下箭头-01
      -
      &#xe625;
      -
    • - -
    • - -
      加号-填充
      -
      &#xe72d;
      -
    • - -
    • - -
      42指向上、上箭头
      -
      &#xe769;
      -
    • - -
    • - -
      44指向下、下箭头
      -
      &#xe76b;
      -
    • - -
    • - -
      群蜂删除-充
      -
      &#xe6e9;
      -
    • - -
    • - -
      qq
      -
      &#xe614;
      -
    • - -
    • - -
      微信-36
      -
      &#xe68a;
      -
    • - -
    -
    -

    Unicode 引用

    -
    - -

    Unicode 是字体在网页端最原始的应用方式,特点是:

    -
      -
    • 兼容性最好,支持 IE6+,及所有现代浏览器。
    • -
    • 支持按字体的方式去动态调整图标大小,颜色等等。
    • -
    • 但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。
    • -
    -
    -

    注意:新版 iconfont 支持多色图标,这些多色图标在 Unicode 模式下将不能使用,如果有需求建议使用symbol 的引用方式

    -
    -

    Unicode 使用步骤如下:

    -

    第一步:拷贝项目下面生成的 @font-face

    -
    @font-face {
    +        
    +
      + +
    • + +
      已勾选32
      +
      &#xe63d;
      +
    • + +
    • + +
      未勾选32
      +
      &#xe63e;
      +
    • + +
    • + +
      未勾选40
      +
      &#xe64a;
      +
    • + +
    • + +
      已勾选40
      +
      &#xe64b;
      +
    • + +
    • + +
      实 向右箭头-01
      +
      &#xe626;
      +
    • + +
    • + +
      实 向下箭头-01
      +
      &#xe625;
      +
    • + +
    • + +
      加号-填充
      +
      &#xe72d;
      +
    • + +
    • + +
      42指向上、上箭头
      +
      &#xe769;
      +
    • + +
    • + +
      44指向下、下箭头
      +
      &#xe76b;
      +
    • + +
    • + +
      群蜂删除-充
      +
      &#xe6e9;
      +
    • + +
    • + +
      qq
      +
      &#xe614;
      +
    • + +
    • + +
      微信-36
      +
      &#xe68a;
      +
    • + +
    +
    +

    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">&#x33;</span>
     
    -
    -

    "iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

    -
    -
    -
    -
    -
      - -
    • - -
      - 已勾选32 -
      -
      .icon-yigouxuan -
      -
    • - -
    • - -
      - 未勾选32 -
      -
      .icon-weigouxuan -
      -
    • - -
    • - -
      - 未勾选40 -
      -
      .icon-weigouxuan1 -
      -
    • - -
    • - -
      - 已勾选40 -
      -
      .icon-yigouxuan1 -
      -
    • - -
    • - -
      - 实 向右箭头-01 -
      -
      .icon-shixiangyoujiantou- -
      -
    • - -
    • - -
      - 实 向下箭头-01 -
      -
      .icon-shixiangxiajiantou- -
      -
    • - -
    • - -
      - 加号-填充 -
      -
      .icon-jiahao -
      -
    • - -
    • - -
      - 42指向上、上箭头 -
      -
      .icon-up -
      -
    • - -
    • - -
      - 44指向下、下箭头 -
      -
      .icon-down -
      -
    • - -
    • - -
      - 群蜂删除-充 -
      -
      .icon-delete -
      -
    • - -
    • - -
      - qq -
      -
      .icon-qq +
      +

      "iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

      +
      -
    • - -
    • - -
      - 微信-36 -
      -
      .icon-weixin -
      -
    • - -
    -
    -

    font-class 引用

    -
    - -

    font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。

    -

    与 Unicode 使用方式相比,具有如下特点:

    -
      -
    • 兼容性良好,支持 IE8+,及所有现代浏览器。
    • -
    • 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
    • -
    • 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
    • -
    • 不过因为本质上还是使用的字体,所以多色图标还是不支持的。
    • -
    -

    使用步骤如下:

    -

    第一步:引入项目下面生成的 fontclass 代码:

    -
    <link rel="stylesheet" href="./iconfont.css">
    +        
    +
    +
      + +
    • + +
      + 已勾选32 +
      +
      .icon-yigouxuan +
      +
    • + +
    • + +
      + 未勾选32 +
      +
      .icon-weigouxuan +
      +
    • + +
    • + +
      + 未勾选40 +
      +
      .icon-weigouxuan1 +
      +
    • + +
    • + +
      + 已勾选40 +
      +
      .icon-yigouxuan1 +
      +
    • + +
    • + +
      + 实 向右箭头-01 +
      +
      .icon-shixiangyoujiantou- +
      +
    • + +
    • + +
      + 实 向下箭头-01 +
      +
      .icon-shixiangxiajiantou- +
      +
    • + +
    • + +
      + 加号-填充 +
      +
      .icon-jiahao +
      +
    • + +
    • + +
      + 42指向上、上箭头 +
      +
      .icon-up +
      +
    • + +
    • + +
      + 44指向下、下箭头 +
      +
      .icon-down +
      +
    • + +
    • + +
      + 群蜂删除-充 +
      +
      .icon-delete +
      +
    • + +
    • + +
      + qq +
      +
      .icon-qq +
      +
    • + +
    • + +
      + 微信-36 +
      +
      .icon-weixin +
      +
    • + +
    +
    +

    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"。

    -
    -
    -
    -
    -
      - -
    • - -
      已勾选32
      -
      #icon-yigouxuan
      -
    • - -
    • - -
      未勾选32
      -
      #icon-weigouxuan
      -
    • - -
    • - -
      未勾选40
      -
      #icon-weigouxuan1
      -
    • - -
    • - -
      已勾选40
      -
      #icon-yigouxuan1
      -
    • - -
    • - -
      实 向右箭头-01
      -
      #icon-shixiangyoujiantou-
      -
    • - -
    • - -
      实 向下箭头-01
      -
      #icon-shixiangxiajiantou-
      -
    • - -
    • - -
      加号-填充
      -
      #icon-jiahao
      -
    • - -
    • - -
      42指向上、上箭头
      -
      #icon-up
      -
    • - -
    • - -
      44指向下、下箭头
      -
      #icon-down
      -
    • - -
    • - -
      群蜂删除-充
      -
      #icon-delete
      -
    • - -
    • - -
      qq
      -
      #icon-qq
      -
    • - -
    • - -
      微信-36
      -
      #icon-weixin
      -
    • - -
    -
    -

    Symbol 引用

    -
    - -

    这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 - 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:

    -
      -
    • 支持多色图标了,不再受单色限制。
    • -
    • 通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。
    • -
    • 兼容性较差,支持 IE9+,及现代浏览器。
    • -
    • 浏览器渲染 SVG 的性能一般,还不如 png。
    • -
    -

    使用步骤如下:

    -

    第一步:引入项目下面生成的 symbol 代码:

    -
    <script src="./iconfont.js"></script>
    +                
    +

    " + iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

    +
    +
    +
    +
    +
      + +
    • + +
      已勾选32
      +
      #icon-yigouxuan
      +
    • + +
    • + +
      未勾选32
      +
      #icon-weigouxuan
      +
    • + +
    • + +
      未勾选40
      +
      #icon-weigouxuan1
      +
    • + +
    • + +
      已勾选40
      +
      #icon-yigouxuan1
      +
    • + +
    • + +
      实 向右箭头-01
      +
      #icon-shixiangyoujiantou-
      +
    • + +
    • + +
      实 向下箭头-01
      +
      #icon-shixiangxiajiantou-
      +
    • + +
    • + +
      加号-填充
      +
      #icon-jiahao
      +
    • + +
    • + +
      42指向上、上箭头
      +
      #icon-up
      +
    • + +
    • + +
      44指向下、下箭头
      +
      #icon-down
      +
    • + +
    • + +
      群蜂删除-充
      +
      #icon-delete
      +
    • + +
    • + +
      qq
      +
      #icon-qq
      +
    • + +
    • + +
      微信-36
      +
      #icon-weixin
      +
    • + +
    +
    +

    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>
     
    -
    -
    +
    +
    -
    - +
    + diff --git a/src/styles/font/icon/iconfont.css b/src/styles/font/icon/iconfont.css index 255baba..8d9195c 100644 --- a/src/styles/font/icon/iconfont.css +++ b/src/styles/font/icon/iconfont.css @@ -1,71 +1,70 @@ -@font-face {font-family: "iconfont"; - src: url('iconfont.eot?t=1589437921018'); /* IE9 */ - src: url('iconfont.eot?t=1589437921018#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), - url('iconfont.woff?t=1589437921018') format('woff'), - url('iconfont.ttf?t=1589437921018') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ - url('iconfont.svg?t=1589437921018#iconfont') format('svg'); /* iOS 4.1- */ +@font-face { + font-family: "iconfont"; + src: url('iconfont.eot?t=1589437921018'); /* IE9 */ + src: url('iconfont.eot?t=1589437921018#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), + url('iconfont.woff?t=1589437921018') format('woff'), + url('iconfont.ttf?t=1589437921018') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ url('iconfont.svg?t=1589437921018#iconfont') format('svg'); /* iOS 4.1- */ } .iconfont { - font-family: "iconfont" !important; - font-size: 16px; - font-style: normal; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } .icon-yigouxuan:before { - content: "\e63d"; + content: "\e63d"; } .icon-weigouxuan:before { - content: "\e63e"; + content: "\e63e"; } .icon-weigouxuan1:before { - content: "\e64a"; + content: "\e64a"; } .icon-yigouxuan1:before { - content: "\e64b"; + content: "\e64b"; } .icon-shixiangyoujiantou-:before { - content: "\e626"; + content: "\e626"; } .icon-shixiangxiajiantou-:before { - content: "\e625"; + content: "\e625"; } .icon-jiahao:before { - content: "\e72d"; + content: "\e72d"; } .icon-up:before { - content: "\e769"; + content: "\e769"; } .icon-down:before { - content: "\e76b"; + content: "\e76b"; } .icon-delete:before { - content: "\e6e9"; + content: "\e6e9"; } .icon-qq:before { - content: "\e614"; - font-size: 60px; - color: #22aaf8; - margin-left: 32px; + content: "\e614"; + font-size: 60px; + color: #22aaf8; + margin-left: 32px; } .icon-weixin:before { - content: "\e68a"; - font-size: 60px; - color: #10b747; - margin-right: 32px; + content: "\e68a"; + font-size: 60px; + color: #10b747; + margin-right: 32px; } diff --git a/src/styles/font/icon/iconfont.svg b/src/styles/font/icon/iconfont.svg index 0ea2980..5dbf5ad 100644 --- a/src/styles/font/icon/iconfont.svg +++ b/src/styles/font/icon/iconfont.svg @@ -4,59 +4,78 @@ 2013-9-30: Created. --> - -Created by iconfont - - + + Created by iconfont + + - - - - - + + + - - + - - - - + - - - - + - - - - + - - - - + - - - - + - + - - + + + + + + + + + + + + + + + + + + + diff --git a/src/styles/font/iconfont.css b/src/styles/font/iconfont.css index fe8fbef..89fac0b 100644 --- a/src/styles/font/iconfont.css +++ b/src/styles/font/iconfont.css @@ -1,3 +1,3 @@ [class*=" icon-"], [class^=icon-] { - font-family: iconfont!important; + font-family: iconfont !important; } \ No newline at end of file diff --git a/src/styles/layout/index.scss b/src/styles/layout/index.scss index 444e687..53b7eba 100644 --- a/src/styles/layout/index.scss +++ b/src/styles/layout/index.scss @@ -1,16 +1,17 @@ @import "lib/var"; @import "var"; + html, body, #app, .wrapper { - width: 100%; - height: 100%; + width: 100%; + height: 100%; } body { - min-width: 1500px; - font-family: 'PingFang SC', "Helvetica Neue", Helvetica, "microsoft yahei", arial, STHeiTi, sans-serif; - font-size: 14px; - background: rgba(0, 0, 0, 0.05); + min-width: 1500px; + font-family: 'PingFang SC', "Helvetica Neue", Helvetica, "microsoft yahei", arial, STHeiTi, sans-serif; + font-size: 14px; + background: rgba(0, 0, 0, 0.05); } \ No newline at end of file diff --git a/src/styles/lib/_flex.scss b/src/styles/lib/_flex.scss index 8e8494b..01f27c3 100644 --- a/src/styles/lib/_flex.scss +++ b/src/styles/lib/_flex.scss @@ -10,15 +10,19 @@ .j-start { justify-content: flex-start; } + .j-end { justify-content: flex-end; } + .j-center { justify-content: center; } + .j-between { justify-content: space-between; } + .j-around { justify-content: space-around; } diff --git a/src/styles/lib/_float.scss b/src/styles/lib/_float.scss index 570b643..c2fc3ce 100644 --- a/src/styles/lib/_float.scss +++ b/src/styles/lib/_float.scss @@ -3,10 +3,12 @@ content: ' '; display: table; } + &:after { clear: both; } } + .fl { float: left; } diff --git a/src/styles/lib/_link.scss b/src/styles/lib/_link.scss index aedde39..93394bf 100644 --- a/src/styles/lib/_link.scss +++ b/src/styles/lib/_link.scss @@ -5,6 +5,7 @@ color: $color; text-decoration: none; cursor: pointer; + &:hover, &:active, &:focus { color: darken($color, 10%); text-decoration: underline; diff --git a/src/styles/lib/_position.scss b/src/styles/lib/_position.scss index d9796b5..5bec029 100644 --- a/src/styles/lib/_position.scss +++ b/src/styles/lib/_position.scss @@ -1,4 +1,3 @@ - @import "var"; @each $type in static, relative, absolute, fixed, sticky { diff --git a/src/styles/lib/_reset.scss b/src/styles/lib/_reset.scss index a7864e8..6a02e0c 100644 --- a/src/styles/lib/_reset.scss +++ b/src/styles/lib/_reset.scss @@ -69,11 +69,12 @@ input::-ms-reveal { display: none; } -ol,ul{ - li{ +ol, ul { + li { list-style: none; } } + h1 { font-size: 2em; margin: 0.67em 0; @@ -102,7 +103,7 @@ li:focus { outline-width: 0; } -i{ +i { font-style: normal; } @@ -228,7 +229,7 @@ select { text-transform: none; } -button:focus{ +button:focus { outline: none; } diff --git a/src/styles/lib/_var.scss b/src/styles/lib/_var.scss index 71d5045..3ff7d5f 100644 --- a/src/styles/lib/_var.scss +++ b/src/styles/lib/_var.scss @@ -11,7 +11,7 @@ $color-title: #17233d !default; $color-content: #515a6e !default; $color-disabled: #c5c8ce !default; -$bg-grey:#f0f0f0 !default; +$bg-grey: #f0f0f0 !default; $bg-white: #ffffff !default; $bg-black: #393D49 !default; @@ -19,38 +19,38 @@ $color-border: #dcdfe6 !default; // 主题背景色 $bg-colors: ( - 'white': $bg-white, - 'black': $bg-black, - 'grey': $bg-grey, - 'green': $color-green, - 'blue': $color-blue, - 'yellow': $color-yellow, - 'red': $color-red, + 'white': $bg-white, + 'black': $bg-black, + 'grey': $bg-grey, + 'green': $color-green, + 'blue': $color-blue, + 'yellow': $color-yellow, + 'red': $color-red, ) !default; // 文本颜色 $text-colors: ( - 'white': $color-white, - 'black': $color-black, - 'grey': $color-grey, - 'green': $color-green, - 'blue': $color-blue, - 'yellow': $color-yellow, - 'red': $color-red, - 'title': $color-title, - 'content': $color-content, - 'disabled': $color-disabled + 'white': $color-white, + 'black': $color-black, + 'grey': $color-grey, + 'green': $color-green, + 'blue': $color-blue, + 'yellow': $color-yellow, + 'red': $color-red, + 'title': $color-title, + 'content': $color-content, + 'disabled': $color-disabled ) !default; // 边框颜色 $border-colors: ( - 'white': $color-white, - 'black': $color-black, - 'grey': $color-border, - 'green': $color-green, - 'blue': $color-blue, - 'yellow': $color-yellow, - 'red': $color-red + 'white': $color-white, + 'black': $color-black, + 'grey': $color-border, + 'green': $color-green, + 'blue': $color-blue, + 'yellow': $color-yellow, + 'red': $color-red ) !default; // border @@ -59,13 +59,13 @@ $border-radius-through: 20 !default; // margin padding left right top bottom $box-sizes: ( - -20, -15, -12, -10, -8, -6, -5, -4, -3, -2, -1, - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20, 25, 30, 35, 40, 50, 60, 80, 100) !default; + -20, -15, -12, -10, -8, -6, -5, -4, -3, -2, -1, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20, 25, 30, 35, 40, 50, 60, 80, 100) !default; // width height $sizes: ( - 40, 50, 60, 70, 80, 90, 100, - 120, 150, 200, 250, 300, 400, 500, 600, 800, 1000, 1200) !default; + 40, 50, 60, 70, 80, 90, 100, + 120, 150, 200, 250, 300, 400, 500, 600, 800, 1000, 1200) !default; // font-size $font-size-em-through: 10 !default; diff --git a/src/styles/var.scss b/src/styles/var.scss index 08bd641..c9d3fd7 100644 --- a/src/styles/var.scss +++ b/src/styles/var.scss @@ -1,24 +1,27 @@ $main-color: #9278FF; @mixin ellipsis { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + @mixin mul-ellipsis($num) { - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: $num; - text-overflow: ellipsis; - overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: $num; + text-overflow: ellipsis; + overflow: hidden; } -.ellipsis{ - @include ellipsis(); +.ellipsis { + @include ellipsis(); } -.mul-ellipsis2{ - @include mul-ellipsis(2); + +.mul-ellipsis2 { + @include mul-ellipsis(2); } -.mul-ellipsis3{ - @include mul-ellipsis(3); + +.mul-ellipsis3 { + @include mul-ellipsis(3); } \ No newline at end of file