diff --git a/src/api/course/course.js b/src/api/course/course.js
new file mode 100644
index 0000000..161d7ed
--- /dev/null
+++ b/src/api/course/course.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+const projectApi = {
+// add: 'sys/menu/add',
+// get: 'sys/menu/get',
+// update: 'sys/menu/update',
+// del: 'sys/menu/delete',
+// updateStatus: 'sys/menu/updateStatus',
+ list: 'course/pageList'
+}
+
+// export function menuAdd (params) {
+// return request({
+// url: menuApi.add,
+// method: 'post',
+// data: params
+// })
+// }
+// export function menuGet (params) {
+// return request({
+// url: menuApi.get,
+// method: 'post',
+// data: params
+// })
+// }
+// export function menuUpdate (params) {
+// return request({
+// url: menuApi.update,
+// method: 'post',
+// data: params
+// })
+// }
+// export function menuDelete (params) {
+// return request({
+// url: menuApi.del,
+// method: 'post',
+// data: params
+// })
+// }
+export function getCourseList (params) {
+ return request({
+ url: courseApi.list,
+ method: 'get',
+ params: params
+ })
+}
+// export function menuUpdateStatus (params) {
+// return request({
+// url: menuApi.updateStatus,
+// method: 'post',
+// data: params
+// })
+// }
diff --git a/src/config/router.config.js b/src/config/router.config.js
index 056420c..43424b5 100644
--- a/src/config/router.config.js
+++ b/src/config/router.config.js
@@ -21,13 +21,13 @@ export const asyncRouterMap = [
name: 'dashboard',
redirect: '/dashboard/workplace',
component: RouteView,
- meta: { title: 'menu.dashboard', keepAlive: true, icon: bxAnaalyse, permission: [ 'dashboard' ] },
+ meta: { title: 'menu.dashboard', keepAlive: true, icon: bxAnaalyse, permission: ['dashboard'] },
children: [
{
path: '/dashboard/workplace',
name: 'Workplace',
component: () => import('@/views/dashboard/Workplace'),
- meta: { title: 'menu.dashboard.workplace', keepAlive: true, permission: [ 'dashboard' ] }
+ meta: { title: 'menu.dashboard.workplace', keepAlive: true, permission: ['dashboard'] }
}
]
},
@@ -37,13 +37,13 @@ export const asyncRouterMap = [
name: 'security',
redirect: '/security/user',
component: RouteView,
- meta: { title: '系统设置', keepAlive: true, icon: bxAnaalyse, permission: [ 'security' ] },
+ meta: { title: '系统设置', keepAlive: true, icon: bxAnaalyse, permission: ['security'] },
children: [
{
path: '/security/user',
name: 'SecurityUser',
component: () => import('@/views/security/user/UserList'),
- meta: { title: '用户管理', keepAlive: true, permission: [ 'security' ] }
+ meta: { title: '用户管理', keepAlive: true, permission: ['security'] }
},
{
path: '/security/role',
@@ -76,25 +76,52 @@ export const asyncRouterMap = [
path: '/project',
redirect: '/project/projectList',
component: RouteView,
- meta: { title: '项目管理', icon: bxAnaalyse, permission: [ 'from' ] },
+ meta: { title: '项目管理', icon: bxAnaalyse, permission: ['from'] },
children: [
{
path: '/project/projectList',
name: 'projectList',
component: () => import('@/views/project/ProjectList'),
- meta: { title: '自主项目', keepAlive: true, permission: [ 'form' ] }
+ meta: { title: '自主项目', keepAlive: true, permission: ['form'] }
},
{
path: '/form/step-form',
name: 'StepForm',
component: () => import('@/views/form/stepForm/StepForm'),
- meta: { title: '系统推荐', keepAlive: true, permission: [ 'form' ] }
+ meta: { title: '系统推荐', keepAlive: true, permission: ['form'] }
},
{
path: '/form/advanced-form',
name: 'AdvanceForm',
component: () => import('@/views/form/advancedForm/AdvancedForm'),
- meta: { title: '终端培训', keepAlive: true, permission: [ 'form' ] }
+ meta: { title: '终端培训', keepAlive: true, permission: ['form'] }
+ }
+ ]
+ },
+ // 课程管理
+ {
+ path: '/course',
+ redirect: '/course/courseList',
+ component: RouteView,
+ meta: { title: '课程管理', icon: bxAnaalyse, permission: ['from'] },
+ children: [
+ {
+ path: '/course/courseList',
+ name: 'courseList',
+ component: () => import('@/views/course/CourseList'),
+ meta: { title: '课程项目', keepAlive: true, permission: ['form'] }
+ },
+ {
+ path: '/form/step-form',
+ name: 'StepForm',
+ component: () => import('@/views/form/stepForm/StepForm'),
+ meta: { title: '系统推荐', keepAlive: true, permission: ['form'] }
+ },
+ {
+ path: '/form/advanced-form',
+ name: 'AdvanceForm',
+ component: () => import('@/views/form/advancedForm/AdvancedForm'),
+ meta: { title: '终端培训', keepAlive: true, permission: ['form'] }
}
]
},
@@ -103,25 +130,25 @@ export const asyncRouterMap = [
path: '/form',
redirect: '/form/base-form',
component: RouteView,
- meta: { title: '表单页', icon: 'form', permission: [ 'form' ] },
+ meta: { title: '表单页', icon: 'form', permission: ['form'] },
children: [
{
path: '/form/base-form',
name: 'BaseForm',
component: () => import('@/views/form/basicForm/Index'),
- meta: { title: '基础表单', keepAlive: true, permission: [ 'form' ] }
+ meta: { title: '基础表单', keepAlive: true, permission: ['form'] }
},
{
path: '/form/step-form',
name: 'StepForm',
component: () => import('@/views/form/stepForm/StepForm'),
- meta: { title: '分步表单', keepAlive: true, permission: [ 'form' ] }
+ meta: { title: '分步表单', keepAlive: true, permission: ['form'] }
},
{
path: '/form/advanced-form',
name: 'AdvanceForm',
component: () => import('@/views/form/advancedForm/AdvancedForm'),
- meta: { title: '高级表单', keepAlive: true, permission: [ 'form' ] }
+ meta: { title: '高级表单', keepAlive: true, permission: ['form'] }
}
]
},
@@ -132,51 +159,51 @@ export const asyncRouterMap = [
name: 'list',
component: RouteView,
redirect: '/list/table-list',
- meta: { title: '列表页', icon: 'table', permission: [ 'table' ] },
+ meta: { title: '列表页', icon: 'table', permission: ['table'] },
children: [
{
path: '/list/table-list/:pageNo([1-9]\\d*)?',
name: 'TableListWrapper',
hideChildrenInMenu: true, // 强制显示 MenuItem 而不是 SubMenu
component: () => import('@/views/list/TableList'),
- meta: { title: '查询表格', keepAlive: true, permission: [ 'table' ] }
+ meta: { title: '查询表格', keepAlive: true, permission: ['table'] }
},
{
path: '/list/basic-list',
name: 'BasicList',
component: () => import('@/views/list/BasicList'),
- meta: { title: '标准列表', keepAlive: true, permission: [ 'table' ] }
+ meta: { title: '标准列表', keepAlive: true, permission: ['table'] }
},
{
path: '/list/card',
name: 'CardList',
component: () => import('@/views/list/CardList'),
- meta: { title: '卡片列表', keepAlive: true, permission: [ 'table' ] }
+ meta: { title: '卡片列表', keepAlive: true, permission: ['table'] }
},
{
path: '/list/search',
name: 'SearchList',
component: () => import('@/views/list/search/SearchLayout'),
redirect: '/list/search/article',
- meta: { title: '搜索列表', keepAlive: true, permission: [ 'table' ] },
+ meta: { title: '搜索列表', keepAlive: true, permission: ['table'] },
children: [
{
path: '/list/search/article',
name: 'SearchArticles',
component: () => import('../views/list/search/Article'),
- meta: { title: '搜索列表(文章)', permission: [ 'table' ] }
+ meta: { title: '搜索列表(文章)', permission: ['table'] }
},
{
path: '/list/search/project',
name: 'SearchProjects',
component: () => import('../views/list/search/Projects'),
- meta: { title: '搜索列表(项目)', permission: [ 'table' ] }
+ meta: { title: '搜索列表(项目)', permission: ['table'] }
},
{
path: '/list/search/application',
name: 'SearchApplications',
component: () => import('../views/list/search/Applications'),
- meta: { title: '搜索列表(应用)', permission: [ 'table' ] }
+ meta: { title: '搜索列表(应用)', permission: ['table'] }
}
]
}
@@ -188,19 +215,19 @@ export const asyncRouterMap = [
name: 'profile',
component: RouteView,
redirect: '/profile/basic',
- meta: { title: '详情页', icon: 'profile', permission: [ 'profile' ] },
+ meta: { title: '详情页', icon: 'profile', permission: ['profile'] },
children: [
{
path: '/profile/basic',
name: 'ProfileBasic',
component: () => import('@/views/profile/basic/Index'),
- meta: { title: '基础详情页', permission: [ 'profile' ] }
+ meta: { title: '基础详情页', permission: ['profile'] }
},
{
path: '/profile/advanced',
name: 'ProfileAdvanced',
component: () => import('@/views/profile/advanced/Advanced'),
- meta: { title: '高级详情页', permission: [ 'profile' ] }
+ meta: { title: '高级详情页', permission: ['profile'] }
}
]
},
@@ -210,19 +237,19 @@ export const asyncRouterMap = [
name: 'result',
component: RouteView,
redirect: '/result/success',
- meta: { title: '结果页', icon: 'check-circle-o', permission: [ 'result' ] },
+ meta: { title: '结果页', icon: 'check-circle-o', permission: ['result'] },
children: [
{
path: '/result/success',
name: 'ResultSuccess',
component: () => import(/* webpackChunkName: "result" */ '@/views/result/Success'),
- meta: { title: '成功', keepAlive: false, hiddenHeaderContent: true, permission: [ 'result' ] }
+ meta: { title: '成功', keepAlive: false, hiddenHeaderContent: true, permission: ['result'] }
},
{
path: '/result/fail',
name: 'ResultFail',
component: () => import(/* webpackChunkName: "result" */ '@/views/result/Error'),
- meta: { title: '失败', keepAlive: false, hiddenHeaderContent: true, permission: [ 'result' ] }
+ meta: { title: '失败', keepAlive: false, hiddenHeaderContent: true, permission: ['result'] }
}
]
},
@@ -232,25 +259,25 @@ export const asyncRouterMap = [
name: 'exception',
component: RouteView,
redirect: '/exception/403',
- meta: { title: '异常页', icon: 'warning', permission: [ 'exception' ] },
+ meta: { title: '异常页', icon: 'warning', permission: ['exception'] },
children: [
{
path: '/exception/403',
name: 'Exception403',
component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/403'),
- meta: { title: '403', permission: [ 'exception' ] }
+ meta: { title: '403', permission: ['exception'] }
},
{
path: '/exception/404',
name: 'Exception404',
component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404'),
- meta: { title: '404', permission: [ 'exception' ] }
+ meta: { title: '404', permission: ['exception'] }
},
{
path: '/exception/500',
name: 'Exception500',
component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/500'),
- meta: { title: '500', permission: [ 'exception' ] }
+ meta: { title: '500', permission: ['exception'] }
}
]
},
@@ -260,19 +287,19 @@ export const asyncRouterMap = [
component: RouteView,
redirect: '/account/center',
name: 'account',
- meta: { title: '个人页', icon: 'user', keepAlive: true, permission: [ 'user' ] },
+ meta: { title: '个人页', icon: 'user', keepAlive: true, permission: ['user'] },
children: [
{
path: '/account/center',
name: 'center',
component: () => import('@/views/account/center/Index'),
- meta: { title: '个人中心', keepAlive: true, permission: [ 'user' ] }
+ meta: { title: '个人中心', keepAlive: true, permission: ['user'] }
},
{
path: '/account/settings',
name: 'settings',
component: () => import('@/views/account/settings/Index'),
- meta: { title: '个人设置', hideHeader: true, permission: [ 'user' ] },
+ meta: { title: '个人设置', hideHeader: true, permission: ['user'] },
redirect: '/account/settings/base',
hideChildrenInMenu: true,
children: [
@@ -280,31 +307,31 @@ export const asyncRouterMap = [
path: '/account/settings/base',
name: 'BaseSettings',
component: () => import('@/views/account/settings/BaseSetting'),
- meta: { title: '基本设置', hidden: true, permission: [ 'user' ] }
+ meta: { title: '基本设置', hidden: true, permission: ['user'] }
},
{
path: '/account/settings/security',
name: 'SecuritySettings',
component: () => import('@/views/account/settings/Security'),
- meta: { title: '安全设置', hidden: true, keepAlive: true, permission: [ 'user' ] }
+ meta: { title: '安全设置', hidden: true, keepAlive: true, permission: ['user'] }
},
{
path: '/account/settings/custom',
name: 'CustomSettings',
component: () => import('@/views/account/settings/Custom'),
- meta: { title: '个性化设置', hidden: true, keepAlive: true, permission: [ 'user' ] }
+ meta: { title: '个性化设置', hidden: true, keepAlive: true, permission: ['user'] }
},
{
path: '/account/settings/binding',
name: 'BindingSettings',
component: () => import('@/views/account/settings/Binding'),
- meta: { title: '账户绑定', hidden: true, keepAlive: true, permission: [ 'user' ] }
+ meta: { title: '账户绑定', hidden: true, keepAlive: true, permission: ['user'] }
},
{
path: '/account/settings/notification',
name: 'NotificationSettings',
component: () => import('@/views/account/settings/Notification'),
- meta: { title: '新消息通知', hidden: true, keepAlive: true, permission: [ 'user' ] }
+ meta: { title: '新消息通知', hidden: true, keepAlive: true, permission: ['user'] }
}
]
}
@@ -314,19 +341,19 @@ export const asyncRouterMap = [
path: '/other',
name: 'otherPage',
component: RouteView,
- meta: { title: '其他组件', icon: 'slack', permission: [ 'dashboard' ] },
+ meta: { title: '其他组件', icon: 'slack', permission: ['dashboard'] },
redirect: '/other/icon-selector',
children: [
{
path: '/other/icon-selector',
name: 'TestIconSelect',
component: () => import('@/views/other/IconSelectorView'),
- meta: { title: 'IconSelector', icon: 'tool', keepAlive: true, permission: [ 'dashboard' ] }
+ meta: { title: 'IconSelector', icon: 'tool', keepAlive: true, permission: ['dashboard'] }
},
{
path: '/other/list',
component: RouteView,
- meta: { title: '业务布局', icon: 'layout', permission: [ 'support' ] },
+ meta: { title: '业务布局', icon: 'layout', permission: ['support'] },
redirect: '/other/list/tree-list',
children: [
{
@@ -423,7 +450,7 @@ export const constantRouterMap = [
path: 'dictionaryItem/list/:id',
name: 'DictionaryItemList',
component: () => import('@/views/sys/dictionaryItem/DictionaryItemList'),
- meta: { title: '词典项', keepAlive: true, permission: [ 'dictionaryItem' ] }
+ meta: { title: '词典项', keepAlive: true, permission: ['dictionaryItem'] }
}
]
},
diff --git a/src/views/course/CourseList.vue b/src/views/course/CourseList.vue
new file mode 100644
index 0000000..61b642b
--- /dev/null
+++ b/src/views/course/CourseList.vue
@@ -0,0 +1,286 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 全部
+ 运行中
+ 已结束
+ 未发布
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 全部
+ 培训
+ 考试
+ 培训-练习
+ 培训-练习-考试
+
+
+
+
+
+
+ 查询
+ (queryParam = {})">重置
+
+
+
+
+
+
+
+
新建
+
删除
+
+
+
+ 删除
+ 锁定
+
+ 批量操作
+
+
+
+
+
+ {{ index + 1 }}
+
+
+
+ 编辑
+
+
+
+ 更多
+
+
+ 详情
+
+
+ 禁用
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file