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
5822595a
Commit
5822595a
authored
Sep 09, 2024
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
end
parent
0483acf2
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
171 additions
and
21 deletions
+171
-21
quasar.conf.js
quasar.conf.js
+1
-1
StudentProgress.vue
src/pages/stuMan/StudentProgress.vue
+128
-10
setStudyPlan.vue
src/pages/stuMan/components/setStudyPlan.vue
+42
-10
No files found.
quasar.conf.js
View file @
5822595a
...
...
@@ -47,7 +47,7 @@ module.exports = function(ctx) {
vueRouterMode
:
'history'
,
// available values: 'hash', 'history'
env
:
ctx
.
dev
?
{
API
:
'http://192.168.5.
57:5001
/api'
,
API
:
'http://192.168.5.
46:8300
/api'
,
// API: 'http://192.168.10.128:8300/api',
// API: 'https://eduapi.oytour.com/api',
API_ZC
:
'http://192.168.5.238:8087/api'
,
...
...
src/pages/stuMan/StudentProgress.vue
View file @
5822595a
...
...
@@ -137,12 +137,13 @@
'focus-box': coor[0] == i && coor[1] == yi,
'unchecked':y &&y.State==1,
'unstudy':y &&y.State==2,
'notFreeCancle':y &&y.State==6,
'onlineStudy':y &&y.State==3 && y.AttendanceMethod==2,
'notChecked':y &&y.State==3 && y.AttendanceMethod==3,
'study-normal':y &&y.State==3 && y.AttendanceMethod==1
}
"
>
<
template
v
-
if
=
"y&&
y.State<3
"
>
<
template
v
-
if
=
"y&&
(y.State<3||y.State==6)
"
>
{{
y
.
StateName
}}
<
/template
>
<
template
v
-
else
-
if
=
"y&&y.State==3"
>
...
...
@@ -190,7 +191,15 @@
<
q
-
item
v
-
close
-
popup
clickable
@
click
=
"confirmSub"
v
-
if
=
"currentMenuState==1"
>
<
q
-
item
-
section
>
确认排课
<
/q-item-section
>
<
/q-item
>
<
q
-
item
v
-
close
-
popup
clickable
v
-
if
=
"currentMenuState==1||currentMenuState==2"
@
click
=
"showDialogHandle(students[coor[1]], 4)"
>
<
q
-
item
-
section
>
修改排课
<
/q-item-section
>
...
...
@@ -199,9 +208,9 @@
v
-
close
-
popup
clickable
v
-
if
=
"currentMenuState==1||currentMenuState==2"
@
click
=
"
showDialogHandle(students[coor[1]], 4)
"
@
click
=
"
getPlan
"
>
<
q
-
item
-
section
>
取消排课
<
/q-item-section
>
<
q
-
item
-
section
class
=
"text-negative"
>
取消排课
<
/q-item-section
>
<
/q-item
>
<!--
<
q
-
item
v
-
close
-
popup
...
...
@@ -281,6 +290,21 @@
:
save
-
obj
=
"stuOption"
@
close
=
"() => (stuInfoVisible = false)"
><
/studentRight-form
>
<
q
-
dialog
v
-
model
=
"cancelConfirm"
persistent
>
<
q
-
card
>
<
q
-
card
-
section
class
=
"row items-center"
>
<
div
>
你正在执行取消已确认学员的上课计划,请确认以下操作
<
/div
>
<
div
class
=
"q-mt-sm"
>
<
q
-
radio
v
-
model
=
"adminCancelChosenOpera"
checked
-
icon
=
"task_alt"
unchecked
-
icon
=
"panorama_fish_eye"
val
=
"yes"
label
=
"扣除学员课时按缺勤处理"
/>
<
q
-
radio
v
-
model
=
"adminCancelChosenOpera"
checked
-
icon
=
"task_alt"
unchecked
-
icon
=
"panorama_fish_eye"
val
=
"no"
label
=
"无损取消"
/>
<
/div
>
<
/q-card-section
>
<
q
-
card
-
actions
align
=
"right"
>
<
q
-
btn
flat
label
=
"不执行此次操作"
color
=
"primary"
v
-
close
-
popup
/>
<
q
-
btn
unelevated
label
=
"确认选择"
@
click
=
"checkRemoveChosenHandle"
:
disable
=
"adminCancelChosenOpera==''"
color
=
"primary"
v
-
close
-
popup
/>
<
/q-card-actions
>
<
/q-card
>
<
/q-dialog
>
<
/div
>
<
/template
>
...
...
@@ -291,6 +315,7 @@ import {
queryChapterTree
,
queryScheduleCourseStu
}
from
"../../api/course/index"
;
import
{
SetSureAppointment
}
from
"../../api/studyabroad/subscribe.js"
;
import
{
getStudentInfo
}
from
"src/api/school/index"
;
import
{
setGuestRemark
}
from
"src/api/studentmsg/index"
;
import
setStudentTeacher
from
"./components/setStudentTeacher.vue"
;
...
...
@@ -299,6 +324,7 @@ import SetStudyStatus from "./components/setStudyStatus.vue";
import
StudyHeader
from
"./components/studyHeader.vue"
;
import
studentRightForm
from
"src/components/school/student/studentRight-form.vue"
;
import
SetStudyPlan
from
"./components/setStudyPlan.vue"
;
import
{
getStuAppointPlan
,
cancelStuAppointment
}
from
'src/api/scheduling/schedu'
export
default
{
components
:
{
scrollBar
,
...
...
@@ -350,7 +376,10 @@ export default {
coor
:
[
-
1
,
-
1
],
locationMenu
:
[
0
,
0
],
currentMenuState
:
0
,
currentSchedu
:
null
currentSchedu
:
null
,
cancelConfirm
:
false
,
adminCancelChosenOpera
:
''
,
updatePlan
:{
}
}
;
}
,
methods
:
{
...
...
@@ -401,10 +430,6 @@ export default {
if
(
playload
)
this
.
queryParemeter
=
{
...
this
.
queryParemeter
,
...
playload
}
;
console
.
log
(
this
.
currentCourse
.
CourseRate
,
this
.
queryParemeter
.
CourseRate
);
if
(
this
.
currentCourse
.
CourseRate
!=
this
.
queryParemeter
.
CourseRate
)
{
this
.
queryParemeter
.
CourseRate
=
this
.
currentCourse
.
CourseRate
;
this
.
getStudentByStoreage
();
...
...
@@ -597,6 +622,26 @@ export default {
}
);
}
}
,
confirmSub
()
{
this
.
$q
.
loading
.
show
()
const
msg
=
{
Date
:
this
.
currentSchedu
.
Date
,
TeacherId
:
this
.
currentSchedu
.
TeacherId
,
ShiftSort
:
this
.
currentSchedu
.
ShiftSort
}
;
SetSureAppointment
(
msg
).
then
(
res
=>
{
this
.
$q
.
loading
.
hide
()
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
message
:
"操作成功"
,
position
:
"top"
,
type
:
"positive"
}
);
this
.
getStudentByStoreage
()
}
}
);
}
,
contextMenuHandle
(
i
,
yi
,
e
,
y
)
{
this
.
currentMenuState
=
y
?
y
.
State
:
0
this
.
currentSchedu
=
y
...
...
@@ -612,12 +657,82 @@ export default {
?
t
.
offsetTop
-
48
:
top
;
//sptable-wrap
this
.
locationMenu
=
[
t
.
offsetLeft
+
t
.
offsetWidth
/
2
,
top
];
this
.
locationMenu
=
[
(
t
.
offsetLeft
+
t
.
offsetWidth
/
2
)
*
this
.
zoom
,
top
*
this
.
zoom
];
}
,
cancleCellHandle
()
{
this
.
coor
=
[
-
1
,
-
1
];
this
.
locationMenu
=
[
-
1
,
-
1
];
}
}
,
getPlan
(){
const
y
=
this
.
currentSchedu
this
.
$q
.
loading
.
show
()
getStuAppointPlan
({
AccountId
:
y
.
AccountId
,
Date
:
y
.
Date
,
ShiftSort
:
y
.
ShiftSort
}
).
then
(
r
=>
{
if
(
r
.
Code
==
1
){
const
d
=
r
.
Data
this
.
updatePlan
=
d
this
.
canclePlanClassHandler
()
}
else
{
this
.
$q
.
loading
.
hide
()
}
}
)
}
,
canclePlanClassHandler
(){
if
(
this
.
currentSchedu
.
State
==
2
){
this
.
adminCancelChosenOpera
=
''
this
.
cancelConfirm
=
true
}
else
if
(
this
.
currentSchedu
.
State
==
1
){
this
.
adminCancelChosenOpera
=
'no'
this
.
cancelConfirm
=
false
this
.
removePlanHandle
()
}
this
.
$q
.
loading
.
hide
()
}
,
checkRemoveChosenHandle
(){
if
(
this
.
adminCancelChosenOpera
==
''
){
this
.
errorMsgHandle
(
'请选择执行的内容'
)
return
}
this
.
cancelConfirm
=
false
this
.
removePlanHandle
()
}
,
errorMsgHandle
(
msg
){
this
.
$q
.
notify
({
color
:
"negative"
,
message
:
msg
,
position
:
"top"
}
);
}
,
removePlanHandle
(){
this
.
$q
.
loading
.
show
()
var
chosenList
=
[]
this
.
updatePlan
.
ChooseStuList
.
forEach
(
x
=>
{
chosenList
.
push
({
AppointId
:
x
.
AppointmentId
,
IsCalcStuCheck
:
this
.
adminCancelChosenOpera
==
'yes'
?
1
:
0
}
)
}
)
cancelStuAppointment
({
AccountId
:
this
.
currentSchedu
.
AccountId
,
Date
:
this
.
updatePlan
.
Date
,
ShiftSort
:
this
.
updatePlan
.
ShiftSort
,
ChooseStuList
:
chosenList
}
).
then
(
r
=>
{
this
.
$q
.
loading
.
hide
()
if
(
r
.
Code
==
1
){
this
.
getStudentByStoreage
();
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"取消成功!"
,
position
:
"top"
}
);
return
}
}
)
}
,
}
,
created
()
{
this
.
getCourse
();
...
...
@@ -829,4 +944,7 @@ export default {
.
sptable
.
notChecked
{
background
:
#
eb3b5a
;
}
.
sptable
.
notFreeCancle
{
background
:
#
acacac
;
}
<
/style
>
src/pages/stuMan/components/setStudyPlan.vue
View file @
5822595a
...
...
@@ -83,10 +83,12 @@
</q-btn-dropdown>
</div>
<div
class=
"bg-grey-2 q-pa-md rounded-borders q-mt-sm row"
style=
"border:1px dashed #CFCFCF"
>
<div
class=
"text-small text-grey-8"
v-if=
"planTime && planTime.State>0 && plan.checkedStus.length==0"
>
暂无其它学员一同上课
</div>
<q-chip
square
v-for=
"(x,i) in plan.checkedStus"
:key=
"i"
:removable=
"(planTime && planTime.State!=3)||!plantime"
@
remove=
"removeCheckedStusHandle(x)"
>
{{ x.GuestName }}
</q-chip>
</div>
</div>
<div
class=
"q-mt-md text-right"
>
<q-btn
color=
"negative"
label=
"取消约课"
class=
"q-mr-md"
:loading=
"subLoading"
unelevated
@
click=
"canclePlanClassHandler"
/>
<q-btn
label=
"保存"
color=
"primary"
class=
"q-mr-md"
:loading=
"subLoading"
@
click=
"validateSubmit"
unelevated
/>
<q-btn
label=
"关闭"
@
click=
"close"
:disable=
"subLoading"
unelevated
/>
</div>
...
...
@@ -180,7 +182,8 @@ export default {
updatePlan
:
null
,
cancelConfirm
:
false
,
adminCancelChosenOpera
:
''
,
cancelStu
:
null
cancelStu
:
null
,
cancelPlan
:
false
};
},
methods
:
{
...
...
@@ -323,6 +326,7 @@ export default {
if
(
temp
)
temp
.
disable
=
true
},
removeCheckedStusHandle
(
item
){
this
.
cancelPlan
=
false
if
(
this
.
planTime
){
const
stuIndex
=
this
.
updatePlan
.
ChooseStuList
.
findIndex
(
x
=>
x
.
StuId
==
item
.
StuId
)
if
(
stuIndex
!=-
1
){
...
...
@@ -345,6 +349,17 @@ export default {
const
temp
=
this
.
recommendStus
.
find
(
x
=>
x
.
StuId
==
item
.
StuId
)
if
(
temp
)
temp
.
disable
=
false
},
canclePlanClassHandler
(){
this
.
cancelPlan
=
true
if
(
this
.
planTime
.
State
==
2
){
this
.
adminCancelChosenOpera
=
''
this
.
cancelConfirm
=
true
}
else
if
(
this
.
planTime
.
State
==
1
){
this
.
adminCancelChosenOpera
=
'no'
this
.
cancelConfirm
=
false
this
.
removePlanHandle
()
}
},
checkRemoveChosenHandle
(){
if
(
this
.
adminCancelChosenOpera
==
''
){
this
.
errorMsgHandle
(
'请选择执行的内容'
)
...
...
@@ -354,21 +369,38 @@ export default {
this
.
removePlanHandle
()
},
removePlanHandle
(){
const
stu
=
this
.
updatePlan
.
ChooseStuList
[
this
.
cancelStu
]
console
.
log
(
stu
)
var
chosenList
=
[]
let
tempList
=
[]
if
(
!
this
.
cancelPlan
){
tempList
.
push
(
this
.
updatePlan
.
ChooseStuList
[
this
.
cancelStu
])
}
else
{
tempList
.
push
(...
this
.
updatePlan
.
ChooseStuList
)
}
tempList
.
forEach
(
x
=>
{
chosenList
.
push
({
AppointId
:
x
.
AppointmentId
,
IsCalcStuCheck
:
this
.
adminCancelChosenOpera
==
'yes'
?
1
:
0
})
})
cancelStuAppointment
({
AccountId
:
this
.
planTime
.
AccountId
,
Date
:
this
.
updatePlan
.
Date
,
ShiftSort
:
this
.
updatePlan
.
ShiftSort
,
ChooseStuList
:[
{
AppointId
:
stu
.
AppointmentId
,
IsCalcStuCheck
:
this
.
adminCancelChosenOpera
==
'yes'
?
1
:
0
}
]
ChooseStuList
:
chosenList
}).
then
(
r
=>
{
if
(
r
.
Code
==
1
){
if
(
this
.
cancelPlan
){
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"取消成功!"
,
position
:
"top"
});
this
.
$emit
(
"success"
);
return
}
this
.
updatePlan
.
ChooseStuList
.
splice
(
this
.
cancelStu
,
1
)
const
removeObj
=
this
.
plan
.
checkedStus
.
find
(
x
=>
x
.
StuId
==
stu
.
StuId
)
if
(
removeObj
)
this
.
removeCheckedStusHandle
(
removeObj
)
...
...
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