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
7c63fbad
Commit
7c63fbad
authored
Jul 27, 2021
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
fe54bdd9
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
1052 additions
and
1497 deletions
+1052
-1497
changeClassForm.vue
src/components/teacher/changeClassForm.vue
+1001
-1447
stuClassManage.vue
src/pages/stuMan/stuClassManage.vue
+51
-50
No files found.
src/components/teacher/changeClassForm.vue
View file @
7c63fbad
<
style
>
.common_Style
{
.common_Style
{
display
:
inline-block
;
width
:
30px
;
height
:
30px
;
border-radius
:
50%
;
text-align
:
center
;
line-height
:
30px
;
}
}
.classForm_monday
{
.classForm_monday
{
background-color
:
#ced9f8
;
color
:
#2961fe
;
}
}
.classForm_tuesday
{
.classForm_tuesday
{
background-color
:
#d9f3ff
;
color
:
#3fc4ff
;
}
}
.classForm_wednesday
{
.classForm_wednesday
{
background-color
:
#f6e2cb
;
color
:
#f28c1d
;
}
}
.classForm_thursday
{
.classForm_thursday
{
background-color
:
#ccf3eb
;
color
:
#02c499
;
}
}
.classForm_friday
{
.classForm_friday
{
background-color
:
#f7cfd6
;
color
:
#f72e52
;
}
}
.classForm_saturday
{
.classForm_saturday
{
background-color
:
#fff5cc
;
color
:
#ffcc00
;
}
}
.classForm_sunday
{
.classForm_sunday
{
background-color
:
#e6e3fe
;
color
:
#8175fb
;
}
}
.planTimeLi
tbody
::before
{
.planTimeLi
tbody
::before
{
content
:
""
;
display
:
table-row
;
height
:
20px
;
}
._font_size12
{
}
._font_size12
{
font-size
:
12px
!important
;
}
}
._addUpload_box
{
._addUpload_box
{
display
:
block
;
margin-top
:
15px
;
}
}
._addUpload_box
img
{
._addUpload_box
img
{
width
:
100%
;
}
}
._addUpload_box
>
div
{
._addUpload_box
>
div
{
float
:
left
;
width
:
138px
;
height
:
92px
;
...
...
@@ -72,21 +73,21 @@
padding
:
5px
;
margin-right
:
10px
;
position
:
relative
;
}
}
._addUpload_box
>
div
:hover
{
._addUpload_box
>
div
:hover
{
background-color
:
#f5f5f5
;
}
}
._addFile_name
{
._addFile_name
{
padding-left
:
15px
;
max-width
:
450px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
}
._addUpload_box
.icon-guanbi1
{
._addUpload_box
.icon-guanbi1
{
font-size
:
12px
;
color
:
white
;
display
:
inline-block
;
...
...
@@ -100,29 +101,31 @@
width
:
20px
;
text-align
:
center
;
line-height
:
20px
;
}
}
._addUpload_box
.icon-guanbi1
:hover
{
._addUpload_box
.icon-guanbi1
:hover
{
font-size
:
12px
;
color
:
#c94052
;
}
}
._addUpload_box
.icon-excel
,
._addUpload_box
.icon-pdf
,
._addUpload_box
.icon-txt
,
._addUpload_box
.icon-wenjian
,
._addUpload_box
.icon-yasuobao
,
._addUpload_box
.icon-shipin
,
._addUpload_box
.icon-word
{
._addUpload_box
.icon-excel
,
._addUpload_box
.icon-pdf
,
._addUpload_box
.icon-txt
,
._addUpload_box
.icon-wenjian
,
._addUpload_box
.icon-yasuobao
,
._addUpload_box
.icon-shipin
,
._addUpload_box
.icon-word
{
text-align
:
center
;
font-size
:
38px
;
color
:
green
;
line-height
:
75px
;
}
._addUpload_box
.icon-yasuobao
{
}
._addUpload_box
.icon-yasuobao
{
color
:
gray
;
}
._show_img_box
{
}
._show_img_box
{
position
:
fixed
;
background
:
rgba
(
0
,
0
,
0
,
0.6
);
left
:
0
;
...
...
@@ -131,104 +134,58 @@
height
:
100vh
;
z-index
:
999
;
text-align
:
center
;
}
}
._addUpload_tips
{
._addUpload_tips
{
font-size
:
12px
;
color
:
#999999
;
}
}
._jump_page
{
._jump_page
{
cursor
:
pointer
;
text-decoration
:
underline
;
}
}
._jump_page
:hover
{
._jump_page
:hover
{
color
:
#c94052
;
}
.stop
.el-upload-dragger
{
}
.stop
.el-upload-dragger
{
font-size
:
28px
;
color
:
#8c939d
;
width
:
126px
;
height
:
80px
;
line-height
:
41px
;
text-align
:
center
;
}
}
</
style
>
<
template
>
<q-dialog
v-model=
"persistent"
content-class=
"bg-grey-1"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<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"
class=
"stop"
>
<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"
>
<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
filled
stack-label
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=
"
{
<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
filled
stack-label
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>
...
...
@@ -239,20 +196,9 @@
</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"
/>
<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"
>
...
...
@@ -260,33 +206,17 @@
</div>
<div
class=
"row items-center"
>
<div
class=
"text-grey-6"
>
变更范围:
</div>
<q-radio
size=
"xs"
v-model=
"msg.MoveType"
val=
"1"
label=
"单个或多个"
/>
<q-radio
size=
"xs"
v-model=
"msg.MoveType"
val=
"1"
label=
"单个或多个"
/>
<q-radio
size=
"xs"
v-model=
"msg.MoveType"
val=
"2"
label=
"全局"
/>
</div>
</div>
<div
v-if=
"msg.MoveType == '1'"
class=
"row items-center"
>
<div
class=
"col"
>
<q-table
no-data-label=
"暂无相关数据"
flat
style=
"max-height: 300px"
:pagination=
"pages"
class=
"
<q-table
no-data-label=
"暂无相关数据"
flat
style=
"max-height: 300px"
:pagination=
"pages"
class=
"
sticky-column-table sticky-header-column-table
no-bottom-table
"
separator=
"none"
:data=
"currentClass"
:columns=
"msg.ChangeType == 1 ? columns : columns2"
row-key=
"ClassPlanId"
selection=
"multiple"
:selected
.
sync=
"selected"
>
"
separator=
"none"
:data=
"currentClass"
:columns=
"msg.ChangeType == 1 ? columns : columns2"
row-key=
"ClassPlanId"
selection=
"multiple"
:selected
.
sync=
"selected"
>
<
template
v-slot:body-cell-ClassDate=
"props"
>
<q-td
:props=
"props"
>
<div>
{{
props
.
row
.
ClassDate
}}
</div>
...
...
@@ -295,10 +225,7 @@
</
template
>
<
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"
>
<div
v-for=
"(item, index) in props.row.TimeList"
class=
"lessForm_Class"
>
{{
index
+
1
}}
节课
{{
item
.
StartTime
}}
-
{{
item
.
EndTime
}}
...
...
@@ -306,107 +233,51 @@
</q-td>
</
template
>
<
template
v-slot:body-cell-TargetClassDate=
"props"
>
<q-td
auto-width
:props=
"props"
style=
"border-left: 1xp solid #000"
>
<q-td
auto-width
:props=
"props"
style=
"border-left: 1xp solid #000"
>
{{
props
.
row
.
NewPlan
.
ClassDate
}}
<q-popup-edit
v-model=
"props.row.NewPlan.ClassDate"
title=
"变更日期"
persistent
buttons
label-set=
"确认"
label-cancel=
"取消"
>
<el-date-picker
v-model=
"props.row.NewPlan.ClassDate"
type=
"date"
:picker-options=
"pickerOptions"
:clearable=
"false"
value-format=
"yyyy-MM-dd"
placeholder=
"选择日期"
>
<q-popup-edit
v-model=
"props.row.NewPlan.ClassDate"
title=
"变更日期"
persistent
buttons
label-set=
"确认"
label-cancel=
"取消"
>
<el-date-picker
v-model=
"props.row.NewPlan.ClassDate"
type=
"date"
:picker-options=
"pickerOptions"
:clearable=
"false"
value-format=
"yyyy-MM-dd"
placeholder=
"选择日期"
>
</el-date-picker>
</q-popup-edit>
</q-td>
</
template
>
<
template
v-slot:body-cell-TargetTimeList=
"props"
>
<q-td
auto-width
:props=
"props"
>
<div
v-for=
"(item, index) in props.row.NewPlan.TimeList"
class=
"lessForm_Class"
>
<div
v-for=
"(item, index) in props.row.NewPlan.TimeList"
class=
"lessForm_Class"
>
{{
index
+
1
}}
节课
{{
item
.
StartTime
}}
-
{{
item
.
EndTime
}}
</div>
<q-popup-edit
:validate=
"proteinRangeValidation"
persistent
v-model=
"props.row.NewPlan.TimeList"
title=
"变更时间"
buttons
label-set=
"确认"
label-cancel=
"取消"
>
<div
v-for=
"(item, index) in props.row.NewPlan.TimeList"
class=
"q-mb-md row items-center"
style=
"width: 430px"
>
<q-popup-edit
:validate=
"proteinRangeValidation"
persistent
v-model=
"props.row.NewPlan.TimeList"
title=
"变更时间"
buttons
label-set=
"确认"
label-cancel=
"取消"
>
<div
v-for=
"(item, index) in props.row.NewPlan.TimeList"
class=
"q-mb-md row items-center"
style=
"width: 430px"
>
<div
class=
"lessForm_Class col"
>
{{
index
+
1
}}
节课
</div>
<div
class=
"row items-center"
>
<el-time-select
placeholder=
"起始时间"
v-model=
"item.StartTime"
style=
"width: 100px"
:picker-options=
"pickers"
>
<el-time-select
placeholder=
"起始时间"
v-model=
"item.StartTime"
style=
"width: 100px"
:picker-options=
"pickers"
>
</el-time-select>
<el-time-select
placeholder=
"结束时间"
v-model=
"item.EndTime"
style=
"width: 100px; margin-left: 12px"
:picker-options=
"
{
<el-time-select
placeholder=
"结束时间"
v-model=
"item.EndTime"
style=
"width: 100px; margin-left: 12px"
:picker-options=
"
{
start: '09:00',
step: '00:15',
end: '22:30',
minTime: item.StartTime,
}"
>
}">
</el-time-select>
<q-input
filled
v-model=
"item.TimeHour"
size=
"xs"
mask=
"#.#"
fill-mask=
"0.0"
label=
"有效课时"
suffix=
"课时"
style=
"width: 100px; margin-left: 12px"
/>
<q-btn
v-if=
"props.row.NewPlan.TimeList.length > 1"
round
color=
"negative"
class=
"q-ml-md"
size=
"xs"
icon=
"iconfont icon-guanbi1"
@
click=
"removeTime(props.row.NewPlan, index)"
></q-btn>
<q-input
filled
v-model=
"item.TimeHour"
size=
"xs"
mask=
"#.#"
fill-mask=
"0.0"
label=
"有效课时"
suffix=
"课时"
style=
"width: 100px; margin-left: 12px"
/>
<q-btn
v-if=
"props.row.NewPlan.TimeList.length > 1"
round
color=
"negative"
class=
"q-ml-md"
size=
"xs"
icon=
"iconfont icon-guanbi1"
@
click=
"removeTime(props.row.NewPlan, index)"
>
</q-btn>
</div>
</div>
<q-btn
round
color=
"primary"
size=
"xs"
icon=
"iconfont icon-img_haha"
@
click=
"addTime(props.row.NewPlan)"
></q-btn>
<q-btn
round
color=
"primary"
size=
"xs"
icon=
"iconfont icon-img_haha"
@
click=
"addTime(props.row.NewPlan)"
></q-btn>
</q-popup-edit>
</q-td>
</
template
>
...
...
@@ -416,118 +287,49 @@
</div>
<div
v-if=
"msg.ChangeType == 1 && msg.MoveType == 2"
>
<div
class=
"row"
>
<q-input
filled
v-model=
"msg.AllChangePlanItem.OpenTimeStr"
class=
"col-6 q-pr-lg q-pb-lg"
mask=
"date"
label=
"开班时间"
>
<q-input
filled
v-model=
"msg.AllChangePlanItem.OpenTimeStr"
class=
"col-6 q-pr-lg q-pb-lg"
mask=
"date"
label=
"开班时间"
>
<
template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy1"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"msg.AllChangePlanItem.OpenTimeStr"
:options=
"optionsFn"
@
input=
"() => $refs.qDateProxy1.hide()"
/>
<q-popup-proxy
ref=
"qDateProxy1"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"msg.AllChangePlanItem.OpenTimeStr"
:options=
"optionsFn"
@
input=
"() => $refs.qDateProxy1.hide()"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.AllChangePlanItem.ClassStyle"
ref=
"ClassStyle"
:options=
"classSetList"
label=
"排课安排"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
@
input=
"changeClassStyle(msg.AllChangePlanItem.ClassStyle)"
/>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.AllChangePlanItem.ClassStyle"
ref=
"ClassStyle"
:options=
"classSetList"
label=
"排课安排"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
@
input=
"changeClassStyle(msg.AllChangePlanItem.ClassStyle)"
/>
</div>
<div
class=
"row wrap"
v-if=
"msg.AllChangePlanItem.ClassStyle == 1"
>
<div
class=
"col-6"
>
<q-select
filled
stack-label
multiple
option-value=
"value"
option-label=
"label"
v-model=
"checkedDays"
ref=
"ClassStyle"
:options=
"weekList"
label=
"选择周几"
:dense=
"false"
class=
"col-6 q-pr-lg"
emit-value
map-options
>
<
template
v-slot:option=
"{
<q-select
filled
stack-label
multiple
option-value=
"value"
option-label=
"label"
v-model=
"checkedDays"
ref=
"ClassStyle"
:options=
"weekList"
label=
"选择周几"
:dense=
"false"
class=
"col-6 q-pr-lg"
emit-value
map-options
>
<
template
v-slot:option=
"{
itemProps,
itemEvents,
opt,
selected,
toggleOption,
}"
>
}"
>
<q-item
v-bind=
"itemProps"
v-on=
"itemEvents"
>
<q-item-section
avatar
>
<span
v-if=
"opt.icon == 1"
class=
"common_Style classForm_monday"
>
月
</span
>
<span
v-if=
"opt.icon == 2"
class=
"common_Style classForm_tuesday"
>
火
</span
>
<span
v-if=
"opt.icon == 3"
class=
"common_Style classForm_wednesday"
>
水
</span
>
<span
v-if=
"opt.icon == 4"
class=
"common_Style classForm_thursday"
>
木
</span
>
<span
v-if=
"opt.icon == 5"
class=
"common_Style classForm_friday"
>
金
</span
>
<span
v-if=
"opt.icon == 6"
class=
"common_Style classForm_saturday"
>
土
</span
>
<span
v-if=
"opt.icon == 7"
class=
"common_Style classForm_sunday"
>
日
</span
>
<span
v-if=
"opt.icon == 1"
class=
"common_Style classForm_monday"
>
月
</span>
<span
v-if=
"opt.icon == 2"
class=
"common_Style classForm_tuesday"
>
火
</span>
<span
v-if=
"opt.icon == 3"
class=
"common_Style classForm_wednesday"
>
水
</span>
<span
v-if=
"opt.icon == 4"
class=
"common_Style classForm_thursday"
>
木
</span>
<span
v-if=
"opt.icon == 5"
class=
"common_Style classForm_friday"
>
金
</span>
<span
v-if=
"opt.icon == 6"
class=
"common_Style classForm_saturday"
>
土
</span>
<span
v-if=
"opt.icon == 7"
class=
"common_Style classForm_sunday"
>
日
</span>
</q-item-section>
<q-item-section>
<q-item-label
v-html=
"opt.label"
/>
</q-item-section>
<q-item-section
side
>
<i
style=
"color: #2961fe"
v-if=
"selected"
class=
"iconfont icon-chenggong"
></i>
<i
style=
"color: #2961fe"
v-if=
"selected"
class=
"iconfont icon-chenggong"
></i>
</q-item-section>
</q-item>
</
template
>
...
...
@@ -535,53 +337,25 @@
</div>
</div>
<div
class=
"row wrap"
v-if=
"msg.AllChangePlanItem.ClassStyle == 2"
>
<q-select
filled
stack-label
multiple
option-value=
"value"
option-label=
"label"
v-model=
"checkedDays"
ref=
"ClassStyle"
:options=
"dayList"
label=
"选择日期"
:dense=
"false"
class=
"col-6 q-pr-lg q-pr-lg"
emit-value
map-options
>
<q-select
filled
stack-label
multiple
option-value=
"value"
option-label=
"label"
v-model=
"checkedDays"
ref=
"ClassStyle"
:options=
"dayList"
label=
"选择日期"
:dense=
"false"
class=
"col-6 q-pr-lg q-pr-lg"
emit-value
map-options
>
</q-select>
</div>
<div
class=
"row wrap"
v-if=
"msg.AllChangePlanItem.ClassStyle == 3"
>
<div
class=
"col-12"
>
<q-date
v-model=
"checkedDays"
minimal
multiple
style=
"width: 100%"
/>
<q-date
v-model=
"checkedDays"
minimal
multiple
style=
"width: 100%"
/>
</div>
</div>
<div
class=
"row wrap"
style=
"margin: 20px 0"
>
<div
class=
"col-6"
>
学习时段
<q-btn
style=
"margin-left: 30px"
size=
"10px"
@
click=
"addPlan()"
round
color=
"primary"
icon=
"iconfont icon-img_haha"
/>
<q-btn
style=
"margin-left: 30px"
size=
"10px"
@
click=
"addPlan()"
round
color=
"primary"
icon=
"iconfont icon-img_haha"
/>
</div>
</div>
<
template
v-if=
"DefaultPlanTimeList && DefaultPlanTimeList.length > 0"
>
<table
style=
"width: 100%; border-collapse: collapse"
class=
"planTimeLi"
>
<
template
v-if=
"DefaultPlanTimeList && DefaultPlanTimeList.length > 0"
>
<table
style=
"width: 100%; border-collapse: collapse"
class=
"planTimeLi"
>
<thead>
<tr>
<th>
日期/周
</th>
...
...
@@ -590,64 +364,26 @@
<th>
操作
</th>
</tr>
</thead>
<tbody
v-for=
"(nItem, nIndex) in DefaultPlanTimeList"
:key=
"nIndex + 10000"
>
<tbody
v-for=
"(nItem, nIndex) in DefaultPlanTimeList"
:key=
"nIndex + 10000"
>
<tr
v-for=
"(sItem, sIndex) in nItem.TimeList"
>
<td
:rowspan=
"nItem.TimeList.length"
v-if=
"sIndex == 0"
style=
"position: relative"
>
<q-select
filled
style=
"width: 220px"
stack-label
multiple
v-model=
"nItem.DateList"
ref=
"DateList"
:options=
"checkedDays"
:label=
"
<td
:rowspan=
"nItem.TimeList.length"
v-if=
"sIndex == 0"
style=
"position: relative"
>
<q-select
filled
style=
"width: 220px"
stack-label
multiple
v-model=
"nItem.DateList"
ref=
"DateList"
:options=
"checkedDays"
:label=
"
msg.AllChangePlanItem.ClassStyle == 1
? '选择周几'
: '选择日期'
"
:dense=
"false"
class=
"col-6"
emit-value
map-options
clearable
>
"
:dense=
"false"
class=
"col-6"
emit-value
map-options
clearable
>
</q-select>
<a
@
click=
"deletePlan(nIndex)"
style=
"color: blue; cursor: pointer; position: absolute"
>
删除
</a
>
<a
@
click=
"deletePlan(nIndex)"
style=
"color: blue; cursor: pointer; position: absolute"
>
删除
</a>
</td>
<td>
<q-input
filled
v-model=
"sItem.StartTime"
class=
"col-6 q-pl-lg"
placeholder=
"开始时间"
mask=
"time"
>
<q-input
filled
v-model=
"sItem.StartTime"
class=
"col-6 q-pl-lg"
placeholder=
"开始时间"
mask=
"time"
>
<template
v-slot:append
>
<q-icon
name=
"access_time"
class=
"cursor-pointer"
>
<q-popup-proxy
transition-show=
"scale"
transition-hide=
"scale"
>
<q-popup-proxy
transition-show=
"scale"
transition-hide=
"scale"
>
<q-time
v-model=
"sItem.StartTime"
>
<div
class=
"row items-center justify-end"
>
<q-btn
v-close-popup
label=
"确定"
color=
"primary"
flat
/>
<q-btn
v-close-popup
label=
"确定"
color=
"primary"
flat
/>
</div>
</q-time>
</q-popup-proxy>
...
...
@@ -656,27 +392,13 @@
</q-input>
</td>
<td>
<q-input
filled
v-model=
"sItem.EndTime"
class=
"col-6 q-pr-lg"
placeholder=
"结束时间"
mask=
"time"
>
<q-input
filled
v-model=
"sItem.EndTime"
class=
"col-6 q-pr-lg"
placeholder=
"结束时间"
mask=
"time"
>
<
template
v-slot:append
>
<q-icon
name=
"access_time"
class=
"cursor-pointer"
>
<q-popup-proxy
transition-show=
"scale"
transition-hide=
"scale"
>
<q-popup-proxy
transition-show=
"scale"
transition-hide=
"scale"
>
<q-time
v-model=
"sItem.EndTime"
>
<div
class=
"row items-center justify-end"
>
<q-btn
v-close-popup
label=
"确定"
color=
"primary"
flat
/>
<q-btn
v-close-popup
label=
"确定"
color=
"primary"
flat
/>
</div>
</q-time>
</q-popup-proxy>
...
...
@@ -685,34 +407,15 @@
</q-input>
</td>
<td>
<q-input
filled
stack-label
maxlength=
"20"
v-model=
"sItem.TimeHour"
@
keyup
.
native=
"checkPrice(sItem, 'TimeHour')"
:dense=
"false"
class=
"col-6 q-pr-lg"
label=
"消耗课时"
/>
<q-input
filled
stack-label
maxlength=
"20"
v-model=
"sItem.TimeHour"
@
keyup
.
native=
"checkPrice(sItem, 'TimeHour')"
:dense=
"false"
class=
"col-6 q-pr-lg"
label=
"消耗课时"
/>
</td>
<td>
<q-btn
size=
"10px"
v-if=
"sIndex == 0"
@
click=
"addPlanTime(nItem)"
round
color=
"primary"
icon=
"iconfont icon-img_haha"
/>
<q-btn
v-if=
"sIndex > 0"
size=
"10px"
@
click=
"deletePlanTime(nItem, sIndex)"
round
color=
"red"
icon=
"iconfont icon-guanbi1"
/>
<q-btn
size=
"10px"
v-if=
"sIndex == 0"
@
click=
"addPlanTime(nItem)"
round
color=
"primary"
icon=
"iconfont icon-img_haha"
/>
<q-btn
v-if=
"sIndex > 0"
size=
"10px"
@
click=
"deletePlanTime(nItem, sIndex)"
round
color=
"red"
icon=
"iconfont icon-guanbi1"
/>
</td>
</tr>
</tbody>
...
...
@@ -720,65 +423,33 @@
</template>
<div
class=
"row wrap"
style=
"margin-top: 30px; display: none"
>
<div
class=
"col-6"
>
<q-input
filled
stack-label
maxlength=
"6"
v-model=
"msg.AllChangePlanItem.ClassHours"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"学习课时"
@
keyup
.
native=
"
<q-input
filled
stack-label
maxlength=
"6"
v-model=
"msg.AllChangePlanItem.ClassHours"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"学习课时"
@
keyup
.
native=
"
checkInteger(msg.AllChangePlanItem, 'ClassHours')
"
/>
"
/>
</div>
<div
class=
"col-6"
>
<q-select
label=
"课时分钟数"
filled
stack-label
v-model=
"msg.AllChangePlanItem.ClassHourMinute"
:options=
"ClassHourMinuteArray"
option-value=
"Id"
option-label=
"Name"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
>
<q-select
label=
"课时分钟数"
filled
stack-label
v-model=
"msg.AllChangePlanItem.ClassHourMinute"
:options=
"ClassHourMinuteArray"
option-value=
"Id"
option-label=
"Name"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
>
</q-select>
</div>
</div>
</div>
<div
v-if=
"msg.ChangeType == 3"
>
<div
class=
"text-caption q-mb-lg q-px-md text-grey-6 col"
style=
"margin-top: 20px"
>
<div
class=
"text-caption q-mb-lg q-px-md text-grey-6 col"
style=
"margin-top: 20px"
>
目标教室
</div>
<div
class=
"row"
>
<q-select
filled
option-value=
"RoomId"
option-label=
"RoomName"
v-model=
"msg.ClassRoomId"
:options=
"roomList"
emit-value
map-options
label=
"教室"
class=
"col-6 q-pr-lg"
>
<
template
v-slot:option=
"{
<q-select
filled
option-value=
"RoomId"
option-label=
"RoomName"
v-model=
"msg.ClassRoomId"
:options=
"roomList"
emit-value
map-options
label=
"教室"
class=
"col-6 q-pr-lg"
>
<
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.RoomName"
></q-item-label>
...
...
@@ -789,26 +460,13 @@
</q-item>
</
template
>
</q-select>
<q-input
v-if=
"msg.MoveType == '2'"
filled
v-model=
"msg.TakeEffectTime"
class=
"col-6"
mask=
"date"
label=
"生效时间"
>
<q-input
v-if=
"msg.MoveType == '2'"
filled
v-model=
"msg.TakeEffectTime"
class=
"col-6"
mask=
"date"
label=
"生效时间"
>
<
template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy1"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"msg.TakeEffectTime"
:options=
"optionsFn"
@
input=
"() => $refs.qDateProxy1.hide()"
/>
<q-popup-proxy
ref=
"qDateProxy1"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"msg.TakeEffectTime"
:options=
"optionsFn"
@
input=
"() => $refs.qDateProxy1.hide()"
/>
</q-popup-proxy>
</q-icon>
</
template
>
...
...
@@ -816,45 +474,20 @@
</div>
</div>
<div
v-if=
"msg.ChangeType == 2"
>
<div
class=
"text-caption q-mb-lg q-px-md text-grey-6 col"
style=
"margin-top: 20px"
>
<div
class=
"text-caption q-mb-lg q-px-md text-grey-6 col"
style=
"margin-top: 20px"
>
目标老师
</div>
<div
class=
"row"
>
<q-select
filled
option-value=
"TId"
option-label=
"TeacherName"
v-model=
"msg.TeacherId"
:options=
"TeacherList"
emit-value
map-options
label=
"老师"
class=
"col-6 q-pr-lg"
>
<q-select
filled
option-value=
"TId"
option-label=
"TeacherName"
v-model=
"msg.TeacherId"
:options=
"TeacherList"
emit-value
map-options
label=
"老师"
class=
"col-6 q-pr-lg"
>
</q-select>
<q-input
filled
v-if=
"msg.MoveType == '2'"
v-model=
"msg.TakeEffectTime"
class=
"col-6"
mask=
"date"
label=
"生效时间"
>
<q-input
filled
v-if=
"msg.MoveType == '2'"
v-model=
"msg.TakeEffectTime"
class=
"col-6"
mask=
"date"
label=
"生效时间"
>
<
template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy1"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"msg.TakeEffectTime"
:options=
"optionsFn"
@
input=
"() => $refs.qDateProxy1.hide()"
/>
<q-popup-proxy
ref=
"qDateProxy1"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"msg.TakeEffectTime"
:options=
"optionsFn"
@
input=
"() => $refs.qDateProxy1.hide()"
/>
</q-popup-proxy>
</q-icon>
</
template
>
...
...
@@ -862,70 +495,33 @@
</div>
</div>
<div
v-if=
"msg.ChangeType == 4 && msg.MoveType == '2'"
class=
"row"
>
<q-input
filled
v-model=
"msg.TakeEffectTime"
class=
"col-6"
mask=
"date"
label=
"生效时间"
>
<q-input
filled
v-model=
"msg.TakeEffectTime"
class=
"col-6"
mask=
"date"
label=
"生效时间"
>
<
template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy1"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"msg.TakeEffectTime"
:options=
"optionsFn"
@
input=
"() => $refs.qDateProxy1.hide()"
/>
<q-popup-proxy
ref=
"qDateProxy1"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"msg.TakeEffectTime"
:options=
"optionsFn"
@
input=
"() => $refs.qDateProxy1.hide()"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</div>
<q-input
filled
type=
"textarea"
:rows=
"3"
style=
"margin-top: 20px"
stack-label
maxlength=
"2000"
v-model=
"msg.Remarks"
:dense=
"false"
class=
"col-12 q-pb-lg"
label=
"备注"
/>
<q-input
filled
type=
"textarea"
:rows=
"3"
style=
"margin-top: 20px"
stack-label
maxlength=
"2000"
v-model=
"msg.Remarks"
:dense=
"false"
class=
"col-12 q-pb-lg"
label=
"备注"
/>
<div
class=
"row"
>
<div
class=
"col-12 q-mt-md text-grey-6"
>
上传附件:
<span
class=
"fj-tip"
style=
"font-size: 10px; color: #f00"
>
*单文件限制5M内
</span
>
上传附件:
<span
class=
"fj-tip"
style=
"font-size: 10px; color: #f00"
>
*单文件限制5M内
</span>
</div>
<div>
<!-- <p>{{$t('fnc.scfujian')}}<span class="_addUpload_tips">{{$t('tips.wjdxbncgsz')}}</span></p> -->
<div
class=
"_addUpload_box clearfix"
>
<
template
v-for=
"(file, fIndex) in saveMsg"
>
<div
v-if=
"file.Type == 3"
>
<div
style=
"width: 100%; height: 100%; overflow: hidden"
>
<img
:src=
"file.Url ? file.Url : file.Content"
@
click=
"showUpLoadFile(file)"
/>
<img
:src=
"file.Url ? file.Url : file.Content"
@
click=
"showUpLoadFile(file)"
/>
</div>
<span
class=
"iconfont icon-guanbi1"
@
click=
"deleteUploadFile(fIndex)"
></span>
<span
class=
"iconfont icon-guanbi1"
@
click=
"deleteUploadFile(fIndex)"
></span>
</div>
<div
v-if=
"file.Type == 1"
>
<div
class=
"iconfont"
:class=
"
<div
class=
"iconfont"
:class=
"
file.Content.substring(
file.Content.lastIndexOf('.') + 1,
file.Content.length
...
...
@@ -946,53 +542,24 @@
).toUpperCase() == 'DOC'
? 'icon-word'
: 'icon-excel'
"
@
click=
"showUpLoadFile(file)"
></div>
<span
class=
"iconfont icon-guanbi1"
@
click=
"deleteUploadFile(fIndex)"
></span>
"
@
click=
"showUpLoadFile(file)"
></div>
<span
class=
"iconfont icon-guanbi1"
@
click=
"deleteUploadFile(fIndex)"
></span>
</div>
<div
v-if=
"file.Type == 2"
>
<div
class=
"iconfont icon-wenjian"
@
click=
"showUpLoadFile(file)"
></div>
<span
class=
"iconfont icon-guanbi1"
@
click=
"deleteUploadFile(fIndex)"
></span>
<div
class=
"iconfont icon-wenjian"
@
click=
"showUpLoadFile(file)"
></div>
<span
class=
"iconfont icon-guanbi1"
@
click=
"deleteUploadFile(fIndex)"
></span>
</div>
<div
v-if=
"file.Type == 4"
>
<div
class=
"iconfont icon-yasuobao"
@
click=
"showUpLoadFile(file)"
></div>
<span
class=
"iconfont icon-guanbi1"
@
click=
"deleteUploadFile(fIndex)"
></span>
<div
class=
"iconfont icon-yasuobao"
@
click=
"showUpLoadFile(file)"
></div>
<span
class=
"iconfont icon-guanbi1"
@
click=
"deleteUploadFile(fIndex)"
></span>
</div>
<div
v-if=
"file.Type == 5"
>
<div
class=
"iconfont icon-shipin"
@
click=
"showUpLoadFile(file)"
></div>
<span
class=
"iconfont icon-guanbi1"
@
click=
"deleteUploadFile(fIndex)"
></span>
<div
class=
"iconfont icon-shipin"
@
click=
"showUpLoadFile(file)"
></div>
<span
class=
"iconfont icon-guanbi1"
@
click=
"deleteUploadFile(fIndex)"
></span>
</div>
</
template
>
<div
class=
"_pic_upload"
>
<el-upload
drag
:http-request=
"uploadFileBtn"
:multiple=
"true"
:show-file-list=
"false"
action=
""
>
<el-upload
drag
:http-request=
"uploadFileBtn"
:multiple=
"true"
:show-file-list=
"false"
action=
""
>
<i
class=
"el-icon-plus avatar-uploader-icon"
></i>
<div
class=
"el-upload__text"
>
{{ $t("active.ld_djscwj") }}
...
...
@@ -1007,28 +574,12 @@
<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-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>
<div
v-if=
"picIsShow"
class=
"_show_img_box"
@
click=
"(picIsShow = false), (picObj = [])"
>
<div
style=
"
<div
v-if=
"picIsShow"
class=
"_show_img_box"
@
click=
"(picIsShow = false), (picObj = [])"
>
<div
style=
"
position: absolute;
width: 800px;
height: 600px;
...
...
@@ -1036,19 +587,9 @@
top: 50%;
margin-left: -400px;
margin-top: -300px;
"
>
<el-carousel
:initial-index=
"initialIndex"
height=
"600px"
:interval=
"5000"
trigger=
"click"
>
<el-carousel-item
style=
"height: 600px; overflow: auto"
v-for=
"(item, index) in picObj"
:key=
"index"
>
"
>
<el-carousel
:initial-index=
"initialIndex"
height=
"600px"
:interval=
"5000"
trigger=
"click"
>
<el-carousel-item
style=
"height: 600px; overflow: auto"
v-for=
"(item, index) in picObj"
:key=
"index"
>
<img
:src=
"item"
style=
""
/>
</el-carousel-item>
</el-carousel>
...
...
@@ -1059,22 +600,26 @@
</template>
<
script
>
import
{
import
{
getClassDropDownList
,
getSchoolDropdown
,
queryClassRoomPage
,
getTeacherDropDownList
,
SetChangeClassPlan
,
}
from
"../../api/school/index"
;
import
{
queryCourseDropdownList
}
from
"../../api/course/index"
;
import
{
UploadSelfFile
}
from
"../../api/common/common"
;
import
Lockr
from
"lockr"
;
export
default
{
}
from
"../../api/school/index"
;
import
{
queryCourseDropdownList
}
from
"../../api/course/index"
;
import
{
UploadSelfFile
}
from
"../../api/common/common"
;
import
Lockr
from
"lockr"
;
export
default
{
props
:
{
ClassId
:
{
type
:
Number
,
setingObj
:
{
type
:
Object
,
default
:
null
},
}
},
data
()
{
return
{
...
...
@@ -1096,7 +641,6 @@ export default {
step
:
"00:15"
,
end
:
"22:30"
,
},
thumbStyle
:
{
right
:
"2px"
,
borderRadius
:
"5px"
,
...
...
@@ -1142,8 +686,7 @@ export default {
IsQuerySurplusPlan
:
1
,
},
currentClass
:
[],
columns2
:
[
{
columns2
:
[{
name
:
"RoomName"
,
label
:
"教室名称"
,
field
:
"RoomName"
,
...
...
@@ -1168,8 +711,7 @@ export default {
align
:
"left"
,
},
],
columns
:
[
{
columns
:
[{
name
:
"RoomName"
,
label
:
"教室名称"
,
field
:
"RoomName"
,
...
...
@@ -1206,8 +748,7 @@ export default {
align
:
"left"
,
},
],
changeType
:
[
{
changeType
:
[{
Id
:
1
,
Name
:
"课程时间"
,
},
...
...
@@ -1224,8 +765,7 @@ export default {
Name
:
"取消上课"
,
},
],
classSetList
:
[
{
classSetList
:
[{
Name
:
"按周排课"
,
Id
:
1
,
},
...
...
@@ -1242,8 +782,7 @@ export default {
//选中日期/星期
checkedDays
:
[],
//周几
weekList
:
[
{
weekList
:
[{
label
:
"周一"
,
value
:
"1"
,
icon
:
1
,
...
...
@@ -1282,8 +821,7 @@ export default {
dayList
:
[],
//日期数组1-31
//默认上课时间数组
DefaultPlanTimeList
:
[],
ClassHourMinuteArray
:
[
{
ClassHourMinuteArray
:
[{
Id
:
45
,
Name
:
45
,
},
...
...
@@ -1292,7 +830,6 @@ export default {
Name
:
60
,
},
],
classSetMsg
:
{
OpenTime
:
""
,
//开班时间
ClassStyle
:
1
,
//排课方式(1-周,2-月,3-固定日期,4-约课)
...
...
@@ -1305,18 +842,30 @@ export default {
initialIndex
:
0
,
};
},
mounted
()
{
let
u
=
Lockr
.
get
(
"loginUserInfo"
);
if
(
u
)
{
this
.
queryClass
.
Teacher_Id
=
u
.
AccountId
;
created
()
{
if
(
this
.
setingObj
)
{
if
(
this
.
setingObj
.
CouseId
)
{
this
.
msg
.
CouseId
=
this
.
setingObj
.
CouseId
;
this
.
queryClass
.
CourseId
=
this
.
setingObj
.
CouseId
;
}
if
(
this
.
setingObj
.
ClassId
)
{
this
.
msg
.
ClassId
=
this
.
setingObj
.
ClassId
;
}
if
(
this
.
setingObj
.
School_Id
)
{
this
.
msg
.
SchoolId
=
this
.
setingObj
.
School_Id
;
}
if
(
this
.
ClassId
){
this
.
msg
.
ClassId
=
this
.
ClassId
;
}
this
.
getClass
();
this
.
getSchool
();
this
.
getCourseList
();
},
mounted
()
{
let
u
=
Lockr
.
get
(
"loginUserInfo"
);
if
(
this
.
setingObj
&&
this
.
setingObj
.
Teacher_Id
)
{
this
.
queryClass
.
Teacher_Id
=
this
.
setingObj
.
Teacher_Id
;
}
else
if
(
u
)
{
this
.
queryClass
.
Teacher_Id
=
u
.
AccountId
;
}
this
.
getClass
(
0
);
this
.
getClassRoomPage
();
this
.
GetTeacherList
();
this
.
initDayList
();
...
...
@@ -1616,16 +1165,18 @@ export default {
},
changeSchool
(
val
)
{
this
.
queryClass
.
SchoolId
=
val
;
this
.
getClass
(
);
this
.
getClass
(
1
);
},
changeCourse
(
val
)
{
this
.
queryClass
.
CourseId
=
val
;
this
.
getClass
(
);
this
.
getClass
(
1
);
},
getClass
(
)
{
getClass
(
isClear
)
{
getClassDropDownList
(
this
.
queryClass
).
then
((
res
)
=>
{
this
.
classList
=
[];
if
(
isClear
==
1
)
{
this
.
msg
.
ClassId
=
0
;
}
if
(
res
.
Code
==
1
)
{
res
.
Data
.
forEach
((
x
)
=>
{
x
.
PlanList
.
forEach
((
y
)
=>
{
...
...
@@ -1639,6 +1190,11 @@ export default {
ClassId
:
0
,
};
this
.
classList
.
unshift
(
obj
);
if
(
this
.
msg
.
ClassId
>
0
&&
isClear
==
0
)
{
this
.
currentClass
=
this
.
classList
.
find
((
x
)
=>
{
return
x
.
ClassId
==
this
.
msg
.
ClassId
;
}).
PlanList
;
}
}
});
},
...
...
@@ -1686,13 +1242,11 @@ export default {
addPlan
()
{
var
planObj
=
{
DateList
:
[],
TimeList
:
[
{
TimeList
:
[{
StartTime
:
""
,
EndTime
:
""
,
TimeHour
:
""
,
},
],
},
],
};
this
.
DefaultPlanTimeList
.
push
(
planObj
);
},
...
...
@@ -1773,8 +1327,7 @@ export default {
return
;
}
// 1 文档 2 数据 3 图片
let
typeArr
=
[
{
let
typeArr
=
[{
stringArr
:
"GIF|JPG|JPEG|PNG|BMP|WEBP"
,
type
:
3
,
},
...
...
@@ -1822,7 +1375,8 @@ export default {
);
},
},
};
};
</
script
>
<
style
>
...
...
src/pages/stuMan/stuClassManage.vue
View file @
7c63fbad
...
...
@@ -8,7 +8,7 @@
border
:
1px
solid
#2961FE
;
border-radius
:
50%
;
cursor
:
pointer
;
color
:
#2961FE
;
color
:
#2961FE
;
}
.OCourseTable
{
...
...
@@ -24,15 +24,19 @@
height
:
40px
;
background-color
:
rgb
(
238
,
238
,
239
);
}
.redStuStyle
{
color
:
red
;
.redStuStyle
{
color
:
red
;
}
.blaStuStyle
{
color
:
#000
;
.blaStuStyle
{
color
:
#000
;
}
.classProgress
{
color
:
var
(
--q-color-primary
);
}
</
style
>
<
template
>
<div
class=
"page-body"
>
...
...
@@ -43,8 +47,8 @@
label=
"班级名称"
@
clear=
"getClassList"
maxlength=
"20"
/>
</div>
<div
class=
"col-3"
>
<q-input
@
change=
"getClassList"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ClassNo"
label=
"班号"
@
clear=
"getClassList"
maxlength=
"20"
/>
<q-input
@
change=
"getClassList"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ClassNo"
label=
"班号"
@
clear=
"getClassList"
maxlength=
"20"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"getClassList"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
...
...
@@ -85,7 +89,7 @@
<div
style=
"display: flex;align-items: center;"
>
<q-avatar
size=
"md"
style=
"background:#d4dfff;color:#2961FE;font-weight:bold;"
v-if=
"props.row.ClassName"
>
{{
GetFirst
(
props
.
row
.
ClassName
)
}}
</q-avatar>
<div
>
<div
>
<span
style=
"color:#2961FE;margin-left:10px;cursor:pointer;"
@
click=
"getClassInfo(props.row)"
title=
"点击查看详情"
>
{{
props
.
row
.
ClassName
}}
</span>
<div
style=
"margin-left: 10px;"
>
{{
props
.
row
.
ClassNo
}}
</div>
...
...
@@ -111,7 +115,8 @@
<th>
课程名称
</th>
<th>
课时数
</th>
</tr>
<tr
v-for=
"(sItem,sIndex) in props.row.OtherCourseList"
style=
"border-bottom:1px dashed #d1d1d1;"
>
<tr
v-for=
"(sItem,sIndex) in props.row.OtherCourseList"
style=
"border-bottom:1px dashed #d1d1d1;"
>
<td>
{{
sItem
.
CourseName
}}
</td>
<td>
{{
sItem
.
ClassHours
}}
</td>
</tr>
...
...
@@ -138,13 +143,14 @@
</template>
<
template
v-slot:body-cell-ClassPersion=
"props"
>
<q-td
auto-width
:props=
"props"
>
<span
:class=
"
{'redStuStyle':props.row.ClassPersion>props.row.OrderStudentCount,'blaStuStyle':props.row.ClassPersion==props.row.OrderStudentCount}"
>
{{
props
.
row
.
ClassPersion
}}
-
{{
props
.
row
.
OrderStudentCount
}}
</span>
<span
:class=
"
{'redStuStyle':props.row.ClassPersion>props.row.OrderStudentCount,'blaStuStyle':props.row.ClassPersion==props.row.OrderStudentCount}"
>
{{
props
.
row
.
ClassPersion
}}
-
{{
props
.
row
.
OrderStudentCount
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-CompleteProgress=
"props"
>
<q-td
auto-width
:props=
"props"
>
<span
:class=
"
{'classProgress':props.row.UsePlanNum
<props
.
row
.
TotalPlanNum
,'
blaStuStyle
'
:props
.
row
.
UsePlanNum=
=props.row.TotalPlanNum}"
>
{{
props
.
row
.
UsePlanNum
}}
/
{{
props
.
row
.
TotalPlanNum
}}
</span>
<span
:class=
"
{'classProgress':props.row.UsePlanNum
<props
.
row
.
TotalPlanNum
,'
blaStuStyle
'
:props
.
row
.
UsePlanNum=
=props.row.TotalPlanNum}"
>
{{
props
.
row
.
UsePlanNum
}}
/
{{
props
.
row
.
TotalPlanNum
}}
</span>
</q-td>
</
template
>
<
template
v-slot:bottom
>
...
...
@@ -153,8 +159,8 @@
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<q-btn
v-if=
"props.row.ClassStatus==1"
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"EditCourse(props.row)"
/>
<q-btn
v-if=
"props.row.ClassStatus==1"
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"EditCourse(props.row)"
/>
<q-btn-dropdown
flat
size=
"xs"
color=
"dark"
label=
"更多"
style=
"margin-left:10px;"
>
<q-list>
<q-item
clickable
v-close-popup
@
click=
"gotoOrder(props.row)"
>
...
...
@@ -187,17 +193,17 @@
<q-item-label>
月度课耗
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
@
click
.
stop=
"getClassItem(props.row)"
>
<q-item
clickable
v-close-popup
v-if=
"props.row.ClassStatus!=3"
@
click
.
stop=
"getClassItem(props.row)"
>
<q-item-section>
<q-item-label>
状态变更
</q-item-label>
</q-item-section>
</q-item>
<
!--
<
q-item
clickable
v-close-popup
@
click
.
stop=
"getStudent(props.row.ClassId)"
>
<q-item
clickable
v-close-popup
@
click
.
stop=
"getStudent(props.row.ClassId)"
>
<q-item-section>
<q-item-label>
未完成学员名单
</q-item-label>
</q-item-section>
</q-item>
-->
<q-item
v-if=
"props.row.ClassStatus!=3"
clickable
v-close-popup
@
click=
"classApply(props.row
.ClassId
)"
>
</q-item>
<q-item
v-if=
"props.row.ClassStatus!=3"
clickable
v-close-popup
@
click=
"classApply(props.row)"
>
<q-item-section>
<q-item-label>
调课申请
</q-item-label>
</q-item-section>
...
...
@@ -217,8 +223,8 @@
</othercourseForm>
<changestatusForm
v-if=
"isShowStatusChange"
:seting-obj=
"classObjOption"
@
close=
"closeClassSaveForm"
@
success=
"refreshPage"
></changestatusForm>
<change-class-form
v-if=
"isShowTiaoke"
:
ClassId=
"commonClassId"
@
close=
"closeClassSaveForm"
@
success=
"refreshPage"
></change-class-form>
<change-class-form
v-if=
"isShowTiaoke"
:
seting-obj=
"classObjOption"
@
close=
"closeClassSaveForm"
@
success=
"refreshPage"
></change-class-form>
</div>
</div>
</template>
...
...
@@ -335,7 +341,7 @@
TeacherName
:
''
,
//带班老师
CourseName
:
''
,
//学习课程
School_Id
:
-
1
,
//关联校区
ClassNo
:
''
,
//班号
ClassNo
:
''
,
//班号
},
//班级状态
classStatusList
:
[],
...
...
@@ -346,10 +352,9 @@
isShowClassForm
:
false
,
//是否显示新增修改弹窗
isShowClassInfo
:
false
,
//是否显示课程信息
IsShowOtherCourse
:
false
,
//是否显示其他课程
TeacherList
:[],
isShowStatusChange
:
false
,
isShowTiaoke
:
false
,
commonClassId
:
0
TeacherList
:
[],
isShowStatusChange
:
false
,
//是否显示修改状态弹窗
isShowTiaoke
:
false
,
//是否显示调课申请
}
},
created
()
{
...
...
@@ -416,22 +421,17 @@
this
.
isShowStatusChange
=
true
;
},
gotoOrder
(
item
)
{
var
tempStr
=
'/course/classorder?ClassId='
+
item
.
ClassId
;
this
.
$router
.
push
({
path
:
tempStr
this
.
OpenNewUrl
(
'/course/classorder'
,
{
ClassId
:
item
.
ClassId
,
});
},
//跳转到收支明细
goPayment
(
item
)
{
this
.
$router
.
push
({
path
:
'paymentDetail'
,
query
:
{
this
.
OpenNewUrl
(
'/course/paymentDetail'
,
{
ClassId
:
item
.
ClassId
,
School_Id
:
item
.
School_Id
,
ClassName
:
encodeURI
(
item
.
ClassName
),
blank
:
'y'
}
})
});
},
//获取校区列表
getSchool
()
{
...
...
@@ -453,7 +453,7 @@
getClassStatus
(
status
)
{
queryClassStatusList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
classStatusList
=
res
.
Data
;
this
.
classStatusList
=
res
.
Data
;
}
}).
catch
(()
=>
{})
},
...
...
@@ -515,16 +515,16 @@
this
.
classObjOption
=
obj
;
this
.
isShowClassInfo
=
true
;
},
gomonthLessonCost
(
row
){
gomonthLessonCost
(
row
)
{
let
ClassName
=
encodeURI
(
row
.
ClassName
)
this
.
OpenNewUrl
(
'/course/monthLessonCost'
,
{
this
.
OpenNewUrl
(
'/course/monthLessonCost'
,
{
ClassId
:
row
.
ClassId
,
ClassName
:
ClassName
,
});
},
//跳转到课程大纲
goChapter
(
CouseId
){
this
.
OpenNewUrl
(
'/course/chapter'
,
{
goChapter
(
CouseId
)
{
this
.
OpenNewUrl
(
'/course/chapter'
,
{
CourseId
:
CouseId
});
},
...
...
@@ -541,8 +541,9 @@
})
},
//调课申请
classApply
(
ClassId
){
this
.
commonClassId
=
ClassId
;
classApply
(
item
)
{
this
.
classObjOption
=
item
;
this
.
isShowTiaoke
=
true
;
}
}
...
...
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