Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
educationStu
Project
Project
Details
Activity
Releases
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
向伟
educationStu
Commits
9a558d23
Commit
9a558d23
authored
Feb 08, 2022
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2
parent
1f3433e4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
385 additions
and
75 deletions
+385
-75
index.vue
src/pages/appointment/index.vue
+370
-51
askForLeave.vue
src/pages/course/askForLeave.vue
+4
-0
timeTable.vue
src/pages/timetable/timeTable.vue
+4
-5
iconfont.css
src/static/font/iconfont.css
+7
-19
No files found.
src/pages/appointment/index.vue
View file @
9a558d23
...
...
@@ -11,12 +11,16 @@
</view>
</view>
</Navbar>
<view
class=
""
>
<swiper
class=
"swiper"
circular
previous-margin=
"36rpx"
next-margin=
"36rpx"
@
change=
"changeSwiper"
>
<swiper-item
v-for=
"(item,index) in teacherList"
:key=
"index"
style=
"display: flex;align-items: center;"
>
<view
class=
"swiper-item"
:class=
"current== index ? 'activeSwiper' : 'swiper-item'"
>
<view
v-if=
"teacherList.length>0"
>
<swiper
class=
"swiper"
circular
previous-margin=
"36rpx"
next-margin=
"36rpx"
:current=
"current"
@
change=
"changeSwiper"
>
<swiper-item
v-for=
"(item,index) in teacherList"
:key=
"index"
style=
"display: flex;align-items: center;"
>
<view
class=
"swiper-item"
:class=
"current== index ? 'activeSwiper' : 'swiper-item'"
>
<view
class=
"imgBox"
>
<image
:src=
"item.TeacherHead"
mode=
"aspectFill"
style=
"width: 100%;height: 100%;border-radius: 20rpx;box-shadow: 4rpx 3rpx 10rpx 0rpx #D6DCE4;"
></image>
<image
:src=
"item.TeacherHead"
mode=
"aspectFill"
style=
"width: 100%;height: 100%;border-radius: 20rpx;box-shadow: 4rpx 3rpx 10rpx 0rpx #D6DCE4;"
>
</image>
</view>
<view
class=
"teacherInfo"
>
<view
class=
"teacherInfoNameBox"
>
...
...
@@ -44,14 +48,90 @@
(4课时.180分钟)
</view>
<view
class=
"borderB"
>
</view>
</view>
<view
class=
"list"
>
<view
v-for=
"(item,index) in dataList"
:key=
"index"
>
<view
class=
"type1"
>
<view
class=
"list"
v-if=
"courselist.length>0"
>
<view
v-for=
"(item,index) in courselist"
:key=
"index"
>
<view
class=
"type2box"
v-if=
"Array.isArray(item)"
>
<view
v-for=
"(_item,_index) in item"
:key=
"_index"
class=
"type2"
>
<view
class=
"left"
>
<text
class=
"leftItem"
style=
"color: #111111;"
>
{{
item
.
StartTime
}}
</text>
<i
class=
"iconfont icon-moreandroid leftItem"
></i>
<text
class=
"leftItem"
>
{{
_item
.
EndTime
}}
</text>
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/coffee.png"
mode=
""
style=
"width: 38rpx;height: 38rpx;position: absolute;left:50%;transform: translateX(-50%);bottom: -8rpx;z-index:1"
v-if=
"_index!==item.length-1"
></image>
</view>
<view
class=
"right"
>
<view
class=
"classroom"
style=
"width: 100%;"
>
<text
class=
"schoolName"
>
{{
schoolName
}}
</text>
<text
class=
""
>
{{
roomName
}}
教室
</text>
</view>
<view
class=
"desc"
style=
"width: 100%;"
>
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/book.png"
mode=
""
style=
"width: 30rpx;height: 30rpx;margin-right: 10rpx;"
></image>
A1的3.1.1《かぞく》
</view>
</view>
</view>
<view
class=
"yuyueBox"
>
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/people.png"
mode=
""
style=
"width: 30rpx;height: 30rpx;"
></image>
<view
class=
"yuyueNum"
>
已报6人
</view>
<view
class=
"yuyueBtn"
>
预约
</view>
</view>
</view>
<view
class=
"type1"
v-else
>
<view
class=
"left"
>
<text
class=
"leftItem"
style=
"color: #111111;"
>
{{
item
.
StartTime
}}
</text>
<i
class=
"iconfont icon-moreandroid leftItem"
></i>
<text
class=
"leftItem"
>
{{
item
.
EndTime
}}
</text>
</view>
<view
class=
"right"
>
<view
class=
"classroom"
style=
"width: 100%;"
>
<text
class=
"schoolName"
>
{{
schoolName
}}
</text>
<text
class=
""
>
{{
roomName
}}
教室
</text>
</view>
<view
class=
"desc"
style=
"width: 100%;"
>
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/people.png"
mode=
""
style=
"width: 30rpx;height: 30rpx;margin-right: 10rpx;"
></image>
已报6人
</view>
</view>
<view
class=
"yuyueBtn"
>
预约
</view>
</view>
</view>
</view>
<view
class=
""
v-if=
"courselist.length!==0"
>
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/noCourse.png"
mode=
""
style=
"width: 166rpx;height: 166rpx;"
></image>
<view
class=
""
>
暂无可约课程
</view>
</view>
</view>
...
...
@@ -70,28 +150,32 @@
components
:
{
Navbar
},
props
:[
'day'
],
props
:
[
'day'
],
setup
(
props
)
{
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
const
data
=
reactive
({
isShowCalendar
:
false
,
date
:
"2月1号"
,
dateStr
:
""
,
year
:
""
,
current
:
0
,
teacherList
:[{
name
:
'张三'
},{
name
:
'李四'
},{
name
:
'王五'
current
:
0
,
teacherList
:
[{
name
:
'张三'
},
{
name
:
'李四'
},
{
name
:
'王五'
}],
msg
:{
Date
:
props
.
day
,
School_Id
:
'-1'
,
msg
:
{
Date
:
props
.
day
,
School_Id
:
'-1'
,
},
dataList
:[],
basics
:{},
basics
:
{},
courselist
:
[],
schoolName
:
""
,
roomName
:
""
,
})
const
methods
=
{
onConfirmCalendar
(
val
)
{
...
...
@@ -134,23 +218,72 @@
data
.
year
=
year
data
.
dateStr
=
month
+
"月"
+
day
+
'号('
+
weekStr
+
')'
},
changeSwiper
(
val
){
data
.
current
=
val
.
detail
.
current
console
.
log
(
val
.
detail
.
current
)
changeSwiper
(
val
)
{
data
.
current
=
val
.
detail
.
current
data
.
courselist
=
data
.
teacherList
[
val
.
detail
.
current
].
CourseTimeList
data
.
courselist
.
push
({
name
:
1
,
SortIdentify
:
1
})
data
.
courselist
.
push
({
name
:
2
,
SortIdentify
:
1
})
data
.
courselist
.
push
({
name
:
3
,
SortIdentify
:
1
})
data
.
courselist
.
push
({
name
:
4
,
SortIdentify
:
2
})
data
.
courselist
.
push
({
name
:
5
,
SortIdentify
:
2
})
methods
.
courseGroup
()
console
.
log
(
'课程'
,
data
.
courselist
)
},
getTeacherList
(){
getTeacherList
()
{
uni
.
showLoading
({
title
:
'加载中...'
title
:
'加载中...'
})
proxy
.
$request
(
"/AppletCenter/GetScrollAppointmentTeacherList"
,
data
.
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
data
.
teacherList
=
res
.
Data
;
data
.
teacherList
=
res
.
Data
;
if
(
data
.
teacherList
.
length
>
0
)
{
data
.
courselist
=
data
.
teacherList
[
0
].
CourseTimeList
data
.
schoolName
=
data
.
teacherList
[
0
].
SchoolName
data
.
roomName
=
data
.
teacherList
[
0
].
RoomName
methods
.
courseGroup
()
}
uni
.
hideLoading
()
}
})
},
getBaseInfo
(){
proxy
.
$request
(
"/AppletCenter/GetScrollAppointmentBaseInfo"
,{}).
then
(
res
=>
{
// 课程分组
courseGroup
()
{
let
obj
=
{}
data
.
courselist
.
map
((
item
,
index
)
=>
{
if
(
item
.
SortIdentify
)
{
if
(
!
obj
[
item
.
SortIdentify
])
{
obj
[
item
.
SortIdentify
]
=
[
item
]
}
else
{
obj
[
item
.
SortIdentify
].
push
(
item
)
}
}
})
data
.
courselist
.
forEach
((
e
,
i
)
=>
{
if
(
obj
[
e
.
SortIdentify
]
&&
obj
[
e
.
SortIdentify
].
length
>
1
)
{
data
.
courselist
.
splice
(
i
,
1
,
obj
[
e
.
SortIdentify
])
}
})
data
.
courselist
=
Array
.
from
(
new
Set
(
data
.
courselist
))
},
getBaseInfo
()
{
proxy
.
$request
(
"/AppletCenter/GetScrollAppointmentBaseInfo"
,
{}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
data
.
basics
=
res
.
Data
;
// that.judge()
...
...
@@ -199,11 +332,13 @@
font-weight
:
500
;
color
:
#888888
;
}
.swiper
{
.swiper
{
height
:
360
rpx
;
}
.swiper-item
{
width
:
100%
;
.swiper-item
{
width
:
100%
;
height
:
235
rpx
;
/* background-color: #f0fed1; */
margin
:
0
10
rpx
;
...
...
@@ -215,16 +350,19 @@
box-sizing
:
border-box
;
padding
:
0
40
rpx
;
}
.swiper-item
.imgBox
{
.swiper-item
.imgBox
{
width
:
280
rpx
;
height
:
360
rpx
;
overflow
:
hidden
;
}
.activeSwiper
{
.activeSwiper
{
height
:
295
rpx
!important
;
padding
:
0
!important
;
}
.teacherInfo
{
.teacherInfo
{
box-sizing
:
border-box
;
padding
:
30
rpx
;
flex-grow
:
1
;
...
...
@@ -232,25 +370,29 @@
height
:
100%
;
overflow
:
hidden
;
}
.teacherInfoNameBox
{
.teacherInfoNameBox
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
margin-bottom
:
10
rpx
;
}
.teacherInfoName
{
.teacherInfoName
{
font-size
:
34
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
bold
;
color
:
#111111
;
}
.teacherInfoBtn
{
.teacherInfoBtn
{
font-size
:
20
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
color
:
#4C50E7
;
}
.top
{
.top
{
width
:
678
rpx
;
/* height: 174rpx; */
background-color
:
#4C50E7
;
...
...
@@ -260,7 +402,8 @@
padding
:
30
rpx
40
rpx
;
position
:
relative
;
}
.topinfo
{
.topinfo
{
display
:
flex
;
justify-content
:
space-between
;
font-size
:
20
rpx
;
...
...
@@ -269,14 +412,16 @@
color
:
#989BF6
;
margin-bottom
:
10
rpx
;
}
.topinfoCourse
{
.topinfoCourse
{
font-size
:
34
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
800
;
color
:
#FFFFFF
;
margin-bottom
:
4
rpx
;
}
.top
.borderB
{
.top
.borderB
{
position
:
absolute
;
bottom
:
0
rpx
;
left
:
-18
rpx
;
...
...
@@ -284,28 +429,202 @@
width
:
95vw
;
height
:
25
rpx
;
border-radius
:
12
rpx
;
background
:
linear-gradient
(
0deg
,
rgba
(
17
,
21
,
177
,
0.5
),
rgba
(
17
,
21
,
177
,
0.2
),
rgba
(
17
,
21
,
177
,
0.01
));
background
:
linear-gradient
(
0deg
,
rgba
(
17
,
21
,
177
,
0.5
),
rgba
(
17
,
21
,
177
,
0.2
),
rgba
(
17
,
21
,
177
,
0.01
));
}
.CourseTime
{
.CourseTime
{
font-size
:
22
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
400
;
color
:
#FFFFFF
;
}
.list
.type1
{
.TeacherIntro
{
font-size
:
20
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
400
;
color
:
#888888
;
height
:
200
rpx
;
overflow-y
:
scroll
;
}
.list
.type1
{
width
:
678
rpx
;
height
:
196
rpx
;
background
:
#FFFFFF
;
box-shadow
:
2
rpx
4
rpx
40
rpx
0
rpx
rgba
(
212
,
212
,
212
,
0.6
);
border-radius
:
16
rpx
;
margin
:
10
rpx
0
;
display
:
flex
;
margin
:
0
auto
;
margin-bottom
:
30
rpx
;
overflow
:
hidden
;
position
:
relative
;
}
.TeacherIntro
{
.type1
.left
{
width
:
165
rpx
;
height
:
100%
;
background-color
:
#F5F5F5
;
font-size
:
30
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
bold
;
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
center
;
align-content
:
space-around
;
box-sizing
:
border-box
;
padding
:
20
rpx
;
}
.type1
.leftItem
{
width
:
100%
;
text-align
:
center
;
color
:
#cfcfcf
;
}
.type1
.right
{
width
:
360
rpx
;
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
center
;
align-content
:
space-around
;
box-sizing
:
border-box
;
padding
:
20
rpx
0
20
rpx
30
rpx
;
position
:
relative
;
}
.type1
.classroom
{
font-size
:
30
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
bold
;
color
:
#111111
;
}
.type1
.desc
{
display
:
flex
;
align-items
:
center
;
font-size
:
22
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
color
:
#888888
;
}
.classroom
.schoolName
{
margin-right
:
30
rpx
;
}
.type1
.yuyueBtn
{
position
:
absolute
;
right
:
35
rpx
;
top
:
50%
;
transform
:
translateY
(
-50%
);
font-size
:
20
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
400
;
font-weight
:
500
;
color
:
#FFFFFF
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
box-sizing
:
border-box
;
height
:
50
rpx
;
width
:
90
rpx
;
background-color
:
#4C50E7
;
border-radius
:
25
rpx
;
}
.type2box
{
width
:
678
rpx
;
margin
:
0
auto
;
border-radius
:
16
rpx
;
box-shadow
:
2
rpx
4
rpx
40
rpx
0
rpx
rgba
(
212
,
212
,
212
,
0.6
);
margin-bottom
:
30
rpx
;
box-sizing
:
border-box
;
position
:
relative
;
}
.type2
{
width
:
100%
;
height
:
196
rpx
;
background-color
:
#FFFFFF
;
display
:
flex
;
}
.type2
.left
{
width
:
165
rpx
;
height
:
100%
;
background-color
:
#F5F5F5
;
font-size
:
30
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
bold
;
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
center
;
align-content
:
space-around
;
box-sizing
:
border-box
;
padding
:
20
rpx
;
position
:
relative
;
}
.type2
.leftItem
{
width
:
100%
;
text-align
:
center
;
color
:
#cfcfcf
;
}
.type2
.right
{
width
:
360
rpx
;
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
center
;
align-content
:
space-around
;
box-sizing
:
border-box
;
padding
:
20
rpx
0
20
rpx
30
rpx
;
/* margin-right: 100rpx; */
position
:
relative
;
border-bottom
:
1px
solid
#E9E9E9
;
}
.type2
.classroom
{
font-size
:
30
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
bold
;
color
:
#111111
;
}
.type2
.desc
{
display
:
flex
;
align-items
:
center
;
font-size
:
22
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
color
:
#888888
;
height
:
200
rpx
;
overflow-y
:
scroll
;
}
.type2box
.yuyueBox
{
position
:
absolute
;
right
:
35
rpx
;
top
:
50%
;
transform
:
translateY
(
-50%
);
text-align
:
center
;
}
.type2box
.yuyueNum
{
font-size
:
22
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
color
:
#888888
;
margin-bottom
:
20
rpx
;
}
.type2box
.yuyueBtn
{
font-size
:
20
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
color
:
#FFFFFF
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
box-sizing
:
border-box
;
height
:
50
rpx
;
width
:
90
rpx
;
background-color
:
#4C50E7
;
border-radius
:
25
rpx
;
}
</
style
>
src/pages/course/askForLeave.vue
View file @
9a558d23
...
...
@@ -176,6 +176,7 @@ import { getStundentPlanStatistical, setStudentLeave } from "../../api/index";
export
default
{
setup
()
{
let
Toast
=
inject
(
"$toast"
);
const
indexData
=
uni
.
getStorageSync
(
'indexData'
)
let
data
=
reactive
({
showType
:
false
,
TimeChoose
:
false
,
...
...
@@ -296,6 +297,9 @@ export default {
StartTime
:
data
.
data
.
startTime
,
EndTime
:
data
.
data
.
endTime
,
ClassId
:
data
.
leaveMsg
.
ClassId
,
CouseId
:
indexData
.
CourseId
,
ClassScrollType
:
indexData
.
ClassScrollType
};
let
res
=
await
getStundentPlanStatistical
(
msg
);
data
.
isShowAllCheck
=
true
;
...
...
src/pages/timetable/timeTable.vue
View file @
9a558d23
...
...
@@ -110,6 +110,7 @@
},
setup
(
props
)
{
const
Toast
=
inject
(
'$toast'
)
const
indexData
=
uni
.
getStorageSync
(
'indexData'
)
let
weekArr
=
[
"日"
,
"一"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
];
//年月选择
let
currentDate
=
ref
(
0
);
...
...
@@ -196,9 +197,11 @@
})
let
data
=
reactive
({
msg
:
{
ClassId
:
0
,
ClassId
:
indexData
.
ClassId
,
StartTime
:
""
,
EndTime
:
""
,
CouseId
:
indexData
.
CourseId
,
ClassScrollType
:
indexData
.
ClassScrollType
},
statusBarHeight
:
0
,
dataList
:
[],
...
...
@@ -445,13 +448,9 @@
};
},
onShow
()
{
const
indexData
=
uni
.
getStorageSync
(
'indexData'
)
// this.msg.ClassId = indexData.ClassId
this
.
msg
.
ClassId
=
'1'
this
.
msg
.
StartTime
=
getToday
(
'y'
,
'm'
)
+
'-01'
;
this
.
msg
.
EndTime
=
getToday
(
'y'
,
'm'
)
+
'-'
+
getMonthMaxDay
();
if
(
this
.
$isLogin
())
{
// this.getData()
this
.
getAllData
()
}
},
...
...
src/static/font/iconfont.css
View file @
9a558d23
@font-face
{
font-family
:
"iconfont"
;
/* Project id 2734547 */
src
:
url('//at.alicdn.com/t/font_2734547_
4b4m4a7c8zb.woff2?t=1643252260604
')
format
(
'woff2'
),
url('//at.alicdn.com/t/font_2734547_
4b4m4a7c8zb.woff?t=1643252260604
')
format
(
'woff'
),
url('//at.alicdn.com/t/font_2734547_
4b4m4a7c8zb.ttf?t=1643252260604
')
format
(
'truetype'
);
src
:
url('//at.alicdn.com/t/font_2734547_
vr2ckwvviob.woff2?t=1643341931052
')
format
(
'woff2'
),
url('//at.alicdn.com/t/font_2734547_
vr2ckwvviob.woff?t=1643341931052
')
format
(
'woff'
),
url('//at.alicdn.com/t/font_2734547_
vr2ckwvviob.ttf?t=1643341931052
')
format
(
'truetype'
);
}
.iconfont
{
...
...
@@ -13,24 +13,12 @@
-moz-osx-font-smoothing
:
grayscale
;
}
.icon-calendar
:before
{
content
:
"\e746"
;
}
.icon-tuixue
:before
{
content
:
"\e639"
;
}
.icon-quxiao
:before
{
content
:
"\e933"
;
}
.icon-daifukuai
:before
{
content
:
"\e650"
;
.icon-moreandroid
:before
{
content
:
"\e6a5"
;
}
.icon-
zhengchang
:before
{
content
:
"\e
61
6"
;
.icon-
calendar
:before
{
content
:
"\e
74
6"
;
}
.icon-caidanzu
:before
{
...
...
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