Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
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
罗超
confucius
Commits
6cebe811
Commit
6cebe811
authored
Jun 09, 2021
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
e66bce18
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
2172 additions
and
801 deletions
+2172
-801
index.js
src/api/classroom/index.js
+25
-0
normal.png
src/assets/images/classroom/normal.png
+0
-0
warning.png
src/assets/images/classroom/warning.png
+0
-0
addSuppliesStockOut-from.vue
src/components/sale/addSuppliesStockOut-from.vue
+1
-1
classroom-form.vue
src/components/school/classroom/classroom-form.vue
+110
-1
Scheduling.vue
src/pages/classroom/Scheduling.vue
+214
-0
classroomNav.vue
src/pages/classroom/components/classroomNav.vue
+87
-0
comSummary.css
src/pages/classroom/components/css/comSummary.css
+393
-0
lunarCalendar.js
src/pages/classroom/components/js/lunarCalendar.js
+257
-0
scenicSummary.vue
src/pages/classroom/components/scenicSummary.vue
+172
-0
useRecord.vue
src/pages/classroom/useRecord.vue
+92
-0
classroom.vue
src/pages/school/classroom.vue
+16
-5
routes.js
src/router/routes.js
+775
-764
erpindex.js
src/utils/erpindex.js
+26
-26
url.js
src/utils/url.js
+4
-4
No files found.
src/api/classroom/index.js
0 → 100644
View file @
6cebe811
import
request
from
'../../utils/request'
/**
* 获取当日排课计划
* @param {JSON参数} data
*/
export
function
getUseClassRoomList
(
data
)
{
return
request
({
url
:
'/ClassRoom/GetUseClassRoomList'
,
method
:
'post'
,
data
})
}
/**
* 获取学校以及教室导航
* @param {JSON参数} data
*/
export
function
getSchoolAndRoomNav
(
data
)
{
return
request
({
url
:
'/ClassRoom/GetSchoolAndRoomList'
,
method
:
'post'
,
data
})
}
src/assets/images/classroom/normal.png
0 → 100644
View file @
6cebe811
618 Bytes
src/assets/images/classroom/warning.png
0 → 100644
View file @
6cebe811
599 Bytes
src/components/sale/addSuppliesStockOut-from.vue
View file @
6cebe811
...
...
@@ -204,7 +204,7 @@
<
script
>
import
{
import
{
getSchoolDropdown
,
//获取班级下拉列表
getClassPage_ck
}
from
'../../api/school/index'
;
//获取校区列表
...
...
src/components/school/classroom/classroom-form.vue
View file @
6cebe811
...
...
@@ -15,6 +15,44 @@
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"objOption.RoomName"
ref=
"RoomName"
class=
"col-12"
label=
"教室名称"
:rules=
"[val => !!val || '请填写教室名称']"
/>
</div>
<div
class=
"row wrap"
>
<q-input
filled
stack-label
:min=
"0"
type=
"number"
:dense=
"false"
v-model
.
number=
"objOption.SeatNum"
ref=
"SeatNum"
class=
"col-12"
label=
"座位数"
:rules=
"[val => !!val||val>=0 || '请填写座位数']"
/>
</div>
<div
class=
"row wrap"
>
<el-time-select
class=
"q-mr-lg"
v-model=
"objOption.StartTime"
:picker-options=
"
{
start: '00:00',
step: '00:05',
end: '23:55',
maxTime:objOption.EndTime
}"
placeholder="排班开始时间">
</el-time-select>
<el-time-select
v-model=
"objOption.EndTime"
:picker-options=
"
{
start: '06:00',
step: '00:05',
end: '23:55',
minTime:objOption.StartTime
}"
placeholder="排班结束时间">
</el-time-select>
</div>
<div
class=
"row wrap"
style=
"padding-top:20px"
>
<q-uploader
style=
"display: inline-block;height:320px; max-width: 100%;background-repeat:no-repeat"
:style=
"
{'background-image':'url(' + objOption.RoomPicList + ')'}" max-files="1" hide-upload-btn
label="教室封面" :max-file-size="5*1024*1024" accept=".jpg, image/*" auto-upload
:factory="uploadFile" >
</q-uploader>
</div>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
...
...
@@ -32,7 +70,9 @@
quertClassRoomInfo
,
saveClassRoom
}
from
'../../../api/school/index'
import
{
UploadSelfFile
,
}
from
'../../../api/common/common'
export
default
{
props
:
{
saveObj
:
{
...
...
@@ -48,6 +88,10 @@
RoomName
:
""
,
//教室名称
School_Id
:
0
,
//校区编号
Status
:
-
1
,
//状态
StartTime
:
"06:00"
,
//排班开始时间
EndTime
:
""
,
//排班结束时间
SeatNum
:
0
,
//座位数
RoomPicList
:[],
//教室图片
},
optionTitle
:
""
,
schoolList
:
[],
...
...
@@ -71,13 +115,23 @@
this
.
objOption
.
RoomId
=
res
.
Data
.
RoomId
;
this
.
objOption
.
RoomName
=
res
.
Data
.
RoomName
;
this
.
objOption
.
School_Id
=
res
.
Data
.
School_Id
;
this
.
objOption
.
StartTime
=
res
.
Data
.
StartTime
||
"06:00"
;
//排班开始时间
this
.
objOption
.
EndTime
=
res
.
Data
.
EndTime
||
""
;
//排班结束时间
this
.
objOption
.
SeatNum
=
res
.
Data
.
SeatNum
;
//座位数
this
.
objOption
.
RoomPicList
=
res
.
Data
.
RoomPic
;
//教室图片
}
console
.
log
(
this
.
objOption
)
});
}
else
{
this
.
optionTitle
=
"新增教室"
;
this
.
objOption
.
RoomId
=
0
;
this
.
objOption
.
RoomName
=
""
;
this
.
objOption
.
School_Id
=
0
;
this
.
objOption
.
StartTime
=
"06:00"
;
//排班开始时间
this
.
objOption
.
EndTime
=
""
;
//排班结束时间
this
.
objOption
.
SeatNum
=
0
;
//座位数
this
.
objOption
.
RoomPicList
=
[];
//教室图片
console
.
log
(
2
,
this
.
objOption
)
}
},
//获取校区列表
...
...
@@ -100,6 +154,22 @@
this
.
persistent
=
false
},
saveClassRoom
()
{
if
(
!
this
.
objOption
.
StartTime
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`请选择排班开始时间`
})
return
}
if
(
!
this
.
objOption
.
EndTime
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`请选择排班结束时间`
})
return
}
this
.
saveLoading
=
true
this
.
$refs
.
School_Id
.
validate
()
this
.
$refs
.
RoomName
.
validate
()
...
...
@@ -107,6 +177,9 @@
!
this
.
$refs
.
School_Id
.
hasError
&&
!
this
.
$refs
.
RoomName
.
hasError
)
{
if
(
!
Array
.
isArray
(
this
.
objOption
.
RoomPicList
))
{
this
.
objOption
.
RoomPicList
=
[
this
.
objOption
.
RoomPicList
]
}
saveClassRoom
(
this
.
objOption
).
then
(
res
=>
{
this
.
saveLoading
=
false
this
.
$q
.
notify
({
...
...
@@ -125,10 +198,46 @@
this
.
saveLoading
=
false
}
},
onRejected
(
rejectedEntries
)
{
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`文件验证失败,请重新上传`
})
},
uploadFile
(
files
)
{
UploadSelfFile
(
'studentIcon'
,
files
[
0
],
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
objOption
.
RoomPicList
=
res
.
FileUrl
;
}
})
},
}
}
</
script
>
<
style
>
.avatar-uploader-icon
{
font-size
:
28px
;
color
:
#8c939d
;
width
:
143px
;
height
:
82px
;
line-height
:
82px
;
text-align
:
center
;
}
.avatar-uploader
.el-upload
{
border
:
1px
dashed
#d9d9d9
;
border-radius
:
6px
;
cursor
:
pointer
;
position
:
relative
;
overflow
:
hidden
;
}
._delete_img
{
position
:
absolute
;
top
:
0px
;
height
:
82px
;
width
:
143px
;
line-height
:
34px
;
text-align
:
center
;
background-color
:
rgba
(
2
,
2
,
2
,
0.6
);
display
:
inherit
;
opacity
:
0
;
transition
:
all
linear
.5s
}
._delete_img
i
.iconfont
{
display
:
inline-block
;
width
:
32px
;
height
:
32px
;
border-radius
:
50%
;
color
:
#E95252
!important
;
background-color
:
rgba
(
251
,
251
,
251
,
0.9
);
margin-top
:
26px
;}
._upload_box
ul
li
{
float
:
left
;
height
:
82px
;
width
:
143px
;
padding
:
0px
20px
20px
0
;
text-align
:
center
;
position
:
relative
;
cursor
:
pointer
;
margin-right
:
10px
;}
._upload_box
ul
li
img
{
height
:
82px
;
width
:
143px
;}
._upload_box
ul
li
:hover
._delete_img
{
opacity
:
1
;}
._upload_tips
{
font-size
:
12px
;
position
:
absolute
;
top
:
71%
;
width
:
100%
;
left
:
0
;
text-align
:
center
;
color
:
#949494
;}
</
style
>
src/pages/classroom/Scheduling.vue
0 → 100644
View file @
6cebe811
<
template
>
<div
class=
"page-body"
v-loading=
"loading"
>
<div
v-for=
"item in classdata"
:key=
"item.Key"
class=
"school-item"
>
<div
class=
"school-name"
>
{{
item
.
SchoolName
}}
</div>
<div
class=
"classroom-box"
>
<div
v-for=
"(_item,_index) in item.RoomList"
:key=
"item.RoomId"
>
<div
class=
"classroom-item q-mr-lg q-mb-lg"
:class=
"
{'classroom-item-noUse':_item.UserRate===1}">
<el-image
class=
"classroom-img"
:src=
"_item.RoomPicList[0]"
fit=
"contain"
>
<div
slot=
"error"
class=
"image-slot"
>
<i
class=
"el-icon-picture-outline"
></i>
</div>
</el-image>
<div
class=
"classroom-name"
>
{{
_item
.
RoomName
}}
<!--
<img
src=
"../../assets/images/classroom/warning.png"
class=
"q-ml-sm"
v-if=
"_item.warn"
>
<img
src=
"../../assets/images/classroom/normal.png"
class=
"q-ml-sm"
v-if=
"!_item.warn"
>
-->
</div>
<q-knob
show-value
font-size=
"0.1rem"
v-model=
"_item.user"
size=
"50px"
:thickness=
"0.1"
color=
"primary"
track-color=
"grey-3"
class=
"q-ma-md classroom-user"
readonly
style=
"text-align: center"
>
{{
_item
.
UserRate
}}
%
<br/>
使用率
</q-knob>
<div
class=
"classroom-info"
>
<q-carousel
v-model=
"_item.slide"
animated
:navigation=
"false"
height=
"75px"
class=
" text-white shadow-1 rounded-borders"
arrows
control-color=
"grey-4"
control-text-color=
"primary"
control-type=
"regular"
>
<q-carousel-slide
v-for=
"(slide,slideIndex) in _item.TimeList"
:key=
"slideIndex"
:name=
"slideIndex"
>
<div
class=
"info-box"
@
click=
"goUrl"
>
<div
class=
"time"
>
{{
slide
.
StartTime
}}
</div>
<div
class=
"info"
>
{{
slide
.
ClassName
}}
</div>
</div>
</q-carousel-slide>
</q-carousel>
</div>
</div>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
getUseClassRoomList
}
from
'../../api/classroom/index'
;
export
default
{
meta
:
{
title
:
"教室状态"
},
data
()
{
return
{
classdata
:[
{
SchoolName
:
"锦江校区一"
,
list
:[
{
slide
:
0
,
img
:
""
,
classroom
:
'樱花教室'
,
user
:
80
,
warn
:
0
,
course
:[{
time
:
'09:30'
,
info
:
"打开门面,把电视打开,打扫前台和每处卫生。"
},{
time
:
'09:30'
,
info
:
"打开门面,把电视打开,打扫前台和每处卫生。"
},{
time
:
'12:30'
,
info
:
"打开门面,把电视打开,打扫前台和每处卫生。"
}]
},
]
}
],
loading
:
true
,
};
},
mounted
(){
this
.
getList
();
},
methods
:{
goUrl
(){
this
.
$router
.
push
({
path
:
"/classroom/useRecord"
,
query
:{
}
})
},
getList
()
{
getUseClassRoomList
({}).
then
(
res
=>
{
this
.
loading
=
false
if
(
res
.
Code
===
1
){
res
.
Data
.
forEach
(
e
=>
{
e
.
RoomList
.
forEach
(
_e
=>
{
_e
.
slide
=
0
})
});
this
.
classdata
=
res
.
Data
}
}).
catch
(()
=>
{
this
.
loading
=
false
;
})
},
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
.school-item
{
margin-bottom
:
10px
;
.school-name
{
font-size
:
16px
;
font-family
:
Microsoft
YaHei
;
font-weight
:
bold
;
color
:
#000000
;
margin-bottom
:
30px
;
}
.classroom-box
{
display
:
flex
;
flex-wrap
:
wrap
;
.classroom-item-noUse
{
opacity
:
0
.5
;
}
.classroom-item
{
width
:
390px
;
height
:
235px
;
background
:
#FFFFFF
;
border
:
1px
solid
#EBEBEB
;
box-shadow
:
0px
1px
1px
0px
#E4E7FB
;
border-radius
:
16px
;
position
:
relative
;
overflow
:
hidden
;
.classroom-img
{
display
:
block
;
width
:
390px
;
height
:
160px
;
border-radius
:
16px
;
background-color
:
#333
;
overflow
:
hidden
;
}
.classroom-name
{
position
:
absolute
;
top
:
20px
;
left
:
20px
;
z-index
:
5999
;
font-size
:
20px
;
font-family
:
PingFang
SC
;
font-weight
:
800
;
color
:
#FFFFFF
;
display
:
flex
;
align-items
:
center
;
}
.classroom-user
{
position
:
absolute
;
top
:
10px
;
right
:
10px
;
z-index
:
5999
;
color
:
#FFFFFF
;
}
.classroom-info
{
width
:
390px
;
height
:
75px
;
// background-color: tomato;
.info-box
{
height
:
43px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
flex-start
;
box-sizing
:
border-box
;
padding
:
0
40px
;
.time
{
font-size
:
14px
;
font-family
:
PingFang
SC
;
font-weight
:
bold
;
color
:
#6D97FF
;
margin-right
:
10px
;
}
.info
{
// width: 225px;
height
:
100%
;
font-size
:
14px
;
font-family
:
PingFang
SC
;
display
:
flex
;
align-items
:
center
;
color
:
#000000
;
}
}
}
}
}
}
</
style
>
src/pages/classroom/components/classroomNav.vue
0 → 100644
View file @
6cebe811
<
template
>
<div
class=
""
>
<q-list
style=
"width:180px;overflow:hidden;background-color: rgb(245, 246, 247);"
>
<template
v-for=
"(x,i) in secondNavs"
>
<q-item
:to=
"x.MenuUrl"
clickable
v-ripple
:active=
"currentPath==x.MenuUrl"
v-if=
"x.SubList.length==0"
:key=
"i"
>
<q-item-section
avatar
style=
"min-width:30px;"
>
<q-icon
:name=
"x.MenuIcon"
size=
"20px"
/>
</q-item-section>
<q-item-section>
{{
x
.
MenuName
}}
</q-item-section>
</q-item>
<q-expansion-item
v-else
:label=
"x.MenuName"
>
<q-item
:to=
"y.MenuUrl"
clickable
v-ripple
:active=
"currentPath==y.MenuUrl"
v-for=
"(y, yi) in x.SubList"
:key=
"yi"
>
<q-item-section
avatar
style=
"padding-right:0;min-width:30px;"
>
<q-icon
:name=
"y.MenuIcon"
size=
"20px"
/>
</q-item-section>
<q-item-section>
{{
y
.
MenuName
}}
</q-item-section>
</q-item>
</q-expansion-item>
</
template
>
</q-list>
</div>
</template>
<
script
>
export
default
{
meta
:
{
title
:
"使用记录"
},
props
:{
NavData
:{
type
:
Array
,
default
:()
=>
{
[
{
MenuName
:
"总部"
,
MenuIcon
:
""
,
MenuUrl
:
""
,
SubList
:[
{
MenuName
:
"樱花教室"
,
MenuUrl
:
"/"
,
MenuIcon
:
""
},
{
MenuName
:
"菊花教室"
,
MenuUrl
:
"/"
,
MenuIcon
:
""
}
]
}
]
}
}
},
watch
:
{
$route
:
{
handler
:
function
(
route
)
{
this
.
currentPath
=
route
.
path
},
immediate
:
true
},
},
data
()
{
return
{
currentPath
:
""
,
secondNavs
:[
{
MenuName
:
"总部"
,
MenuIcon
:
""
,
SubList
:[
{
MenuName
:
"樱花教室"
,
MenuUrl
:
""
,
MenuIcon
:
""
},
{
MenuName
:
"菊花教室"
,
MenuUrl
:
""
,
MenuIcon
:
""
}
]
}
]
};
},
mounted
(){
},
methods
:{
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/classroom/components/css/comSummary.css
0 → 100644
View file @
6cebe811
.comSummary
.mainSummary
{
width
:
100%
;
margin-top
:
10px
;
}
.comSummary
.comSummary
.query-box
{
border
:
none
;
}
.comSummary
.summaryDate
{
width
:
100%
;
height
:
120px
;
background-color
:
#f2f2f2
;
border
:
1px
solid
#e6e6e6
;
border-top-left-radius
:
4px
;
border-top-right-radius
:
4px
;
min-width
:
1400px
;
}
.comSummary
.leftDay
{
width
:
60px
;
height
:
70px
;
text-align
:
center
;
border-radius
:
4px
;
overflow
:
hidden
;
background-color
:
#fff
;
margin
:
10px
10px
10px
30px
;
line-height
:
38px
;
color
:
#e95252
;
border
:
3px
solid
#4B4E4D
;
}
.comSummary
.leftDayTop
{
width
:
54px
;
height
:
27px
;
background-color
:
#D56964
;
color
:
#ffc6c6
;
font-size
:
12px
;
position
:
relative
;
text-align
:
center
;
line-height
:
30px
;
border-bottom
:
3px
solid
#4B4E4D
;
}
.comSummary
.rili
{
position
:
absolute
;
width
:
6px
;
height
:
16px
;
background-color
:
#fff
;
border-radius
:
20px
;
border-top
:
2px
solid
#666666
;
border-bottom
:
2px
solid
#666666
;
}
.comSummary
.LI1
{
left
:
20px
;
top
:
18px
;
}
.comSummary
.LI2
{
left
:
75px
;
top
:
18px
;
}
.comSummary
.yearCircle
{
display
:
inline-block
;
width
:
5px
;
height
:
5px
;
border-radius
:
50%
;
background-color
:
#ffc6c6
;
margin
:
0
5px
2px
;
}
.comSummary
.monthNum
{
font-size
:
20px
;
}
.comSummary
.monthLis
{
font-size
:
20px
;
}
.comSummary
.Arrow
{
width
:
24px
;
height
:
24px
;
background-color
:
#cccccc
;
color
:
#999999
;
border-radius
:
50%
;
text-align
:
center
;
line-height
:
24px
;
margin
:
auto
;
}
.comSummary
.Arrow
:hover
{
background-color
:
#999999
;
color
:
#333
;
cursor
:
pointer
;
}
.comSummary
.Daycontent
{
width
:
1400px
;
height
:
100%
;
float
:
left
;
}
.comSummary
.teamList
{
width
:
100%
;
height
:
80px
;
background
:
#fff
;
padding
:
10px
;
}
.comSummary
.teamList
:nth-of-type
(
odd
)
{
background-color
:
#f2f2f2
;
}
.comSummary
.teamLeftInfo
{
float
:
left
;
width
:
200px
;
height
:
100%
;
}
.comSummary
.tType
{
width
:
24px
;
height
:
24px
;
color
:
#fff
;
background-color
:
#e95252
;
display
:
inline-block
;
font-size
:
14px
;
border-radius
:
8px
;
text-align
:
center
;
line-height
:
24px
;
margin-left
:
10px
;
}
.comSummary
.TeamNum
{
font-size
:
14px
;
color
:
#333333
;
margin-left
:
10px
;
}
.comSummary
.teamChild
{
font-size
:
12px
;
margin
:
5px
0
0
35px
;
color
:
#666
;
}
.comSummary
.teamChild
i
{
color
:
#d9d9d9
;
margin
:
0
10px
0
10px
;
}
.comSummary
.AddressIn
{
width
:
50px
;
color
:
#808080
;
text-align
:
left
;
margin
:
auto
;
height
:
16px
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
overflow
:
hidden
;
padding
:
0
3px
;
margin-bottom
:
5px
;
}
.comSummary
.listInfo
{
width
:
50px
;
text-align
:
left
;
}
.comSummary
.circleDiv
{
height
:
5px
;
position
:
relative
;
}
.comSummary
.listName
{
width
:
50px
;
overflow
:
hidden
;
margin
:
auto
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
height
:
20px
;
padding
:
0
3px
;
}
.comSummary
.cir
{
width
:
12px
;
height
:
12px
;
background-color
:
#47bf8c
;
border-radius
:
50%
;
margin
:
auto
;
cursor
:
pointer
;
}
.comSummary
.lineright
{
position
:
absolute
;
width
:
38%
;
height
:
1px
;
/* display: none; */
background-color
:
#d9d9d9
;
top
:
-6px
;
right
:
0
;
}
.comSummary
.lineleft
{
position
:
absolute
;
width
:
38%
;
/* display: none; */
height
:
1px
;
background-color
:
#d9d9d9
;
top
:
-6px
;
left
:
0
;
}
.lineLeftList
{
position
:
absolute
;
width
:
50%
;
height
:
1px
;
background-color
:
#d9d9d9
;
top
:
-18px
;
left
:
0
;
}
.lineRightList
{
position
:
absolute
;
width
:
50%
;
height
:
1px
;
background-color
:
#d9d9d9
;
top
:
-18px
;
right
:
0
;
}
.comSummary
.disNone
{
display
:
none
!important
;
}
.comSummary
.calendarList
{
float
:
left
;
width
:
45px
;
height
:
100%
;
text-align
:
center
;
line-height
:
38px
;
}
.comSummary
._week
{
font-size
:
14px
;
}
.comSummary
._day
{
font-size
:
24px
;
}
.comSummary
._longli
{
font-size
:
12px
;
color
:
#999999
;
}
.comSummary
.redType
{
color
:
#e95252
;
}
.comSummary
.mainSummary
{
width
:
100%
;
/* min-height: 500px; */
margin-top
:
30px
;
overflow
:
auto
;
}
.comSummary
.summaryTable
{
width
:
100%
;
min-width
:
1400px
;
border-radius
:
4px
;
background-color
:
#E6E6E6
;
/* table-layout:fixed;word-break:break-all; */
}
.comSummary
.summaryTable
tr
:nth-child
(
2n
+
1
)
{
background-color
:
#fff
;
}
.comSummary
.summaryTable
th
{
width
:
210px
;
position
:
relative
;
}
.comSummary
.summaryTable
th
:first-child
{
border-top-left-radius
:
10px
;
}
.comSummary
.summaryTable
th
:last-child
{
border-top-right-radius
:
10px
;
}
.comSummary
.summaryTable
td
{
font-size
:
12px
;
overflow
:
hidden
;
line-height
:
16px
;
position
:
relative
;
vertical-align
:
top
;
padding
:
10px
0
5px
0
;
/* border-left:1px solid #fff;
border-right:1px solid #fff; */
}
.comdayListDiv
{
height
:
150px
;
overflow
:
auto
;
}
.comdayListDiv
::-webkit-scrollbar
{
width
:
4px
;
height
:
8px
;
}
.comdayListDiv
::-webkit-scrollbar-track
{
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
4px
;
background
:
#ededed
;
}
.comdayListDiv
::-webkit-scrollbar-thumb
{
border-radius
:
4px
;
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
background
:
#c9c9c9
;
}
.comSummary
.mainSummary
::-webkit-scrollbar
{
width
:
4px
;
height
:
8px
;
}
.comSummary
.mainSummary
::-webkit-scrollbar-track
{
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
4px
;
background
:
#ededed
;
}
.comSummary
.mainSummary
::-webkit-scrollbar-thumb
{
border-radius
:
4px
;
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
background
:
#c9c9c9
;
}
.comSummary
.stateOne
{
background-color
:
#409EFF
;
}
.comSummary
.stateTwo
{
background-color
:
#47bf8c
;
}
.comSummary
.stateFour
{
background-color
:
#cccccc
;
}
._leTitle
{
float
:
left
;
font-size
:
14px
;
color
:
#333333
;
margin
:
10px
0
;
font-weight
:
bold
;
}
._orderId
{
float
:
right
;
color
:
#069eda
;
font-size
:
14px
;
margin-top
:
10px
;
}
._biao
{
float
:
left
;
}
._biaoRight
{
float
:
right
;
width
:
60px
;
text-align
:
left
;
}
._hotelName
{
font-size
:
12px
;
color
:
#666666
;
margin-top
:
5px
;
}
._hotelName
i
{
color
:
#d9d9d9
;
font-size
:
14px
;
}
.comSummary
.icon-yiqueren
{
color
:
#32cc8a
!important
;
}
.comSummary
.toQueren
{
color
:
#ef5e5e
!important
;
}
.comSummary
.icon-quxiao
{
color
:
#cccccc
!important
;
}
._topInfo
{
margin-bottom
:
10px
;
}
._leftTy
{
display
:
inline-block
;
width
:
3px
;
height
:
12px
;
background-color
:
#e95252
;
margin-right
:
10px
;
}
.TJtitle
{
margin-left
:
10px
;
}
.dayListTable
{
text-align
:
center
;
font-size
:
12px
;
}
.summaryTable
th
{
cursor
:
pointer
;
}
.summaryTable
th
:first-child
{
/* width:180px; */
cursor
:
default
;
}
.dayListTable
td
{
/* vertical-align: top; */
text-align
:
left
;
}
.dayListTable
i
{
color
:
#d9d9d9
;
margin-right
:
3px
;
font-size
:
12px
;
-webkit-transform
:
scale
(
0.9
);
}
.dayListTable
tr
{
height
:
25px
;
line-height
:
25px
;
}
.dayListTable
th
{
background-color
:
#f2f2f2
;
color
:
#333333
;
height
:
25px
;
line-height
:
25px
;
}
._cityName
{
width
:
100px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;}
.htName
{
width
:
130px
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
white-space
:
nowrap
;}
._monthDay
span
{
display
:
inline-block
;
padding
:
2px
10px
;
line-height
:
1
;
background
:
#e95252
;
color
:
#fff
;
border-radius
:
10px
;}
.disNoneCir
{
display
:
none
;}
.ckedTd
{
border-left
:
1px
solid
#E95252
;
border-right
:
1px
solid
#E95252
;
background-color
:
#fff
;
margin
:
0
1px
0
1px
;}
.leftLine
{
position
:
absolute
;
left
:
0
;
top
:
0
;
width
:
1px
;
height
:
100%
;
background-color
:
#E95252
;}
.rightLine
{
position
:
absolute
;
right
:
0
;
top
:
0
;
width
:
1px
;
height
:
100%
;
background-color
:
#E95252
;}
\ No newline at end of file
src/pages/classroom/components/js/lunarCalendar.js
0 → 100644
View file @
6cebe811
var
lunarCalendar
=
{
/**
* 农历1900-2100的润大小信息表
* @Array Of Property
* @return Hex
*/
lunarInfo
:
[
0x04bd8
,
0x04ae0
,
0x0a570
,
0x054d5
,
0x0d260
,
0x0d950
,
0x16554
,
0x056a0
,
0x09ad0
,
0x055d2
,
//1900-1909
0x04ae0
,
0x0a5b6
,
0x0a4d0
,
0x0d250
,
0x1d255
,
0x0b540
,
0x0d6a0
,
0x0ada2
,
0x095b0
,
0x14977
,
//1910-1919
0x04970
,
0x0a4b0
,
0x0b4b5
,
0x06a50
,
0x06d40
,
0x1ab54
,
0x02b60
,
0x09570
,
0x052f2
,
0x04970
,
//1920-1929
0x06566
,
0x0d4a0
,
0x0ea50
,
0x06e95
,
0x05ad0
,
0x02b60
,
0x186e3
,
0x092e0
,
0x1c8d7
,
0x0c950
,
//1930-1939
0x0d4a0
,
0x1d8a6
,
0x0b550
,
0x056a0
,
0x1a5b4
,
0x025d0
,
0x092d0
,
0x0d2b2
,
0x0a950
,
0x0b557
,
//1940-1949
0x06ca0
,
0x0b550
,
0x15355
,
0x04da0
,
0x0a5b0
,
0x14573
,
0x052b0
,
0x0a9a8
,
0x0e950
,
0x06aa0
,
//1950-1959
0x0aea6
,
0x0ab50
,
0x04b60
,
0x0aae4
,
0x0a570
,
0x05260
,
0x0f263
,
0x0d950
,
0x05b57
,
0x056a0
,
//1960-1969
0x096d0
,
0x04dd5
,
0x04ad0
,
0x0a4d0
,
0x0d4d4
,
0x0d250
,
0x0d558
,
0x0b540
,
0x0b6a0
,
0x195a6
,
//1970-1979
0x095b0
,
0x049b0
,
0x0a974
,
0x0a4b0
,
0x0b27a
,
0x06a50
,
0x06d40
,
0x0af46
,
0x0ab60
,
0x09570
,
//1980-1989
0x04af5
,
0x04970
,
0x064b0
,
0x074a3
,
0x0ea50
,
0x06b58
,
0x055c0
,
0x0ab60
,
0x096d5
,
0x092e0
,
//1990-1999
0x0c960
,
0x0d954
,
0x0d4a0
,
0x0da50
,
0x07552
,
0x056a0
,
0x0abb7
,
0x025d0
,
0x092d0
,
0x0cab5
,
//2000-2009
0x0a950
,
0x0b4a0
,
0x0baa4
,
0x0ad50
,
0x055d9
,
0x04ba0
,
0x0a5b0
,
0x15176
,
0x052b0
,
0x0a930
,
//2010-2019
0x07954
,
0x06aa0
,
0x0ad50
,
0x05b52
,
0x04b60
,
0x0a6e6
,
0x0a4e0
,
0x0d260
,
0x0ea65
,
0x0d530
,
//2020-2029
0x05aa0
,
0x076a3
,
0x096d0
,
0x04afb
,
0x04ad0
,
0x0a4d0
,
0x1d0b6
,
0x0d250
,
0x0d520
,
0x0dd45
,
//2030-2039
0x0b5a0
,
0x056d0
,
0x055b2
,
0x049b0
,
0x0a577
,
0x0a4b0
,
0x0aa50
,
0x1b255
,
0x06d20
,
0x0ada0
,
//2040-2049
0x14b63
,
0x09370
,
0x049f8
,
0x04970
,
0x064b0
,
0x168a6
,
0x0ea50
,
0x06b20
,
0x1a6c4
,
0x0aae0
,
//2050-2059
0x0a2e0
,
0x0d2e3
,
0x0c960
,
0x0d557
,
0x0d4a0
,
0x0da50
,
0x05d55
,
0x056a0
,
0x0a6d0
,
0x055d4
,
//2060-2069
0x052d0
,
0x0a9b8
,
0x0a950
,
0x0b4a0
,
0x0b6a6
,
0x0ad50
,
0x055a0
,
0x0aba4
,
0x0a5b0
,
0x052b0
,
//2070-2079
0x0b273
,
0x06930
,
0x07337
,
0x06aa0
,
0x0ad50
,
0x14b55
,
0x04b60
,
0x0a570
,
0x054e4
,
0x0d160
,
//2080-2089
0x0e968
,
0x0d520
,
0x0daa0
,
0x16aa6
,
0x056d0
,
0x04ae0
,
0x0a9d4
,
0x0a2d0
,
0x0d150
,
0x0f252
,
//2090-2099
0x0d520
],
/**
* 公历每个月份的天数普通表
* @Array Of Property
* @return Number
*/
solarMonth
:
[
31
,
28
,
31
,
30
,
31
,
30
,
31
,
31
,
30
,
31
,
30
,
31
],
/**
* 数字转中文速查表
* @Array Of Property
* @trans ['日','一','二','三','四','五','六','七','八','九','十']
* @return Cn string
*/
weekStr
:
[
"
\
u65e5"
,
"
\
u4e00"
,
"
\
u4e8c"
,
"
\
u4e09"
,
"
\
u56db"
,
"
\
u4e94"
,
"
\
u516d"
,
"
\
u4e03"
,
"
\
u516b"
,
"
\
u4e5d"
,
"
\
u5341"
],
weekStr2
:
[
"SUN"
,
"MON"
,
"TUE"
,
"WED"
,
"THU"
,
"FRI"
,
"SAT"
],
/**
* 日期转农历称呼速查表
* @Array Of Property
* @trans ['初','十','廿','卅']
* @return Cn string
*/
nStr2
:
[
"
\
u521d"
,
"
\
u5341"
,
"
\
u5eff"
,
"
\
u5345"
],
/**
* 月份转农历称呼速查表
* @Array Of Property
* @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊']
* @return Cn string
*/
nStr3
:
[
"
\
u6b63"
,
"
\
u4e8c"
,
"
\
u4e09"
,
"
\
u56db"
,
"
\
u4e94"
,
"
\
u516d"
,
"
\
u4e03"
,
"
\
u516b"
,
"
\
u4e5d"
,
"
\
u5341"
,
"
\
u51ac"
,
"
\
u814a"
],
/**
* 返回农历y年一整年的总天数
* @param lunar Year
* @return Number
* @eg:var count = lunarCalendar.lYearDays(1987) ;//count=387
*/
lYearDays
:
function
(
y
)
{
var
i
,
sum
=
348
;
for
(
i
=
0x8000
;
i
>
0x8
;
i
>>=
1
)
{
sum
+=
(
lunarCalendar
.
lunarInfo
[
y
-
1900
]
&
i
)
?
1
:
0
;
}
return
(
sum
+
lunarCalendar
.
leapDays
(
y
));
},
/**
* 返回农历y年闰月是哪个月;若y年没有闰月 则返回0
* @param lunar Year
* @return Number (0-12)
* @eg:var leapMonth = lunarCalendar.leapMonth(1987) ;//leapMonth=6
*/
leapMonth
:
function
(
y
)
{
//闰字编码 \u95f0
return
(
lunarCalendar
.
lunarInfo
[
y
-
1900
]
&
0xf
);
},
/**
* 返回农历y年闰月的天数 若该年没有闰月则返回0
* @param lunar Year
* @return Number (0、29、30)
* @eg:var leapMonthDay = lunarCalendar.leapDays(1987) ;//leapMonthDay=29
*/
leapDays
:
function
(
y
)
{
if
(
lunarCalendar
.
leapMonth
(
y
))
{
return
((
lunarCalendar
.
lunarInfo
[
y
-
1900
]
&
0x10000
)
?
30
:
29
);
}
return
(
0
);
},
/**
* 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法
* @param lunar Year
* @return Number (-1、29、30)
* @eg:var MonthDay = lunarCalendar.monthDays(1987,9) ;//MonthDay=29
*/
monthDays
:
function
(
y
,
m
)
{
if
(
m
>
12
||
m
<
1
)
{
return
-
1
}
//月份参数从1至12,参数错误返回-1
return
((
lunarCalendar
.
lunarInfo
[
y
-
1900
]
&
(
0x10000
>>
m
))
?
30
:
29
);
},
/**
* 返回公历(!)y年m月的天数
* @param solar Year
* @return Number (-1、28、29、30、31)
* @eg:var solarMonthDay = lunarCalendar.leapDays(1987) ;//solarMonthDay=30
*/
solarDays
:
function
(
y
,
m
)
{
if
(
m
>
12
||
m
<
1
)
{
return
-
1
}
//若参数错误 返回-1
var
ms
=
m
-
1
;
if
(
ms
==
1
)
{
//2月份的闰平规律测算后确认返回28或29
return
(((
y
%
4
==
0
)
&&
(
y
%
100
!=
0
)
||
(
y
%
400
==
0
))
?
29
:
28
);
}
else
{
return
(
lunarCalendar
.
solarMonth
[
ms
]);
}
},
/**
* 传入农历数字月份返回汉语通俗表示法
* @param lunar month
* @return Cn string
* @eg:var cnMonth = lunarCalendar.toChinaMonth(12) ;//cnMonth='腊月'
*/
toChinaMonth
:
function
(
m
)
{
// 月 => \u6708
if
(
m
>
12
||
m
<
1
)
{
return
-
1
}
//若参数错误 返回-1
var
s
=
lunarCalendar
.
nStr3
[
m
-
1
];
s
+=
"
\
u6708"
;
//加上月字
return
s
;
},
/**
* 传入农历日期数字返回汉字表示法
* @param lunar day
* @return Cn string
* @eg:var cnDay = lunarCalendar.toChinaDay(21) ;//cnMonth='廿一'
*/
toChinaDay
:
function
(
d
)
{
//日 => \u65e5
var
s
;
switch
(
d
)
{
case
10
:
s
=
'
\
u521d
\
u5341'
;
break
;
case
20
:
s
=
'
\
u4e8c
\
u5341'
;
break
;
break
;
case
30
:
s
=
'
\
u4e09
\
u5341'
;
break
;
break
;
default
:
s
=
lunarCalendar
.
nStr2
[
Math
.
floor
(
d
/
10
)];
s
+=
lunarCalendar
.
weekStr
[
d
%
10
];
}
return
(
s
);
},
isLeap
:
function
(
objDate
)
{
var
i
,
leap
=
0
,
temp
=
0
;
var
offset
=
(
Date
.
UTC
(
objDate
.
getFullYear
(),
objDate
.
getMonth
(),
objDate
.
getDate
())
-
Date
.
UTC
(
1900
,
0
,
31
))
/
86400000
;
for
(
i
=
1900
;
i
<
2101
&&
offset
>
0
;
i
++
)
{
temp
=
lunarCalendar
.
lYearDays
(
i
);
offset
-=
temp
;
}
if
(
offset
<
0
)
{
offset
+=
temp
;
i
--
;
}
//农历年
var
year
=
i
;
var
leap
=
lunarCalendar
.
leapMonth
(
i
);
//闰哪个月
var
isLeap
=
false
;
//效验闰月
for
(
i
=
1
;
i
<
13
&&
offset
>
0
;
i
++
)
{
//闰月
if
(
leap
>
0
&&
i
==
(
leap
+
1
)
&&
isLeap
==
false
)
{
--
i
;
isLeap
=
true
;
temp
=
lunarCalendar
.
leapDays
(
year
);
//计算农历闰月天数
}
else
{
temp
=
lunarCalendar
.
monthDays
(
year
,
i
);
//计算农历普通月天数
}
//解除闰月
if
(
isLeap
==
true
&&
i
==
(
leap
+
1
))
{
isLeap
=
false
;
}
offset
-=
temp
;
}
if
(
offset
==
0
&&
leap
>
0
&&
i
==
leap
+
1
)
if
(
isLeap
)
{
isLeap
=
false
;
}
else
{
isLeap
=
true
;
--
i
;
}
if
(
offset
<
0
)
{
offset
+=
temp
;
--
i
;
}
//农历月
var
lunarmonth
=
i
;
//农历日
var
lunarDay
=
offset
+
1
;
return
{
isLeap
,
year
,
lunarmonth
,
lunarDay
};
},
/**
* 传入阳历年月日获得详细的公历、农历object信息 lunarCalendar.initLunar(1987,11)<=>Array
* @param y solar year
* @param m solar month
* @return Array
*/
initLunar
:
function
(
yearStr
,
monthStr
,
dayNum
)
{
//年份限定、上限
if
(
yearStr
<
1900
||
yearStr
>
2100
)
{
return
-
1
;
}
var
objDate
=
new
Date
();
var
endDate
=
new
Date
();
endDate
.
setDate
(
endDate
.
getDate
()
+
dayNum
);
//修正ymd参数
var
m
=
objDate
.
getMonth
()
+
1
,
d
=
objDate
.
getDate
();
var
totalMonthDay
=
lunarCalendar
.
solarDays
(
yearStr
,
m
);
var
array
=
[];
while
((
endDate
.
getTime
()
-
objDate
.
getTime
())
>
0
)
{
//星期几
var
nWeek
=
objDate
.
getDay
(),
cWeek
=
lunarCalendar
.
weekStr
[
nWeek
];
var
leepObj
=
lunarCalendar
.
isLeap
(
objDate
);
var
obj
=
{
CurrentYear
:
objDate
.
getFullYear
(),
//当前年
CurrentMonth
:
objDate
.
getMonth
()
+
1
,
//当前月
CurrentDay
:
objDate
.
getDate
(),
//当前天
CurrentMonthCn
:
objDate
.
getMonth
()
+
1
,
//农历月中文
CurrentDate
:
objDate
.
getFullYear
()
+
"-"
+
(
objDate
.
getMonth
()
+
1
)
+
"-"
+
objDate
.
getDate
(),
Week
:
cWeek
,
//星期
LunarYear
:
leepObj
.
year
,
//农历年
LunarMonth
:
leepObj
.
lunarmonth
,
//农历月
LunarMonthCn
:
(
leepObj
.
isLeap
?
"
\
u95f0"
:
''
)
+
lunarCalendar
.
toChinaMonth
(
leepObj
.
lunarmonth
),
//农历月中文
LunarDay
:
leepObj
.
lunarDay
,
//农历日
LunarDayCn
:
lunarCalendar
.
toChinaDay
(
leepObj
.
lunarDay
),
//农历日中文
IsLeap
:
leepObj
.
isLeap
,
//是否润月
};
array
.
push
(
obj
);
objDate
.
setDate
(
objDate
.
getDate
()
+
1
);
}
return
array
;
},
changeLunar
:
function
(
dateStr
,
dayNum
)
{
var
objDate
=
new
Date
(
dateStr
);
objDate
.
setDate
(
objDate
.
getDate
()
+
(
dayNum
*
1
));
//星期几
var
nWeek
=
objDate
.
getDay
(),
cWeek
=
lunarCalendar
.
weekStr
[
nWeek
];
var
leepObj
=
lunarCalendar
.
isLeap
(
objDate
);
var
obj
=
{
CurrentYear
:
objDate
.
getFullYear
(),
//当前年
CurrentMonth
:
objDate
.
getMonth
()
+
1
,
//当前月
CurrentDay
:
objDate
.
getDate
(),
//当前天
CurrentMonthCn
:
objDate
.
getMonth
()
+
1
,
//农历月中文
CurrentDate
:
objDate
.
getFullYear
()
+
"-"
+
(
objDate
.
getMonth
()
+
1
)
+
"-"
+
objDate
.
getDate
(),
Week
:
cWeek
,
//星期
LunarYear
:
leepObj
.
year
,
//农历年
LunarMonth
:
leepObj
.
lunarmonth
,
//农历月
LunarMonthCn
:
(
leepObj
.
isLeap
?
"
\
u95f0"
:
''
)
+
lunarCalendar
.
toChinaMonth
(
leepObj
.
lunarmonth
),
//农历月中文
LunarDay
:
leepObj
.
lunarDay
,
//农历日
LunarDayCn
:
lunarCalendar
.
toChinaDay
(
leepObj
.
lunarDay
),
//农历日中文
IsLeap
:
leepObj
.
isLeap
,
//是否润月
};
return
obj
;
}
};
export
default
lunarCalendar
;
\ No newline at end of file
src/pages/classroom/components/scenicSummary.vue
0 → 100644
View file @
6cebe811
<
style
>
@import
"./css/comSummary.css"
;
</
style
>
<
template
>
<div
class=
"flexOne comSummary"
>
<div
class=
"mainSummary"
>
<table
class=
"summaryTable"
cellspacing=
"0"
>
<thead>
<th>
<div
class=
"leftDay"
>
<div
class=
"leftDayTop"
>
<!--
<span
class=
"yearCircle"
></span>
-->
{{
nowYear
}}
年
<!--
<span
class=
"yearCircle"
></span>
-->
<!--
<div
class=
"rili LI1"
></div>
<div
class=
"rili LI2"
></div>
-->
</div>
<span
class=
"monthNum"
>
{{
nowMonth
}}
</span>
<!--
<span
class=
"monthLis"
>
{{
$t
(
'pub.month'
)
}}
</span>
-->
</div>
</th>
<th>
<div
class=
"Arrow"
@
click=
"leftClick()"
>
<i
class=
"iconfont icon-previewleft"
></i>
</div>
</th>
<th
v-for=
"(k,index) in Calendar"
:key=
"k.subCode"
:class=
"
{'redType':k.Week=='日'||k.Week=='六','ckedTd':index==columnLine
&&
dataList!=''}" @click="getDayInfo(k.CurrentYear,k.CurrentMonth,k.CurrentDay)" @mouseover="columnsMouseOver(index)">
<div
slot=
"reference"
>
<div
class=
"_week"
>
{{
k
.
Week
}}
</div>
<div
class=
"_monthDay"
v-if=
"k.CurrentDay==1"
>
<span>
{{
k
.
CurrentMonthCn
}}
<br/>
{{
$t
(
'pub.month'
)
}}
</span>
</div>
<div
class=
"_day"
v-else
>
{{
k
.
CurrentDay
}}
</div>
<!--
<div
class=
"_longli"
>
{{
k
.
LunarDayCn
}}
</div>
-->
</div>
<div
class=
"_lineSummary"
v-if=
"index==columnLine&&dataList!=''"
></div>
</th>
<th>
<div
class=
"Arrow"
@
click=
"rightClick()"
>
<i
class=
"iconfont icon-arrow-right"
></i>
</div>
</th>
</thead>
</table>
</div>
</div>
</
template
>
<
script
>
import
lunarCalendar
from
"./js/lunarCalendar"
export
default
{
data
()
{
return
{
msg
:
{
StartDate
:
new
Date
().
Format
(
"yyyy-MM-dd"
),
EndDate
:
""
},
loading
:
true
,
dataList
:
""
,
tempDataList
:
[],
Calendar
:
""
,
//绑定数据的日历
CalendarDataArray
:
[],
//存放数据的日历
infoList
:
""
,
dayList
:
""
,
nowYear
:
""
,
nowMonth
:
""
,
QStartDate
:
""
,
QEndDate
:
""
,
dayNum
:
25
,
//默认加载天数
columnLine
:
-
1
};
},
methods
:
{
//初始化日历数据
initData
()
{
let
startYear
=
this
.
msg
.
StartDate
.
split
(
"-"
)[
0
];
let
startMonth
=
this
.
msg
.
StartDate
.
split
(
"-"
)[
1
];
var
data
=
lunarCalendar
.
initLunar
(
startYear
,
startMonth
,
this
.
dayNum
);
this
.
CalendarDataArray
=
data
;
this
.
QStartDate
=
data
[
0
].
CurrentDate
;
this
.
QEndDate
=
data
[
data
.
length
-
1
].
CurrentDate
;
this
.
Calendar
=
this
.
CalendarDataArray
;
},
// getList() {
// this.apipost(
// "ticketcoupons_get_GetTicketCouponsSummary",
// this.msg,
// res => {
// if (res.data.resultCode == 1) {
// this.dataList = res.data.data;
// this.tempDataList = res.data.data;
// }
// },
// null
// );
// },
//左侧点击
leftClick
()
{
var
tempStartDate
=
lunarCalendar
.
changeLunar
(
this
.
QStartDate
,
-
1
);
this
.
CalendarDataArray
.
unshift
(
tempStartDate
);
this
.
nowYear
=
tempStartDate
.
CurrentYear
;
this
.
nowMonth
=
tempStartDate
.
CurrentMonth
;
this
.
CalendarDataArray
.
pop
();
//删除最后一个元素
this
.
Calendar
=
this
.
CalendarDataArray
;
this
.
QStartDate
=
tempStartDate
.
CurrentDate
;
this
.
QEndDate
=
this
.
CalendarDataArray
[
this
.
CalendarDataArray
.
length
-
1
].
CurrentDate
;
this
.
msg
.
StartDate
=
tempStartDate
.
CurrentDate
;
this
.
msg
.
EndDate
=
this
.
CalendarDataArray
[
this
.
CalendarDataArray
.
length
-
1
].
CurrentDate
;
// this.getList();
},
//右侧点击事件
rightClick
()
{
var
tempEndDate
=
lunarCalendar
.
changeLunar
(
this
.
QEndDate
,
1
);
this
.
CalendarDataArray
.
push
(
tempEndDate
);
this
.
nowYear
=
tempEndDate
.
CurrentYear
;
this
.
nowMonth
=
tempEndDate
.
CurrentMonth
;
this
.
CalendarDataArray
.
shift
();
//删除第一个元素
this
.
Calendar
=
this
.
CalendarDataArray
;
this
.
QStartDate
=
this
.
CalendarDataArray
[
0
].
CurrentDate
;
this
.
QEndDate
=
tempEndDate
.
CurrentDate
;
this
.
msg
.
StartDate
=
this
.
CalendarDataArray
[
0
].
CurrentDate
;
this
.
msg
.
EndDate
=
tempEndDate
.
CurrentDate
;
// this.getList();
},
columnsMouseOver
(
obj
)
{
this
.
columnLine
=
obj
;
},
getEndDay
()
{
var
date1
=
this
.
msg
.
StartDate
;
var
date2
=
new
Date
(
date1
);
var
c
=
date2
.
getDate
();
var
d
=
new
Date
(
date2
.
setDate
(
c
+
24
));
this
.
msg
.
EndDate
=
d
.
Format
(
"yyyy-MM-dd"
);
},
getDayInfo
(
Y
,
M
,
D
)
{
// let StartDate = Y + "-" + M + "-" + D;
// let msg = {
// StartDate: StartDate
// };
// this.apipost(
// "ticketcoupons_get_GetTicketCouponsSummaryDay",
// msg,
// res => {
// if (res.data.resultCode == 1) {
// this.dayList = res.data.data;
// }
// },
// null
// );
}
},
mounted
()
{
this
.
initData
();
this
.
getEndDay
();
// this.getList();
let
nowDate
=
new
Date
().
Format
(
"yyyy-MM-dd"
);
this
.
nowYear
=
nowDate
.
split
(
"-"
)[
0
];
this
.
nowMonth
=
parseInt
(
nowDate
.
split
(
"-"
)[
1
]);
}
};
</
script
>
\ No newline at end of file
src/pages/classroom/useRecord.vue
0 → 100644
View file @
6cebe811
<
template
>
<div
class=
"page-body con"
>
<div
class=
"left"
>
<ClassroomNav/>
</div>
<div
class=
"right"
>
<!--
<el-timeline
:reverse=
"reverse"
>
<el-timeline-item
v-for=
"(activity, index) in activities"
:key=
"index"
:timestamp=
"activity.timestamp"
>
</el-timeline-item>
</el-timeline>
-->
<Calendar></Calendar>
</div>
</div>
</
template
>
<
script
>
import
ClassroomNav
from
"./components/classroomNav"
;
import
Calendar
from
'./components/scenicSummary.vue'
import
{
getSchoolAndRoomNav
}
from
'../../api/classroom/index'
;
export
default
{
meta
:
{
title
:
"使用记录"
},
components
:{
ClassroomNav
,
Calendar
,
},
data
()
{
return
{
loading
:
true
,
msg
:
{
pageIndex
:
1
,
pageSize
:
12
,
},
navData
:[],
reverse
:
true
,
activities
:
[{
timestamp
:
'09:30'
},
{
timestamp
:
'09:45'
},
{
timestamp
:
'10:00'
}]
};
},
mounted
(){
this
.
getNavList
();
},
methods
:{
// goUrl(){
// this.$router.push({
// path:"/classroom/useRecord",
// query:{
// }
// })
// },
getNavList
()
{
getSchoolAndRoomNav
({}).
then
(
res
=>
{
this
.
loading
=
false
if
(
res
.
Code
===
1
){
this
.
navData
=
res
.
Data
}
}).
catch
(()
=>
{
this
.
loading
=
false
;
})
},
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
.con
{
padding
:
5px
!
important
;
display
:
flex
;
.left
{
background-color
:
rgb
(
245
,
246
,
247
);
}
}
</
style
>
src/pages/school/classroom.vue
View file @
6cebe811
...
...
@@ -10,10 +10,10 @@
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
option-value=
"SId"
option-label=
"SName"
v-model=
"msg.School_Id"
:options=
"schoolList"
emit-value
map-options
label=
"关联校区"
/>
</div>
<div
class=
"col-3"
>
<
!--
<
div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
v-model=
"msg.Status"
:options=
"StatusOpts"
option-value=
"value"
option-label=
"label"
label=
"状态"
emit-value
map-options
/>
</div>
</div>
-->
</div>
</div>
<div
class=
"page-content"
>
...
...
@@ -40,6 +40,11 @@
<q-td
:props=
"props"
>
<div
class=
"text-blue cursor-pointer"
>
{{
props
.
value
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-time=
"props"
>
<q-td
:props=
"props"
>
<div
class=
"text-blue cursor-pointer"
>
{{
props
.
StartTime
}}
/
{{
props
.
EndTime
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-AssistIcon=
"props"
>
<q-td
auto-width
:props=
"props"
>
...
...
@@ -112,10 +117,16 @@
align
:
'left'
},
{
name
:
'StatusStr'
,
label
:
'状态'
,
name
:
'time'
,
label
:
'排班开始/结束时间'
,
align
:
'left'
,
field
:
'time'
},
{
name
:
'SeatNum'
,
label
:
'座位'
,
align
:
'left'
,
field
:
'S
tatusStr
'
field
:
'S
eatNum
'
},
{
name
:
'UpdateByName'
,
...
...
src/router/routes.js
View file @
6cebe811
...
...
@@ -2,13 +2,13 @@ const routes = [{
path
:
"/"
,
component
:
()
=>
import
(
"pages/user/login.vue"
)
},
{
},
{
path
:
"/login"
,
component
:
()
=>
import
(
"pages/user/login.vue"
)
},
{
},
{
path
:
"/home"
,
component
:
()
=>
import
(
"layouts/MainLayout.vue"
),
...
...
@@ -738,69 +738,80 @@ const routes = [{
path
:
"/test"
,
//API测试
component
:
()
=>
import
(
"pages/test.vue"
)
}
]
},
// Always leave this as last one,
// but you can also remove it
{
path
:
"/c
ontractConfirm"
,
path
:
"/c
lassroom/Scheduling"
,
//教室状态
component
:
()
=>
import
(
"pages/c
ontractConfirm.vue
"
)
import
(
"pages/c
lassroom/Scheduling
"
)
},
{
path
:
"/classroom/useRecord"
,
//教室使用记录
component
:
()
=>
import
(
"pages/classroom/useRecord"
)
},
],
},
// Always leave this as last one,
// but you can also remove it
{
path
:
"/contractConfirm"
,
component
:
()
=>
import
(
"pages/contractConfirm.vue"
)
},
{
path
:
'/contractSign'
,
//合同签名页面
component
:
()
=>
import
(
"pages/contractSign.vue"
)
},
{
},
{
path
:
"/contractPay"
,
component
:
()
=>
import
(
"pages/contractPay.vue"
)
},
//公告预览
{
},
//公告预览
{
path
:
"/noticeView"
,
component
:
()
=>
import
(
"pages/noticeView.vue"
)
},
{
},
{
path
:
"/contractView"
,
component
:
()
=>
import
(
"pages/contractView.vue"
)
},
{
},
{
path
:
"/financial/financalDocument/PrintPage"
,
//财务单据打印
component
:
()
=>
import
(
"pages/financial/financalDocument/PrintPage.vue"
)
},
{
},
{
path
:
"/financial/financalDocument/PrintPageN"
,
//财务凭证打印
component
:
()
=>
import
(
"pages/financial/financalDocument/PrintPageN.vue"
)
},
{
},
{
path
:
'/AssetsShenpi'
,
//资产管理审批
name
:
'AssetsShenpi'
,
component
:
()
=>
import
(
'pages/administration/AssetsSystem/AssetsShenpi'
),
meta
:
{
title
:
'资产管理'
},
},
{
},
{
path
:
'/RequisitionShenpi'
,
//资产管理审批
name
:
'RequisitionShenpi'
,
component
:
()
=>
import
(
'pages/administration/AssetsSystem/RequisitionShenpi'
),
meta
:
{
title
:
'资产管理'
},
},
},
{
{
path
:
"*"
,
component
:
()
=>
import
(
"pages/Error404.vue"
)
}
}
];
export
default
routes
;
src/utils/erpindex.js
View file @
6cebe811
...
...
@@ -85,10 +85,10 @@ export default {
let
locationName
=
window
.
location
.
hostname
;
if
(
locationName
.
indexOf
(
'testerp.oytour'
)
!==
-
1
)
{
domainUrl
=
"http://testapi.oytour.com"
;
viewFileUrl
=
"http://upload.oytour.com"
;
viewFileUrl
=
"http://upload.oytour.com"
;
}
else
if
(
locationName
.
indexOf
(
'oytour'
)
!==
-
1
)
{
domainUrl
=
"http://reborn.oytour.com"
;
viewFileUrl
=
"http://upload.oytour.com"
;
viewFileUrl
=
"http://upload.oytour.com"
;
}
var
obj
=
{
//主地址
...
...
@@ -102,7 +102,7 @@ export default {
//本站文件流下载地址
LocalFileStreamDownLoadUrl
:
domainUrl
+
"/api/file/GetFileFromWebApi"
,
//文件预览地址
ViewFileUrl
:
viewFileUrl
ViewFileUrl
:
viewFileUrl
};
return
obj
;
},
...
...
@@ -143,7 +143,7 @@ export default {
document
.
body
.
appendChild
(
link
);
link
.
click
();
successCall
(
res
);
}).
catch
(
function
(
res
)
{});
}).
catch
(
function
(
res
)
{
});
},
//HTTP提交数据
...
...
src/utils/url.js
View file @
6cebe811
export
let
url_jump_zc
=
"http://zcedu.oytour.com/"
export
let
url_jump_zc
=
"http://zcedu.oytour.com/"
// export let UploadUrl
=
"http://192.168.20.214:8120"//上传文件到本地服务器
export
let
UploadUrl
=
"http://uploadfile.oytour.com"
// export let UploadUrl
=
"http://192.168.20.214:8120"//上传文件到本地服务器
export
let
UploadUrl
=
"http://uploadfile.oytour.com"
// export let ViittoFileUrl="http://192.168.20.214:8120"//文件站点
export
let
ViittoFileUrl
=
"http://staticfile.oytour.com"
export
let
ViittoFileUrl
=
"http://staticfile.oytour.com"
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