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
d00862de
Commit
d00862de
authored
Feb 24, 2022
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2
parent
b93a401f
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
759 additions
and
425 deletions
+759
-425
schedu.js
src/api/scheduling/schedu.js
+11
-0
reservelist.vue
src/components/schedul/reservelist.vue
+13
-1
reserveclass-form.vue
src/components/school/student/reserveclass-form.vue
+266
-314
shitingCourseList-form.vue
src/components/school/student/shitingCourseList-form.vue
+369
-0
student-shiting.vue
src/components/school/student/student-shiting.vue
+100
-110
No files found.
src/api/scheduling/schedu.js
View file @
d00862de
...
...
@@ -344,4 +344,15 @@ export function delHolidayPlan(data) {
method
:
'post'
,
data
:
data
})
}
/**
* 获取日期范围 所有排课计划列表
* @param {JSON参数} data
*/
export
function
getToDayCoursePlanList
(
data
)
{
return
request
({
url
:
'/TeacherClass/GetToDayCoursePlanList'
,
method
:
'post'
,
data
:
data
})
}
\ No newline at end of file
src/components/schedul/reservelist.vue
View file @
d00862de
...
...
@@ -39,6 +39,12 @@
{{
props
.
row
.
CreateTimeStr
}}
</q-td>
</
template
>
<
template
v-slot:body-cell-Type=
"props"
>
<q-td
:props=
"props"
>
<span
v-if=
"props.row.ReserveType==0"
>
正常试听
</span>
<span
v-if=
"props.row.ReserveType==1"
>
跟班试听
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-JoinNum=
"props"
>
<q-td
auto-width
:props=
"props"
>
<span
style=
"color:red;cursor:pointer"
...
...
@@ -72,7 +78,7 @@
<q-item-label>
收支明细
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
@
click=
"editVisitor(props.row)"
>
<q-item
clickable
v-close-popup
@
click=
"editVisitor(props.row)"
v-if=
"props.row.ReserveType==0"
>
<q-item-section>
<q-item-label>
修改
</q-item-label>
</q-item-section>
...
...
@@ -176,6 +182,12 @@
align
:
'left'
,
field
:
'ClassContent'
,
},
{
name
:
'Type'
,
label
:
'类型'
,
align
:
'left'
,
field
:
'Type'
,
},
{
name
:
'CreateByName'
,
label
:
'创建人'
,
...
...
src/components/school/student/reserveclass-form.vue
View file @
d00862de
<
style
scoped
>
.Student_Date
.el-input__inner
{
background
:
transparent
!important
;
border
:
0
!important
;
padding-right
:
0
!important
;
}
.Student_Date
.el-input__inner
{
background
:
transparent
!important
;
border
:
0
!important
;
padding-right
:
0
!important
;
}
</
style
>
<
template
>
<div>
<div
class=
"row wrap"
>
<q-btn
label=
"选择试听课"
color=
"accent q-mb-lg"
size=
"sm"
@
click=
"isShowTeacher = true"
/>
<q-btn
label=
"选择试听课"
color=
"accent q-mb-lg"
size=
"sm"
@
click=
"isShowTeacher = true"
/>
</div>
<template
v-if=
"isShowReserve"
>
<div
class=
"row studentDate"
>
<q-field
filled
class=
"col-6 q-pb-lg q-pr-lg"
dense
>
<template
v-slot:control
>
<el-date-picker
v-model=
"addMsg.ClassDate"
ref=
"ClassDate"
:rules=
"[val => !!val || '请选择预约日期']"
style=
"width:225px"
size=
"mini"
type=
"date"
placeholder=
"预约日期"
value-format=
"yyyy-MM-dd"
>
<el-date-picker
v-model=
"addMsg.ClassDate"
ref=
"ClassDate"
:rules=
"[val => !!val || '请选择预约日期']"
style=
"width:225px"
size=
"mini"
type=
"date"
placeholder=
"预约日期"
value-format=
"yyyy-MM-dd"
>
</el-date-picker>
</
template
>
</q-field>
<div
class=
"col-6 q-pr-lg Student_Date "
>
<q-field
filled
class=
"q-pb-lg"
dense
>
<
template
v-slot:control
>
<el-time-select
v-model=
"addMsg.ClassTime"
size=
"mini"
ref=
"ClassTime"
style=
"width:50%"
:picker-options=
"
{
<el-time-select
v-model=
"addMsg.ClassTime"
size=
"mini"
ref=
"ClassTime"
style=
"width:50%"
:picker-options=
"
{
start: '09:00',
step: '00:15',
end: '21:00',
maxTime: addMsg.EndTime
}"
placeholder="预约开始时间"
>
}" placeholder="预约开始时间">
</el-time-select>
<el-time-select
v-model=
"addMsg.EndTime"
size=
"mini"
dense
ref=
"EndTime"
style=
"width:50%"
<el-time-select
v-model=
"addMsg.EndTime"
size=
"mini"
dense
ref=
"EndTime"
style=
"width:50%"
:picker-options=
"
{
start: '09:00',
step: '00:15',
end: '21:00',
minTime: addMsg.ClassTime
}"
placeholder="预约结束时间"
>
}" placeholder="预约结束时间">
</el-time-select>
</
template
>
</q-field>
</div>
</div>
<div
class=
"row wrap"
>
<q-select
filled
stack-label
option-value=
"Name"
dense
option-label=
"Name"
@
input=
"getTeacherChoose(addMsg.ClassContent)"
v-model=
"addMsg.ClassContent"
ref=
"ClassContent"
:options=
"ContentList"
:rules=
"[val => !!val || '请选择主讲内容']"
label=
"主讲内容"
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
<q-select
filled
stack-label
option-value=
"TId"
option-label=
"TeacherName"
v-model=
"addMsg.TeacherId"
ref=
"TeacherId"
:options=
"TeacherList"
label=
"选择教师"
dense
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
<q-select
filled
stack-label
option-value=
"Name"
dense
option-label=
"Name"
@
input=
"getTeacherChoose(addMsg.ClassContent)"
v-model=
"addMsg.ClassContent"
ref=
"ClassContent"
:options=
"ContentList"
:rules=
"[val => !!val || '请选择主讲内容']"
label=
"主讲内容"
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
<q-select
filled
stack-label
option-value=
"TId"
option-label=
"TeacherName"
v-model=
"addMsg.TeacherId"
ref=
"TeacherId"
:options=
"TeacherList"
label=
"选择教师"
dense
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
</div>
<div
class=
"row wrap"
>
<q-select
filled
stack-label
option-value=
"RoomId"
dense
option-label=
"RoomName"
v-model=
"addMsg.ClassRoomId"
ref=
"ClassRoomId"
:options=
"ClassRoomList"
label=
"关联教室"
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
<q-select
filled
stack-label
option-value=
"Id"
dense
option-label=
"LessonName"
v-model=
"addMsg.TrialLessonId"
:options=
"TrialList"
label=
"试听课程"
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
<q-select
filled
stack-label
option-value=
"RoomId"
dense
option-label=
"RoomName"
v-model=
"addMsg.ClassRoomId"
ref=
"ClassRoomId"
:options=
"ClassRoomList"
label=
"关联教室"
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
<q-select
filled
stack-label
option-value=
"Id"
dense
option-label=
"LessonName"
v-model=
"addMsg.TrialLessonId"
:options=
"TrialList"
label=
"试听课程"
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
</div>
<div
class=
"row wrap"
>
<q-field
label=
"类型"
filled
dense
stack-label
class=
"col-6 q-pb-lg q-pr-lg"
v-if=
"addMsg.ReserveType==1"
>
<
template
v-slot:control
>
<div
>
跟班
</div>
</
template
>
</q-field>
<!-- <q-field label="班级" filled dense stack-label class="col-6 q-pb-lg q-pr-lg" v-if="addMsg.ReserveType==1&&showObj.className">
<template v-slot:control>
<div>{{showObj.className}}</div>
</template>
</q-field> -->
<q-field
label=
"课程"
filled
dense
stack-label
class=
"col-6 q-pb-lg q-pr-lg"
v-if=
"addMsg.ReserveType==1&&showObj.courseName"
>
<
template
v-slot:control
>
<div>
{{
showObj
.
courseName
}}
</div>
</
template
>
</q-field>
</div>
<div
class=
"row wrap justify-end q-pr-lg"
style=
"margin-bottom:10px;"
>
<q-btn
label=
"关闭"
flat
color=
"accent q-mb-lg"
size=
"md"
style=
"margin-right:10px;"
@
click=
"closeClassForm"
/>
<q-btn
label=
"保存"
color=
"accent q-mb-lg"
size=
"md"
@
click=
"saveAppointForm()"
/>
<q-btn
label=
"关闭"
flat
color=
"accent q-mb-lg"
size=
"md"
style=
"margin-right:10px;"
@
click=
"closeClassForm"
/>
<q-btn
label=
"保存"
color=
"accent q-mb-lg"
size=
"md"
@
click=
"saveAppointForm()"
/>
</div>
</template>
<audition-form
v-if=
"isShowTeacher"
@
close=
"closeAuditForm"
@
getchildInfo=
"getchildInfo"
></audition-form>
<ShitingCourseList-form
v-if=
"isShowTeacher"
@
close=
"closeAuditForm"
@
getchildInfo=
"getchildInfo"
>
</ShitingCourseList-form>
</div>
</template>
<
script
>
import
{
SetVisitorReserve
}
from
"../../../api/scheduling/schedu"
;
import
{
getTeacherDropDownList
,
queryClassRoomList
,
GetTrialLessonList
}
from
"../../../api/school/index"
;
import
auditionForm
from
"../../schedul/audition-form"
;
export
default
{
components
:
{
auditionForm
},
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
},
data
()
{
return
{
isShowReserve
:
false
,
addMsg
:
{
Id
:
0
,
//编号
Visitor_Id
:
0
,
//访客编号
ReserveClassId
:
0
,
//选中的班级编号
ClassDate
:
""
,
//预约日期
ClassTime
:
""
,
//预约开始时间
EndTime
:
""
,
//预约结束时间
TeacherId
:
0
,
//教师编号
ClassRoomId
:
0
,
//教室编号
ClassContent
:
""
,
//主讲内容
TrialLessonId
:
""
},
ContentList
:
[
{
Id
:
1
,
Name
:
"少儿类:主要以丰富可与时间和兴趣为主,要求课堂轻松活跃。趣味性十足"
},
{
Id
:
2
,
Name
:
"兴趣类:成年人,对日语学习从兴趣开始,要求课堂丰富有趣"
},
{
Id
:
3
,
Name
:
"实用类:对于日语学习有一定的需求(考研、就业等),要求学习过程专业,干货多"
},
{
Id
:
4
,
Name
:
"留学类:打算去往日本留学(本科、硕士、语言学校、私塾等)"
}
],
ClassRoomList
:
[],
//教师列表
TeacherList
:
[],
//教师列表
AllTeacherList
:
[],
//全部教师列表
TrialList
:
[],
//试听课程列表
isShowTeacher
:
false
//是否显示试听课弹窗
};
},
created
()
{
this
.
GetTrialDrop
();
this
.
getClassRoomList
();
this
.
GetTeacherList
();
},
mounted
()
{
if
(
this
.
saveObj
)
{
this
.
addMsg
.
Visitor_Id
=
this
.
saveObj
.
StuId
;
}
},
methods
:
{
//关闭窗口
closeClassForm
()
{
this
.
isShowReserve
=
false
;
this
.
$emit
(
"success"
);
},
//选择主讲内容赋值选择教师
getTeacherChoose
(
content
)
{
var
TList
=
[];
this
.
addMsg
.
TeacherId
=
""
;
this
.
TeacherList
=
this
.
AllTeacherList
;
this
.
TeacherList
.
forEach
(
x
=>
{
this
.
ContentList
.
forEach
(
y
=>
{
if
(
y
.
Name
==
content
)
{
if
(
x
.
TId
>
0
)
{
if
(
x
.
ChooseSpecialty
.
indexOf
(
y
.
Id
)
>
-
1
)
{
TList
.
push
(
x
);
}
}
}
});
});
this
.
TeacherList
=
TList
;
import
{
SetVisitorReserve
}
from
"../../../api/scheduling/schedu"
;
import
{
getTeacherDropDownList
,
queryClassRoomList
,
GetTrialLessonList
}
from
"../../../api/school/index"
;
// import auditionForm from "../../schedul/audition-form";
import
ShitingCourseListForm
from
"./shitingCourseList-form.vue"
export
default
{
components
:
{
// auditionForm,
ShitingCourseListForm
},
//试听课程列表
GetTrialDrop
()
{
GetTrialLessonList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TrialList
=
res
.
Data
;
}
});
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
},
//获取教室下拉
getClassRoomList
()
{
queryClassRoomList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
ClassRoomList
=
res
.
Data
;
var
obj
=
{
RoomName
:
"请选择"
,
RoomId
:
0
};
this
.
ClassRoomList
.
unshift
(
obj
);
data
()
{
return
{
isShowReserve
:
false
,
addMsg
:
{
Id
:
0
,
//编号
Visitor_Id
:
0
,
//访客编号
ReserveClassId
:
0
,
//选中的班级编号
ClassDate
:
""
,
//预约日期
ClassTime
:
""
,
//预约开始时间
EndTime
:
""
,
//预约结束时间
TeacherId
:
0
,
//教师编号
ClassRoomId
:
0
,
//教室编号
ClassContent
:
""
,
//主讲内容
TrialLessonId
:
""
,
ReserveType
:
0
,
ClassPlanId
:
0
,
},
ContentList
:
[{
Id
:
1
,
Name
:
"少儿类:主要以丰富可与时间和兴趣为主,要求课堂轻松活跃。趣味性十足"
},
{
Id
:
2
,
Name
:
"兴趣类:成年人,对日语学习从兴趣开始,要求课堂丰富有趣"
},
{
Id
:
3
,
Name
:
"实用类:对于日语学习有一定的需求(考研、就业等),要求学习过程专业,干货多"
},
{
Id
:
4
,
Name
:
"留学类:打算去往日本留学(本科、硕士、语言学校、私塾等)"
}
],
ClassRoomList
:
[],
//教师列表
TeacherList
:
[],
//教师列表
AllTeacherList
:
[],
//全部教师列表
TrialList
:
[],
//试听课程列表
isShowTeacher
:
false
,
//是否显示试听课弹窗
showObj
:{
className
:
""
,
courseName
:
""
,
}
}
)
;
};
},
//获取教师下拉
GetTeacherList
()
{
getTeacherDropDownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TeacherList
=
res
.
Data
;
this
.
AllTeacherList
=
res
.
Data
;
var
obj
=
{
TeacherName
:
"请选择"
,
TId
:
0
};
this
.
TeacherList
.
unshift
(
obj
);
this
.
AllTeacherList
.
unshift
(
obj
);
}
});
created
()
{
this
.
GetTrialDrop
();
this
.
getClassRoomList
();
this
.
GetTeacherList
();
},
//清除
clearMsg
()
{
this
.
addMsg
.
Id
=
0
;
this
.
addMsg
.
ReserveClassId
=
0
;
this
.
addMsg
.
ClassDate
=
""
;
this
.
addMsg
.
ClassTime
=
""
;
this
.
addMsg
.
EndTime
=
""
;
this
.
addMsg
.
TeacherId
=
0
;
this
.
addMsg
.
ClassRoomId
=
0
;
this
.
addMsg
.
ClassContent
=
""
;
this
.
addMsg
.
TrialLessonId
=
""
;
mounted
()
{
if
(
this
.
saveObj
)
{
this
.
addMsg
.
Visitor_Id
=
this
.
saveObj
.
StuId
;
}
},
//保存
saveAppointForm
()
{
if
(
this
.
addMsg
.
ClassDate
==
""
)
{
this
.
$q
.
notify
({
type
:
"negative"
,
position
:
"top"
,
timeout
:
2000
,
message
:
"请选择预约日期!"
methods
:
{
//关闭窗口
closeClassForm
()
{
this
.
isShowReserve
=
false
;
this
.
$emit
(
"success"
);
},
//选择主讲内容赋值选择教师
getTeacherChoose
(
content
)
{
var
TList
=
[];
this
.
addMsg
.
TeacherId
=
""
;
this
.
TeacherList
=
this
.
AllTeacherList
;
this
.
TeacherList
.
forEach
(
x
=>
{
this
.
ContentList
.
forEach
(
y
=>
{
if
(
y
.
Name
==
content
)
{
if
(
x
.
TId
>
0
)
{
if
(
x
.
ChooseSpecialty
.
indexOf
(
y
.
Id
)
>
-
1
)
{
TList
.
push
(
x
);
}
}
}
});
});
return
;
}
if
(
this
.
addMsg
.
ClassTime
==
""
)
{
this
.
$q
.
notify
(
{
type
:
"negative"
,
position
:
"top"
,
timeout
:
2000
,
message
:
"请选择预约开始时间!"
this
.
TeacherList
=
TList
;
}
,
//试听课程列表
GetTrialDrop
()
{
GetTrialLessonList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TrialList
=
res
.
Data
;
}
});
return
;
}
if
(
this
.
addMsg
.
EndTime
==
""
)
{
this
.
$q
.
notify
({
type
:
"negative"
,
position
:
"top"
,
timeout
:
2000
,
message
:
"请选择预约结束时间!"
},
//获取教室下拉
getClassRoomList
()
{
queryClassRoomList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
ClassRoomList
=
res
.
Data
;
var
obj
=
{
RoomName
:
"请选择"
,
RoomId
:
0
};
this
.
ClassRoomList
.
unshift
(
obj
);
}
});
return
;
}
if
(
!
this
.
$refs
.
ClassContent
.
hasError
)
{
SetVisitorReserve
(
this
.
addMsg
).
then
(
res
=>
{
},
//获取教师下拉
GetTeacherList
(
)
{
getTeacherDropDownList
({}
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
res
.
Message
,
position
:
"top"
});
this
.
$emit
(
"success"
);
}
else
{
this
.
$q
.
notify
({
type
:
"negative"
,
position
:
"top"
,
timeout
:
2000
,
message
:
res
.
Message
});
this
.
TeacherList
=
JSON
.
parse
(
JSON
.
stringify
(
res
.
Data
));
this
.
AllTeacherList
=
JSON
.
parse
(
JSON
.
stringify
(
res
.
Data
));
var
obj
=
{
TeacherName
:
"请选择"
,
TId
:
0
};
this
.
TeacherList
.
unshift
(
obj
);
this
.
AllTeacherList
.
unshift
(
obj
);
}
this
.
clearMsg
();
this
.
isShowReserve
=
false
;
});
}
},
closeAuditForm
()
{
this
.
isShowTeacher
=
false
;
},
//子组件选中传值
getchildInfo
(
obj
)
{
if
(
obj
)
{
this
.
addMsg
.
TeacherId
=
obj
.
TeacherId
;
this
.
addMsg
.
ClassRoomId
=
obj
.
ClassRoomId
;
this
.
addMsg
.
ReserveClassId
=
obj
.
ReserveClassId
;
this
.
addMsg
.
ClassDate
=
obj
.
ClassDateStr
;
this
.
addMsg
.
ClassTime
=
obj
.
ClassTime
;
this
.
addMsg
.
EndTime
=
obj
.
EndTime
;
this
.
addMsg
.
ClassContent
=
obj
.
ClassContent
;
this
.
addMsg
.
TrialLessonId
=
obj
.
TrialLessonId
;
this
.
isShowReserve
=
true
;
},
//清除
clearMsg
()
{
this
.
addMsg
.
Id
=
0
;
this
.
addMsg
.
ReserveClassId
=
0
;
this
.
addMsg
.
ClassDate
=
""
;
this
.
addMsg
.
ClassTime
=
""
;
this
.
addMsg
.
EndTime
=
""
;
this
.
addMsg
.
TeacherId
=
0
;
this
.
addMsg
.
ClassRoomId
=
0
;
this
.
addMsg
.
ClassContent
=
""
;
this
.
addMsg
.
TrialLessonId
=
""
;
this
.
addMsg
.
ReserveType
=
0
;
this
.
addMsg
.
ClassPlanId
=
0
;
},
//保存
saveAppointForm
()
{
if
(
this
.
addMsg
.
ClassDate
==
""
)
{
this
.
$q
.
notify
({
type
:
"negative"
,
position
:
"top"
,
timeout
:
2000
,
message
:
"请选择预约日期!"
});
return
;
}
if
(
this
.
addMsg
.
ClassTime
==
""
)
{
this
.
$q
.
notify
({
type
:
"negative"
,
position
:
"top"
,
timeout
:
2000
,
message
:
"请选择预约开始时间!"
});
return
;
}
if
(
this
.
addMsg
.
EndTime
==
""
)
{
this
.
$q
.
notify
({
type
:
"negative"
,
position
:
"top"
,
timeout
:
2000
,
message
:
"请选择预约结束时间!"
});
return
;
}
if
(
!
this
.
$refs
.
ClassContent
.
hasError
)
{
SetVisitorReserve
(
this
.
addMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
res
.
Message
,
position
:
"top"
});
this
.
$emit
(
"success"
);
}
else
{
this
.
$q
.
notify
({
type
:
"negative"
,
position
:
"top"
,
timeout
:
2000
,
message
:
res
.
Message
});
}
this
.
clearMsg
();
this
.
isShowReserve
=
false
;
});
}
},
closeAuditForm
()
{
this
.
isShowTeacher
=
false
;
},
//子组件选中传值
getchildInfo
(
obj
)
{
console
.
log
(
364
,
obj
)
if
(
obj
)
{
this
.
addMsg
.
ReserveType
=
obj
.
ReserveType
;
this
.
addMsg
.
ClassPlanId
=
obj
.
ClassPlanId
;
this
.
addMsg
.
TeacherId
=
obj
.
TeacherId
;
this
.
addMsg
.
ClassRoomId
=
obj
.
ClassRoomId
;
this
.
addMsg
.
ReserveClassId
=
obj
.
ReserveClassId
;
this
.
addMsg
.
ClassDate
=
obj
.
ClassDateStr
;
this
.
addMsg
.
ClassTime
=
obj
.
ClassTime
;
this
.
addMsg
.
EndTime
=
obj
.
EndTime
;
this
.
addMsg
.
ClassContent
=
obj
.
ClassContent
;
this
.
addMsg
.
TrialLessonId
=
obj
.
TrialLessonId
;
if
(
obj
.
ReserveType
==
1
)
{
this
.
addMsg
.
TrialLessonId
=
obj
.
TrialLessonId
?
obj
.
TrialLessonId
:
this
.
TrialList
[
0
].
Id
this
.
addMsg
.
ClassContent
=
obj
.
ClassContent
?
obj
.
ClassContent
:
this
.
ContentList
[
0
].
Name
this
.
showObj
.
courseName
=
obj
.
courseName
this
.
showObj
.
className
=
obj
.
className
}
this
.
isShowReserve
=
true
;
}
}
}
}
};
}
;
</
script
>
src/components/school/student/shitingCourseList-form.vue
0 → 100644
View file @
d00862de
<
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>
<div
class=
"row wrap"
>
<div
class=
"col-3 q-pr-lg q-pb-lg"
>
<q-select
@
input=
"typeChange"
filled
option-value=
"Id"
option-label=
"Name"
v-model=
"typeId"
:options=
"typeList"
emit-value
map-options
label=
"类型"
clearable
/>
</div>
<div
class=
"col-6 q-pb-lg q-pr-lg"
>
<q-field
borderless
>
<template
v-slot:prepend
>
<q-input
filled
v-model=
"msg.StartClassDate"
mask=
"date"
label=
"开始日期"
>
<template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"StartClassDate"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"msg.StartClassDate"
@
input=
"getStarttime()"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</template>
<
template
v-slot:append
>
<q-input
filled
v-model=
"msg.EndClassDate"
mask=
"date"
label=
"结束日期"
>
<template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"EndClassDate"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"msg.EndClassDate"
@
input=
"getEndTime()"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</template>
</q-field>
</div>
<div
class=
"col-3 q-pr-lg q-pb-lg"
>
<q-select
@
input=
"typeChange"
filled
option-value=
"TId"
option-label=
"TeacherName"
v-model=
"msg.TeacherId"
:options=
"TeacherList"
emit-value
map-options
label=
"老师"
clearable
/>
</div>
</div>
</q-card-section>
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
style=
"margin-top:20px;"
flat
class=
"sticky-column-table sticky-right-column-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
v-if=
"typeId == 0"
>
<
template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
></div>
<q-space
/>
</
template
>
<
template
v-slot:body-cell-ClassTime=
"props"
>
<q-td
:props=
"props"
>
{{
props
.
row
.
ClassTime
}}
-
{{
props
.
row
.
EndTime
}}
</q-td>
</
template
>
<
template
v-slot:body-cell-Id=
"props"
>
<q-td
:props=
"props"
>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
@
click=
"getStuInfo(props.row)"
style=
"font-weight:400"
label=
"报入"
/>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"PageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</q-table>
<q-table
:pagination=
"SubMsg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
style=
"margin-top:20px;"
flat
class=
"sticky-column-table sticky-right-column-table"
separator=
"none"
:data=
"dataListType2"
:columns=
"columnsType2"
row-key=
"name"
v-if=
"typeId == 1"
>
<
template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
></div>
<q-space
/>
</
template
>
<
template
v-slot:body-cell-Time=
"props"
>
<q-td
:props=
"props"
>
{{
props
.
row
.
StartTime
}}
-
{{
props
.
row
.
EndTime
}}
</q-td>
</
template
>
<
template
v-slot:body-cell-RoomNum=
"props"
>
<q-td
:props=
"props"
>
{{
props
.
row
.
GuestList
.
length
}}
</q-td>
</
template
>
<
template
v-slot:body-cell-progress=
"props"
>
<q-td
:props=
"props"
>
{{
props
.
row
.
Ranks
}}
/
{{
props
.
row
.
TotalPlanNum
}}
</q-td>
</
template
>
<
template
v-slot:body-cell-Id=
"props"
>
<q-td
:props=
"props"
>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
@
click=
"getStuInfo(props.row)"
style=
"font-weight:400"
label=
"报入"
/>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"PageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</q-table>
</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-card-actions>
</q-card>
</q-dialog>
</template>
<
script
>
import
{
GetReserveClassPage
,
getToDayCoursePlanList
}
from
"../../../api/scheduling/schedu"
;
import
{
getTeacherDropDownList
}
from
"../../../api/school/index"
;
export
default
{
components
:
{},
data
()
{
return
{
persistent
:
true
,
loading
:
false
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
StartClassDate
:
""
,
//开始时间
EndClassDate
:
""
,
//结束时间
TeacherId
:
""
,
//教师编号
ClassRoomId
:
""
,
//教室编号
ReserveType
:
1
},
PageCount
:
0
,
columns
:
[{
name
:
"TeacherName"
,
label
:
"老师"
,
field
:
"TeacherName"
,
align
:
"left"
},
{
name
:
"ClassDateStr"
,
field
:
"ClassDateStr"
,
label
:
"日期"
,
align
:
"left"
},
{
name
:
"ClassTime"
,
field
:
"ClassTime"
,
label
:
"时间"
,
align
:
"left"
},
{
name
:
"LessonName"
,
label
:
"课程名称"
,
field
:
"LessonName"
,
align
:
"left"
},
{
name
:
"RoomName"
,
label
:
"教室"
,
field
:
"RoomName"
,
align
:
"left"
},
{
name
:
"RoomNum"
,
label
:
"人数"
,
field
:
"RoomNum"
,
align
:
"left"
},
{
name
:
"ClassContent"
,
label
:
"主讲内容"
,
field
:
"ClassContent"
,
align
:
"left"
},
{
name
:
"Id"
,
label
:
"操作"
}
],
TeacherList
:
[],
//教师列表
dataList
:
[],
StuObj
:
{},
typeId
:
0
,
typeList
:
[{
Name
:
"正常"
,
Id
:
0
},
{
Name
:
"跟班"
,
Id
:
1
}
],
SubMsg
:
{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
StartDate
:
""
,
//开始时间
EndDate
:
""
,
//结束时间
TeacherId
:
0
},
dataListType2
:
[],
columnsType2
:
[{
name
:
"TeacherName"
,
label
:
"老师"
,
field
:
"TeacherName"
,
align
:
"left"
},
{
name
:
"ClassDate"
,
field
:
"ClassDate"
,
label
:
"日期"
,
align
:
"left"
},
{
name
:
"Time"
,
field
:
"Time"
,
label
:
"时间"
,
align
:
"left"
},
{
name
:
"CourseName"
,
label
:
"课程名称"
,
field
:
"CourseName"
,
align
:
"left"
},
{
name
:
"RoomName"
,
label
:
"教室"
,
field
:
"RoomName"
,
align
:
"left"
},
{
name
:
"RoomNum"
,
label
:
"人数"
,
field
:
"RoomNum"
,
align
:
"left"
},
{
name
:
"progress"
,
label
:
"进度"
,
field
:
""
,
align
:
"left"
},
{
name
:
"Id"
,
label
:
"操作"
}
]
};
},
created
()
{
this
.
GetTeacherList
();
},
mounted
()
{
let
nowDay
=
new
Date
();
var
year
=
nowDay
.
getFullYear
();
//年
var
month
=
nowDay
.
getMonth
()
+
1
;
//月
var
day
=
nowDay
.
getDate
();
//日
var
currentDay
=
year
+
"-"
+
(
month
<
10
?
"0"
+
month
:
month
)
+
"-"
+
day
;
this
.
msg
.
StartClassDate
=
currentDay
;
this
.
getList
();
},
methods
:
{
//获取教师下拉
GetTeacherList
()
{
getTeacherDropDownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TeacherList
=
res
.
Data
;
}
});
},
closeSaveForm
()
{
this
.
$emit
(
"close"
);
this
.
persistent
=
false
;
},
//重新查询
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
//获取课程系列分页列表
getList
()
{
GetReserveClassPage
(
this
.
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
PageCount
=
res
.
Data
.
PageCount
;
}
});
},
//点击报入
getStuInfo
(
item
)
{
if
(
item
)
{
if
(
this
.
typeId
==
0
)
{
this
.
StuObj
.
ReserveType
=
0
this
.
StuObj
.
ClassPlanId
=
item
.
ClassPlanId
;
this
.
StuObj
.
ClassRoomId
=
item
.
ClassRoomId
;
this
.
StuObj
.
TeacherId
=
item
.
TeacherId
;
this
.
StuObj
.
ReserveClassId
=
item
.
ReserveClassId
;
this
.
StuObj
.
ClassDateStr
=
item
.
ClassDateStr
;
this
.
StuObj
.
ClassTime
=
item
.
ClassTime
;
this
.
StuObj
.
EndTime
=
item
.
EndTime
;
this
.
StuObj
.
ClassContent
=
item
.
ClassContent
;
this
.
StuObj
.
TrialLessonId
=
item
.
TrialLessonId
;
}
else
if
(
this
.
typeId
==
1
)
{
this
.
StuObj
.
ReserveType
=
1
this
.
StuObj
.
ClassPlanId
=
item
.
ClassPlanId
;
this
.
StuObj
.
ClassRoomId
=
item
.
ClassRoomId
;
this
.
StuObj
.
TeacherId
=
item
.
TeacherId
;
this
.
StuObj
.
ReserveClassId
=
0
;
this
.
StuObj
.
ClassDateStr
=
item
.
ClassDate
;
this
.
StuObj
.
ClassTime
=
item
.
StartTime
;
this
.
StuObj
.
EndTime
=
item
.
EndTime
;
this
.
StuObj
.
ClassContent
=
0
;
this
.
StuObj
.
TrialLessonId
=
0
;
this
.
StuObj
.
courseName
=
item
.
CourseName
this
.
StuObj
.
className
=
item
.
ClassName
}
}
this
.
$emit
(
"getchildInfo"
,
this
.
StuObj
);
this
.
closeSaveForm
();
},
getStarttime
()
{
this
.
$refs
.
StartClassDate
.
hide
();
this
.
typeChange
();
},
getEndTime
()
{
this
.
$refs
.
EndClassDate
.
hide
();
this
.
typeChange
();
},
typeChange
()
{
if
(
this
.
typeId
==
0
)
{
this
.
resetSearch
();
}
else
if
(
this
.
typeId
==
1
)
{
this
.
resetSearchType2
();
}
},
getListType2
()
{
if
(
!
this
.
msg
.
StartClassDate
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`请选择日期`
})
return
}
this
.
SubMsg
.
StartDate
=
this
.
msg
.
StartClassDate
;
this
.
SubMsg
.
EndDate
=
this
.
msg
.
EndClassDate
||
this
.
msg
.
StartClassDate
;
this
.
SubMsg
.
TeacherId
=
this
.
msg
.
TeacherId
||
0
;
getToDayCoursePlanList
(
this
.
SubMsg
).
then
(
res
=>
{
this
.
dataListType2
=
res
.
Data
;
});
},
resetSearchType2
()
{
this
.
SubMsg
.
pageIndex
=
1
;
this
.
getListType2
();
}
}
};
</
script
>
<
style
></
style
>
src/components/school/student/student-shiting.vue
View file @
d00862de
...
...
@@ -18,15 +18,9 @@
@
click=
"isShowAdd = false"
/>
</div>
-->
<reserveclass-form
:saveObj=
"saveObj"
@
close=
"closeReserveForm"
@
success=
"closeReserveForm"
v-if=
"!saveObj.IsHaveCurseManager || userInfo.IsCourseConsultant == 1"
></reserveclass-form>
<span
v-else
class=
"text-grey-4 q-mb-md"
>
学员已推送课程顾问,只能进行查看
</span
>
<reserveclass-form
:saveObj=
"saveObj"
@
close=
"closeReserveForm"
@
success=
"closeReserveForm"
v-if=
"!saveObj.IsHaveCurseManager || userInfo.IsCourseConsultant == 1"
></reserveclass-form>
<span
v-else
class=
"text-grey-4 q-mb-md"
>
学员已推送课程顾问,只能进行查看
</span>
<div
style=
"display:flex;flex:1;flex-direction: column;overflow:hidden;"
>
<div
class=
"TimeLineDiv"
>
<q-timeline
color=
"primary"
>
...
...
@@ -34,10 +28,14 @@
<template
v-slot:title
>
<div
class=
"visit_Cont"
>
<div
class=
"Log_Content"
>
<q-chip
color=
"primary"
size=
"xs"
text-color=
"white"
style=
"position:absolute;:top:0;right:0"
v-if=
"tItem.ReserveType==1"
>
跟班
</q-chip>
<div>
预约时间:
{{
tItem
.
ClassDateStr
}}
{{
tItem
.
ClassTime
}}
-
{{
tItem
.
EndTime
}}
</div>
<div
class=
"StuCom_Remark"
>
<div
style=
"flex-shrink:0"
>
主讲内容:
</div>
...
...
@@ -49,11 +47,8 @@
<span
class=
"StuCom_Left"
>
教室
</span>
:
{{
tItem
.
RoomName
}}
</div>
</div>
<div
@
click=
"DeleteVisitorReserve(tItem.Id)"
style=
"margin-top:10px;"
class=
"visit_delete text-negative"
>
<div
@
click=
"DeleteVisitorReserve(tItem.Id)"
style=
"margin-top:10px;"
class=
"visit_delete text-negative"
>
删除
</div>
</div>
...
...
@@ -69,110 +64,105 @@
</div>
</div>
<div
style=
"margin:20px 0;"
>
<q-pagination
class=
"full-width justify-end"
v-model=
"qMsg.pageIndex"
color=
"primary"
:max=
"page_Count"
input
@
input=
"changePage"
/>
<q-pagination
class=
"full-width justify-end"
v-model=
"qMsg.pageIndex"
color=
"primary"
:max=
"page_Count"
input
@
input=
"changePage"
/>
</div>
</div>
</template>
<
script
>
import
{
SetVisitorReserve
,
queryVisitorReservePage
,
RemoveVisitorReserve
}
from
"../../../api/scheduling/schedu"
;
import
{
SetVisitorReserve
,
queryVisitorReservePage
,
RemoveVisitorReserve
}
from
"../../../api/scheduling/schedu"
;
import
{
getTeacherDropDownList
,
queryClassRoomList
,
GetTrialLessonList
}
from
"../../../api/school/index"
;
import
reserveclassForm
from
"./reserveclass-form"
;
export
default
{
meta
:
{
title
:
""
},
components
:
{
reserveclassForm
},
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
},
data
()
{
return
{
isShowAdd
:
false
,
qMsg
:
{
pageIndex
:
1
,
pageSize
:
12
,
Visitor_Id
:
0
},
dataList
:
[],
page_Count
:
0
,
userInfo
:
{}
};
},
created
()
{
if
(
this
.
saveObj
)
{
this
.
qMsg
.
Visitor_Id
=
this
.
saveObj
.
StuId
;
this
.
userInfo
=
this
.
getLocalStorage
();
}
},
mounted
()
{
this
.
getList
();
},
methods
:
{
//获取试听列表
getList
()
{
queryVisitorReservePage
(
this
.
qMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
page_Count
=
res
.
Data
.
PageCount
;
}
});
import
{
getTeacherDropDownList
,
queryClassRoomList
,
GetTrialLessonList
}
from
"../../../api/school/index"
;
import
reserveclassForm
from
"./reserveclass-form"
;
export
default
{
meta
:
{
title
:
""
},
changePage
(
val
)
{
this
.
qMsg
.
pageIndex
=
val
;
this
.
getList
();
components
:
{
reserveclassForm
},
//删除试听
DeleteVisitorReserve
(
Id
)
{
let
that
=
this
;
this
.
$q
.
dialog
({
title
:
"提示信息"
,
message
:
"是否确定此试听信息删除?"
,
cancel
:
true
,
persistent
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
})
.
onOk
(()
=>
{
RemoveVisitorReserve
({
Id
:
Id
}).
then
(
res
=>
{
that
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
timeout
:
2000
,
message
:
res
.
Message
,
position
:
"top"
});
that
.
getList
();
});
})
.
onCancel
(()
=>
{});
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
},
data
()
{
return
{
isShowAdd
:
false
,
qMsg
:
{
pageIndex
:
1
,
pageSize
:
12
,
Visitor_Id
:
0
},
dataList
:
[],
page_Count
:
0
,
userInfo
:
{}
};
},
closeReserveForm
()
{
this
.
isShowAdd
=
false
;
created
()
{
if
(
this
.
saveObj
)
{
this
.
qMsg
.
Visitor_Id
=
this
.
saveObj
.
StuId
;
this
.
userInfo
=
this
.
getLocalStorage
();
}
},
mounted
()
{
this
.
getList
();
},
methods
:
{
//获取试听列表
getList
()
{
queryVisitorReservePage
(
this
.
qMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
page_Count
=
res
.
Data
.
PageCount
;
}
});
},
changePage
(
val
)
{
this
.
qMsg
.
pageIndex
=
val
;
this
.
getList
();
},
//删除试听
DeleteVisitorReserve
(
Id
)
{
let
that
=
this
;
this
.
$q
.
dialog
({
title
:
"提示信息"
,
message
:
"是否确定此试听信息删除?"
,
cancel
:
true
,
persistent
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
})
.
onOk
(()
=>
{
RemoveVisitorReserve
({
Id
:
Id
}).
then
(
res
=>
{
that
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
timeout
:
2000
,
message
:
res
.
Message
,
position
:
"top"
});
that
.
getList
();
});
})
.
onCancel
(()
=>
{});
},
closeReserveForm
()
{
this
.
isShowAdd
=
false
;
this
.
getList
();
}
}
}
};
}
;
</
script
>
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