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
40add874
Commit
40add874
authored
Jun 10, 2021
by
黄奎
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
parents
b89414d0
6cebe811
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 @
40add874
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 @
40add874
618 Bytes
src/assets/images/classroom/warning.png
0 → 100644
View file @
40add874
599 Bytes
src/components/sale/addSuppliesStockOut-from.vue
View file @
40add874
...
...
@@ -204,7 +204,7 @@
<
script
>
import
{
import
{
getSchoolDropdown
,
//获取班级下拉列表
getClassPage_ck
}
from
'../../api/school/index'
;
//获取校区列表
...
...
src/components/school/classroom/classroom-form.vue
View file @
40add874
...
...
@@ -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 @
40add874
<
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 @
40add874
<
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 @
40add874
.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 @
40add874
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 @
40add874
<
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 @
40add874
<
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 @
40add874
...
...
@@ -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 @
40add874
...
...
@@ -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 @
40add874
...
...
@@ -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 @
40add874
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