From 170d05b00558ac7943d65dcf03be730763ee7a64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=96=87=E5=8F=AF?= <1041367524@qq.com> Date: Tue, 15 Mar 2022 21:31:52 +0800 Subject: [PATCH] feat:menu --- src/App.vue | 33 +- src/assets/logo.png | Bin 6849 -> 9176 bytes src/components.d.ts | 10 + src/components/XIcon.vue | 4 +- src/icons/svg/msb.svg | 259 +++-- src/layouts/components/aside.vue | 60 ++ src/layouts/components/logo.vue | 24 + src/layouts/components/main.vue | 27 + src/layouts/components/menu-item.vue | 64 ++ src/layouts/components/menu.vue | 53 + src/layouts/default.vue | 40 + src/router/route.json | 1361 ++++++++++++++++++++++++ src/styles/base.less | 13 + src/styles/globalVariables.module.less | 50 + src/views/index.vue | 18 +- vite.config.ts | 7 + 16 files changed, 1907 insertions(+), 116 deletions(-) create mode 100644 src/layouts/components/aside.vue create mode 100644 src/layouts/components/logo.vue create mode 100644 src/layouts/components/main.vue create mode 100644 src/layouts/components/menu-item.vue create mode 100644 src/layouts/components/menu.vue create mode 100644 src/layouts/default.vue create mode 100644 src/router/route.json create mode 100644 src/styles/base.less create mode 100644 src/styles/globalVariables.module.less diff --git a/src/App.vue b/src/App.vue index bcff4e9..1cedfb0 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,9 +1,32 @@ - + + + diff --git a/src/assets/logo.png b/src/assets/logo.png index f3d2503fc2a44b5053b0837ebea6e87a2d339a43..5800f2e73d009742f815065b21332733285ce7c2 100644 GIT binary patch literal 9176 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 literal 6849 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 `#icon-${props.name}`); const size = computed(() => - typeof new Number(props.size) !== Number.NaN ? props.size + 'px' : props.size + Number.isNaN(new Number(props.size).valueOf()) ? props.size : props.size + 'px' ); const isRemix = computed(() => props.name.indexOf('-') !== -1 || props.isCustomSvg); return { @@ -50,6 +50,8 @@ .x-icon { font-size: v-bind(size); color: v-bind(color); + line-height: 1; + vertical-align: middle; } svg.x-icon { width: v-bind(size); diff --git a/src/icons/svg/msb.svg b/src/icons/svg/msb.svg index f9c4c1b..02d5bf4 100644 --- a/src/icons/svg/msb.svg +++ b/src/icons/svg/msb.svg @@ -1,107 +1,158 @@ - + diff --git a/src/layouts/components/aside.vue b/src/layouts/components/aside.vue new file mode 100644 index 0000000..f7f73d3 --- /dev/null +++ b/src/layouts/components/aside.vue @@ -0,0 +1,60 @@ +

{{ item.meta.title }}

+ + + + + + + + diff --git a/src/layouts/components/logo.vue b/src/layouts/components/logo.vue new file mode 100644 index 0000000..749a67c --- /dev/null +++ b/src/layouts/components/logo.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/src/layouts/components/main.vue b/src/layouts/components/main.vue new file mode 100644 index 0000000..d9cde07 --- /dev/null +++ b/src/layouts/components/main.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/src/layouts/components/menu-item.vue b/src/layouts/components/menu-item.vue new file mode 100644 index 0000000..b2afe62 --- /dev/null +++ b/src/layouts/components/menu-item.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/src/layouts/components/menu.vue b/src/layouts/components/menu.vue new file mode 100644 index 0000000..3feb9bd --- /dev/null +++ b/src/layouts/components/menu.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/src/layouts/default.vue b/src/layouts/default.vue new file mode 100644 index 0000000..79190a0 --- /dev/null +++ b/src/layouts/default.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/src/router/route.json b/src/router/route.json new file mode 100644 index 0000000..a53ddbd --- /dev/null +++ b/src/router/route.json @@ -0,0 +1,1361 @@ +[ + { + "path": "/", + "name": "Home", + "component": { + "name": "Layouts", + "__scopeId": "data-v-b1897f6a", + "__file": "src/vab/layouts/index.vue", + "__hmrId": "b1897f6a" + }, + "meta": { "title": "首页", "icon": "home-line", "noColumn": true, "menu": "/", "activeMenu": "/" }, + "children": [ + { + "path": "/dashboard", + "name": "Dashboard", + "meta": { "title": "首页", "icon": "home-line", "menu": "/dashboard", "activeMenu": "/dashboard" }, + "childrenNameList": ["Dashboard"] + } + ], + "childrenNameList": ["Dashboard"], + "redirect": "/dashboard" + }, + { + "path": "/demo", + "name": "Demo", + "component": { + "name": "Layouts", + "__scopeId": "data-v-b1897f6a", + "__file": "src/vab/layouts/index.vue", + "__hmrId": "b1897f6a" + }, + "meta": { "title": "组件示例", "icon": "test-tube-line", "menu": "/demo", "activeMenu": "/demo" }, + "children": [ + { + "path": "/demo/icon", + "name": "IconDemo", + "meta": { "title": "图标库", "icon": "aliens-fill", "menu": "/demo/icon", "activeMenu": "/demo/icon" }, + "childrenNameList": ["IconDemo"] + }, + { + "path": "/demo/list", + "name": "TableListDemo", + "meta": { "title": "通用列表", "icon": "table-fill", "menu": "/demo/list", "activeMenu": "/demo/list" }, + "childrenNameList": ["TableListDemo"] + }, + { + "path": "/demo/form", + "name": "BaseFormDemo", + "meta": { + "title": "通用表单", + "icon": "database-fill", + "menu": "/demo/form", + "activeMenu": "/demo/form" + }, + "childrenNameList": ["BaseFormDemo"] + }, + { + "path": "/demo/sortableTable", + "name": "SortableTableDemo", + "meta": { + "title": "可拖拽行表格", + "icon": "table-line", + "menu": "/demo/sortableTable", + "activeMenu": "/demo/sortableTable" + }, + "childrenNameList": ["SortableTableDemo"] + }, + { + "path": "/demo/select", + "name": "SelectDemo", + "meta": { + "title": "选择项组件", + "icon": "align-right", + "menu": "/demo/select", + "activeMenu": "/demo/select" + }, + "childrenNameList": ["SelectDemo"] + } + ], + "childrenNameList": ["IconDemo", "TableListDemo", "BaseFormDemo", "SortableTableDemo", "SelectDemo"], + "redirect": "/demo/icon" + }, + { + "path": "/course", + "name": "Course", + "meta": { + "title": "课程管理", + "icon": "checkbox-multiple-fill", + "hidden": false, + "activeMenu": "/course", + "menu": "/course" + }, + "children": [ + { + "path": "/course/management", + "name": "CourseManagement", + "meta": { + "title": "课程列表", + "icon": "book-2-fill", + "hidden": false, + "activeMenu": "/course/management", + "menu": "/course/management" + }, + "children": [ + { + "path": "/course/management/create/:step?", + "name": "CreateCourse", + "meta": { + "title": "新增课程", + "icon": "book-2-fill", + "hidden": true, + "activeMenu": "/course/management", + "menu": "/course/management/create" + }, + "childrenNameList": ["CreateCourse"] + }, + { + "path": "/course/management/update/:courseNo/:step?", + "name": "UpdateCourse", + "meta": { + "title": "编辑课程", + "icon": "book-2-fill", + "hidden": true, + "activeMenu": "/course/management", + "menu": "/course/management/update" + }, + "childrenNameList": ["UpdateCourse"] + }, + { + "path": "/course/management/video/:courseNo", + "name": "CourseVideoManagement", + "meta": { + "title": "视频管理", + "icon": "book-2-fill", + "hidden": true, + "activeMenu": "/course/management", + "menu": "/course/management/video/:courseNo" + }, + "childrenNameList": ["CourseVideoManagement"] + }, + { + "path": "/course/management/question", + "name": "CourseQuestionManagement", + "meta": { + "title": "题库管理", + "icon": "book-2-fill", + "hidden": true, + "activeMenu": "/course/management", + "menu": "/course/management/question" + }, + "childrenNameList": ["CourseQuestionManagement"] + }, + { + "path": "/course/management/attachment/:courseNo", + "name": "CourseAttachmentManagement", + "meta": { + "title": "附件管理", + "icon": "book-2-fill", + "hidden": true, + "activeMenu": "/course/management", + "menu": "/course/management/attachment/:courseNo" + }, + "childrenNameList": ["CourseAttachmentManagement"] + } + ], + "childrenNameList": [ + "CourseManagement", + "CreateCourse", + "UpdateCourse", + "CourseVideoManagement", + "CourseQuestionManagement", + "CourseAttachmentManagement" + ] + }, + { + "path": "/course/category", + "name": "CourseCategory", + "meta": { + "title": "课程分类", + "icon": "book-read-fill", + "hidden": false, + "activeMenu": "/course/category", + "menu": "/course/category" + }, + "childrenNameList": ["CourseCategory"] + }, + { + "path": "/course/system", + "name": "SystemCourseManagement", + "meta": { + "title": "体系课", + "icon": "book-3-fill", + "hidden": false, + "activeMenu": "/course/system", + "menu": "/course/system" + }, + "childrenNameList": ["SystemCourseManagement"] + }, + { + "path": "/course/authorize", + "name": "CourseAuthorize", + "meta": { + "title": "课程授权", + "icon": "book-fill", + "hidden": false, + "activeMenu": "/course/authorize", + "menu": "/course/authorize" + }, + "childrenNameList": ["CourseAuthorize"] + }, + { + "path": "/course/package", + "name": "CoursePackage", + "meta": { + "title": "课程包", + "icon": "archive-drawer-fill", + "hidden": false, + "activeMenu": "/course/package", + "menu": "/course/package" + }, + "childrenNameList": ["CoursePackage"] + }, + { + "path": "/course/live", + "name": "LiveCourse", + "meta": { + "title": "直播课", + "icon": "live-fill", + "hidden": false, + "activeMenu": "/course/live", + "menu": "/course/live" + }, + "childrenNameList": ["LiveCourse"] + }, + { + "path": "/course/unlockcourse", + "name": "unlockcourse", + "meta": { + "title": "解锁课程", + "icon": "lock-unlock-fill", + "hidden": false, + "activeMenu": "/course/unlockcourse", + "menu": "/course/unlockcourse" + }, + "childrenNameList": ["unlockcourse"] + } + ], + "childrenNameList": [ + "CourseManagement", + "CreateCourse", + "UpdateCourse", + "CourseVideoManagement", + "CourseQuestionManagement", + "CourseAttachmentManagement", + "CourseCategory", + "SystemCourseManagement", + "CourseAuthorize", + "CoursePackage", + "LiveCourse", + "unlockcourse" + ], + "redirect": "/course/management" + }, + { + "path": "/education", + "name": "Education", + "meta": { + "title": "教务教学", + "icon": "book-open-fill", + "hidden": false, + "activeMenu": "/education", + "menu": "/education" + }, + "children": [ + { + "path": "/education/teacher", + "name": "TeacherManagement", + "meta": { + "title": "老师管理", + "icon": "user-shared-fill", + "hidden": false, + "activeMenu": "/education/teacher", + "menu": "/education/teacher" + }, + "childrenNameList": ["TeacherManagement"] + }, + { + "path": "/education/student", + "name": "StudentManagement", + "meta": { + "title": "学生管理", + "icon": "user-received-fill", + "hidden": false, + "activeMenu": "/education/student", + "menu": "/education/student" + }, + "children": [ + { + "path": "/education/student/class/add/:id?", + "name": "StudentClassAdd", + "meta": { + "title": "编辑班级", + "icon": "account-pin-circle-fill", + "hidden": true, + "activeMenu": "/education/student", + "menu": "/education/student/class/add" + }, + "childrenNameList": ["StudentClassAdd"] + }, + { + "path": "/education/student/class/students/:id?/:packageId?/:gradeId?", + "name": "StudentsManagement", + "meta": { + "title": "学员管理", + "icon": "null", + "hidden": true, + "activeMenu": "/education/student", + "menu": "/education/student/class/students" + }, + "childrenNameList": ["StudentsManagement"] + }, + { + "path": "/education/student/list", + "name": "StudentManagementList", + "meta": { + "title": "学生列表", + "icon": "user-received-line", + "hidden": false, + "activeMenu": "/education/student/list", + "menu": "/education/student/list" + }, + "childrenNameList": ["StudentManagementList"] + }, + { + "path": "/education/student/grade", + "name": "GradeManagement", + "meta": { + "title": "年级管理", + "icon": "account-pin-box-fill", + "hidden": false, + "activeMenu": "/education/student/grade", + "menu": "/education/student/grade" + }, + "childrenNameList": ["GradeManagement"] + }, + { + "path": "/education/student/class/:id?", + "name": "ClassManagement", + "meta": { + "title": "班级管理", + "icon": "account-pin-circle-fill", + "hidden": false, + "activeMenu": "/education/student/class", + "menu": "/education/student/class" + }, + "childrenNameList": ["ClassManagement"] + } + ], + "childrenNameList": [ + "StudentClassAdd", + "StudentsManagement", + "StudentManagementList", + "GradeManagement", + "ClassManagement" + ], + "redirect": "/education/student/list" + }, + { + "path": "/education/admission", + "name": "AdmissionManagement", + "meta": { + "title": "入学", + "icon": "award-fill", + "hidden": false, + "activeMenu": "/education/admission", + "menu": "/education/admission" + }, + "children": [ + { + "path": "/education/admission/evaluation", + "name": "AdmissionEvaluation", + "meta": { + "title": "入学评测", + "icon": "file-paper-2-fill", + "hidden": false, + "activeMenu": "/education/admission/evaluation", + "menu": "/education/admission/evaluation" + }, + "childrenNameList": ["AdmissionEvaluation"] + }, + { + "path": "/education/admission/way", + "name": "StudyWay", + "meta": { + "title": "学习路线", + "icon": "send-plane-fill", + "hidden": false, + "activeMenu": "/education/admission/way", + "menu": "/education/admission/way" + }, + "childrenNameList": ["StudyWay"] + } + ], + "childrenNameList": ["AdmissionEvaluation", "StudyWay"], + "redirect": "/education/admission/evaluation" + }, + { + "path": "/education/answer", + "name": "Answer", + "meta": { + "title": "答疑", + "icon": "question-answer-fill", + "hidden": false, + "activeMenu": "/education/answer", + "menu": "/education/answer" + }, + "children": [ + { + "path": "/education/answer/management", + "name": "AnswerManagement", + "meta": { + "title": "答疑管理", + "icon": "question-answer-fill", + "hidden": false, + "activeMenu": "/education/answer/management", + "menu": "/education/answer/management" + }, + "children": [ + { + "path": "/education/answer/management/list", + "name": "AnswerManagementList", + "meta": { + "title": "答疑管理列表", + "icon": "question-answer-line", + "hidden": false, + "activeMenu": "/education/answer/management/list", + "menu": "/education/answer/management/list" + }, + "childrenNameList": ["AnswerManagementList"] + }, + { + "path": "/education/answer/management/invalid", + "name": "InvalidQuestionManagement", + "meta": { + "title": "无效追问管理", + "icon": "questionnaire-fill", + "hidden": false, + "activeMenu": "/education/answer/management/invalid", + "menu": "/education/answer/management/invalid" + }, + "childrenNameList": ["InvalidQuestionManagement"] + }, + { + "path": "/education/answer/management/lock", + "name": "UserLockManagement", + "meta": { + "title": "用户锁定管理", + "icon": "lock-fill", + "hidden": false, + "activeMenu": "/education/answer/management/lock", + "menu": "/education/answer/management/lock" + }, + "childrenNameList": ["UserLockManagement"] + } + ], + "childrenNameList": ["AnswerManagementList", "InvalidQuestionManagement", "UserLockManagement"], + "redirect": "/education/answer/management/list" + }, + { + "path": "/education/answer/assign/:questionId", + "name": "AssignAnswerTeacher", + "meta": { + "title": "指派老师", + "icon": "account-box-fill", + "hidden": true, + "activeMenu": "/education/answer", + "menu": "/education/answer/assign/:questionId" + }, + "childrenNameList": ["AssignAnswerTeacher"] + }, + { + "path": "/education/answer/teacher", + "name": "AnswerTeacher", + "meta": { + "title": "答疑老师管理", + "icon": "book-line", + "hidden": false, + "activeMenu": "/education/answer/teacher", + "menu": "/education/answer/teacher" + }, + "children": [ + { + "path": "/education/answer/teacher/summary", + "name": "AnswerTeacherSummary", + "meta": { + "title": "答疑老师统计", + "icon": "book-2-line", + "hidden": false, + "activeMenu": "/education/answer/teacher/summary", + "menu": "/education/answer/teacher/summary" + }, + "childrenNameList": ["AnswerTeacherSummary"] + }, + { + "path": "/education/answer/teacher/management", + "name": "AnswerTeacherManagement", + "meta": { + "title": "答疑老师管理", + "icon": "book-3-line", + "hidden": false, + "activeMenu": "/education/answer/teacher/management", + "menu": "/education/answer/teacher/management" + }, + "childrenNameList": ["AnswerTeacherManagement"] + }, + { + "path": "/education/answer/teacher/bind/:teacher?", + "name": "AnswerTeacherUpdateBind", + "meta": { + "title": "编辑课程绑定", + "icon": "book-fill", + "hidden": true, + "activeMenu": "/education/answer/teacher", + "menu": "/education/answer/teacher/bind" + }, + "childrenNameList": ["AnswerTeacherUpdateBind"] + }, + { + "path": "/education/answer/teacher/course", + "name": "AnswerTeacherBindCourse", + "meta": { + "title": "绑定课程管理", + "icon": "book-fill", + "hidden": false, + "activeMenu": "/education/answer/teacher/course", + "menu": "/education/answer/teacher/course" + }, + "childrenNameList": ["AnswerTeacherBindCourse"] + } + ], + "childrenNameList": [ + "AnswerTeacherSummary", + "AnswerTeacherManagement", + "AnswerTeacherUpdateBind", + "AnswerTeacherBindCourse" + ], + "redirect": "/education/answer/teacher/summary" + } + ], + "childrenNameList": [ + "AnswerManagementList", + "InvalidQuestionManagement", + "UserLockManagement", + "AssignAnswerTeacher", + "AnswerTeacherSummary", + "AnswerTeacherManagement", + "AnswerTeacherUpdateBind", + "AnswerTeacherBindCourse" + ], + "redirect": "/education/answer/management/list" + }, + { + "path": "/education/question", + "name": "QuestionManagement", + "meta": { + "title": "题库管理", + "icon": "brush-fill", + "hidden": false, + "activeMenu": "/education/question", + "menu": "/education/question" + }, + "childrenNameList": ["QuestionManagement"] + }, + { + "path": "/education/note", + "name": "NoteManagement", + "meta": { + "title": "笔记管理", + "icon": "sticky-note-2-fill", + "hidden": false, + "activeMenu": "/education/note", + "menu": "/education/note" + }, + "childrenNameList": ["NoteManagement"] + }, + { + "path": "/education/research", + "name": "CourseResearch", + "meta": { + "title": "课研更新", + "icon": "contacts-book-upload-fill", + "hidden": false, + "activeMenu": "/education/research", + "menu": "/education/research" + }, + "children": [ + { + "path": "/education/research/plan", + "name": "CourseResearchPlan", + "meta": { + "title": "课研计划", + "icon": "contacts-book-upload-line", + "hidden": false, + "activeMenu": "/education/research/plan", + "menu": "/education/research/plan" + }, + "childrenNameList": ["CourseResearchPlan"] + }, + { + "path": "/education/research/log", + "name": "CourseResearchLog", + "meta": { + "title": "课研更新日志", + "icon": "file-copy-2-line", + "hidden": false, + "activeMenu": "/education/research/log", + "menu": "/education/research/log" + }, + "childrenNameList": ["CourseResearchLog"] + } + ], + "childrenNameList": ["CourseResearchPlan", "CourseResearchLog"], + "redirect": "/education/research/plan" + }, + { + "path": "/education/live", + "name": "LiveManagement", + "meta": { + "title": "直播管理", + "icon": "live-fill", + "hidden": false, + "activeMenu": "/education/live", + "menu": "/education/live" + }, + "children": [ + { + "path": "/education/live/course", + "name": "LiveCourseManagement", + "meta": { + "title": "直播课管理", + "icon": "live-fill", + "hidden": false, + "activeMenu": "/education/live/course", + "menu": "/education/live/course" + }, + "childrenNameList": ["LiveCourseManagement"] + }, + { + "path": "/education/live/attendance", + "name": "LiveAttendance", + "meta": { + "title": "直播考勤", + "icon": "live-fill", + "hidden": false, + "activeMenu": "/education/live/attendance", + "menu": "/education/live/attendance" + }, + "childrenNameList": ["LiveAttendance"] + } + ], + "childrenNameList": ["LiveCourseManagement", "LiveAttendance"], + "redirect": "/education/live/course" + }, + { + "path": "/education/material", + "name": "MaterialManagement", + "meta": { + "title": "老师资料管理", + "icon": "database-2-fill", + "hidden": false, + "activeMenu": "/education/material", + "menu": "/education/material" + }, + "childrenNameList": ["MaterialManagement"] + }, + { + "path": "/education/shift", + "name": "ShiftTable", + "meta": { + "title": "排班表", + "icon": "calendar-check-line", + "hidden": false, + "activeMenu": "/education/shift", + "menu": "/education/shift" + }, + "childrenNameList": ["ShiftTable"] + }, + { + "path": "/education/course", + "name": "CourseTable", + "meta": { + "title": "课程表管理", + "icon": "calendar-todo-fill", + "hidden": false, + "activeMenu": "/education/course", + "menu": "/education/course" + }, + "childrenNameList": ["CourseTable"] + } + ], + "childrenNameList": [ + "TeacherManagement", + "StudentClassAdd", + "StudentsManagement", + "StudentManagementList", + "GradeManagement", + "ClassManagement", + "AdmissionEvaluation", + "StudyWay", + "AnswerManagementList", + "InvalidQuestionManagement", + "UserLockManagement", + "AssignAnswerTeacher", + "AnswerTeacherSummary", + "AnswerTeacherManagement", + "AnswerTeacherUpdateBind", + "AnswerTeacherBindCourse", + "QuestionManagement", + "NoteManagement", + "CourseResearchPlan", + "CourseResearchLog", + "LiveCourseManagement", + "LiveAttendance", + "MaterialManagement", + "ShiftTable", + "CourseTable" + ], + "redirect": "/education/teacher" + }, + { + "path": "/audit", + "name": "Audit", + "meta": { + "title": "审核管理", + "icon": "checkbox-multiple-fill", + "hidden": false, + "activeMenu": "/audit", + "menu": "/audit" + }, + "children": [ + { + "path": "/audit/course", + "name": "CourseAudit", + "meta": { + "title": "课程审核", + "icon": "book-fill", + "hidden": false, + "activeMenu": "/audit/course", + "menu": "/audit/course" + }, + "childrenNameList": ["CourseAudit"] + }, + { + "path": "/audit/answer", + "name": "AnswerCourseAudit", + "meta": { + "title": "答疑课程审核", + "icon": "book-2-fill", + "hidden": false, + "activeMenu": "/audit/answer", + "menu": "/audit/answer" + }, + "childrenNameList": ["AnswerCourseAudit"] + }, + { + "path": "/audit/admission", + "name": "AdmissionAudit", + "meta": { + "title": "入学审核", + "icon": "book-3-fill", + "hidden": false, + "activeMenu": "/audit/admission", + "menu": "/audit/admission" + }, + "childrenNameList": ["AdmissionAudit"] + } + ], + "childrenNameList": ["CourseAudit", "AnswerCourseAudit", "AdmissionAudit"], + "redirect": "/audit/course" + }, + { + "path": "/operation", + "name": "Operation", + "meta": { + "title": "运营管理", + "icon": "briefcase-4-fill", + "hidden": false, + "activeMenu": "/operation", + "menu": "/operation" + }, + "children": [ + { + "path": "/operation/banner", + "name": "BannerManagement", + "meta": { + "title": "轮播图", + "icon": "image-fill", + "hidden": false, + "activeMenu": "/operation/banner", + "menu": "/operation/banner" + }, + "childrenNameList": ["BannerManagement"] + }, + { + "path": "/operation/activity", + "name": "ActivityManagement", + "meta": { + "title": "活动管理", + "icon": "gift-2-fill", + "hidden": false, + "activeMenu": "/operation/activity", + "menu": "/operation/activity" + }, + "children": [ + { + "path": "/operation/activity/course", + "name": "CourseActivity", + "meta": { + "title": "课程活动", + "icon": "git-repository-line", + "hidden": false, + "activeMenu": "/operation/activity/course", + "menu": "/operation/activity/course" + }, + "childrenNameList": ["CourseActivity"] + }, + { + "path": "/operation/activity/poster", + "name": "PosterShare", + "meta": { + "title": "海报分享", + "icon": "dashboard-fill", + "hidden": false, + "activeMenu": "/operation/activity/poster", + "menu": "/operation/activity/poster" + }, + "childrenNameList": ["PosterShare"] + }, + { + "path": "/operation/activity/punch", + "name": "PunchActivity", + "meta": { + "title": "打卡活动", + "icon": "fingerprint-line", + "hidden": false, + "activeMenu": "/operation/activity/punch", + "menu": "/operation/activity/punch" + }, + "childrenNameList": ["PunchActivity"] + } + ], + "childrenNameList": ["CourseActivity", "PosterShare", "PunchActivity"], + "redirect": "/operation/activity/course" + }, + { + "path": "/operation/distribution", + "name": "DistributionManagement", + "meta": { + "title": "分销管理", + "icon": "mind-map", + "hidden": false, + "activeMenu": "/operation/distribution", + "menu": "/operation/distribution" + }, + "childrenNameList": ["DistributionManagement"] + }, + { + "path": "/operation/integral", + "name": "IntegralManagement", + "meta": { + "title": "积分管理", + "icon": "bubble-chart-fill", + "hidden": false, + "activeMenu": "/operation/integral", + "menu": "/operation/integral" + }, + "childrenNameList": ["IntegralManagement"] + }, + { + "path": "/operation/news", + "name": "GoodNewsManagement", + "meta": { + "title": "喜报管理", + "icon": "newspaper-fill", + "hidden": false, + "activeMenu": "/operation/news", + "menu": "/operation/news" + }, + "childrenNameList": ["GoodNewsManagement"] + }, + { + "path": "/operation/lottery", + "name": "LotteryActivity", + "meta": { + "title": "抽奖活动", + "icon": "star-smile-fill", + "hidden": false, + "activeMenu": "/operation/lottery", + "menu": "/operation/lottery" + }, + "childrenNameList": ["LotteryActivity"] + }, + { + "path": "/operation/marketing", + "name": "MarketingActivities", + "meta": { + "title": "咨询组管理", + "icon": "bar-chart-fill", + "hidden": false, + "activeMenu": "/operation/marketing", + "menu": "/operation/marketing" + }, + "children": [ + { + "path": "/operation/marketing/edit/:id?", + "name": "ActivityEdit", + "meta": { + "title": "编辑营销活动", + "icon": "bar-chart-fill", + "hidden": true, + "activeMenu": "/operation/marketing", + "menu": "/operation/marketing/edit" + }, + "childrenNameList": ["ActivityEdit"] + }, + { + "path": "/operation/marketing/logs/:id?", + "name": "MarketingLogs", + "meta": { + "title": "营销活动-数据", + "icon": "bar-chart-fill", + "hidden": true, + "activeMenu": "/operation/marketing", + "menu": "/operation/marketing/logs" + }, + "childrenNameList": ["MarketingLogs"] + } + ], + "childrenNameList": ["MarketingActivities", "ActivityEdit", "MarketingLogs"] + }, + { + "path": "/operation/promotion", + "name": "PromotionActivity", + "meta": { + "title": "弹窗活动配置", + "icon": "e-bike-2-fill", + "hidden": false, + "activeMenu": "/operation/promotion", + "menu": "/operation/promotion" + }, + "children": [ + { + "path": "/operation/promotion/detail/:id", + "name": "PromotionActivityDetail", + "meta": { + "title": "弹窗活动详情", + "icon": "e-bike-2-fill", + "hidden": true, + "activeMenu": "/operation/promotion", + "menu": "/operation/promotion/detail/:id" + }, + "childrenNameList": ["PromotionActivityDetail"] + } + ], + "childrenNameList": ["PromotionActivity", "PromotionActivityDetail"] + }, + { + "path": "/operation/landing", + "name": "LandingActivity", + "meta": { + "title": "落地页列表", + "icon": "arrow-left-right-fill", + "hidden": false, + "activeMenu": "/operation/landing", + "menu": "/operation/landing" + }, + "children": [ + { + "path": "/operation/landing/detail/:id", + "name": "LandingActivityDetail", + "meta": { + "title": "落地页详情", + "icon": "arrow-left-right-fill", + "hidden": true, + "activeMenu": "/operation/landing", + "menu": "/operation/landing/detail/:id" + }, + "childrenNameList": ["LandingActivityDetail"] + } + ], + "childrenNameList": ["LandingActivity", "LandingActivityDetail"] + }, + { + "path": "/operation/supernatant", + "name": "SupernatantActivity", + "meta": { + "title": "浮窗配置", + "icon": "bring-forward", + "hidden": false, + "activeMenu": "/operation/supernatant", + "menu": "/operation/supernatant" + }, + "children": [ + { + "path": "/operation/supernatant/detail/:id", + "name": "SupernatantActivityDetail", + "meta": { + "title": "浮窗详情", + "icon": "bring-forward", + "hidden": true, + "activeMenu": "/operation/supernatant", + "menu": "/operation/supernatant/detail/:id" + }, + "childrenNameList": ["SupernatantActivityDetail"] + } + ], + "childrenNameList": ["SupernatantActivity", "SupernatantActivityDetail"] + }, + { + "path": "/operation/survey", + "name": "Survey", + "meta": { + "title": "问卷调查", + "icon": "attachment-2", + "hidden": false, + "activeMenu": "/operation/survey", + "menu": "/operation/survey" + }, + "children": [ + { + "path": "/operation/survey/create/:paperId?", + "name": "SurveyCreate", + "meta": { + "title": "新增问卷", + "icon": "attachment-2", + "hidden": true, + "activeMenu": "/operation/survey", + "menu": "/operation/survey/create" + }, + "childrenNameList": ["SurveyCreate"] + }, + { + "path": "/operation/survey/statistics", + "name": "SurveyStatistics", + "meta": { + "title": "数据统计", + "icon": "attachment-2", + "hidden": true, + "activeMenu": "/operation/survey", + "menu": "/operation/survey/statistics" + }, + "childrenNameList": ["SurveyStatistics"] + } + ], + "childrenNameList": ["Survey", "SurveyCreate", "SurveyStatistics"] + } + ], + "childrenNameList": [ + "BannerManagement", + "CourseActivity", + "PosterShare", + "PunchActivity", + "DistributionManagement", + "IntegralManagement", + "GoodNewsManagement", + "LotteryActivity", + "MarketingActivities", + "ActivityEdit", + "MarketingLogs", + "PromotionActivity", + "PromotionActivityDetail", + "LandingActivity", + "LandingActivityDetail", + "SupernatantActivity", + "SupernatantActivityDetail", + "Survey", + "SurveyCreate", + "SurveyStatistics" + ], + "redirect": "/operation/banner" + }, + { + "path": "/finance", + "name": "Finance", + "meta": { + "title": "财务管理", + "icon": "money-cny-circle-fill", + "hidden": false, + "activeMenu": "/finance", + "menu": "/finance" + }, + "children": [ + { + "path": "/finance/order", + "name": "OrderManagement", + "meta": { + "title": "订单管理", + "icon": "auction-fill", + "hidden": false, + "activeMenu": "/finance/order", + "menu": "/finance/order" + }, + "childrenNameList": ["OrderManagement"] + }, + { + "path": "/finance/refund", + "name": "RefundManagement", + "meta": { + "title": "退款管理", + "icon": "refund-2-fill", + "hidden": false, + "activeMenu": "/finance/refund", + "menu": "/finance/refund" + }, + "childrenNameList": ["RefundManagement"] + }, + { + "path": "/finance/reconciliation", + "name": "FinanceReconciliation", + "meta": { + "title": "财务对账", + "icon": "money-dollar-box-fill", + "hidden": false, + "activeMenu": "/finance/reconciliation", + "menu": "/finance/reconciliation" + }, + "childrenNameList": ["FinanceReconciliation"] + } + ], + "childrenNameList": ["OrderManagement", "RefundManagement", "FinanceReconciliation"], + "redirect": "/finance/order" + }, + { + "path": "/user", + "name": "UserManagement", + "meta": { + "title": "用户管理", + "icon": "folder-user-fill", + "hidden": false, + "activeMenu": "/user", + "menu": "/user" + }, + "children": [ + { + "path": "/user/consult", + "name": "ConsultManagement", + "meta": { + "title": "咨询管理", + "icon": "kakao-talk-fill", + "hidden": false, + "activeMenu": "/user/consult", + "menu": "/user/consult" + }, + "childrenNameList": ["ConsultManagement"] + }, + { + "path": "/user/course", + "name": "CourseConsultManagement", + "meta": { + "title": "咨询课程", + "icon": "chat-smile-2-fill", + "hidden": false, + "activeMenu": "/user/course", + "menu": "/user/course" + }, + "childrenNameList": ["CourseConsultManagement"] + }, + { + "path": "/user/account", + "name": "AccountManagement", + "meta": { + "title": "账号课程", + "icon": "account-box-fill", + "hidden": false, + "activeMenu": "/user/account", + "menu": "/user/account" + }, + "childrenNameList": ["AccountManagement"] + }, + { + "path": "/user/feedback", + "name": "FeedbackManagement", + "meta": { + "title": "意见反馈", + "icon": "feedback-fill", + "hidden": false, + "activeMenu": "/user/feedback", + "menu": "/user/feedback" + }, + "childrenNameList": ["FeedbackManagement"] + } + ], + "childrenNameList": ["ConsultManagement", "CourseConsultManagement", "AccountManagement", "FeedbackManagement"], + "redirect": "/user/consult" + }, + { + "path": "/personal", + "name": "Personal", + "meta": { + "title": "个人面板", + "icon": "user-2-fill", + "hidden": false, + "activeMenu": "/personal", + "menu": "/personal" + }, + "children": [ + { + "path": "/personal/answer/:tab?/:teacherNo(\\d+)?", + "name": "MineAnswer", + "meta": { + "title": "我的答疑", + "icon": "question-answer-fill", + "hidden": false, + "activeMenu": "/personal/answer", + "menu": "/personal/answer" + }, + "childrenNameList": ["MineAnswer"] + }, + { + "path": "/personal/file", + "name": "MineFile", + "meta": { + "title": "我的文件", + "icon": "file-3-line", + "hidden": false, + "activeMenu": "/personal/file", + "menu": "/personal/file" + }, + "childrenNameList": ["MineFile"] + }, + { + "path": "/personal/data", + "name": "MineData", + "meta": { + "title": "数据面板", + "icon": "file-chart-line", + "hidden": false, + "activeMenu": "/personal/data", + "menu": "/personal/data" + }, + "childrenNameList": ["MineData"] + } + ], + "childrenNameList": ["MineAnswer", "MineFile", "MineData"], + "redirect": "/personal/answer" + }, + { + "path": "/system", + "name": "SystemManagement", + "meta": { + "title": "系统管理", + "icon": "settings-3-fill", + "hidden": false, + "activeMenu": "/system", + "menu": "/system" + }, + "children": [ + { + "path": "/system/log", + "name": "LogManagement", + "meta": { + "title": "日志管理", + "icon": "file-chart-fill", + "hidden": false, + "activeMenu": "/system/log", + "menu": "/system/log" + }, + "childrenNameList": ["LogManagement"] + }, + { + "path": "/system/app", + "name": "AppManagement", + "meta": { + "title": "APP包管理", + "icon": "app-store-fill", + "hidden": false, + "activeMenu": "/system/app", + "menu": "/system/app" + }, + "childrenNameList": ["AppManagement"] + }, + { + "path": "/system/notify", + "name": "NotifyManagement", + "meta": { + "title": "通知管理", + "icon": "alarm-warning-fill", + "hidden": false, + "activeMenu": "/system/notify", + "menu": "/system/notify" + }, + "childrenNameList": ["NotifyManagement"] + }, + { + "path": "/system/file", + "name": "FileManagement", + "meta": { + "title": "文件中台", + "icon": "file-copy-fill", + "hidden": false, + "activeMenu": "/system/file", + "menu": "/system/file" + }, + "childrenNameList": ["FileManagement"] + } + ], + "childrenNameList": ["LogManagement", "AppManagement", "NotifyManagement", "FileManagement"], + "redirect": "/system/log" + }, + { + "path": "/data", + "name": "DataCenter", + "meta": { + "title": "数据中心", + "icon": "database-fill", + "hidden": false, + "activeMenu": "/data", + "menu": "/data" + }, + "children": [ + { + "path": "/data/sales", + "name": "SalesDashboard", + "meta": { + "title": "销售大屏", + "icon": "table-fill", + "hidden": false, + "activeMenu": "/data/sales", + "menu": "/data/sales" + }, + "childrenNameList": ["SalesDashboard"] + }, + { + "path": "/data/form/:date", + "name": "CreateSalesDashboard", + "meta": { + "title": "新增销售目标", + "icon": "table-fill", + "hidden": true, + "activeMenu": "/data", + "menu": "/data/form/:date" + }, + "childrenNameList": ["CreateSalesDashboard"] + }, + { + "path": "/data/form/:id(\\d+)", + "name": "UpdateSalesDashboard", + "meta": { + "title": "编辑销售目标", + "icon": "table-fill", + "hidden": true, + "activeMenu": "/data", + "menu": "/data/form/:id(\\d+)" + }, + "childrenNameList": ["UpdateSalesDashboard"] + } + ], + "childrenNameList": ["SalesDashboard", "CreateSalesDashboard", "UpdateSalesDashboard"], + "redirect": "/data/sales" + } +] diff --git a/src/styles/base.less b/src/styles/base.less new file mode 100644 index 0000000..1193371 --- /dev/null +++ b/src/styles/base.less @@ -0,0 +1,13 @@ +html, +body, +#app { + width: 100vw; + height: 100vh; +} +// *:not([class^='el-']):not([class^='el-'] *) { +*:not([class^='el-']) { + margin: 0; + padding: 0; + transition: all 0.1s; + box-sizing: border-box; +} diff --git a/src/styles/globalVariables.module.less b/src/styles/globalVariables.module.less new file mode 100644 index 0000000..c3f3c5e --- /dev/null +++ b/src/styles/globalVariables.module.less @@ -0,0 +1,50 @@ +/* color */ +@color-black: #282c34; +@color-white: #fff; +@color-primary: #409eff; +@color-primary-white: #e8f4ff; + +@color-ghost-white: fade(@color-white, 10%); +@color-ghost-black: fade(@color-black, 10%); + +/* mixin */ +.text-overflow { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +/* layout */ +@layout-icon: 30px; +@layout-h1: 30px; +@layout-h2: 20px; +@layout-h3: 16px; +@layout-h4: 14px; +@layout-border-radius: 5px; +@layout-space: 10px; +@layout-space-small: 5px; +@layout-space-large: 15px; +@layout-space-super: 20px; +@layout-shadow: fade(@color-black, 20%) 0px 0px 5px; + +@layout-aside-bgc: @color-black; +@layout-aside-fc: @color-white; +@layout-aside-fc2: lighten(@color-black, 20%); +@layout-aside-width: 80px; +@layout-aside-item-size: 68px; + +@layout-menu-width: 200px; +@layout-menu-bgc: lighten(@color-black, 20%); +@layout-menu-fc: darken(@color-white, 20%); +@layout-menu-ic: darken(@color-white, 20%); +@layout-menu-hover-bgc: lighten(@color-black, 25%); +@layout-menu-hover-fc: darken(@color-white, 10%); +@layout-menu-active-fc: @color-white; +@layout-menu-active-bgc: lighten(@color-black, 35%); + +@layout-header-height: 68px; + +:export { + layoutAsideWidth: @layout-aside-width; + layoutLogoSize: calc(@layout-aside-item-size * 0.8); +} diff --git a/src/views/index.vue b/src/views/index.vue index b7e9f33..576e41e 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -1,14 +1,16 @@ @@ -24,4 +26,8 @@ }; - + diff --git a/vite.config.ts b/vite.config.ts index 9723510..fd46536 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -75,5 +75,12 @@ export default ({ command, mode }: ConfigEnv): UserConfigExport => { targets: ['defaults', 'not IE 11'], }), ], + css: { + preprocessorOptions: { + less: { + javascriptEnabled: true, + }, + }, + }, }; };