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
e1f145ab
Commit
e1f145ab
authored
Feb 25, 2022
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2
parent
8140af14
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
398 additions
and
469 deletions
+398
-469
subscribeForm.vue
src/components/stuMan/subscribe/subscribeForm.vue
+398
-469
No files found.
src/components/stuMan/subscribe/subscribeForm.vue
View file @
e1f145ab
<
template
>
<div>
<q-dialog
v-model=
"show"
persistent
transition-show=
"scale"
transition-hide=
"scale"
@
input=
"changeDig"
>
<q-dialog
v-model=
"show"
persistent
transition-show=
"scale"
transition-hide=
"scale"
@
input=
"changeDig"
>
<q-card
style=
"width: 800px;max-width:900px;"
>
<q-card-section
class=
"row items-center q-pb-none"
>
<div
class=
"text-h6"
>
{{
editType
==
1
?
"新增约课"
:
"详情"
}}
</div>
...
...
@@ -14,7 +8,7 @@
<q-btn
icon=
"close"
flat
round
dense
@
click=
"changeDig(false)"
/>
</q-card-section>
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<div
class=
"row col q-mr-lg q-col-gutter-md"
>
<div
class=
"row col q-mr-lg q-col-gutter-md"
>
<q-field
filled
label=
"日期"
stack-label
class=
"col-12"
>
<template
v-slot:control
>
<div>
{{
dateObj
.
date
}}
</div>
...
...
@@ -22,33 +16,14 @@
</q-field>
<!-- 详情显示内容 start-->
<div
class=
"col-12"
v-if=
"editType == 2"
>
<Detail
:dateObj=
"dateObj"
:saveObj=
"saveObj"
:auth=
"auth"
@
success=
"detailSuccessHandle"
@
close=
"detailCloseHandle"
/>
<Detail
:dateObj=
"dateObj"
:saveObj=
"saveObj"
:auth=
"auth"
@
success=
"detailSuccessHandle"
@
close=
"detailCloseHandle"
/>
</div>
<!-- 详情显示内容 end -->
<q-select
filled
stack-label
use-input
option-value=
"CourseId"
option-label=
"CourseName"
v-model=
"teaClassMsg.CourseId"
ref=
"CourseId"
:options=
"CourseList"
label=
"课程"
:dense=
"false"
class=
"col-12"
emit-value
map-options
@
filter=
"filterCourse"
@
input=
"getCanTeacherTimeList(), getChapterTree(), changeCourse()"
v-if=
"editType == 1"
>
<q-select
filled
stack-label
use-input
option-value=
"CourseId"
option-label=
"CourseName"
v-model=
"teaClassMsg.CourseId"
ref=
"CourseId"
:options=
"CourseList"
label=
"课程"
:dense=
"false"
class=
"col-12"
emit-value
map-options
@
filter=
"filterCourse"
@
input=
"getCanTeacherTimeList(), getChapterTree(), changeCourse()"
v-if=
"editType == 1"
>
<
template
v-slot:no-option
>
<q-item>
<q-item-section
class=
"text-grey"
>
...
...
@@ -57,49 +32,19 @@
</q-item>
</
template
>
</q-select>
<select-tree
v-show=
"teaClassMsg.CourseId > 0 && editType == 1"
:treeData=
"chapterList"
:defaultArray=
"returnString"
nodeKey=
"ChapterId"
labelKey=
"ChapterName"
childrenKey=
"ChildList"
tipText=
"章节"
@
getChild=
"getChapter"
class=
"col-12"
ref=
"selectTree"
></select-tree>
<select-tree
v-show=
"teaClassMsg.CourseId > 0 && editType == 1"
:treeData=
"chapterList"
:defaultArray=
"returnString"
nodeKey=
"ChapterId"
labelKey=
"ChapterName"
childrenKey=
"ChildList"
tipText=
"章节"
@
getChild=
"getChapter"
class=
"col-12"
ref=
"selectTree"
></select-tree>
<q-select
v-if=
"teaClassMsg.CourseId > 0 && editType == 1"
filled
v-model=
"teaClassMsg.TeacherId"
option-value=
"TId"
option-label=
"TeacherName"
:options=
"teacherList"
emit-value
map-options
label=
"老师"
class=
"col-12"
@
input=
"getCanTeacherTimeList"
/>
<q-field
filled
label-slot
stack-label
class=
"col-12"
v-if=
"teaClassMsg.TeacherId > 0"
>
<q-select
v-if=
"teaClassMsg.CourseId > 0 && editType == 1"
filled
v-model=
"teaClassMsg.TeacherId"
option-value=
"TId"
option-label=
"TeacherName"
:options=
"teacherList"
emit-value
map-options
label=
"老师"
class=
"col-12"
@
input=
"getCanTeacherTimeList"
/>
<q-field
filled
label-slot
stack-label
class=
"col-12"
v-if=
"teaClassMsg.TeacherId > 0"
>
<
template
#
label
>
<div
class=
"row flex"
>
上课时段
<span
style=
"color:#f5576c;font-size:13px;margin-left:5px;font-weight:500"
>
(按顺序选择)
</span
>
<div
style=
"color:#333;font-size:13px;margin-left:10px;font-weight:500"
>
<span
style=
"color:#f5576c;font-size:13px;margin-left:5px;font-weight:500"
>
(按顺序选择)
</span>
<div
style=
"color:#333;font-size:13px;margin-left:10px;font-weight:500"
>
需选课时:
{{
checkChapter
.
StudyMinutes
}}
分钟
</div>
</div>
...
...
@@ -107,16 +52,10 @@
<
template
v-slot:control
>
<div
v-if=
"teacherTimeList.length > 0"
>
<div
v-for=
"(item, index) in teacherTimeList"
:key=
"index"
>
<div
v-if=
"
<div
v-if=
"
item.CourseTimeList && item.CourseTimeList.length > 0
"
>
<div
v-for=
"(_item, _index) in item.CourseTimeList"
:key=
"_index"
class=
"timeItem"
>
"
>
<div
v-for=
"(_item, _index) in item.CourseTimeList"
:key=
"_index"
class=
"timeItem"
>
<q-checkbox
v-model=
"courseCheckList"
:val=
"_item"
>
{{
item
.
SchoolName
}}
{{
item
.
RoomName
}}
{{
_item
.
StartTime
}}
-
{{
_item
.
EndTime
}}
...
...
@@ -133,29 +72,14 @@
</div>
</
template
>
</q-field>
<div
class=
"row col"
v-show=
"
<div
class=
"row col"
v-show=
"
(editType == 1 ||
(saveObj.ClassType == 3 && saveObj.AppointState == 1)) &&
auth.IsEdit&&showAddStu()
"
>
"
>
<div
class=
"col-10"
>
<q-select
filled
stack-label
use-input
option-value=
"StuId"
option-label=
"StuName"
v-model=
"stuInfo"
ref=
"CourseId"
:options=
"stuList"
label=
"添加学员"
:dense=
"false"
class=
"col-6"
@
filter=
"filterStu"
>
<q-select
filled
stack-label
use-input
option-value=
"StuId"
option-label=
"StuName"
v-model=
"stuInfo"
ref=
"CourseId"
:options=
"stuList"
label=
"添加学员"
:dense=
"false"
class=
"col-6"
@
filter=
"filterStu"
>
<
template
v-slot:no-option
>
<q-item>
<q-item-section
class=
"text-grey"
>
...
...
@@ -166,433 +90,438 @@
</q-select>
</div>
<div
class=
"col-2 q-pt-md"
>
<q-btn
size=
"sm"
color=
"accent"
label=
"添加"
@
click=
"subscribeCourse"
:loading=
"addLoading"
class=
"q-ml-md"
:disable=
"!stuInfo.StuId || stuInfo.StuId <= 0"
/>
<q-btn
size=
"sm"
color=
"accent"
label=
"添加"
@
click=
"subscribeCourse"
:loading=
"addLoading"
class=
"q-ml-md"
:disable=
"!stuInfo.StuId || stuInfo.StuId <= 0"
/>
</div>
</div>
<q-field
filled
label=
"已约学员"
stack-label
disable
class=
"col-12"
v-if=
"editType == 1&&addStuList.length>0"
>
<
template
v-slot:control
>
<div
v-for=
"(item,index) in addStuList"
:key=
"index"
class=
"q-mr-md"
>
{{
item
}}
</div>
</
template
>
</q-field>
</div>
</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=
"changeDig(false)"
/>
<q-btn
label=
"取消"
flat
color=
"grey-10"
style=
"font-weight:400 !important"
@
click=
"changeDig(false)"
/>
</q-card-actions>
</q-card>
</q-dialog>
</div>
</template>
<
script
>
import
{
GetCanTeacherClassTimeList
,
GetCanAppointmentStuList
,
SetAdminScrollAppointment
}
from
"../../../api/studyabroad/subscribe.js"
;
import
{
queryCourseDropdownList
,
queryChapterTree
}
from
"../../../api/course/index"
;
import
selectTree
from
"../../../components/common/select-tree"
;
import
Detail
from
"./detail.vue"
;
import
QCalendar
from
"@quasar/quasar-ui-qcalendar"
;
export
default
{
components
:
{
selectTree
,
Detail
},
model
:
{
prop
:
"show"
,
event
:
"changeshow"
},
props
:
{
dateObj
:
{
type
:
Object
,
default
:
null
},
saveObj
:
{
type
:
Object
,
default
:
null
import
{
GetCanTeacherClassTimeList
,
GetCanAppointmentStuList
,
SetAdminScrollAppointment
}
from
"../../../api/studyabroad/subscribe.js"
;
import
{
queryCourseDropdownList
,
queryChapterTree
}
from
"../../../api/course/index"
;
import
selectTree
from
"../../../components/common/select-tree"
;
import
Detail
from
"./detail.vue"
;
import
QCalendar
from
"@quasar/quasar-ui-qcalendar"
;
export
default
{
components
:
{
selectTree
,
Detail
},
show
:
{
type
:
Boolean
,
default
:
false
model
:
{
prop
:
"show"
,
event
:
"changeshow"
},
editType
:
{
type
:
Number
,
default
:
1
//1:新增,2详情
},
teacherList
:
{
type
:
Array
,
default
:
()
=>
[]
},
auth
:
{
type
:
Object
,
default
:
()
=>
{
return
{
IsEdit
:
false
};
}
}
},
watch
:
{
show
(
val
)
{
this
.
addLoading
=
false
;
if
(
val
)
{
this
.
stuInfo
=
""
;
this
.
teaClassMsg
.
CourseId
=
0
;
this
.
teaClassMsg
.
TeacherId
=
0
;
this
.
chapterList
=
[];
this
.
teacherTimeList
=
[];
this
.
courseCheckList
=
[];
this
.
stuList
=
[];
this
.
allStuList
=
[];
if
(
this
.
editType
==
2
)
{
this
.
getStu
();
}
}
}
},
data
()
{
return
{
CourseList
:
[],
//关联课程下拉数据
AllCourseList
:
[],
//所有课程列表
teacherTimeList
:
[],
teaClassMsg
:
{
Date
:
""
,
TeacherId
:
0
,
CourseId
:
0
props
:
{
dateObj
:
{
type
:
Object
,
default
:
null
},
stuList
:
[],
allStuList
:
[],
stuMsg
:
{
CourseId
:
0
,
NextChapterNo
:
0
saveObj
:
{
type
:
Object
,
default
:
null
},
detailObj
:
{},
detailMsg
:
{
StuId
:
0
,
GuestId
:
0
show
:
{
type
:
Boolean
,
default
:
false
},
saveMsg
:
{
Date
:
""
,
TeacherId
:
0
,
ShiftSort
:
""
,
StuId
:
0
,
GuestId
:
0
,
CourseId
:
0
,
ChapterNo
:
0
,
CourseGradeId
:
0
editType
:
{
type
:
Number
,
default
:
1
//1:新增,2详情
},
stuInfo
:
""
,
checkStuList
:
[],
courseCheckList
:
[],
addLoading
:
false
,
chapterList
:
[],
//章节列表,
checkChapter
:
{},
//选择的章节
returnString
:
[]
//章节默认值
};
},
mounted
()
{
this
.
getCourseList
();
},
methods
:
{
//开关弹窗
changeDig
(
val
)
{
this
.
$emit
(
"changeshow"
,
val
);
if
(
!
val
)
{
this
.
stuList
=
[];
this
.
allStuList
=
[];
}
},
//获取课程
getCourseList
()
{
queryCourseDropdownList
({
IsQPrice
:
1
,
IsQuerySalePlat
:
1
,
IsScrollClass
:
1
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
CourseList
=
res
.
Data
;
var
obj
=
{
CourseName
:
"请选择"
,
CourseId
:
0
teacherList
:
{
type
:
Array
,
default
:
()
=>
[]
},
auth
:
{
type
:
Object
,
default
:
()
=>
{
return
{
IsEdit
:
false
};
this
.
CourseList
.
unshift
(
obj
);
this
.
AllCourseList
=
res
.
Data
;
}
});
},
changeCourse
()
{
this
.
teaClassMsg
.
TeacherId
=
0
;
this
.
checkChapter
=
{};
this
.
checkStuList
=
[];
this
.
stuInfo
=
""
;
this
.
$refs
.
selectTree
.
clearData
();
}
},
//筛选课程
filterCourse
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
CourseList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
AllCourseList
));
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
CourseList
=
this
.
AllCourseList
.
filter
(
v
=>
v
.
CourseName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
watch
:
{
show
(
val
)
{
this
.
addLoading
=
false
;
this
.
addStuList
=
[]
if
(
val
)
{
this
.
stuInfo
=
""
;
this
.
teaClassMsg
.
CourseId
=
0
;
this
.
teaClassMsg
.
TeacherId
=
0
;
this
.
chapterList
=
[];
this
.
teacherTimeList
=
[];
this
.
courseCheckList
=
[];
this
.
stuList
=
[];
this
.
allStuList
=
[];
if
(
this
.
editType
==
2
)
{
this
.
getStu
();
}
}
}
);
}
},
//获取老师的空闲上课时段
getCanTeacherTimeList
()
{
this
.
teaClassMsg
.
Date
=
this
.
dateObj
.
date
;
this
.
stuInfo
=
""
;
if
(
this
.
teaClassMsg
.
TeacherId
==
0
)
return
;
GetCanTeacherClassTimeList
(
this
.
teaClassMsg
).
then
(
res
=>
{
this
.
teacherTimeList
=
res
.
Data
;
});
data
()
{
return
{
CourseList
:
[],
//关联课程下拉数据
AllCourseList
:
[],
//所有课程列表
teacherTimeList
:
[],
teaClassMsg
:
{
Date
:
""
,
TeacherId
:
0
,
CourseId
:
0
},
stuList
:
[],
allStuList
:
[],
stuMsg
:
{
CourseId
:
0
,
NextChapterNo
:
0
},
detailObj
:
{},
detailMsg
:
{
StuId
:
0
,
GuestId
:
0
},
saveMsg
:
{
Date
:
""
,
TeacherId
:
0
,
ShiftSort
:
""
,
StuId
:
0
,
GuestId
:
0
,
CourseId
:
0
,
ChapterNo
:
0
,
CourseGradeId
:
0
},
stuInfo
:
""
,
checkStuList
:
[],
courseCheckList
:
[],
addLoading
:
false
,
chapterList
:
[],
//章节列表,
checkChapter
:
{},
//选择的章节
returnString
:
[],
//章节默认值
addStuList
:
[],
//新增时展示用
};
},
//获取学生列表
getStu
()
{
this
.
stuMsg
.
CourseId
=
this
.
teaClassMsg
.
CourseId
||
0
;
if
(
this
.
editType
==
1
)
{
this
.
stuMsg
.
CourseGradeId
=
this
.
checkChapter
.
CourseRate
||
0
;
this
.
stuMsg
.
NextChapterNo
=
this
.
checkChapter
.
ChapterNo
||
0
;
}
if
(
this
.
editType
==
2
)
{
this
.
stuMsg
.
CourseGradeId
=
this
.
saveObj
.
CourseGradeId
||
0
;
this
.
stuMsg
.
NextChapterNo
=
this
.
saveObj
.
Ranks
||
0
;
}
GetCanAppointmentStuList
(
this
.
stuMsg
).
then
(
res
=>
{
this
.
stuList
=
JSON
.
parse
(
JSON
.
stringify
(
res
.
Data
));
this
.
allStuList
=
JSON
.
parse
(
JSON
.
stringify
(
res
.
Data
));
});
mounted
()
{
this
.
getCourseList
();
},
//筛选学生
filterStu
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
stuList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
allStuList
));
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
stuList
=
this
.
allStuList
.
filter
(
v
=>
v
.
StuName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
methods
:
{
//开关弹窗
changeDig
(
val
)
{
this
.
$emit
(
"changeshow"
,
val
);
if
(
!
val
)
{
this
.
stuList
=
[];
this
.
allStuList
=
[];
}
});
},
//获取章节
getChapterTree
()
{
if
(
this
.
teaClassMsg
.
CourseId
==
0
)
return
;
const
msg
=
{
CourseId
:
this
.
teaClassMsg
.
CourseId
};
queryChapterTree
(
msg
).
then
(
res
=>
{
this
.
chapterList
=
res
.
Data
;
this
.
chapterList
.
forEach
(
e
=>
{
this
.
mapChapter
(
e
.
ChildList
,
"ChildList"
);
},
//获取课程
getCourseList
()
{
queryCourseDropdownList
({
IsQPrice
:
1
,
IsQuerySalePlat
:
1
,
IsScrollClass
:
1
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
CourseList
=
res
.
Data
;
var
obj
=
{
CourseName
:
"请选择"
,
CourseId
:
0
};
this
.
CourseList
.
unshift
(
obj
);
this
.
AllCourseList
=
res
.
Data
;
}
});
});
},
//禁用第一层后的子级
mapChapter
(
arr
=
[],
key
)
{
arr
.
forEach
(
e
=>
{
e
.
disabled
=
true
;
if
(
e
[
key
]
&&
e
[
key
].
length
>
0
)
{
this
.
mapChapter
(
e
[
key
]);
},
changeCourse
()
{
this
.
teaClassMsg
.
TeacherId
=
0
;
this
.
checkChapter
=
{};
this
.
checkStuList
=
[];
this
.
stuInfo
=
""
;
this
.
$refs
.
selectTree
.
clearData
();
},
//筛选课程
filterCourse
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
CourseList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
AllCourseList
));
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
CourseList
=
this
.
AllCourseList
.
filter
(
v
=>
v
.
CourseName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
}
});
},
//获取老师的空闲上课时段
getCanTeacherTimeList
()
{
this
.
teaClassMsg
.
Date
=
this
.
dateObj
.
date
;
this
.
stuInfo
=
""
;
if
(
this
.
teaClassMsg
.
TeacherId
==
0
)
return
;
GetCanTeacherClassTimeList
(
this
.
teaClassMsg
).
then
(
res
=>
{
this
.
teacherTimeList
=
res
.
Data
;
});
},
//获取学生列表
getStu
()
{
this
.
stuMsg
.
CourseId
=
this
.
teaClassMsg
.
CourseId
||
0
;
if
(
this
.
editType
==
1
)
{
this
.
stuMsg
.
CourseGradeId
=
this
.
checkChapter
.
CourseRate
||
0
;
this
.
stuMsg
.
NextChapterNo
=
this
.
checkChapter
.
ChapterNo
||
0
;
}
});
},
//章节选择
getChapter
(
data
)
{
this
.
checkStuList
=
[];
this
.
stuInfo
=
""
;
this
.
chapterList
.
map
(
e
=>
{
if
(
e
.
ChapterId
==
data
)
{
this
.
checkChapter
=
e
;
return
;
if
(
this
.
editType
==
2
)
{
this
.
stuMsg
.
CourseGradeId
=
this
.
saveObj
.
CourseGradeId
||
0
;
this
.
stuMsg
.
NextChapterNo
=
this
.
saveObj
.
Ranks
||
0
;
}
});
if
(
this
.
checkChapter
.
CourseRate
&&
this
.
checkChapter
.
ChapterNo
)
{
this
.
getStu
();
}
this
.
teaClassMsg
.
TeacherId
=
0
;
this
.
teacherTimeList
=
[];
},
subscribeCourse
()
{
if
(
new
Date
(
this
.
dateObj
.
date
).
getTime
()
<
new
Date
(
QCalendar
.
today
()).
getTime
()
)
{
this
.
$q
.
notify
({
message
:
`日期小于今天,请重新选择日期`
,
position
:
"top"
,
type
:
"negative"
GetCanAppointmentStuList
(
this
.
stuMsg
).
then
(
res
=>
{
this
.
stuList
=
JSON
.
parse
(
JSON
.
stringify
(
res
.
Data
));
this
.
allStuList
=
JSON
.
parse
(
JSON
.
stringify
(
res
.
Data
));
});
return
;
}
if
(
this
.
stuInfo
.
AppointDate
)
{
},
//筛选学生
filterStu
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
stuList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
allStuList
));
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
stuList
=
this
.
allStuList
.
filter
(
v
=>
v
.
StuName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
}
});
},
//获取章节
getChapterTree
()
{
if
(
this
.
teaClassMsg
.
CourseId
==
0
)
return
;
const
msg
=
{
CourseId
:
this
.
teaClassMsg
.
CourseId
};
queryChapterTree
(
msg
).
then
(
res
=>
{
this
.
chapterList
=
res
.
Data
;
this
.
chapterList
.
forEach
(
e
=>
{
this
.
mapChapter
(
e
.
ChildList
,
"ChildList"
);
});
});
},
//禁用第一层后的子级
mapChapter
(
arr
=
[],
key
)
{
arr
.
forEach
(
e
=>
{
e
.
disabled
=
true
;
if
(
e
[
key
]
&&
e
[
key
].
length
>
0
)
{
this
.
mapChapter
(
e
[
key
]);
}
});
},
//章节选择
getChapter
(
data
)
{
this
.
checkStuList
=
[];
this
.
stuInfo
=
""
;
this
.
chapterList
.
map
(
e
=>
{
if
(
e
.
ChapterId
==
data
)
{
this
.
checkChapter
=
e
;
return
;
}
});
if
(
this
.
checkChapter
.
CourseRate
&&
this
.
checkChapter
.
ChapterNo
)
{
this
.
getStu
();
}
this
.
teaClassMsg
.
TeacherId
=
0
;
this
.
teacherTimeList
=
[];
},
subscribeCourse
()
{
if
(
new
Date
(
this
.
dateObj
.
date
).
getTime
()
<
new
Date
(
this
.
stuInfo
.
AppointDate
).
getTime
()
new
Date
(
QCalendar
.
today
()
).
getTime
()
)
{
this
.
$q
.
notify
({
message
:
`
${
this
.
stuInfo
.
StuName
}
,不能预约
${
this
.
stuInfo
.
AppointDate
}
之前的
日期`
,
message
:
`
日期小于今天,请重新选择
日期`
,
position
:
"top"
,
type
:
"negative"
});
return
;
}
}
if
(
this
.
editType
==
1
)
{
if
(
this
.
courseCheckList
.
length
===
0
)
{
this
.
$q
.
notify
({
message
:
"请选择上课时段"
,
position
:
"top"
,
type
:
"negative"
});
return
;
if
(
this
.
stuInfo
.
AppointDate
)
{
if
(
new
Date
(
this
.
dateObj
.
date
).
getTime
()
<
new
Date
(
this
.
stuInfo
.
AppointDate
).
getTime
()
)
{
this
.
$q
.
notify
({
message
:
`
${
this
.
stuInfo
.
StuName
}
,不能预约
${
this
.
stuInfo
.
AppointDate
}
之前的日期`
,
position
:
"top"
,
type
:
"negative"
});
return
;
}
}
const
totalTime
=
this
.
courseCheckList
.
reduce
((
pre
,
cur
)
=>
{
return
(
pre
+=
cur
.
Minutes
);
},
0
);
if
(
this
.
checkChapter
.
StudyMinutes
!==
totalTime
)
{
this
.
$q
.
notify
({
message
:
"课时不匹配,请重新上课时段"
,
position
:
"top"
,
type
:
"negative"
if
(
this
.
editType
==
1
)
{
if
(
this
.
courseCheckList
.
length
===
0
)
{
this
.
$q
.
notify
({
message
:
"请选择上课时段"
,
position
:
"top"
,
type
:
"negative"
});
return
;
}
const
totalTime
=
this
.
courseCheckList
.
reduce
((
pre
,
cur
)
=>
{
return
(
pre
+=
cur
.
Minutes
);
},
0
);
if
(
this
.
checkChapter
.
StudyMinutes
!==
totalTime
)
{
this
.
$q
.
notify
({
message
:
"课时不匹配,请重新上课时段"
,
position
:
"top"
,
type
:
"negative"
});
return
;
}
let
newCourseCheckList
=
this
.
courseCheckList
.
sort
((
a
,
b
)
=>
{
return
a
.
Sort
-
b
.
Sort
;
});
return
;
}
let
newCourseCheckList
=
this
.
courseCheckList
.
sort
((
a
,
b
)
=>
{
return
a
.
Sort
-
b
.
Sort
;
});
for
(
let
i
=
0
;
i
<
newCourseCheckList
.
length
;
i
++
)
{
if
(
i
>
0
)
{
const
cur
=
newCourseCheckList
[
i
].
Sort
;
const
pre
=
newCourseCheckList
[
i
-
1
].
Sort
;
if
(
cur
-
pre
>
1
)
{
this
.
$q
.
notify
({
message
:
"请按顺序选择上课时段"
,
position
:
"top"
,
type
:
"negative"
});
return
;
for
(
let
i
=
0
;
i
<
newCourseCheckList
.
length
;
i
++
)
{
if
(
i
>
0
)
{
const
cur
=
newCourseCheckList
[
i
].
Sort
;
const
pre
=
newCourseCheckList
[
i
-
1
].
Sort
;
if
(
cur
-
pre
>
1
)
{
this
.
$q
.
notify
({
message
:
"请按顺序选择上课时段"
,
position
:
"top"
,
type
:
"negative"
});
return
;
}
}
}
this
.
saveMsg
.
Date
=
this
.
dateObj
.
date
;
this
.
saveMsg
.
StuId
=
this
.
stuInfo
.
StuId
;
this
.
saveMsg
.
StuName
=
this
.
stuInfo
.
StuName
;
this
.
saveMsg
.
GuestId
=
this
.
stuInfo
.
GuestId
;
this
.
saveMsg
.
CourseId
=
this
.
teaClassMsg
.
CourseId
;
this
.
saveMsg
.
TeacherId
=
this
.
teaClassMsg
.
TeacherId
;
this
.
saveMsg
.
ChapterNo
=
this
.
checkChapter
.
ChapterNo
;
this
.
saveMsg
.
CourseGradeId
=
this
.
checkChapter
.
CourseRate
;
this
.
saveMsg
.
ShiftSort
=
newCourseCheckList
.
map
(
e
=>
e
.
Sort
).
toString
();
}
else
if
(
this
.
editType
==
2
)
{
this
.
saveMsg
.
Date
=
this
.
dateObj
.
date
;
this
.
saveMsg
.
StuId
=
this
.
stuInfo
.
StuId
;
this
.
saveMsg
.
StuName
=
this
.
stuInfo
.
StuName
;
this
.
saveMsg
.
GuestId
=
this
.
stuInfo
.
GuestId
;
this
.
saveMsg
.
CourseId
=
0
;
this
.
saveMsg
.
TeacherId
=
this
.
saveObj
.
Tid
;
this
.
saveMsg
.
ChapterNo
=
this
.
saveObj
.
Ranks
;
this
.
saveMsg
.
CourseGradeId
=
this
.
saveObj
.
CourseGradeId
;
this
.
saveMsg
.
ShiftSort
=
this
.
saveObj
.
ShiftSort
;
}
this
.
saveMsg
.
Date
=
this
.
dateObj
.
date
;
this
.
saveMsg
.
StuId
=
this
.
stuInfo
.
StuId
;
this
.
saveMsg
.
StuName
=
this
.
stuInfo
.
StuName
;
this
.
saveMsg
.
GuestId
=
this
.
stuInfo
.
GuestId
;
this
.
saveMsg
.
CourseId
=
this
.
teaClassMsg
.
CourseId
;
this
.
saveMsg
.
TeacherId
=
this
.
teaClassMsg
.
TeacherId
;
this
.
saveMsg
.
ChapterNo
=
this
.
checkChapter
.
ChapterNo
;
this
.
saveMsg
.
CourseGradeId
=
this
.
checkChapter
.
CourseRate
;
this
.
saveMsg
.
ShiftSort
=
newCourseCheckList
.
map
(
e
=>
e
.
Sort
).
toString
();
}
else
if
(
this
.
editType
==
2
)
{
this
.
saveMsg
.
Date
=
this
.
dateObj
.
date
;
this
.
saveMsg
.
StuId
=
this
.
stuInfo
.
StuId
;
this
.
saveMsg
.
StuName
=
this
.
stuInfo
.
StuName
;
this
.
saveMsg
.
GuestId
=
this
.
stuInfo
.
GuestId
;
this
.
saveMsg
.
CourseId
=
0
;
this
.
saveMsg
.
TeacherId
=
this
.
saveObj
.
Tid
;
this
.
saveMsg
.
ChapterNo
=
this
.
saveObj
.
Ranks
;
this
.
saveMsg
.
CourseGradeId
=
this
.
saveObj
.
CourseGradeId
;
this
.
saveMsg
.
ShiftSort
=
this
.
saveObj
.
ShiftSort
;
}
this
.
addLoading
=
true
;
SetAdminScrollAppointment
(
this
.
saveMsg
)
.
then
(
res
=>
{
this
.
addLoading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
message
:
"操作成功"
,
position
:
"top"
});
if
(
this
.
editType
==
2
)
{
this
.
saveObj
.
GuestList
.
push
({
GuestName
:
this
.
stuInfo
.
StuName
,
AppointmentId
:
res
.
Data
this
.
addLoading
=
true
;
SetAdminScrollAppointment
(
this
.
saveMsg
)
.
then
(
res
=>
{
this
.
addLoading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
message
:
"操作成功"
,
position
:
"top"
});
if
(
this
.
editType
==
1
)
{
this
.
addStuList
.
push
(
this
.
stuInfo
.
StuName
)
}
if
(
this
.
editType
==
2
)
{
this
.
saveObj
.
GuestList
.
push
({
GuestName
:
this
.
stuInfo
.
StuName
,
AppointmentId
:
res
.
Data
});
}
this
.
stuInfo
=
""
;
this
.
getStu
();
this
.
$emit
(
"success"
);
}
this
.
stuInfo
=
""
;
this
.
getStu
();
this
.
$emit
(
"success"
);
}
})
.
catch
(()
=>
{
this
.
addLoading
=
false
;
});
},
detailSuccessHandle
()
{
this
.
getStu
();
this
.
$emit
(
"success"
);
},
detailCloseHandle
()
{
this
.
changeDig
(
false
);
this
.
$emit
(
"success"
);
},
showAddStu
()
{
if
(
new
Date
(
this
.
dateObj
.
date
).
getTime
()
<
new
Date
(
QCalendar
.
today
()).
getTime
())
{
return
false
;
}
else
{
return
true
;
})
.
catch
(()
=>
{
this
.
addLoading
=
false
;
});
},
detailSuccessHandle
()
{
this
.
getStu
();
this
.
$emit
(
"success"
);
},
detailCloseHandle
()
{
this
.
changeDig
(
false
);
this
.
$emit
(
"success"
);
},
showAddStu
()
{
if
(
new
Date
(
this
.
dateObj
.
date
).
getTime
()
<
new
Date
(
QCalendar
.
today
()).
getTime
())
{
return
false
;
}
else
{
return
true
;
}
}
}
}
};
}
;
</
script
>
<
style
>
.q-calendar-daily__day-interval
:hover
{
background
:
rgba
(
0
,
0
,
255
,
0.1
);
}
.q-calendar-daily__day-interval
:hover
{
background
:
rgba
(
0
,
0
,
255
,
0.1
);
}
.q-calendar-weekly__workweek
:hover
{
background
:
rgba
(
0
,
0
,
255
,
0.1
);
}
.q-calendar-weekly__workweek
:hover
{
background
:
rgba
(
0
,
0
,
255
,
0.1
);
}
.q-calendar-weekly__day
:hover
{
background
:
rgba
(
0
,
0
,
255
,
0.1
);
}
.q-calendar-weekly__
day
:hover
{
background
:
rgba
(
0
,
0
,
255
,
0.1
);
}
.q-calendar-weekly__head-week
day
:hover
{
background
:
rgba
(
0
,
0
,
255
,
0.1
);
}
.q-calendar-weekly__head-week
day
:hover
{
background
:
rgba
(
0
,
0
,
255
,
0.1
);
}
.q-calendar-scheduler__
day
:hover
{
background
:
rgba
(
0
,
0
,
255
,
0.1
);
}
.q-calendar-scheduler__day
:hover
{
background
:
rgba
(
0
,
0
,
255
,
0.1
);
}
.q-calendar-resource__resource-interval
:hover
{
background
:
rgba
(
0
,
0
,
255
,
0.1
);
}
.q-calendar-resource__resource-interval
:hover
{
background
:
rgba
(
0
,
0
,
255
,
0.1
);
}
.q-calendar-daily__day
:hover
{
background
:
rgba
(
0
,
0
,
255
,
0.1
);
}
.q-calendar-daily__day
:hover
{
background
:
rgba
(
0
,
0
,
255
,
0.1
);
}
</
style
>
<
style
>
.upload-assiatant-box
.q-uploader__list
{
display
:
none
;
}
.upload-assiatant-box
.q-uploader__list
{
display
:
none
;
}
.upload-assiatant-box
.q-uploader
{
width
:
auto
;
}
.timeItem
{
margin
:
10px
0
;
}
.upload-assiatant-box
.q-uploader
{
width
:
auto
;
}
.timeItem
{
margin
:
10px
0
;
}
</
style
>
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