Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mr-julyedu
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
baiguangyao
mr-julyedu
Commits
f7e305e9
Commit
f7e305e9
authored
Jun 12, 2020
by
zhanghaozhe
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
智能选课
parent
a79c2139
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
512 additions
and
19 deletions
+512
-19
src/components/Index/image/mind-icon.png
+0
-0
src/components/Index/index.js
+23
-15
src/components/Index/index.scss
+24
-1
src/components/intelligent-recommend/images/options-divide-line.png
+0
-0
src/components/intelligent-recommend/images/title-decorator.png
+0
-0
src/components/intelligent-recommend/index.js
+123
-0
src/components/intelligent-recommend/index.scss
+334
-0
src/router/router-config.js
+8
-3
No files found.
src/components/Index/image/mind-icon.png
0 → 100644
View file @
f7e305e9
1.39 KB
src/components/Index/index.js
View file @
f7e305e9
...
...
@@ -17,7 +17,7 @@ import AllCourseNavigation from "./all-course"
// const animateTypes = Swiper.animateTypes
@
connect
(
state
=>
({
user
:
state
.
user
user
:
state
.
user
,
}))
class
Index
extends
Component
{
constructor
(
props
)
{
...
...
@@ -33,28 +33,28 @@ class Index extends Component {
{
'src'
:
require
(
'./image/freeclass_icon.png'
),
'name'
:
'公开课'
,
'href'
:
'/study/free-course'
'href'
:
'/study/free-course'
,
},
{
'src'
:
require
(
'./image/jingpin_icon.png'
),
'name'
:
'精品特惠'
,
'href'
:
'/preferential'
'href'
:
'/preferential'
,
},
{
'src'
:
require
(
'./image/zjxj_icon.png'
),
'name'
:
'赚奖学金'
,
'href'
:
'/scholarship'
'href'
:
'/scholarship'
,
},
{
'src'
:
require
(
'./image/mryt_icon.png'
),
'name'
:
'每日一题'
,
'href'
:
'/examination'
'href'
:
'/examination'
,
},
{
'src'
:
require
(
'./image/shequ_icon.png'
),
'name'
:
'社区'
,
'href'
:
'https://ask.julyedu.com'
}
'href'
:
'https://ask.julyedu.com'
,
}
,
],
}
}
...
...
@@ -72,7 +72,7 @@ class Index extends Component {
this
.
setState
({
banner
:
data
.
banner
,
lives
:
data
.
lives
,
modules
modules
,
})
}
else
{
Toast
.
info
(
res
.
data
.
msg
,
2
)
...
...
@@ -93,7 +93,7 @@ class Index extends Component {
this
.
setState
({
isShow
:
true
,
islive
:
true
,
roomMess
:
item
roomMess
:
item
,
})
}
else
{
window
.
location
.
href
=
`
${
window
.
location
.
href
.
includes
(
'pre'
)
?
'http://www-pre.julyedu.com'
:
'http://www.julyedu.com'
}
/live/m_room/
${
item
.
room_id
}
`
...
...
@@ -119,14 +119,22 @@ class Index extends Component {
src
=
"http://julyedu-img-public.oss-cn-beijing.aliyuncs.com/Public/img/index/logo.png"
alt
=
""
/>
<
CallApp
{
/*
<CallApp
className='to-app'
text='在APP打开'
/>
<
i
className
=
'iconfont iconiconfront- search'
onClick
=
{
this
.
toSearch
.
bind
(
this
)}
/
>
/>*/
}
<
div
className
=
"right"
>
<
Link
to
=
{
'/intelligent-recommend'
}
>
<
span
className
=
{
'intelligent-recommend-entry'
}
>
<
i
className
=
{
'mind-icon'
}
><
/i
>
智能选课
<
/span
>
<
/Link
>
<
i
className
=
'iconfont iconiconfront- search'
onClick
=
{
this
.
toSearch
.
bind
(
this
)}
/
>
<
/div
>
<
/div
>
<
div
className
=
'zw_height'
><
/div
>
...
...
src/components/Index/index.scss
View file @
f7e305e9
...
...
@@ -34,6 +34,29 @@
vertical-align
:
top
;
}
.right
{
float
:
right
;
height
:
100%
;
}
.intelligent-recommend-entry
{
float
:
left
;
margin-right
:
20px
;
font-size
:
14px
;
color
:
#09f
;
line-height
:
24px
;
.mind-icon
{
display
:
inline-block
;
width
:
16px
;
height
:
16px
;
margin-right
:
4px
;
background
:
url("./image/mind-icon.png")
no-repeat
;
background-size
:
contain
;
vertical-align
:
middle
;
}
}
.search
{
font-size
:
22px
!
important
;
float
:
right
;
...
...
@@ -88,6 +111,7 @@
.category
{
width
:
100%
;
padding
:
20px
15px
15px
15px
;
.swiper-container
{
height
:
106px
!
important
;
margin-top
:
15px
;
...
...
@@ -263,7 +287,6 @@
}
/*
横向滚动
*/
...
...
src/components/intelligent-recommend/images/options-divide-line.png
0 → 100644
View file @
f7e305e9
537 Bytes
src/components/intelligent-recommend/images/title-decorator.png
0 → 100644
View file @
f7e305e9
182 Bytes
src/components/intelligent-recommend/index.js
0 → 100644
View file @
f7e305e9
import
React
,
{
Component
}
from
'react'
;
import
'./index.scss'
import
{
Link
}
from
"react-router-dom"
;
class
IntelligentRecommend
extends
Component
{
state
=
{
showAnalyzing
:
false
,
systemAvatar
:
'https://julyedu-img-public.oss-cn-beijing.aliyuncs.com/Public/Image/home/avatar_20191104.png'
,
options
:
[
{
id
:
1
,
text
:
'数据分析'
,
},
{
id
:
2
,
text
:
'人工智能'
,
},
{
id
:
3
,
text
:
'无人驾驶'
,
},
],
processingQueue
:
[],
}
handleSelect
=
()
=>
{
}
render
()
{
const
{
showAnalyzing
,
systemAvatar
,
processingQueue
,
options
}
=
this
.
state
return
(
<
div
id
=
{
'intelligent-recommend'
}
>
<
div
className
=
"head"
>
<
div
>
<
div
className
=
"go-back"
>
<
i
className
=
'iconfont iconiconfront-68'
onClick
=
{
this
.
goBack
}
><
/i
>
<
/div
>
<
div
className
=
{
'title'
}
>
七月在线智能选课
<
/div
>
<
/div
>
<
button
>
重新选课
<
/button
>
<
/div
>
<
div
className
=
"dialog-box"
>
<
Message
text
=
{
'请问你学习的目的是?'
}
avatar
=
{
systemAvatar
}
identity
=
{
'system'
}
/
>
<
Options
options
=
{
options
}
handleSelect
=
{
this
.
handleSelect
}
/
>
<
Message
text
=
{
'请问你学习的目的是?'
}
avatar
=
{
systemAvatar
}
identity
=
{
'user'
}
/
>
{
showAnalyzing
&&
<
div
className
=
"analyzing"
>
努力分析中
...
<
/div
>
}
<
/div
>
<
div
className
=
"result"
>
<
div
className
=
"title"
>
根据您目前的情况,推荐结果如下
<
/div
>
<
div
className
=
"obtained"
>
<
div
className
=
{
'subtitle'
}
>
您将掌握的技能:
<
/div
>
<
div
className
=
{
'skill'
}
>
技能描述、技能描述
<
/div
>
<
/div
>
<
div
className
=
"obtained"
>
<
div
className
=
{
'subtitle'
}
>
掌握后可以胜任以下工作及项目:
<
/div
>
<
ul
>
<
li
className
=
{
'skill'
}
style
=
{{
fontSize
:
'14px'
}}
>
·技能描述、技能描述
<
/li
>
<
li
className
=
{
'skill'
}
style
=
{{
fontSize
:
'14px'
}}
>
·工作及项目描述、工作及项目描述、项目描述
<
/li
>
<
/ul
>
<
/div
>
<
div
className
=
{
'salary-section'
}
>
<
div
className
=
{
'subtitle'
}
>
薪资范围:
<
/div
>
<
div
className
=
{
'salary'
}
>
¥
15
k
~
25
K
<
/div
>
<
/div
>
<
div
className
=
"recommends"
>
<
div
>
想获得以上技能,向您推荐:
<
/div
>
<
ul
className
=
{
'courses'
}
>
<
li
className
=
{
'course'
}
>
<
div
className
=
"cover"
>
<
img
src
=
"https://julyedu-img-public.oss-cn-beijing.aliyuncs.com/Public/Image/1a3d88e90a.jpg"
alt
=
""
/>
<
/div
>
<
div
className
=
"info"
>
<
div
className
=
{
'title'
}
>
课程名称
<
/div
>
<
div
className
=
{
'des'
}
>
课程介绍课程介绍课程介绍课程介绍课程介绍课程介绍课程介绍课程介绍课程介绍课程介绍课程介绍课程介绍
<
/div
>
<
div
className
=
"bar"
>
{
/*<div className="prices">
<span className={'price'}>¥3980</span>
<span className={'old-price'}>¥5680</span>
</div>*/
}
{
/*<a href="http://q.url.cn/s/Vbkup6m?_type=wpa" className={'contact'}>获取课程大纲</a>
<Link className={'register'}>立即报名</Link>*/
}
<
Link
className
=
{
'study'
}
>
开始学习
<
/Link
>
<
/div
>
<
/div
>
<
/li
>
<
/ul
>
<
/div
>
<
/div
>
<
/div
>
);
}
}
function
Message
({
text
,
avatar
,
identity
})
{
return
<
div
className
=
{
`message clearfix
${
identity
}
`
}
>
<
div
className
=
"avatar"
>
<
img
src
=
{
avatar
}
alt
=
""
/>
<
/div
>
<
div
className
=
{
`text`
}
>
{
text
}
<
/div
>
<
/div
>
}
function
Options
({
options
,
handleSelect
})
{
return
<
ul
className
=
{
'options'
}
>
{
!!
options
.
length
&&
options
.
map
(
item
=>
{
return
<
li
onClick
=
{
handleSelect
}
key
=
{
item
.
id
}
>
{
item
.
text
}
<
/li
>
})
}
<
/ul
>
}
export
default
IntelligentRecommend
;
\ No newline at end of file
src/components/intelligent-recommend/index.scss
0 → 100644
View file @
f7e305e9
#intelligent-recommend
{
background
:
linear-gradient
(
to
right
,
#F1F0F6
,
#EBF4F9
);
padding
:
59px
10px
0
;
.clearfix
{
&
:
:
after
{
content
:
"."
;
visibility
:
hidden
;
display
:
block
;
height
:
0
;
clear
:
both
;
}
}
.head
{
position
:
fixed
;
top
:
0
;
left
:
0
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
width
:
100%
;
height
:
44px
;
padding
:
0
15px
;
background
:
#fff
;
z-index
:
100
;
&
>
div
{
display
:
flex
;
align-items
:
center
;
}
.iconfont
{
font-size
:
16px
;
color
:
#222
;
font-weight
:
600
;
}
.title
{
margin-left
:
10px
;
font-size
:
15px
;
color
:
#2b2b2b
;
}
button
{
width
:
84px
;
height
:
30px
;
border
:
1px
solid
#09f
;
border-radius
:
15px
;
color
:
#09f
;
font-size
:
13px
;
outline
:
0
;
background-color
:
transparent
;
-webkit-appearance
:
none
;
}
}
.dialog-box
{
padding
:
20px
15px
20px
;
margin-bottom
:
20px
;
background
:
rgba
(
242
,
247
,
250
,
1
);
border
:
1px
solid
#5CF9FF
;
border-radius
:
8px
;
.analyzing
{
color
:
#4f5c66
;
font-size
:
12px
;
line-height
:
48px
;
text-align
:
center
;
}
}
.message
{
.avatar
{
display
:
inline-block
;
margin-right
:
14px
;
img
{
width
:
30px
;
height
:
30px
;
border
:
1px
solid
rgba
(
0
,
153
,
255
,
1
);
border-radius
:
50%
;
}
}
.text
{
position
:
relative
;
padding
:
0
16px
;
height
:
40px
;
display
:
inline-block
;
background
:
rgba
(
255
,
255
,
255
,
1
);
border-radius
:
4px
;
font-size
:
16px
;
color
:
#333
;
text-align
:
center
;
line-height
:
40px
;
}
$angleSize
:
8px
;
@mixin
pseudo
{
content
:
''
;
position
:
absolute
;
top
:
50%
;
transform
:
translateY
(
-50%
);
display
:
block
;
border-color
:
transparent
;
border-top
:
6px
solid
transparent
;
border-bottom
:
6px
solid
transparent
;
}
&
.system
{
.
text
:
:
before
{
@include
pseudo
;
left
:
-
$angleSize
;
border-right
:
$angleSize
solid
#fff
;
}
}
&
.user
{
.avatar
{
float
:
right
;
}
.text
{
float
:
right
;
margin-right
:
15px
;
background-color
:
#0036FF
;
color
:
#fff
;
&
:
:
after
{
@include
pseudo
;
right
:
-
$angleSize
;
border-left
:
$angleSize
solid
#0036FF
;
}
}
}
}
.message
+
.message
{
margin-top
:
30px
;
}
.options
{
position
:
relative
;
padding-top
:
18px
;
margin-top
:
15px
;
&
:
:
before
{
content
:
''
;
position
:
absolute
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
8px
;
background
:
url("./images/options-divide-line.png")
no-repeat
;
background-size
:
contain
;
}
li
{
width
:
126px
;
height
:
33px
;
margin
:
0
auto
15px
;
background
:
linear-gradient
(
90deg
,
rgba
(
0
,
153
,
255
,
1
)
0%
,
rgba
(
77
,
184
,
255
,
1
)
100%
);
border-radius
:
17px
;
font-size
:
16px
;
color
:
#fff
;
text-align
:
center
;
line-height
:
33px
;
}
}
.result
{
width
:
355px
;
height
:
614px
;
padding
:
0
15px
;
background
:
rgba
(
255
,
255
,
255
,
1
);
border
:
1px
solid
rgba
(
0
,
153
,
255
,
1
);
border-radius
:
8px
;
color
:
#333
;
&
>
.title
{
position
:
relative
;
color
:
#09f
;
font-size
:
16px
;
text-align
:
center
;
line-height
:
62px
;
@mixin
pseudo
{
content
:
''
;
position
:
absolute
;
top
:
50%
;
transform
:
translateY
(
-50%
);
display
:
block
;
width
:
11px
;
height
:
11px
;
background
:
url("./images/title-decorator.png")
no-repeat
;
background-size
:
contain
;
}
&
:
:
before
{
@include
pseudo
;
left
:
30px
;
}
&
:
:
after
{
@include
pseudo
;
right
:
30px
;
transform
:
translateY
(
-50%
)
scale
(
-1
);
}
}
.subtitle
{
font-size
:
12px
;
}
.skill
{
font-size
:
18px
;
line-height
:
36px
;
font-weight
:
600
;
}
.salary
{
font-size
:
18px
;
line-height
:
2em
;
font-weight
:
500
;
color
:
#FF2A00
;
}
.obtained
{
margin-bottom
:
20px
;
}
.salary-section
{
margin-bottom
:
20px
;
}
.recommends
{
&
>
div
:nth-child
(
1
)
{
margin-bottom
:
12px
;
font-size
:
12px
;
color
:
#09f
;
}
.cover
{
flex
:
0
0
auto
;
width
:
125px
;
height
:
90px
;
margin-right
:
10px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.course
{
display
:
flex
;
justify-content
:
space-between
;
.info
{
flex
:
1
1
auto
;
}
.title
{
margin-bottom
:
8px
;
font-size
:
16px
;
line-height
:
16px
;
font-weight
:
500
;
color
:
#333
;
}
.des
{
display
:
-
webkit-box
;
/* autoprefixer: ignore next */
-webkit-box-orient
:
vertical
;
-webkit-line-clamp
:
2
;
margin-bottom
:
5px
;
overflow
:
hidden
;
font-size
:
11px
;
color
:
#4F5C66
;
}
.bar
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
height
:
24px
;
font-size
:
0
;
a
{
display
:
inline-block
;
box-sizing
:
border-box
;
padding
:
6px
14px
;
text-align
:
center
;
font-size
:
12px
;
line-height
:
12px
;
border-radius
:
12px
;
}
.contact
{
color
:
#fff
;
background-color
:
#09f
;
margin-right
:
6px
;
}
.register
{
color
:
#FF0000
;
border
:
1px
solid
#FF0000
;
}
.price
{
font-size
:
15px
;
color
:
#FF2121
;
margin-right
:
5px
;
}
.old-price
{
font-size
:
11px
;
color
:
#999
;
text-decoration
:
line-through
;
}
.study
{
background-color
:
#09f
;
color
:
#fff
;
font-size
:
12px
;
}
}
}
}
}
}
\ No newline at end of file
src/router/router-config.js
View file @
f7e305e9
...
...
@@ -324,15 +324,20 @@ export default [
{
path
:
'/ml'
,
exact
:
true
,
component
:
loadable
(()
=>
import
(
/*
ml
*/
'@/components/ml'
)),
component
:
loadable
(()
=>
import
(
/*
webpackChunkName: 'ml'
*/
'@/components/ml'
)),
},
{
path
:
'/mlShare'
,
component
:
loadable
(()
=>
import
(
'@/components/mlShare'
)),
component
:
loadable
(()
=>
import
(
/* webpackChunkName: 'mlShare' */
'@/components/mlShare'
)),
},
//ai水平测试
{
path
:
'/ai-test'
,
component
:
loadable
(()
=>
import
(
'@/components/ai-test'
)),
component
:
loadable
(()
=>
import
(
/* webpackChunkName: 'ai-test' */
'@/components/ai-test'
)),
},
//智能选课
{
path
:
'/intelligent-recommend'
,
component
:
loadable
(()
=>
import
(
/* webpackChunkName: 'intelligent-recommend' */
'@/components/intelligent-recommend'
)),
},
]
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment