Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
L
learn-online-pc
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
learn-online-pc
Commits
edc76c8f
提交
edc76c8f
authored
4月 13, 2020
作者:
lihuihui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
财富管理师在线学习系统开发
上级
72dd4276
隐藏空白字符变更
内嵌
并排
正在显示
22 个修改的文件
包含
731 行增加
和
301 行删除
+731
-301
CourseAction.js
client/src/action/CourseAction.js
+3
-4
bank-logo1.png
client/src/assets/images/bank-logo1.png
+0
-0
bank-logo2.png
client/src/assets/images/bank-logo2.png
+0
-0
login-bg.png
client/src/assets/images/login-bg.png
+0
-0
login-tit1.png
client/src/assets/images/login-tit1.png
+0
-0
login-tit2.png
client/src/assets/images/login-tit2.png
+0
-0
login-tit3.png
client/src/assets/images/login-tit3.png
+0
-0
zh-CN.json
client/src/assets/languages/zh-CN.json
+3
-3
tab.vue
client/src/components/Tab/tab.vue
+61
-0
navigation.vue
client/src/components/learnSysLayout/navigation.vue
+39
-5
sidebar.vue
client/src/components/learnSysLayout/sidebar.vue
+19
-21
myExamination.vue
client/src/pages/examination/myExamination.vue
+186
-0
course.vue
client/src/pages/learn/course.vue
+107
-50
courseDetail.vue
client/src/pages/learn/courseDetail.vue
+7
-11
code.vue
client/src/pages/login/code.vue
+76
-79
forget.vue
client/src/pages/login/forget.vue
+23
-44
index.vue
client/src/pages/login/index.vue
+74
-80
mainsite.vue
client/src/pages/mainsite.vue
+3
-2
examinaTips.vue
client/src/pages/tips/examinaTips.vue
+60
-0
learningTips.vue
client/src/pages/tips/learningTips.vue
+47
-0
routes.js
client/src/router/routes.js
+21
-0
style.scss
client/src/style.scss
+2
-2
没有找到文件。
client/src/action/CourseAction.js
浏览文件 @
edc76c8f
...
...
@@ -49,11 +49,10 @@ export default class CourseAction extends BaseACTION {
sid
:
cur
.
semester_id
,
src
:
(
_cur
&&
_cur
.
curriculum_picture
)
||
''
,
title
:
cur
.
course_name
,
arrTab
:
[
(((
_cur
&&
_cur
.
curriculum_credit
)
||
0
)
+
_vIn
.
$t
(
'action.courseAction.credit'
)),
str1
,
cur
.
semester_name
],
arrTab
:
[
str1
,
cur
.
semester_name
],
status
:
_cur
.
is_enabled
?
_vIn
.
$t
(
'action.courseAction.publish'
)
:
_vIn
.
$t
(
'action.courseAction.noPublish'
),
time
:
cur
.
begin_date
.
split
(
' '
)[
0
]
+
_vIn
.
$t
(
'action.courseAction.to'
)
+
cur
.
end_date
.
split
(
' '
)[
0
],
myStatus
:
cur
.
selected
!==
0
?
(
cur
.
score
?
(
_vIn
.
$t
(
'action.courseAction.totalScore'
)
+
cur
.
score
)
:
_vIn
.
$t
(
'action.courseAction.noChange'
))
:
_vIn
.
$t
(
'action.courseAction.alreadyChange'
),
myStatus
:
''
,
progress
:
cur
.
video_progress
})
}
...
...
@@ -80,7 +79,7 @@ export default class CourseAction extends BaseACTION {
sid
:
cur
.
semester_id
,
bgSrc
:
(
_cur
&&
_cur
.
curriculum_picture
)
||
'../icons/home/default.jpg'
,
title
:
cur
.
course_name
,
arrTab
:
[
(((
_cur
&&
_cur
.
curriculum_credit
)
||
0
)
+
_vIn
.
$t
(
'action.courseAction.credit'
)),
str1
,
cur
.
semester_name
],
arrTab
:
[
str1
,
cur
.
semester_name
],
status
:
_cur
.
is_enabled
?
_vIn
.
$t
(
'action.courseAction.publish'
)
:
_vIn
.
$t
(
'action.courseAction.noPublish'
),
time
:
cur
.
begin_date
.
split
(
' '
)[
0
]
+
_vIn
.
$t
(
'action.courseAction.to'
)
+
cur
.
end_date
.
split
(
' '
)[
0
],
progress
:
cur
.
video_progress
,
...
...
client/src/assets/images/bank-logo1.png
0 → 100644
浏览文件 @
edc76c8f
22.2 KB
client/src/assets/images/bank-logo2.png
0 → 100644
浏览文件 @
edc76c8f
9.5 KB
client/src/assets/images/login-bg.png
0 → 100644
浏览文件 @
edc76c8f
差异被折叠。
点击展开。
client/src/assets/images/login-tit1.png
0 → 100644
浏览文件 @
edc76c8f
26.1 KB
client/src/assets/images/login-tit2.png
0 → 100644
浏览文件 @
edc76c8f
7.0 KB
client/src/assets/images/login-tit3.png
0 → 100644
浏览文件 @
edc76c8f
16.0 KB
client/src/assets/languages/zh-CN.json
浏览文件 @
edc76c8f
...
...
@@ -11,9 +11,9 @@
"action"
:
{
"courseAction"
:
{
"all"
:
"全部"
,
"mustLearn"
:
"
必修课
"
,
"changeLearn"
:
"
选修课
"
,
"repeatLearn"
:
"
重修课
"
,
"mustLearn"
:
"
教材学习
"
,
"changeLearn"
:
"
必修课程
"
,
"repeatLearn"
:
"
拓展课程
"
,
"changeStatus"
:
"选修状态"
,
"noChange"
:
"未选修"
,
"alreadyChange"
:
"已选修"
,
...
...
client/src/components/Tab/tab.vue
0 → 100644
浏览文件 @
edc76c8f
<
template
>
<div>
<template
v-for=
"(item, index) in tabData"
>
<div
class=
"tap-box"
:key=
"index"
>
<div
class=
"name"
>
{{
item
.
name
}}
</div>
<ul>
<template
v-for=
"(list, listIndex) in item.arrItem"
>
<li
:class=
"listIndex === tapIndex ? 'active' : ''"
:key=
"listIndex"
@
click=
"selFindSelect(listIndex)"
>
{{
list
.
name
}}
</li>
</
template
>
</ul>
</div>
</template>
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
tapIndex
:
0
}
},
props
:
[
'tabData'
],
methods
:
{
selFindSelect
(
e
)
{
this
.
tapIndex
=
e
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.tap-box
{
display
:
flex
;
align-items
:
center
;
.name
{
color
:rgba
(
51
,
51
,
51
,
1
)
;
font-size
:
30px
;
line-height
:
100%
;
}
ul
{
margin
:
0
;
padding
:
0
;
margin-left
:
20px
;
display
:
flex
;
li
:last-child
{
border
:
none
;
}
li
.active
{
color
:
#2994EA
;
}
li
{
font-size
:
24px
;
color
:
#999
;
list-style
:
none
;
padding
:
0
20px
;
border-right
:
1px
solid
rgba
(
204
,
204
,
204
,
1
);
}
}
}
</
style
>
client/src/components/learnSysLayout/navigation.vue
浏览文件 @
edc76c8f
<
template
>
<div
class=
"menu"
>
<div
class=
"nav-left"
>
<img
class=
"logo"
src=
"@/assets/images/logo-header.png"
alt=
"logo"
/>
<div
class=
"text-title"
@
click=
"setStatus"
>
{{
$t
(
'components.learnSysLayout.navigation.title'
)
}}
</div>
<div
class=
"logo-box"
>
<img
class=
"bank-logol"
src=
"@/assets/images/bank-logo1.png"
alt=
"logo"
/>
<img
class=
"bank-logor"
src=
"@/assets/images/bank-logo2.png"
alt=
"logo"
/>
</div>
</div>
<s-language></s-language>
<div
class=
"notify"
@
click=
"goNotify()"
>
{{
$t
(
'components.learnSysLayout.navigation.tip'
)
}}
<div
class=
"bank-title"
@
click=
"setStatus"
>
高级财富管理师·在线学习系统
</div>
<!--
<s-language></s-language>
-->
<!--
<div
class=
"notify"
@
click=
"goNotify()"
>
{{
$t
(
'components.learnSysLayout.navigation.tip'
)
}}
<div
class=
"num"
v-if=
"num"
>
{{
num
}}
</div>
</div>
-->
<div
class=
"right"
>
<div
class=
"logo-name"
>
赵瑾龙,欢迎您回到在线学习系统
</div>
<div
class=
"notice"
>
公告
</div>
</div>
</div>
</
template
>
...
...
@@ -56,10 +63,13 @@ export default {
width
:
100%
;
height
:
100%
;
color
:
#ffffff
;
display
:
flex
;
align-items
:
center
;
.nav-left
{
float
:
left
;
display
:
flex
;
position
:
relative
;
height
:
100%
;
align-items
:
center
;
img
.logo
{
position
:
absolute
;
left
:
0
;
...
...
@@ -75,12 +85,28 @@ export default {
font-size
:
16px
;
}
}
.bank-title
{
font-size
:
24px
;
color
:rgba
(
102
,
102
,
102
,
1
)
;
margin-left
:
80px
;
}
.right
{
display
:
flex
;
color
:
#333333
;
margin-left
:
auto
;
font-size
:
18px
;
margin-right
:
35px
;
.logo-name
{
margin-right
:
40px
;
}
}
.notify
{
position
:
relative
;
float
:
right
;
padding
:
0
20px
;
line-height
:
60px
;
font-size
:
16px
;
color
:
#000
;
cursor
:
pointer
;
.num
{
position
:
absolute
;
...
...
@@ -98,6 +124,14 @@ export default {
}
}
}
.logo-box
{
.bank-logor
{
margin-left
:
3px
;
}
img
{
height
:
26px
;
}
}
@media
(
max-width
:
767px
)
{
.menu
{
...
...
client/src/components/learnSysLayout/sidebar.vue
浏览文件 @
edc76c8f
...
...
@@ -55,26 +55,22 @@ export default {
const
_path
=
(
_global
&&
_global
.
sidebar
&&
_global
.
sidebar
.
defaultPath
)
||
'/'
let
defaultActive
=
''
switch
(
_path
)
{
case
'/app/learn/course'
:
defaultActive
=
'1-1'
;
break
case
'/app/learn/course-detail'
:
defaultActive
=
'1-1'
;
break
case
'/app/learn/course-all'
:
defaultActive
=
'0'
;
break
case
'/app/learn/discussion'
:
defaultActive
=
'1-2'
;
break
case
'/app/learn/report-active-list'
:
defaultActive
=
'1-3'
;
break
case
'/app/grade/credit'
:
defaultActive
=
'2-1'
;
break
case
'/app/feedback/feedback-list'
:
defaultActive
=
'3'
;
break
case
'/app/service-hall/hall'
:
defaultActive
=
'4'
;
break
case
'/app/tips/learning-tips'
:
defaultActive
=
'1-1'
;
break
case
'/app/tips/examina-tips'
:
defaultActive
=
'1-1'
;
break
case
'/app/learn/course'
:
defaultActive
=
'2'
;
break
case
'/app/examination/my-examination'
:
defaultActive
=
'3'
;
break
}
return
{
UserInfo
:
(
_global
&&
_global
.
UserInfo
)
||
{},
defaultActive
:
defaultActive
,
headerData
:
[
{
name
:
this
.
$t
(
'components.learnSysLayout.sideBar.header1'
)
,
name
:
'学员须知'
,
iconClass
:
'el-icon-self-xuexi-'
,
index
:
'1'
,
children
:
[
{
name
:
this
.
$t
(
'components.learnSysLayout.sideBar.header1Child1'
)
,
index
:
'1-1'
},
{
name
:
this
.
$t
(
'components.learnSysLayout.sideBar.header1Child2'
)
,
index
:
'1-2'
}
{
name
:
'学习须知'
,
index
:
'1-1'
},
{
name
:
'考前须知'
,
index
:
'1-2'
}
// { name: this.$t('components.learnSysLayout.sideBar.header1Child3'), index: '1-3' }
]
},
...
...
@@ -92,7 +88,12 @@ export default {
// index: '4'
// },
{
name
:
this
.
$t
(
'components.learnSysLayout.sideBar.header4'
),
name
:
'我的学习'
,
iconClass
:
'el-icon-self-grade'
,
index
:
'2'
},
{
name
:
'我的考试'
,
iconClass
:
'el-icon-self-fankuiyijian'
,
index
:
'3'
}
...
...
@@ -105,12 +106,10 @@ export default {
methods
:
{
goPages
(
str
)
{
switch
(
str
)
{
case
'1-1'
:
this
.
$router
.
push
({
path
:
'/app/learn/course'
});
break
case
'1-2'
:
this
.
$router
.
push
({
path
:
'/app/learn/discussion'
});
break
case
'1-3'
:
this
.
$router
.
push
({
path
:
'/app/learn/report-active-list'
});
break
case
'2-1'
:
this
.
$router
.
push
({
path
:
'/app/grade/credit'
});
break
case
'3'
:
this
.
$router
.
push
({
path
:
'/app/feedback/feedback-list'
});
break
case
'4'
:
this
.
$router
.
push
({
path
:
'/app/service-hall/hall'
});
break
case
'1-1'
:
this
.
$router
.
push
({
path
:
'/app/tips/learning-tips'
});
break
case
'1-2'
:
this
.
$router
.
push
({
path
:
'/app/tips/examina-tips'
});
break
case
'2'
:
this
.
$router
.
push
({
path
:
'/app/learn/course'
});
break
case
'3'
:
this
.
$router
.
push
({
path
:
'/app/examination/my-examination'
});
break
}
},
/* 修改头像 - 跳转方法 */
...
...
@@ -195,12 +194,12 @@ export default {
.el-menu-item.my-account
{
height
:
auto
;
line-height
:
0
;
padding-top
:
2
0px
;
padding-top
:
1
0px
;
overflow
:
hidden
;
text-align
:
center
;
.pic
{
position
:
relative
;
margin-bottom
:
15px
;
margin-bottom
:
0
;
img
{
display
:
block
;
margin
:
0
auto
;
...
...
@@ -243,7 +242,6 @@ export default {
}
.el-menu-item.is-active
{
color
:
#71C0FF
;
font-size
:
18px
;
}
@media
(
max-width
:
767px
)
{
...
...
client/src/pages/examination/myExamination.vue
0 → 100644
浏览文件 @
edc76c8f
<
template
>
<div
class=
"mian"
>
<div
class=
"content"
>
<div
class=
"title"
>
我的考试
</div>
<div
class=
"card-box"
>
<ul>
<li
v-for=
"(item, index) in examinaList"
:key=
"index"
>
<img
:src=
"item.img"
alt=
""
>
<div
class=
"txt"
>
{{
item
.
text
}}
</div>
</li>
</ul>
</div>
</div>
<div
class=
"dialog"
v-show=
"dialogVisible"
>
<div
class=
"scroll"
:style=
"
{height:(popHeight-50)+'px'}">
<div
class=
"cont"
:style=
"
{height:(popHeight-130)+'px'}">
<div
class=
"tit"
>
考试须知
</div>
<div
class=
"text"
>
省地矿局阿斯科利队将阿斯利康大家阿斯科利队将阿斯科利队将阿斯科利大数据的卢卡斯教练卡升级阿斯科利队将阿斯科利队将阿斯科利队将阿斯科利大数据的省地矿局阿斯科利队将阿斯利康大家阿斯科利队将阿斯科利队将阿
</div>
<div
class=
"text"
>
省地矿局阿斯科利队将阿斯利康大家阿斯科利队将阿斯科利队将阿斯科利大数据的卢卡斯教练卡升级阿斯科利队将阿斯科利队将阿斯科利队将阿斯科利大数据的省地矿局阿斯科利队将阿斯利康大家阿斯科利队将阿斯科利队将阿
</div>
<div
class=
"text"
>
省地矿局阿斯科利队将阿斯利康大家阿斯科利队将阿斯科利队将阿斯科利大数据的卢卡斯教练卡升级阿斯科利队将阿斯科利队将阿斯科利队将阿斯科利大数据的省地矿局阿斯科利队将阿斯利康大家阿斯科利队将阿斯科利队将阿
</div>
<div
class=
"text"
>
省地矿局阿斯科利队将阿斯利康大家阿斯科利队将阿斯科利队将阿斯科利大数据的卢卡斯教练卡升级阿斯科利队将阿斯科利队将阿斯科利队将阿斯科利大数据的省地矿局阿斯科利队将阿斯利康大家阿斯科利队将阿斯科利队将阿
</div>
<div
class=
"video"
>
<video
controls
>
<source
src=
"https://vdept.bdstatic.com/71333761636a4367614567696c315061/674742357854354a/cd6549f1c380f97b84f03a3d354ea61e810f2c7f2c2644154f46bede3d50c9c698415799bcaa6adf02c95b911a5c1c81.mp4?auth_key=1586753904-0-0-f9a698c12b3c67b53e25a2e362681483"
type=
"video/mp4"
>
</video>
</div>
</div>
<div
class=
"btn-block"
>
<div>
我已阅读,开始考试
</div>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
popHeight
:
0
,
dialogVisible
:
false
,
examinaList
:
[
{
img
:
'https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png'
,
text
:
'模拟测试'
},
{
img
:
'https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png'
,
text
:
'模拟测试'
}
]
}
},
mounted
()
{
this
.
setHeight
()
},
methods
:
{
setHeight
()
{
const
viewHeight
=
document
.
body
.
offsetHeight
this
.
popHeight
=
viewHeight
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.mian
{
padding
:
40px
;
.content
{
background
:rgba
(
255
,
255
,
255
,
1
)
;
border-radius
:
6px
;
padding
:
0
40px
;
.title
{
color
:
#333333
;
font-size
:
18px
;
line-height
:
65px
;
border-bottom
:
1px
solid
rgba
(
204
,
204
,
204
,
1
);
}
.card-box
{
padding
:
40px
0
;
ul
{
margin
:
0
;
padding
:
0
;
overflow
:
hidden
;
li
{
float
:
left
;
width
:
250px
;
height
:
360px
;
margin-right
:
40px
;
background
:rgba
(
255
,
255
,
255
,
1
)
;
box-shadow
:
0px
2px
10px
0px
rgba
(
0
,
0
,
0
,
0
.2
);
border-radius
:
6px
;
overflow
:
hidden
;
list-style
:
none
;
margin-bottom
:
40px
;
img
{
width
:
100%
;
height
:
295px
;
display
:
block
;
}
.txt
{
line-height
:
65px
;
color
:rgba
(
41
,
148
,
234
,
1
)
;
font-size
:
18px
;
text-align
:
center
;
}
}
}
}
}
.dialog
{
width
:
100%
;
height
:
100%
;
position
:
fixed
;
top
:
0
;
left
:
0
;
background
:rgba
(
0
,
0
,
0
,
0
.3
)
;
z-index
:
999999
;
.scroll
{
position
:absolute
;
top
:
50%
;
left
:
50%
;
-webkit-transform
:
translate
(
-50%
,-
50%
);
transform
:
translate
(
-50%
,-
50%
);
-ms-transform
:
translate
(
-50%
,-
50%
);
-o-transform
:
translate
(
-50%
,-
50%
);
border-radius
:
6px
;
overflow
:
hidden
;
}
.cont
{
width
:
600px
;
padding
:
20px
30px
;
background
:
#fff
;
overflow
:
scroll
;
.tit
{
text-align
:
center
;
font-size
:
30px
;
color
:rgba
(
51
,
51
,
51
,
1
)
;
line-height
:
100%
;
margin-bottom
:
10px
;
}
.text
{
font-size
:
14px
;
color
:rgba
(
102
,
102
,
102
,
1
)
;
line-height
:
25px
;
}
.video
{
width
:
100%
;
height
:
315px
;
background
:rgba
(
0
,
0
,
0
,
1
)
;
border-radius
:
7px
;
margin
:
0
auto
;
overflow
:
hidden
;
margin-top
:
15px
;
video
{
width
:
100%
;
height
:
100%
;
}
}
}
.btn-block
{
position
:
fixed
;
bottom
:
0
;
left
:
0
;
width
:
100%
;
height
:
52px
;
background
:
#fff
;
box-shadow
:
0px
-5px
30px
rgba
(
237
,
240
,
238
,
0
.7
);
padding-top
:
13px
;
div
{
width
:
206px
;
height
:
41px
;
line-height
:
41px
;
font-size
:
14px
;
color
:
#fff
;
text-align
:
center
;
border-radius
:
5px
;
margin
:
0
auto
;
background
:
rgba
(
56
,
148
,
231
);
}
}
}
}
</
style
>
client/src/pages/learn/course.vue
浏览文件 @
edc76c8f
...
...
@@ -7,8 +7,21 @@
<el-button
class=
"in-btn"
type=
"primary"
size=
"small"
round
@
click=
"goLive"
>
进入直播
</el-button>
</div>
</
template
>
<div
class=
"con-title"
>
{{ $t('pages.learn.course.title') }}
</div>
<div
class=
"con-box"
>
<!-- <div class="con-title">{{ $t('pages.learn.course.title') }}</div> -->
<div
class=
"tab-box"
>
<
template
v-for=
"(item, index) in find"
>
<div
class=
"tap-box"
:key=
"index"
>
<div
class=
"name"
>
{{
item
.
name
}}
</div>
<ul>
<template
v-for=
"(item1, index1) in item.arrItem"
>
<li
:class=
"['tab', (item.selectIndex == index1 ? 'active' : '')]"
@
click=
"selFindSelect"
:key=
"index1"
:data-index=
'index1'
:data-i=
"index"
:data-key=
'item.key'
:data-val=
'item1.val'
>
{{
item1
.
name
}}
</li>
</
template
>
</ul>
</div>
</template>
</div>
<!-- <div class="con-box">
<template v-for="(item, index) in find">
<ul v-bind:key="index" class="tabs-list" v-if="index != 0">
<li class="tabs-hd">{{item.name}}</li>
...
...
@@ -19,48 +32,49 @@
</template>
</ul>
</template>
</div>
</div>
-->
<div
class=
"switch-box"
>
<
!-- <
div class="switch-box">
<el-button type="info" size="medium" @click="studyEarlyUpdate" plain>{{ $t('pages.learn.course.lastLearn') }}<i :class="['el-icon-caret-' + (filter.studyEarly == 'down' ? 'bottom' : 'top'), 'icon']"></i></el-button>
<el-button type="info" size="medium" @click="selectTimeUpdate" plain>{{ $t('pages.learn.course.updateTime') }}<i :class="['el-icon-caret-' + (filter.selectTime == 'down' ? 'bottom' : 'top'), 'icon']"></i></el-button>
<!-- <el-button class="rbtn" type="primary" size="medium" icon="el-icon-self-cc-book icon" @click="goCourseAll">{{ $t('pages.learn.course.changeCourse') }}</el-button> -->
</div>
<div
class=
"con-box"
>
<ul
class=
"course-list"
>
<
template
v-for=
"(item, index) in homeList"
>
<li
v-bind:key=
"index"
class=
"item"
>
<div
class=
"left-pic"
>
<template
v-if=
"item.src"
>
<img
:src=
"item.src"
alt=
""
@
click=
"goCourseContent"
:data-cid=
'item.id'
:data-sid=
'item.sid'
>
</
template
>
<
template
v-else
>
<div
class=
"no-img"
><i
class=
"el-icon-self-13"
></i></div>
</
template
>
</div>
<div
class=
"right-bd"
>
<div
class=
"title"
@
click=
"goCourseContent"
:data-cid=
'item.id'
:data-sid=
'item.sid'
>
{{item.title}}
</div>
<div
class=
"tags"
>
<
template
v-for=
"(item1, index) in item.arrTab"
>
<span
v-bind:key=
"index"
>
{{
item1
}}
</span>
</div> -->
<div
class=
"new-height"
>
<div
class=
"study-title"
>
我的学习
</div>
<div
class=
"con-box"
>
<ul
class=
"course-list"
>
<
template
v-for=
"(item, index) in homeList"
>
<li
v-bind:key=
"index"
class=
"item"
>
<div
class=
"left-pic"
>
<template
v-if=
"item.src"
>
<img
:src=
"item.src"
alt=
""
@
click=
"goCourseContent"
:data-cid=
'item.id'
:data-sid=
'item.sid'
>
</
template
>
<
template
v-else
>
<div
class=
"no-img"
><i
class=
"el-icon-self-13"
></i></div>
</
template
>
</div>
<div
class=
"time"
>
{{item.status}}
  
<em>
{{item.time}}
</em>
</div>
<div
class=
"progress"
>
{{ $t('pages.learn.course.progress') }}
 
<el-progress
:percentage=
"item.progress > 99.5 ? 100 : item.progress"
color=
"#b49441"
></el-progress>
<div
class=
"right-bd"
>
<div
class=
"title"
@
click=
"goCourseContent"
:data-cid=
'item.id'
:data-sid=
'item.sid'
>
{{item.title}}
</div>
<div
class=
"tags"
>
<
template
v-for=
"(item1, index) in item.arrTab"
>
<span
v-bind:key=
"index"
>
{{
item1
}}
</span>
</
template
>
</div>
<div
class=
"time"
>
{{item.status}}
  
<em>
{{item.time}}
</em>
</div>
<!-- <div class="progress">
{{ $t('pages.learn.course.progress') }} <el-progress :percentage="item.progress > 99.5 ? 100 : item.progress" color="#b49441"></el-progress>
</div> -->
<div
class=
"right-sel"
>
{{item.myStatus}}
</div>
<el-button
class=
"in-btn"
type=
"primary"
size=
"small"
round
@
click=
"goCourseContent"
:data-cid=
'item.id'
:data-sid=
'item.sid'
>
{{ $t('pages.learn.course.showCourse') }}
</el-button>
</div>
<div
class=
"right-sel"
>
{{item.myStatus}}
</div>
<el-button
class=
"in-btn"
type=
"primary"
size=
"small"
round
@
click=
"goCourseContent"
:data-cid=
'item.id'
:data-sid=
'item.sid'
>
{{ $t('pages.learn.course.showCourse') }}
</el-button>
</div>
</li>
</template>
<
template
v-if=
"!homeList.length"
>
<div
class=
'no-data'
>
{{
$t
(
'pages.learn.course.noCourseStr'
)
}}
</div>
</
template
>
</ul>
</li>
</template>
<
template
v-if=
"!homeList.length"
>
<div
class=
'no-data'
>
{{
$t
(
'pages.learn.course.noCourseStr'
)
}}
</div>
</
template
>
</ul>
</div>
</div>
</div>
</template>
...
...
@@ -69,7 +83,7 @@
import
cAction
from
'@action'
export
default
{
components
:
{
},
components
:
{},
data
()
{
return
{
filter
:
{
...
...
@@ -77,21 +91,14 @@ export default {
selectTime
:
'down'
},
find
:
[{
name
:
this
.
$t
(
'pages.learn.course.semeter'
),
isShow
:
false
,
selectIndex
:
0
,
key
:
'semester_id'
,
arrItem
:
[]
// 从后台请求
},
{
name
:
this
.
$t
(
'pages.learn.course.courseType'
),
name
:
'课程类型'
,
isShow
:
false
,
selectIndex
:
0
,
key
:
'course_type'
,
arrItem
:
[
{
val
:
'-1'
,
name
:
this
.
$t
(
'pages.learn.course.allLearn'
)
},
{
val
:
'1'
,
name
:
this
.
$t
(
'pages.learn.course.mustLearn'
)
},
{
val
:
'2'
,
name
:
this
.
$t
(
'pages.learn.course.changeLearn'
)
},
{
val
:
'3'
,
name
:
this
.
$t
(
'pages.learn.course.repeatLearn'
)
}
{
val
:
'1'
,
name
:
this
.
$t
(
'action.courseAction.mustLearn'
)
},
{
val
:
'2'
,
name
:
this
.
$t
(
'action.courseAction.changeLearn'
)
},
{
val
:
'3'
,
name
:
this
.
$t
(
'action.courseAction.repeatLearn'
)
}
]
}],
homeList
:
[],
// 从后台请求
...
...
@@ -368,10 +375,60 @@ ul.course-list {
}
}
}
.tab-box
{
margin-left
:
80px
;
margin-bottom
:
20px
;
padding-top
:
40px
;
}
.con-box
{
margin
:
0
;
padding
:
20px
0
;
}
.new-height
{
margin
:
0
40px
;
background
:
#fff
;
padding
:
0
40px
;
border-radius
:
6px
;
}
.study-title
{
font-size
:
18px
;
color
:rgba
(
51
,
51
,
51
,
1
)
;
line-height
:
65px
;
border-bottom
:
1px
solid
#CCCCCC
;
}
@media
(
max-width
:
767px
)
{
.switch-box
{
margin
:
0
;
}
}
.tap-box
{
display
:
flex
;
align-items
:
center
;
.name
{
color
:rgba
(
51
,
51
,
51
,
1
)
;
font-size
:
30px
;
line-height
:
100%
;
}
ul
{
margin
:
0
;
padding
:
0
;
margin-left
:
20px
;
display
:
flex
;
li
:last-child
{
border
:
none
;
}
li
.active
{
color
:
#2994EA
;
}
li
{
font-size
:
24px
;
color
:
#999
;
list-style
:
none
;
padding
:
0
20px
;
border-right
:
1px
solid
rgba
(
204
,
204
,
204
,
1
);
}
}
}
</
style
>
client/src/pages/learn/courseDetail.vue
浏览文件 @
edc76c8f
<
template
>
<div>
<
div
class=
"con-title"
>
课程详情
</div
>
<
!--
<div
class=
"con-title"
>
课程详情
</div>
--
>
<div
class=
"detail-box"
>
<div
class=
"box-thd"
>
<div
class=
"title"
@
click=
"noWantThisCourse"
>
{{
headerInfo
.
title
}}
<template
v-if=
'headerInfo.isStart && tabs[1].chapterList.currentChapterId'
>
<
!--
<
template
v-if=
'headerInfo.isStart && tabs[1].chapterList.currentChapterId'
>
<el-button
class=
"rbtn"
type=
"primary"
size=
"mini"
@
click=
'startLearn'
:data-cid=
'cid'
:data-sid=
'sid'
:data-type=
'tabs[1].chapterList.currentVideoProvider'
:data-vid=
'tabs[1].chapterList.currentChapterId'
>
继续学习
</el-button>
</
template
>
<
template
v-else-if=
'headerInfo.isStart'
>
...
...
@@ -12,7 +12,7 @@
</
template
>
<
template
v-else
>
<el-button
class=
"rbtn"
type=
"primary"
size=
"mini"
@
click=
'wantThisCourse'
>
选课
</el-button>
</
template
>
</
template
>
-->
</div>
<div
class=
"tags"
>
<
template
v-for=
"(item1, index) in headerInfo.arrTab"
>
...
...
@@ -21,9 +21,9 @@
</div>
<div
class=
"time"
>
{{headerInfo.time}} {{headerInfo.status}}
</div>
<div
style=
"float: left; width: 100%; height: 1px;"
></div>
<div
class=
"progress"
>
<
!-- <
div class="progress">
视频观看进度 <el-progress :percentage="headerInfo.progress" color="#b49441"></el-progress>
</div>
</div>
-->
</div>
<div
class=
"box-tbd"
>
<div
class=
"left-pic"
>
...
...
@@ -120,7 +120,7 @@
</div>
</
template
>
</el-tab-pane>
<
el-tab-pane
label=
"课程考核
"
name=
"3"
>
<
!-- <el-tab-pane label="课程考核1
" name="3">
<div class='course-assess'>
<div class='title'>最终成绩:{{tabs[3].assess.score && (tabs[3].assess.score + '分') || '暂无'}}</div>
<div class='topic'>
...
...
@@ -180,12 +180,8 @@
<div style='width: 100%; font-size: 30rpx; margin: 40rpx auto 10rpx auto; text-align: center;'>暂无数据</div>
</template>
</div>
<!-- <div class='table-title'>大作业</div>
<div class='status-text'>状 态:{{tabs[3].assess.essay.status}}</div>
<div class='status-text' v-if='tabs[3].assess.essay.created_time'>提交时间:{{tabs[3].assess.essay.created_time}}</div>
<div class='status-text'>得 分:{{tabs[3].assess.essay.score}}</div> -->
</div>
</el-tab-pane>
</el-tab-pane>
-->
</el-tabs>
</el-col>
<el-col
:xs=
"24"
:sm=
"9"
:md=
"7"
:lg=
"6"
:xl=
"4"
>
...
...
client/src/pages/login/code.vue
浏览文件 @
edc76c8f
<
template
>
<div
class=
"p-con"
>
<div
class=
"hd"
>
<img
src=
"@/assets/images/logo.png"
alt=
"logo"
>
<div
class=
"txt"
>
清控紫荆课堂
</div>
<!--
<s-language></s-language>
-->
</div>
<div
class=
"bd"
>
<div
class=
"top50 container"
>
<el-row>
<el-col
:xs=
"2"
:sm=
"7"
:md=
"3"
:lg=
"3"
:xl=
"3"
><div
style=
"height: 1px;"
></div></el-col>
<el-col
class=
"hidden-xs-only hidden-sm-only"
:md=
"10"
:lg=
"10"
:xl=
"10"
>
<img
src=
"@/assets/images/login-left-bg.png"
alt=
"左侧-sofia logo"
>
</el-col>
<el-col
:xs=
"20"
:sm=
"10"
:md=
"6"
:lg=
"6"
:xl=
"6"
>
<code-login>
<div
class=
"text"
slot=
"text"
>
<span
class=
"code-login"
>
<template
v-if=
"query.rd"
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ path: '/login/index?rd=' + query.rd }">
{{
$t
(
'Login.normalLogin'
)
}}
</router-link>
</
template
>
<
template
v-else
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ name: 'login-normal' }">
{{
$t
(
'Login.normalLogin'
)
}}
</router-link>
</
template
>
</span>
<span
class=
"forget-pwd"
>
<
template
v-if=
"query.rd"
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ path: '/login/forget?rd=' + query.rd }">
{{
$t
(
'Login.forgetPassword'
)
}}
</router-link>
</
template
>
<
template
v-else
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ name: 'login-forget' }">
{{
$t
(
'Login.forgetPassword'
)
}}
</router-link>
</
template
>
<!-- <div class="router-link-class" @click="dialogMsg">{{$t('Login.forgetPassword')}}</div> -->
</span>
</div>
</code-login>
</el-col>
<el-col
:xs=
"2"
:sm=
"7"
:md=
"5"
:lg=
"5"
:xl=
"5"
><div
style=
"height: 1px;"
></div></el-col>
</el-row>
<div
class=
"login-box"
>
<div
class=
"login-mian"
>
<div
class=
"left"
>
<img
src=
"../../assets/images/login-tit1.png"
alt=
""
class=
"txt1"
>
<img
src=
"../../assets/images/login-tit2.png"
alt=
""
class=
"txt2"
>
<img
src=
"../../assets/images/login-tit3.png"
alt=
""
class=
"txt3"
>
</div>
<div
class=
"login-modules"
>
<code-login>
<div
class=
"text"
slot=
"text"
>
<span
class=
"code-login"
>
<template
v-if=
"query.rd"
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ path: '/login/index?rd=' + query.rd }">
{{
$t
(
'Login.normalLogin'
)
}}
</router-link>
</
template
>
<
template
v-else
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ name: 'login-normal' }">
{{
$t
(
'Login.normalLogin'
)
}}
</router-link>
</
template
>
</span>
<span
class=
"forget-pwd"
>
<
template
v-if=
"query.rd"
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ path: '/login/forget?rd=' + query.rd }">
{{
$t
(
'Login.forgetPassword'
)
}}
</router-link>
</
template
>
<
template
v-else
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ name: 'login-forget' }">
{{
$t
(
'Login.forgetPassword'
)
}}
</router-link>
</
template
>
<!-- <div class="router-link-class" @click="dialogMsg">{{$t('Login.forgetPassword')}}</div> -->
</span>
</div>
</code-login>
</div>
</div>
<div
class=
"ft"
>
<div
class=
"num"
>
学习平台服务电话:010-62793299
</div>
<div
class=
"time"
>
服务时间:9:00-18:00
</div>
<div
class=
"txt"
>
Copyright © 2017 Zijing Education. All rights reserved. 清控紫荆(北京)教育科技股份有限公司 京ICP证150431号 京公网安备 11010802023681号
</div>
</div>
</div>
</template>
...
...
@@ -78,40 +64,51 @@ export default {
</
script
>
<
style
lang=
"scss"
scoped
>
.p-con
{
position
:
relative
;
width
:
100%
;
height
:
100%
;
background
:
#981838
;
color
:
#535353
;
text-align
:
center
;
}
/* 头部 */
.p-con
.hd
{
position
:
absolute
;
top
:
0
;
left
:
0
;
right
:
0
;
background
:
#ffffff
;
}
.p-con
.hd
img
{
display
:
block
;
margin
:
0
auto
;
padding
:
0
.3rem
0
0
.1rem
0
;
}
.p-con
.hd
.txt
{
margin
:
0
auto
;
padding
:
0
0
0
.2rem
0
;
letter-spacing
:
0
.05rem
;
font-size
:
0
.32rem
;
font-weight
:
700
;
}
/* 底部 */
.p-con
.ft
{
position
:
fixed
;
bottom
:
0
;
left
:
0
;
right
:
0
;
padding
:
0
.4rem
0
0
.1rem
0
;
background
:
#e5e5e5
;
}
.p-con
.ft
.num
{
font-size
:
0
.14rem
;
line-height
:
1
.5
;
}
.p-con
.ft
.time
{
font-size
:
0
.14rem
;
line-height
:
1
.5
;
}
.p-con
.ft
.txt
{
padding
:
0
.1rem
;
color
:
#898989
;
font-size
:
0
.12rem
;
line-height
:
1
.5
;
}
/* 中间部分 */
.p-con
.bd
{
position
:
relative
;
padding
:
1
.45rem
0
1
.3rem
0
;
margin
:
0
auto
;
height
:
100%
;
min-height
:
6rem
;
box-sizing
:
border-box
;
}
.p-con
.bd
.router-link-class
{
color
:
#ffffff
;
text-decoration
:
none
;
}
/* code 登录 */
.p-con
.bd
.top50
{
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
}
.p-con
.bd
.top50
img
{
display
:
block
;
margin
:
0
auto
;
}
.p-con
.bd
.top50
.login-btn
{
margin-top
:
0
.1rem
;
background
:
#ffffff
;
border-color
:
#ffffff
;
color
:
#000
;
width
:
100%
;
}
.p-con
.bd
.top50
.text
{
margin-top
:
-16px
;
color
:
#e5e5e5
;
font-size
:
16px
;
line-height
:
1
.5
;
overflow
:
hidden
;
}
.p-con
.bd
.top50
.text
.code-login
{
float
:
left
;
cursor
:
pointer
;
}
.p-con
.bd
.top50
.text
.forget-pwd
{
float
:
right
;
cursor
:
pointer
;
}
/* Extra small devices (portrait phones, less than 576px) */
@media
(
max-width
:
575px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
100%
;
}
}
/* Small devices (landscape phones, 576px and up) */
@media
(
min-width
:
576px
)
and
(
max-width
:
767px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
576px
;
}
}
/* Medium devices (tablets, 768px and up) */
@media
(
min-width
:
768px
)
and
(
max-width
:
991px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
768px
;
}
}
/* Large devices (desktops, 992px and up) */
@media
(
min-width
:
992px
)
and
(
max-width
:
1199px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
992px
;
}
}
/* Extra large devices (large desktops, 1200px and up) */
@media
(
min-width
:
1200px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
1200px
;
}
}
.login-box
{
width
:
100%
;
height
:
100%
;
background
:
url('../../assets/images/login-bg.png')
;
background-size
:
100%
100%
;
.login-mian
{
position
:
relative
;
width
:
1100px
;
height
:
100%
;
margin
:
0
auto
;
.left
{
position
:
absolute
;
top
:
50%
;
left
:
0
;
-webkit-transform
:
translateY
(
-50%
);
-ms-transform
:
translateY
(
-50%
);
-o-transform
:
translateY
(
-50%
);
transform
:
translateY
(
-50%
);
img
{
display
:
block
;
}
.txt1
{
width
:
544px
;
}
.txt2
{
width
:
541px
;
margin
:
30px
0
;
}
.txt3
{
width
:
542px
;
}
}
.login-modules
{
position
:
absolute
;
top
:
50%
;
-webkit-transform
:
translateY
(
-50%
);
-ms-transform
:
translateY
(
-50%
);
-o-transform
:
translateY
(
-50%
);
transform
:
translateY
(
-50%
);
right
:
0
;
width
:
400px
;
}
}
}
/* normal 登录 */
.login-box
.login-mian
.login-modules
.text
.code-login
a
{
float
:
left
;
cursor
:
pointer
;
color
:
#186AA9
;
text-decoration
:none
;}
.login-box
.login-mian
.login-modules
.text
.forget-pwd
a
{
float
:
right
;
cursor
:
pointer
;
color
:
#186AA9
;
text-decoration
:none
;}
</
style
>
client/src/pages/login/forget.vue
浏览文件 @
edc76c8f
<
template
>
<div
class=
"p-con"
>
<div
class=
"hd"
>
<img
src=
"@/assets/images/logo.png"
alt=
"logo"
>
<div
class=
"txt"
>
清控紫荆课堂
</div>
</div>
<div
class=
"bd"
>
<div
class=
"top50 container"
>
<div
class=
"login-box"
>
<div
class=
"login-mian"
>
<div
class=
"login-modules"
>
<forget-login
class=
"content-s-self"
>
<div
class=
"go-back"
slot=
"go-back"
>
<template
v-if=
"query.rd"
>
<router-link
class=
"router-link-class"
style=
"color: #000;"
active-class=
"router-link-active-class"
:to=
"
{ path: '/login/index?rd=' + query.rd }">返回登录
</router-link>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ path: '/login/index?rd=' + query.rd }">返回登录
</router-link>
</
template
>
<
template
v-else
>
<router-link
class=
"router-link-class"
style=
"color: #000;"
active-class=
"router-link-active-class"
:to=
"
{ name: 'login-normal' }">返回登录
</router-link>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ name: 'login-normal' }">返回登录
</router-link>
</
template
>
</div>
</forget-login>
</div>
</div>
<div
class=
"ft"
>
<div
class=
"num"
>
学习平台服务电话:010-62793299
</div>
<div
class=
"time"
>
服务时间:9:00-18:00
</div>
<div
class=
"txt"
>
Copyright © 2017 Zijing Education. All rights reserved. 清控紫荆(北京)教育科技股份有限公司 京ICP证150431号 京公网安备 11010802023681号
</div>
</div>
</div>
</template>
...
...
@@ -57,35 +48,23 @@ export default {
</
script
>
<
style
lang=
"scss"
scoped
>
.p-con
{
position
:
relative
;
width
:
100%
;
height
:
100%
;
background
:
#981838
;
color
:
#535353
;
text-align
:
center
;
}
/* 头部 */
.p-con
.hd
{
position
:
absolute
;
top
:
0
;
left
:
0
;
right
:
0
;
background
:
#ffffff
;
}
.p-con
.hd
img
{
display
:
block
;
margin
:
0
auto
;
padding
:
0
.3rem
0
0
.1rem
0
;
}
.p-con
.hd
.txt
{
margin
:
0
auto
;
padding
:
0
0
0
.2rem
0
;
letter-spacing
:
0
.05rem
;
font-size
:
0
.32rem
;
font-weight
:
700
;
}
/* 底部 */
.p-con
.ft
{
position
:
fixed
;
bottom
:
0
;
left
:
0
;
right
:
0
;
padding
:
0
.4rem
0
0
.1rem
0
;
background
:
#e5e5e5
;
}
.p-con
.ft
.num
{
font-size
:
0
.14rem
;
line-height
:
1
.5
;
}
.p-con
.ft
.time
{
font-size
:
0
.14rem
;
line-height
:
1
.5
;
}
.p-con
.ft
.txt
{
padding
:
0
.1rem
;
color
:
#898989
;
font-size
:
0
.12rem
;
line-height
:
1
.5
;
}
/* 中间部分 */
.p-con
.bd
{
position
:
relative
;
padding
:
1
.45rem
0
1
.3rem
0
;
margin
:
0
auto
;
height
:
100%
;
min-height
:
6rem
;
box-sizing
:
border-box
;
}
.p-con
.bd
.router-link-class
{
color
:
#ffffff
;
text-decoration
:
none
;
}
/* forget 登录 */
.content-s-self
{
top
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
}
.go-back
{
margin-top
:
0
.2rem
;
text-align
:
left
;
}
/* Extra small devices (portrait phones, less than 576px) */
@media
(
max-width
:
575px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
100%
;
height
:
100%
;
}
}
/* Small devices (landscape phones, 576px and up) */
@media
(
min-width
:
576px
)
and
(
max-width
:
767px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
576px
;
height
:
100%
;
}
}
/* Medium devices (tablets, 768px and up) */
@media
(
min-width
:
768px
)
and
(
max-width
:
991px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
768px
;
height
:
100%
;
}
}
/* Large devices (desktops, 992px and up) */
@media
(
min-width
:
992px
)
and
(
max-width
:
1199px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
992px
;
height
:
100%
;
}
}
.login-box
{
width
:
100%
;
height
:
100%
;
background
:
url('../../assets/images/login-bg.png')
;
background-size
:
100%
100%
;
.login-modules
{
width
:
100%
;
position
:
absolute
;
top
:
35%
;
left
:
50%
;
-webkit-transform
:
translate
(
-50%
,
-50%
);
-ms-transform
:
translate
(
-50%
,
-50%
);
-o-transform
:
translate
(
-50%
,
-50%
);
transform
:
translate
(
-50%
,
-50%
);
}
}
/* normal 登录 */
.login-box
.login-mian
.login-modules
a
{
cursor
:
pointer
;
color
:
#186AA9
;
text-decoration
:none
;}
/* Extra large devices (large desktops, 1200px and up) */
@media
(
min-width
:
1200px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
1200px
;
height
:
100%
;
}
}
</
style
>
client/src/pages/login/index.vue
浏览文件 @
edc76c8f
<
template
>
<div
class=
"p-con"
>
<div
class=
"hd"
>
<img
src=
"@/assets/images/logo.png"
alt=
"logo"
>
<div
class=
"txt"
>
清控紫荆课堂
</div>
<!--
<s-language></s-language>
-->
</div>
<div
class=
"bd"
>
<div
class=
"top50 container"
>
<el-row>
<el-col
:xs=
"2"
:sm=
"7"
:md=
"3"
:lg=
"3"
:xl=
"3"
><div
style=
"height: 1px;"
></div></el-col>
<el-col
class=
"hidden-xs-only hidden-sm-only"
:md=
"10"
:lg=
"10"
:xl=
"10"
>
<img
src=
"@/assets/images/login-left-bg.png"
alt=
"左侧-sofia logo"
>
</el-col>
<el-col
:xs=
"20"
:sm=
"10"
:md=
"6"
:lg=
"6"
:xl=
"6"
>
<normal-login>
<div
class=
"text"
slot=
"text"
>
<span
class=
"code-login"
>
<template
v-if=
"query.rd"
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ path: '/login/code?rd=' + query.rd }">
{{
$t
(
'Login.codeLogin'
)
}}
</router-link>
</
template
>
<
template
v-else
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ name: 'login-code' }">
{{
$t
(
'Login.codeLogin'
)
}}
</router-link>
</
template
>
</span>
<span
class=
"forget-pwd"
>
<
template
v-if=
"query.rd"
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ path: '/login/forget?rd=' + query.rd }">
{{
$t
(
'Login.forgetPassword'
)
}}
</router-link>
</
template
>
<
template
v-else
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ name: 'login-forget' }">
{{
$t
(
'Login.forgetPassword'
)
}}
</router-link>
</
template
>
<!-- <div class="router-link-class" @click="dialogMsg">{{$t('Login.forgetPassword')}}</div> -->
</span>
</div>
</normal-login>
</el-col>
<el-col
:xs=
"2"
:sm=
"7"
:md=
"5"
:lg=
"5"
:xl=
"5"
><div
style=
"height: 1px;"
></div></el-col>
</el-row>
<div
class=
"login-box"
>
<div
class=
"login-mian"
>
<div
class=
"left"
>
<img
src=
"../../assets/images/login-tit1.png"
alt=
""
class=
"txt1"
>
<img
src=
"../../assets/images/login-tit2.png"
alt=
""
class=
"txt2"
>
<img
src=
"../../assets/images/login-tit3.png"
alt=
""
class=
"txt3"
>
</div>
<div
class=
"login-modules"
>
<normal-login>
<div
class=
"text"
slot=
"text"
>
<span
class=
"code-login"
>
<template
v-if=
"query.rd"
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ path: '/login/code?rd=' + query.rd }">
{{
$t
(
'Login.codeLogin'
)
}}
</router-link>
</
template
>
<
template
v-else
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ name: 'login-code' }">
{{
$t
(
'Login.codeLogin'
)
}}
</router-link>
</
template
>
</span>
<span
class=
"forget-pwd"
>
<
template
v-if=
"query.rd"
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ path: '/login/forget?rd=' + query.rd }">
{{
$t
(
'Login.forgetPassword'
)
}}
</router-link>
</
template
>
<
template
v-else
>
<router-link
class=
"router-link-class"
active-class=
"router-link-active-class"
:to=
"
{ name: 'login-forget' }">
{{
$t
(
'Login.forgetPassword'
)
}}
</router-link>
</
template
>
</span>
</div>
</normal-login>
</div>
</div>
<div
class=
"ft"
>
<div
class=
"num"
>
学习平台服务电话:010-62793299
</div>
<div
class=
"time"
>
服务时间:9:00-18:00
</div>
<div
class=
"txt"
>
Copyright © 2017 Zijing Education. All rights reserved. 清控紫荆(北京)教育科技股份有限公司 京ICP证150431号 京公网安备 11010802023681号
</div>
</div>
</div>
</template>
<
script
>
import
sLanguage
from
'@/components/languageSwitch/index.vue'
...
...
@@ -76,42 +60,52 @@ export default {
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.p-con
{
position
:
relative
;
width
:
100%
;
height
:
100%
;
background
:
#981838
;
color
:
#535353
;
text-align
:
center
;
}
/* 头部 */
.p-con
.hd
{
position
:
absolute
;
top
:
0
;
left
:
0
;
right
:
0
;
background
:
#ffffff
;
}
.p-con
.hd
img
{
display
:
block
;
margin
:
0
auto
;
padding
:
0
.3rem
0
0
.1rem
0
;
}
.p-con
.hd
.txt
{
margin
:
0
auto
;
padding
:
0
0
0
.2rem
0
;
letter-spacing
:
0
.05rem
;
font-size
:
0
.32rem
;
font-weight
:
700
;
}
/* 底部 */
.p-con
.ft
{
position
:
fixed
;
bottom
:
0
;
left
:
0
;
right
:
0
;
padding
:
0
.4rem
0
0
.1rem
0
;
background
:
#e5e5e5
;
}
.p-con
.ft
.num
{
font-size
:
0
.14rem
;
line-height
:
1
.5
;
}
.p-con
.ft
.time
{
font-size
:
0
.14rem
;
line-height
:
1
.5
;
}
.p-con
.ft
.txt
{
padding
:
0
.1rem
;
color
:
#898989
;
font-size
:
0
.12rem
;
line-height
:
1
.5
;
}
/* 中间部分 */
.p-con
.bd
{
position
:
relative
;
padding
:
1
.45rem
0
1
.3rem
0
;
margin
:
0
auto
;
height
:
100%
;
min-height
:
6rem
;
box-sizing
:
border-box
;
}
.p-con
.bd
.router-link-class
{
color
:
#ffffff
;
text-decoration
:
none
;
}
.login-box
{
width
:
100%
;
height
:
100%
;
background
:
url('../../assets/images/login-bg.png')
;
background-size
:
100%
100%
;
.login-mian
{
position
:
relative
;
width
:
1100px
;
height
:
100%
;
margin
:
0
auto
;
.left
{
position
:
absolute
;
top
:
50%
;
left
:
0
;
-webkit-transform
:
translateY
(
-50%
);
-ms-transform
:
translateY
(
-50%
);
-o-transform
:
translateY
(
-50%
);
transform
:
translateY
(
-50%
);
img
{
display
:
block
;
}
.txt1
{
width
:
544px
;
}
.txt2
{
width
:
541px
;
margin
:
30px
0
;
}
.txt3
{
width
:
542px
;
}
}
.login-modules
{
position
:
absolute
;
top
:
50%
;
-webkit-transform
:
translateY
(
-50%
);
-ms-transform
:
translateY
(
-50%
);
-o-transform
:
translateY
(
-50%
);
transform
:
translateY
(
-50%
);
right
:
0
;
width
:
400px
;
}
}
}
/* normal 登录 */
.p-con
.bd
.top50
{
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
}
.p-con
.bd
.top50
img
{
display
:
block
;
margin
:
0
auto
;
}
.p-con
.bd
.top50
.login-btn
{
margin-top
:
0
.1rem
;
background
:
#ffffff
;
border-color
:
#ffffff
;
color
:
#000
;
width
:
100%
;
}
.p-con
.bd
.top50
.text
{
margin-top
:
-16px
;
color
:
#e5e5e5
;
font-size
:
16px
;
line-height
:
1
.5
;
overflow
:
hidden
;
}
.p-con
.bd
.top50
.text
.code-login
{
float
:
left
;
cursor
:
pointer
;
}
.p-con
.bd
.top50
.text
.forget-pwd
{
float
:
right
;
cursor
:
pointer
;
}
/* Extra small devices (portrait phones, less than 576px) */
@media
(
max-width
:
575px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
100%
;
}
}
/* Small devices (landscape phones, 576px and up) */
@media
(
min-width
:
576px
)
and
(
max-width
:
767px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
576px
;
}
}
/* Medium devices (tablets, 768px and up) */
@media
(
min-width
:
768px
)
and
(
max-width
:
991px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
768px
;
}
}
/* Large devices (desktops, 992px and up) */
@media
(
min-width
:
992px
)
and
(
max-width
:
1199px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
992px
;
}
}
/* Extra large devices (large desktops, 1200px and up) */
@media
(
min-width
:
1200px
)
{
.container
{
position
:
relative
;
margin
:
0
auto
;
width
:
1200px
;
}
}
.login-box
.login-mian
.login-modules
.text
.code-login
a
{
float
:
left
;
cursor
:
pointer
;
color
:
#186AA9
;
text-decoration
:none
;}
.login-box
.login-mian
.login-modules
.text
.forget-pwd
a
{
float
:
right
;
cursor
:
pointer
;
color
:
#186AA9
;}
</
style
>
client/src/pages/mainsite.vue
浏览文件 @
edc76c8f
<
template
>
<!-- // 整体网站结构 -->
<el-container
:style=
"
{height: containerStyle.height}">
<el-header><navigation
/></el-header>
<el-header
height=
"80px"
><navigation
/></el-header>
<el-container>
<sidebar
:obj=
"sidebar"
/>
<el-main><router-view></router-view></el-main>
...
...
@@ -56,8 +56,9 @@ export default {
<
style
lang=
"scss"
scoped
>
.el-header
{
z-index
:
1
;
background
:
#
252625
;
background
:
#
fff
;
box-shadow
:
0
1px
8px
rgba
(
0
,
0
,
0
,
0
.1
);
padding
:
0
5px
;
}
.el-main
{
padding
:
0
;
...
...
client/src/pages/tips/examinaTips.vue
0 → 100644
浏览文件 @
edc76c8f
<
template
>
<div
class=
"mian"
>
<div
class=
"content"
>
<div
class=
"title"
>
考前须知
</div>
<div
class=
"cont-txt"
>
<p>
党和国家机关通用公文的种类国务院办公厅曾发布的《国家行政机关公文处理办法》,经过多年的实践,修订后的《办法》从1994年1月1日起施行。把公文种类调整为十二类十三种,删去“指令”、“决议”、“布告”三个文种,将“议案”作为一个新文种列入主要公文种类。即:命令(令),议案,决定,指示,公告,通告,通知,通报,报告,请示,批复,函,会议纪要。此外,中共中央办公厅于1989年4月25日发布的《中国共产党各级领导机关文件处理条例(试行)》中,正式文件的种类里还列有公报、条例、规定三个文种。这样,现在常用的公文种类总共有十六种。
</p>
<div
class=
"video"
>
<video
controls
>
<source
src=
"https://vdept.bdstatic.com/71333761636a4367614567696c315061/674742357854354a/cd6549f1c380f97b84f03a3d354ea61e810f2c7f2c2644154f46bede3d50c9c698415799bcaa6adf02c95b911a5c1c81.mp4?auth_key=1586753904-0-0-f9a698c12b3c67b53e25a2e362681483"
type=
"video/mp4"
>
</video>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
}
</
script
>
<
style
lang=
"scss"
scoped
>
.mian
{
padding
:
40px
;
.content
{
background
:rgba
(
255
,
255
,
255
,
1
)
;
border-radius
:
6px
;
padding
:
0
40px
;
.title
{
color
:
#333333
;
font-size
:
18px
;
line-height
:
65px
;
border-bottom
:
1px
solid
rgba
(
204
,
204
,
204
,
1
);
}
.cont-txt
{
padding-bottom
:
30px
;
p
{
font-size
:
18px
;
color
:
#666666
;
line-height
:
30px
;
text-indent
:
2em
;
}
.video
{
width
:
657px
;
height
:
370px
;
background
:rgba
(
0
,
0
,
0
,
1
)
;
border-radius
:
7px
;
margin
:
0
auto
;
overflow
:
hidden
;
video
{
width
:
100%
;
height
:
100%
;
}
}
}
}
}
</
style
>
client/src/pages/tips/learningTips.vue
0 → 100644
浏览文件 @
edc76c8f
<
template
>
<div
class=
"mian"
>
<div
class=
"content"
>
<div
class=
"title"
>
学习须知
</div>
<div
class=
"cont-txt"
>
<p>
党和国家机关通用公文的种类国务院办公厅曾发布的《国家行政机关公文处理办法》,经过多年的实践,修订后的《办法》从1994年1月1日起施行。把公文种类调整为十二类十三种,删去“指令”、“决议”、“布告”三个文种,将“议案”作为一个新文种列入主要公文种类。即:命令(令),议案,决定,指示,公告,通告,通知,通报,报告,请示,批复,函,会议纪要。此外,中共中央办公厅于1989年4月25日发布的《中国共产党各级领导机关文件处理条例(试行)》中,正式文件的种类里还列有公报、条例、规定三个文种。这样,现在常用的公文种类总共有十六种。
</p>
<p>
在选择词语的过程中应注意: 认真辨析词语的确切含义,使词语的意义符合客观实际;注意分辨词语的感情色彩,以正确表达作者的立场观点;注意词语声音和语调对语义的影响,以提高表达效果;注意词语间的正确搭配,遵循语言法则;注意公文具体使用场合对词语风格的要求,维护公文的严肃性及强制执行性;注意针对公文具体收受对象的特点选词,以“有的放矢”便于理解和执行;注意根据公文中所涉及的人和事物的特殊性质选词,以获得更加鲜明直接的表达效果;注意根据上下文的需要选词,以维护公文的完整有效性;注意根据文种的不同特点选词,以保证语言得体而有力;注意词语的规范性,以提高公文沟通的效果,扩展沟通的范围。
</p>
<p>
由于表意和表现特殊色彩的需要,公文中有一些出现频率较高的词语。这些词语词形确定,词义精确特定,用途稳定专门,并为从事公文工作的人们所熟悉,它们就是公文专用词语。正确地使用公文专用词语可使写者顺手,读者便当,保证表意精当得体,理解精确周严,可提高制发和处理公文的质量与效率。
</p>
<p>
由于表意和表现特殊色彩的需要,公文中有一些出现频率较高的词语。这些词语词形确定,词义精确特定,用途稳定专门,并为从事公文工作的人们所熟悉,它们就是公文专用词语。正确地使用公文专用词语可使写者顺手,读者便当,保证表意精当得体,理解精确周严,可提高制发和处理公文的质量与效率。
</p>
<p>
由于表意和表现特殊色彩的需要,公文中有一些出现频率较高的词语。这些词语词形确定,词义精确特定,用途稳定专门,并为从事公文工作的人们所熟悉,它们就是公文专用词语。正确地使用公文专用词语可使写者顺手,读者便当,保证表意精当得体,理解精确周严,可提高制发和处理公文的质量与效率。
</p>
<p>
由于表意和表现特殊色彩的需要,公文中有一些出现频率较高的词语。这些词语词形确定,词义精确特定,用途稳定专门,并为从事公文工作的人们所熟悉,它们就是公文专用词语。正确地使用公文专用词语可使写者顺手,读者便当,保证表意精当得体,理解精确周严,可提高制发和处理公文的质量与效率。
</p>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
}
</
script
>
<
style
lang=
"scss"
scoped
>
.mian
{
padding
:
40px
;
.content
{
background
:rgba
(
255
,
255
,
255
,
1
)
;
border-radius
:
6px
;
padding
:
0
40px
;
.title
{
color
:
#333333
;
font-size
:
18px
;
line-height
:
65px
;
border-bottom
:
1px
solid
rgba
(
204
,
204
,
204
,
1
);
}
.cont-txt
{
padding-bottom
:
30px
;
p
{
font-size
:
18px
;
color
:
#666666
;
line-height
:
30px
;
text-indent
:
2em
;
}
}
}
}
</
style
>
client/src/router/routes.js
浏览文件 @
edc76c8f
...
...
@@ -88,6 +88,27 @@ export default [
// // { path: 'upload-report/:rid/:reid', component: () => import('../pages/serviceHall/uploadReport.vue'), props: true },
// // { path: 'view-report/:rid', component: () => import('../pages/serviceHall/viewReport.vue'), props: true }
// ]
},
{
path
:
'tips'
,
redirect
:
'error/404'
,
component
:
()
=>
import
(
'@/components/learnSysLayout/container.vue'
),
children
:
[
// { path: 'set-pwd', component: () => import('../pages/account/setPwd.vue') },
// { path: 'update-pic', component: () => import('../pages/account/updatePic.vue') },
{
path
:
'learning-tips'
,
component
:
()
=>
import
(
'../pages/tips/learningTips.vue'
)
},
{
path
:
'examina-tips'
,
component
:
()
=>
import
(
'../pages/tips/examinaTips.vue'
)
}
]
},
{
path
:
'examination'
,
redirect
:
'error/404'
,
component
:
()
=>
import
(
'@/components/learnSysLayout/container.vue'
),
children
:
[
// { path: 'set-pwd', component: () => import('../pages/account/setPwd.vue') },
// { path: 'update-pic', component: () => import('../pages/account/updatePic.vue') },
{
path
:
'my-examination'
,
component
:
()
=>
import
(
'../pages/examination/myExamination.vue'
)
}
]
}
]
},
...
...
client/src/style.scss
浏览文件 @
edc76c8f
...
...
@@ -82,10 +82,10 @@ html, body {
/* Extra large devices (large desktops, 1200px and up) */
@media
(
min-width
:
1200px
)
{
html
{
font-size
:
100px
;
}
}
}
/* 改变主题色变量 */
$--color-primary
:
#
b80037
;
$--color-primary
:
#
1b6fbb
;
/* 改变 icon 字体路径变量,必需 */
$--font-path
:
'~element-ui/lib/theme-chalk/fonts'
;
/* 引入element-ui对应scss文件,重新编译 */
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论