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
59461220
Commit
59461220
authored
Jul 09, 2021
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新功能开发
parent
1a9ee2b4
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
334 additions
and
263 deletions
+334
-263
App.vue
src/App.vue
+1
-1
advertfont.css
src/assets/css/advert/advertfont.css
+0
-258
table.sass
src/assets/css/table.sass
+33
-1
changeClassForm.vue
src/components/teacher/changeClassForm.vue
+281
-0
changeClassManager.vue
src/pages/teacher/changeClassManager.vue
+0
-0
teacherSchedule.vue
src/pages/teacher/teacherSchedule.vue
+13
-2
routes.js
src/router/routes.js
+6
-1
No files found.
src/App.vue
View file @
59461220
...
...
@@ -12,7 +12,7 @@ export default {
<
style
>
@import
url('~assets/css/font.css')
;
@import
url('//at.alicdn.com/t/font_2077629_
cq0udyr5rpk
.css')
;
@import
url('//at.alicdn.com/t/font_2077629_
6so9z0a6plx
.css')
;
.q-scrollarea__thumb
{
z-index
:
999999
!important
;
}
...
...
src/assets/css/advert/advertfont.css
View file @
59461220
@font-face
{
font-family
:
'katongjian'
;
src
:
url('../../webfont/katongjian.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'YGYXSZITI'
;
src
:
url('../../webfont/YGYXSZITI2.0.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'FZYBXSJW'
;
src
:
url('../../webfont/FZYBXSJW.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'fzjzjt'
;
src
:
url('../../webfont/fzjzjt.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'fzmwt'
;
src
:
url('../../webfont/fzmwt.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'fztjlst'
;
src
:
url('../../webfont/fztjlst.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'hyhctj'
;
src
:
url('../../webfont/hyhctj.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'hyqytj'
;
src
:
url('../../webfont/hyqytj.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'hyyltj'
;
src
:
url('../../webfont/hyyltj.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'jlx'
;
src
:
url('../../webfont/jlx.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'sszhjt'
;
src
:
url('../../webfont/sszhjt.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'hybqt'
;
src
:
url('../../webfont/hybqt.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'hyhht'
;
src
:
url('../../webfont/hyhht.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'hylbt'
;
src
:
url('../../webfont/hylbt.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'hxlbjt'
;
src
:
url('../../webfont/hxlbjt.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'hywwzj'
;
src
:
url('../../webfont/hywwzj.ttf')
format
(
'truetype'
)
}
@font-face
{
font-family
:
'pingfang'
;
src
:
url('../../webfont/pingfang.ttf')
format
(
'truetype'
)
}
.adv-box
{
box-sizing
:
border-box
;
position
:
absolute
;
/* overflow-y: auto; */
padding-bottom
:
15px
;
top
:
0px
;
left
:
20px
;
right
:
0
;
bottom
:
0
;
background
:
#f1f1f1
;
}
.adv-box
.board
{
width
:
470px
;
position
:
absolute
;
left
:
0px
;
z-index
:
98
;
top
:
0px
;
-webkit-user-select
:
none
!important
;
overflow
:
hidden
;
}
.adv-box
.board
.bg
{
width
:
470px
;
z-index
:
99
;
-webkit-user-drag
:
none
;
}
.adv-box
.board
.vdr
.text
{
width
:
100%
;
height
:
100%
;
cursor
:
move
;
overflow
:
hidden
;
white-space
:
pre-line
;
}
.adv-box
.board
.vdr
.img
{
max-width
:
100%
;
max-height
:
100%
;
/* width:100%;
height:100%; */
cursor
:
move
;
-webkit-user-drag
:
none
;
}
.adv-box
.board
.vdr.active
{
background
:
rgba
(
0
,
0
,
0
,
.3
)
}
.adv-box
.tools
{
width
:
32px
;
position
:
absolute
;
left
:
480px
;
top
:
0px
;
}
.adv-box
.tools
li
{
height
:
21px
;
width
:
32px
;
text-align
:
center
;
background
:
#e5e5e5
;
cursor
:
pointer
;
border-radius
:
2px
;
margin-bottom
:
12px
;
line-height
:
21px
;
}
.adv-box
.tools
li
:hover
{
background
:
#d8d8d8
!important
}
.adv-box
.tools
li
.save
{
color
:
#fff
;
background
:
#4d90fe
;
}
.adv-box
.tools
li
.save
:hover
{
background
:
#0362fd
!important
;
}
.adv-box
.tools
li
.down
{
color
:
#fff
;
background
:
#35aa47
;
}
.adv-box
.tools
li
.down
:hover
{
background
:
#1d943b
!important
;
}
.adv-box
.tools
li
.return
{
color
:
#fff
;
background
:
#d84a38
;
}
.adv-box
.tools
li
.return
:hover
{
background
:
#bb2413
!important
;
}
.adv-box
.tools
li
.source
{
color
:
#fff
;
background
:
#fc5c65
;
}
.adv-box
.tools
li
.source
:hover
{
background
:
#fc5c65
!important
;
}
.adv-box
.tools
li
i
{
font-size
:
16px
;
color
:
#333
;
}
.adv-box
.tools
li
.save
,
.adv-box
.tools
li
.down
,
.adv-box
.tools
li
.return
,
.adv-box
.tools
li
.source
{
color
:
#f0f0f0
;
font-size
:
12px
;
}
.adv-box
.property-box
{
position
:
absolute
;
left
:
550px
;
top
:
0px
;
width
:
640px
;
right
:
10px
;
overflow
:
hidden
;
}
.adv-box
.property-box
label
{
font-size
:
12px
;
}
.adv-box
.property-box
label
.remark
{
color
:
#999
;
}
.adv-box
.property-box
.el-button
{
padding
:
5px
;
}
.adv-box
.resorece
{
position
:
absolute
;
left
:
532px
;
top
:
0px
;
width
:
120px
;
height
:
120px
;
}
.adv-box
.resorece
img
{
}
.adv-box
.max-resource
{
width
:
470px
;
}
.adv-box
.el-textarea__inner
{
width
:
290px
;
}
.adv-box
.el-slider
{
width
:
290px
;
padding-left
:
9px
;
}
.adv-box
::-webkit-scrollbar
{
width
:
4px
;
height
:
8px
;
}
.adv-box
::-webkit-scrollbar-thumb
{
border-radius
:
4px
;
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
background
:
#c9c9c9
;
}
.adv-box
::-webkit-scrollbar-thumb
{
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
4px
;
background
:
#EDEDED
;
}
.adv-box
.el-input-group__append
,
.adv-box
.el-input-group__prepend
{
padding
:
0
4px
;
border-radius
:
0px
;
}
.adv-box
.el-color-picker__trigger
,
.adv-box
.el-color-picker__color
{
border-radius
:
0px
;
}
.adv-box
.el-color-picker__trigger
{
height
:
34px
;
width
:
34px
;
margin-top
:
4px
;
}
.adv-box
.advmanager-box
.content
{
top
:
80px
;
left
:
0px
;
}
.adv-box
.goon
{
position
:
fixed
;
background
:
rgba
(
235
,
59
,
90
,
.8
);
font-family
:
'PingFangSC-fine'
;
font-size
:
14px
;
width
:
50px
;
height
:
50px
;
border-radius
:
100%
;
color
:
#f1f1f1
;
right
:
10px
;
text-align
:
center
;
line-height
:
50px
;
top
:
220px
;
cursor
:
pointer
;
}
.adv-box
.el-input--mini
.el-input__inner
{
line-height
:
normal
;
}
.adv-box
.el-input-number
{
vertical-align
:
top
;
}
\ No newline at end of file
src/assets/css/table.sass
View file @
59461220
...
...
@@ -110,4 +110,36 @@
top
:
48px
.no-bottom-table
.q-table__bottom
display
:
none
!
important
\ No newline at end of file
display
:
none
!
important
.sticky-header-column-table
td
:first-child
/* bg color is important for td; just specify one */
background-color
:
#c1f4cd
!
important
tr
th
position
:
sticky
/* higher than z-index for td below */
z-index
:
2
/* bg color is important; just specify one */
background
:
#fff
/* this will be the loading indicator */
thead
tr
:last-child
th
/* height of all previous header rows */
top
:
48px
/* highest z-index */
z-index
:
3
thead
tr
:first-child
th
top
:
0
z-index
:
1
tr
:first-child
th
:first-child
/* highest z-index */
z-index
:
3
td
:first-child
z-index
:
1
td
:first-child
,
th
:first-child
position
:
sticky
left
:
0
\ No newline at end of file
src/components/teacher/changeClassForm.vue
0 → 100644
View file @
59461220
<
template
>
<q-dialog
v-model=
"persistent"
content-class=
"bg-grey-1"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"width: 800px;max-width:900px;"
>
<q-card-section>
<div
class=
"text-h6"
>
创建调课申请单
</div>
</q-card-section>
<q-card-section
class=
"q-pt-none"
style=
"height: 70vh"
>
<q-scroll-area
:thumb-style=
"thumbStyle"
:content-style=
"contentStyle"
:content-active-style=
"contentActiveStyle"
class=
"full-width full-height"
>
<div
class=
"text-caption q-mb-lg q-px-md text-grey-6"
>
基本资料
</div>
<div
class=
"row q-col-gutter-lg"
>
<!--
<q-select
filled
stack-label
option-value=
"SId"
option-label=
"SName"
v-model=
"msg.classId"
ref=
"School_Id"
:options=
"schoolList"
label=
"所属校区"
:dense=
"false"
class=
"col-6"
emit-value
map-options
@
input=
"schoolChagne"
/>
-->
<q-select
filled
stack-label
option-value=
"SId"
option-label=
"SName"
v-model=
"msg.SchoolId"
ref=
"School_Id"
:options=
"schoolList"
label=
"校区"
:dense=
"false"
class=
"col-6"
emit-value
map-options
@
input=
"changeSchool"
/>
<q-select
filled
stack-label
option-value=
"CourseId"
option-label=
"CourseName"
v-model=
"msg.CouseId"
ref=
"CouseId"
:options=
"courseList"
label=
"关联课程"
:dense=
"false"
class=
"col-6"
emit-value
map-options
@
input=
"changeCourse"
/>
<q-select
standout=
"bg-dark text-white"
option-value=
"ClassId"
option-label=
"ClassName"
v-model=
"msg.ClassId"
:options=
"classList"
@
input=
"changeClass"
emit-value
map-options
label=
"班级"
class=
"col-6"
>
<template
v-slot:option=
"
{ itemProps, itemEvents, opt, selected, toggleOption }">
<q-item
v-bind=
"itemProps"
v-on=
"itemEvents"
>
<q-item-section>
<q-item-label
v-html=
"opt.ClassName"
></q-item-label>
</q-item-section>
<q-item-section
side
>
<q-item-label
v-html=
"opt.OpenTime"
></q-item-label>
</q-item-section>
</q-item>
</
template
>
</q-select>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.ChangeType"
:options=
"changeType"
label=
"变更类型"
:dense=
"false"
class=
"col-6"
emit-value
map-options
@
input=
"changeTypeResult"
/>
</div>
<div
class=
"row items-center"
>
<div
class=
"text-caption q-my-lg q-px-md text-grey-6 col"
>
变更内容
</div>
<div
class=
"row items-center"
>
<div
class=
"text-grey-6"
>
变更范围:
</div>
<q-radio
size=
"xs"
v-model=
"msg.SettingType"
val=
"1"
label=
"单个或多个"
/>
<q-radio
size=
"xs"
v-model=
"msg.SettingType"
val=
"2"
label=
"全局"
/>
</div>
</div>
<div
v-if=
"msg.SettingType==1"
class=
"row items-center"
>
<div
class=
"col"
>
<q-table
no-data-label=
"暂无相关数据"
flat
style=
"height: 300px;"
class=
"sticky-column-table sticky-header-column-table"
separator=
"none"
:data=
"currentClass"
:columns=
"columns"
row-key=
"name"
>
<
template
v-slot:body-cell-TimeList=
"props"
>
<q-td
auto-width
:props=
"props"
>
<div
v-for=
"(item,index) in props.row.TimeList"
class=
"lessForm_Class"
>
{{
index
+
1
}}
节课
{{
item
.
StartTime
}}
-
{{
item
.
EndTime
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-CheckNum=
"props"
>
<q-td>
<div
v-for=
"(item,index) in props.row.TimeList"
class=
"lessForm_Class"
>
<span
style=
"color:green;"
>
{{
item
.
CheckNum
}}
</span>
/
<span
style=
"color:red;"
>
{{
item
.
NoCheckNum
}}
</span>
</div>
</q-td>
</
template
>
</q-table>
</div>
<div
class=
"col"
>
<q-table
no-data-label=
"暂无相关数据"
flat
style=
"height: 300px;"
class=
"sticky-column-table sticky-header-column-table"
separator=
"none"
:data=
"currentClass"
:columns=
"columns2"
row-key=
"name"
>
<
template
v-slot:body-cell-TimeList=
"props"
>
<q-td
auto-width
:props=
"props"
>
<div
v-for=
"(item,index) in props.row.TimeList"
class=
"lessForm_Class"
>
{{
index
+
1
}}
节课
{{
item
.
StartTime
}}
-
{{
item
.
EndTime
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-CheckNum=
"props"
>
<q-td>
<div
v-for=
"(item,index) in props.row.TimeList"
class=
"lessForm_Class"
>
<span
style=
"color:green;"
>
{{
item
.
CheckNum
}}
</span>
/
<span
style=
"color:red;"
>
{{
item
.
NoCheckNum
}}
</span>
</div>
</q-td>
</
template
>
</q-table>
</div>
</div>
</q-scroll-area>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
label=
"取消"
flat
color=
"grey-10"
style=
"font-weight:400 !important"
@
click=
"closeSaveForm"
/>
<q-btn
label=
"立即提交"
color=
"accent q-px-md"
style=
"font-weight:400 !important"
:loading=
"saveLoading"
@
click=
"save"
/>
</q-card-actions>
</q-card>
</q-dialog>
</template>
<
script
>
import
{
getClassDropDownList
,
getSchoolDropdown
}
from
"../../api/school/index"
;
import
{
queryCourseDropdownList
,
}
from
'../../api/course/index'
import
Lockr
from
'lockr'
export
default
{
data
()
{
return
{
persistent
:
true
,
saveLoading
:
false
,
contentStyle
:
{},
contentActiveStyle
:
{},
thumbStyle
:
{
right
:
'2px'
,
borderRadius
:
'5px'
,
backgroundColor
:
'#027be3'
,
width
:
'5px'
,
opacity
:
0.75
},
msg
:
{
ClassId
:
0
,
SchoolId
:
-
1
,
CouseId
:
0
,
ChangeType
:
1
,
SettingType
:
1
},
classList
:
[],
schoolList
:
[],
courseList
:
[],
queryClass
:
{
CourseId
:
0
,
IsAddDefault
:
1
,
SchoolId
:
-
1
,
Teacher_Id
:
0
,
MoreStatus
:
"1,2"
,
IsQuerySurplusPlan
:
1
},
currentClass
:
[],
columns
:
[{
name
:
'RoomName'
,
label
:
'教室名称'
,
field
:
'RoomName'
,
align
:
'left'
,
},
{
name
:
'ClassDate'
,
label
:
'上课日期'
,
field
:
'ClassDate'
,
align
:
'left'
},
{
name
:
'TeacherName'
,
label
:
'老师'
,
field
:
'TeacherName'
,
align
:
'left'
},
{
name
:
'TimeList'
,
label
:
'上课时间'
,
field
:
'TimeList'
,
align
:
'left'
}
],
columns2
:
[{
name
:
'ClassDate'
,
label
:
'目标日期'
,
field
:
'ClassDate'
,
align
:
'left'
},
{
name
:
'TimeList'
,
label
:
'目标时间'
,
field
:
'TimeList'
,
align
:
'left'
}
],
changeType
:
[{
Id
:
1
,
Name
:
"课程时间"
},
{
Id
:
2
,
Name
:
"老师"
},
{
Id
:
3
,
Name
:
"教室"
},
{
Id
:
4
,
Name
:
"取消上课"
}
]
}
},
mounted
()
{
let
u
=
Lockr
.
get
(
"loginUserInfo"
)
if
(
u
)
{
this
.
queryClass
.
Teacher_Id
=
u
.
AccountId
}
this
.
getClass
()
this
.
getSchool
()
this
.
getCourseList
()
},
methods
:
{
closeSaveForm
()
{
this
.
$emit
(
'close'
)
this
.
persistent
=
false
},
save
()
{
},
changeClass
(
val
)
{
this
.
currentClass
=
this
.
classList
.
find
(
x
=>
{
return
x
.
ClassId
==
val
}).
PlanList
console
.
log
(
this
.
currentClass
)
},
changeTypeResult
(
val
)
{},
changeSchool
(
val
)
{
this
.
queryClass
.
SchoolId
=
val
this
.
getClass
()
},
changeCourse
(
val
)
{
this
.
queryClass
.
CourseId
=
val
this
.
getClass
()
},
getClass
()
{
getClassDropDownList
(
this
.
queryClass
).
then
(
res
=>
{
this
.
classList
=
[];
this
.
msg
.
classId
=
0
if
(
res
.
Code
==
1
)
{
this
.
classList
=
res
.
Data
;
var
obj
=
{
ClassName
:
'请选择'
,
ClassId
:
0
}
this
.
classList
.
unshift
(
obj
);
}
});
},
getSchool
()
{
getSchoolDropdown
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
schoolList
=
res
.
Data
;
var
obj
=
{
SName
:
'请选择'
,
SId
:
-
1
}
this
.
schoolList
.
unshift
(
obj
);
}
})
},
getCourseList
()
{
queryCourseDropdownList
({
IsQPrice
:
1
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
courseList
=
res
.
Data
;
var
obj
=
{
CourseName
:
'请选择'
,
CourseId
:
0
}
this
.
courseList
.
unshift
(
obj
);
}
})
},
},
}
</
script
>
<
style
>
</
style
>
src/pages/teacher/changeClassManager.vue
0 → 100644
View file @
59461220
src/pages/teacher/teacherSchedule.vue
View file @
59461220
...
...
@@ -35,9 +35,11 @@
</div>
<div
class=
"col-2"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
@
click=
"exchangeType"
:label=
"typeName"
/>
<q-btn
color=
"negative"
size=
"sm"
label=
"调课申请"
@
click=
"openForm"
></q-btn>
</div>
</div>
<classmateForm
:dataList=
"dataList"
v-if=
"commonType==1"
></classmateForm>
<change-class-form
v-if=
"persistent"
@
close=
"closeSaveForm"
></change-class-form>
<teachTable
v-if=
"commonType==2"
:tableData=
"tableData"
:PageCount=
"PageCount"
:setMsg=
"tabMsg"
@
getChange=
"getChange"
></teachTable>
</div>
</
template
>
...
...
@@ -53,16 +55,19 @@
}
from
'../../api/teacher/index'
;
import
classmateForm
from
'../teacher/components/classmate-form'
;
import
teachTable
from
'../teacher/components/teachTable'
;
import
changeClassForm
from
'../../components/teacher/changeClassForm.vue'
export
default
{
meta
:
{
title
:
"
上课计划
"
title
:
"
我的课表
"
},
components
:
{
classmateForm
,
teachTable
teachTable
,
changeClassForm
},
data
()
{
return
{
persistent
:
false
,
TeacherList
:
[],
//教师团队
ClassRoomList
:
[],
//
StartTime
:
""
,
...
...
@@ -105,6 +110,12 @@
this
.
getPlanList
();
},
methods
:
{
openForm
()
{
this
.
persistent
=
true
},
closeSaveForm
()
{
this
.
persistent
=
false
},
// 获取校区教室导航列表
getPlanList
()
{
GetClassPlanStatistical
(
this
.
msg
).
then
(
res
=>
{
...
...
src/router/routes.js
View file @
59461220
...
...
@@ -945,10 +945,15 @@ const routes = [{
import
(
"pages/teacher/testdatabase"
)
},
{
path
:
"/teacher/relation-order"
,
//
题库查询
path
:
"/teacher/relation-order"
,
//
关联订单
component
:
()
=>
import
(
"pages/teacher/relationOrder"
)
},
{
path
:
"/teacher/change-class-manager"
,
//关联订单
component
:
()
=>
import
(
"pages/teacher/changeClassManager"
)
},
{
path
:
"/teacher/teachMonthLessonCost"
,
//月度课耗
component
:
()
=>
...
...
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