Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
x-learn
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
x-learn
Commits
927bf581
提交
927bf581
authored
3月 08, 2021
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增老师相关功能
上级
70bbbe86
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
121 行增加
和
20 行删除
+121
-20
.config.dev.js
.config.dev.js
+3
-3
account.js
src/api/account.js
+5
-0
aside.vue
src/components/layout/aside.vue
+39
-4
index.vue
src/pages/account/index.vue
+14
-8
index.vue
src/pages/course/learn/index.vue
+10
-1
index.vue
src/pages/role/index.vue
+37
-0
routes.js
src/router/routes.js
+1
-0
axios.js
src/utils/axios.js
+6
-4
beforeEnter.js
src/utils/beforeEnter.js
+6
-0
没有找到文件。
.config.dev.js
浏览文件 @
927bf581
module
.
exports
=
{
domain
:
'dev.ezijing.com'
,
url
:
'https://learn-api.ezijing.com/api'
,
url
:
'https://learn-api
2
.ezijing.com/api'
,
webpack
:
{
externals
:
{
CKEDITOR
:
'window.CKEDITOR'
,
...
...
@@ -33,7 +33,7 @@ module.exports = {
},
ProvidePlugin
:
{},
others
:
{
baseUrl
:
'https://learn-api.ezijing.com'
,
loginUrl
:
'https://login.ezijing.com/xlearn/login/index'
baseUrl
:
'https://learn-api
2
.ezijing.com'
,
loginUrl
:
'https://login
2
.ezijing.com/xlearn/login/index'
}
}
src/api/account.js
浏览文件 @
927bf581
...
...
@@ -48,3 +48,8 @@ export function createGuestUser() {
export
function
checkCode
(
params
)
{
return
httpRequest
.
get
(
'/api/usercenter/user/check-code'
,
{
params
})
}
// 选择用户角色
export
function
chooseRole
(
data
)
{
return
httpRequest
.
post
(
'/api/zy/user/choose-role'
,
data
)
}
src/components/layout/aside.vue
浏览文件 @
927bf581
...
...
@@ -9,7 +9,7 @@
</div>
</div>
<el-menu
class=
"nav"
:unique-opened=
"true"
:default-active=
"activeLink"
>
<template
v-for=
"item in
datalist
"
>
<template
v-for=
"item in
currentMenus
"
>
<el-submenu
:index=
"item.title"
:key=
"item.title"
v-if=
"item.children"
>
<template
#
title
>
<i
class=
"iconfont"
:class=
"item.icon"
></i><span>
{{
item
.
title
}}
</span>
...
...
@@ -51,7 +51,7 @@ export default {
data
()
{
return
{
activeLink
:
'/course/learn'
,
defaul
tMenus
:
[
studen
tMenus
:
[
{
title
:
'我的课程'
,
icon
:
'icon-bianzu6-hong'
,
...
...
@@ -72,7 +72,40 @@ export default {
children
:
[
{
title
:
'实训案例练习'
,
path
:
'https://xtraining.ezijing.com/'
,
href
:
'https://xtraining.ezijing.com/'
}
]
}
],
techerMenus
:
[
// {
// title: '我的班课',
// icon: 'icon-bianzu6-hong',
// children: [
// { title: '理论班课', path: '/course/learn' },
// { title: '实操班课', path: '/course/learn' }
// ]
// },
{
title
:
'课程中心'
,
icon
:
'icon-bianzu6-hong'
,
children
:
[{
title
:
'课程库'
,
path
:
'/course/learn'
}]
},
{
title
:
'实操资源'
,
icon
:
'icon-kaoshihong'
,
children
:
[
{
title
:
'实操课程库'
,
path
:
'https://xtraining.ezijing.com/'
,
href
:
'https://xtraining.ezijing.com/'
}
]
}
// {
// title: '试题库',
// icon: 'icon-bianzuhong',
// children: [
// { title: '模拟考试', path: '/testExam' },
// { title: '错题集合', path: '/my/questions/wrong' },
// { title: '收藏试题', path: '/my/questions/collection' }
// ]
// }
],
defaultMenus
:
[
{
title
:
'个人中心'
,
icon
:
'icon-guanlizhongxinbeifen-hong'
,
...
...
@@ -95,11 +128,13 @@ export default {
}
},
computed
:
{
datalist
()
{
currentMenus
()
{
if
(
this
.
menus
&&
this
.
menus
.
length
)
{
return
this
.
menus
}
return
this
.
defaultMenus
return
this
.
user
.
role
===
2
?
this
.
techerMenus
.
concat
(
this
.
defaultMenus
)
:
this
.
studentMenus
.
concat
(
this
.
defaultMenus
)
},
user
()
{
return
this
.
$store
.
state
.
user
...
...
src/pages/account/index.vue
浏览文件 @
927bf581
...
...
@@ -2,26 +2,29 @@
<app-container
title=
"个人信息"
>
<el-form
:model=
"ruleForm"
:rules=
"rules"
label-width=
"100px"
ref=
"ruleForm"
class=
"form"
hide-required-asterisk
>
<el-form-item
label=
"所在院校"
prop=
"college"
>
<el-input
v-model=
"
ruleForm.student_
info.college"
disabled
></el-input>
<el-input
v-model=
"info.college"
disabled
></el-input>
</el-form-item>
<el-form-item
label=
"院系名称"
prop=
"school"
>
<el-input
v-model=
"
ruleForm.student_
info.school_name"
disabled
></el-input>
<el-input
v-model=
"info.school_name"
disabled
></el-input>
</el-form-item>
<el-form-item
label=
"专业名称"
prop=
"major"
>
<el-input
v-model=
"
ruleForm.student_
info.major"
disabled
></el-input>
<el-input
v-model=
"info.major"
disabled
></el-input>
</el-form-item>
<el-form-item
label=
"考证等级"
prop=
"grade"
>
<el-input
v-model=
"
ruleForm.student_
info.grade"
disabled
></el-input>
<el-input
v-model=
"info.grade"
disabled
></el-input>
</el-form-item>
<el-form-item
label=
"用户真实姓名"
prop=
"realname"
>
<el-input
v-model=
"ruleForm.realname"
disabled
></el-input>
</el-form-item>
<el-form-item
label=
"身份证号码"
prop=
"id_number"
>
<el-input
v-model=
"ruleForm.student_info.id_number"
disabled
></el-input>
<el-input
v-model=
"info.id_number"
disabled
></el-input>
</el-form-item>
<el-form-item
label=
"身份"
prop=
"role"
>
<el-select
v-model=
"ruleForm.role"
disabled
style=
"width: 100%"
>
<el-option
:value=
"1"
label=
"学生"
></el-option>
<el-option
:value=
"2"
label=
"老师"
></el-option>
</el-select>
</el-form-item>
<!--
<el-form-item
label=
"身份"
prop=
"role"
>
<el-input
v-model=
"ruleForm.student_info.role"
disabled
></el-input>
</el-form-item>
-->
<el-form-item
label=
"登录帐号"
prop=
"mobile"
>
<el-input
v-model=
"ruleForm.mobile"
disabled
></el-input>
</el-form-item>
...
...
@@ -58,6 +61,9 @@ export default {
computed
:
{
user
()
{
return
this
.
$store
.
state
.
user
},
info
()
{
return
this
.
user
.
role
===
2
?
this
.
user
.
staff_info
:
this
.
user
.
student_info
}
},
watch
:
{
...
...
src/pages/course/learn/index.vue
浏览文件 @
927bf581
<
template
>
<app-container
title=
"课程学习
"
>
<app-container
:title=
"title
"
>
<template
#
header-right
>
<div
class=
"search"
>
<el-input
prefix-icon=
"el-icon-search"
clearable
v-model=
"searchValue"
@
keyup
.
enter
.
native=
"handleSearch"
/>
...
...
@@ -21,6 +21,15 @@ export default {
searchValue
:
''
}
},
computed
:
{
role
()
{
// 1 学生 2 老师
return
this
.
$store
.
state
.
user
.
role
},
title
()
{
return
this
.
role
===
2
?
'课程库'
:
''
}
},
methods
:
{
handleClick
(
data
)
{
this
.
$router
.
push
({
name
:
'courseLearnItem'
,
params
:
{
id
:
data
.
course_id
}
})
...
...
src/pages/role/index.vue
0 → 100644
浏览文件 @
927bf581
<
template
>
<div
class=
"app-role"
>
<el-radio-group
v-model=
"role"
@
change=
"chooseRole"
>
<el-radio
label=
"1"
border
>
我是学生
</el-radio>
<el-radio
label=
"2"
border
>
我是老师
</el-radio>
</el-radio-group>
</div>
</
template
>
<
script
>
import
*
as
api
from
'@/api/account'
export
default
{
data
()
{
return
{
role
:
''
}
},
methods
:
{
chooseRole
()
{
api
.
chooseRole
({
role
:
this
.
role
}).
then
(()
=>
{
this
.
$router
.
replace
(
'/'
)
})
}
}
}
</
script
>
<
style
scoped
>
.app-role
{
height
:
100vh
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
background-color
:
#fff
;
}
</
style
>
src/router/routes.js
浏览文件 @
927bf581
...
...
@@ -57,6 +57,7 @@ const examAnswer = [
export
default
[
{
path
:
'*'
,
redirect
:
'/index'
},
{
path
:
'/'
,
redirect
:
'/course/learn'
},
{
path
:
'/role'
,
component
:
()
=>
import
(
'@/pages/role'
)
},
{
path
:
'/'
,
component
:
Layout
,
...
...
src/utils/axios.js
浏览文件 @
927bf581
import
axios
from
'axios'
import
qs
from
'qs'
import
{
Message
}
from
'element-ui'
import
router
from
'@/router'
const
httpRequest
=
axios
.
create
({
baseURL
:
webConf
.
others
.
baseUrl
,
timeout
:
60000
,
...
...
@@ -36,14 +36,16 @@ httpRequest.interceptors.response.use(
return
data
},
function
(
error
)
{
console
.
log
(
error
.
response
)
if
(
error
.
response
)
{
const
{
status
,
message
}
=
error
.
response
.
data
const
{
status
,
message
,
code
}
=
error
.
response
.
data
// 未登录
if
(
status
===
403
)
{
window
.
location
.
href
=
`
${
webConf
.
others
.
loginUrl
}
?rd=
${
encodeURIComponent
(
window
.
location
.
href
)}
`
}
else
if
(
status
===
400
&&
code
===
401
)
{
router
.
push
(
'/role'
)
}
else
{
Message
.
error
(
message
||
error
.
response
.
data
)
}
Message
.
error
(
message
||
error
.
response
.
data
)
return
Promise
.
reject
(
error
.
response
)
}
else
{
Message
.
error
(
error
)
...
...
src/utils/beforeEnter.js
浏览文件 @
927bf581
...
...
@@ -14,6 +14,12 @@ export default class BeforeEnter {
// 创建游客用户
// await store.dispatch('createGuestUser')
// 登录白名单
const
whiteList
=
[
'/role'
]
if
(
whiteList
.
includes
(
to
.
path
))
{
next
()
return
}
const
isLogin
=
store
.
state
.
isLogin
||
(
await
store
.
dispatch
(
'checkLogin'
))
if
(
to
.
meta
.
requiredLogin
&&
!
isLogin
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论