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
98d89f78
Commit
98d89f78
authored
Apr 06, 2022
by
liudong1993
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
parents
81d54e27
188e5de7
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
232 additions
and
53 deletions
+232
-53
dayStatic.vue
src/pages/teacher/dayStatic.vue
+76
-18
monthFirst.vue
src/pages/teacher/monthFirst.vue
+75
-17
monthSecond.vue
src/pages/teacher/monthSecond.vue
+40
-8
yearStatic.vue
src/pages/teacher/yearStatic.vue
+41
-10
No files found.
src/pages/teacher/dayStatic.vue
View file @
98d89f78
...
...
@@ -16,16 +16,23 @@
<
template
>
<div
class=
"page-body"
>
<div
class=
"col row wrap q-mb-lg"
style=
"justify-content:space-between;"
>
<div
class=
"col-3 Sysuser_Date q-mr-lg"
>
<q-field
filled
dense
>
<template
v-slot:control
>
<el-date-picker
v-model=
"myDate"
style=
"width:100%"
value-format=
"yyyy-MM"
@
change=
"getCheckDate()"
size=
"small"
type=
"month"
placeholder=
"选择年月"
>
</el-date-picker>
</
template
>
</q-field>
<div
class=
"col row wrap"
>
<div
class=
"col-2 Sysuser_Date q-mr-lg"
>
<q-field
filled
dense
>
<template
v-slot:control
>
<el-date-picker
v-model=
"myDate"
style=
"width:100%"
value-format=
"yyyy-MM"
@
change=
"getCheckDate()"
size=
"mini"
type=
"month"
placeholder=
"选择年月"
>
</el-date-picker>
</
template
>
</q-field>
</div>
<div
class=
"col-2"
>
<q-select
filled
dense
stack-label
@
input=
"getList"
option-value=
"TId"
@
filter=
"filterTeacherFn"
use-input
option-label=
"TeacherName"
v-model=
"msg.TeacherId"
ref=
"Teacher_Id"
:options=
"TeacherList"
label=
"教师团队"
clearable
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
/>
</div>
</div>
<div>
<div
style=
"float:right;"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"download"
style=
"margin-top:15px;"
@
click=
"downloadStudentStatic"
label=
"下载"
/>
</div>
...
...
@@ -46,51 +53,77 @@
续约
<br
/>
(含留学)
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='学生退课'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"background-color:#FF66CC;color:#000;"
>
学生退课
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='学生投诉'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"background-color:#FF66CC;color:#000;"
>
学生投诉
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='老师迟到早退'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;
background-color:#FF66CC;color:#000;
"
>
老师
<br
/>
迟到早退
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='N5课程时数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;
background-color:#E2EFDA;color:#000;
"
>
N5
<br
/>
课程时数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='N4课程时数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;
background-color:#E2EFDA;color:#000;
"
>
N4
<br
/>
课程时数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='N3课程时数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;
background-color:#E2EFDA;color:#000;
"
>
N3
<br
/>
课程时数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='N2课程时数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;
background-color:#B4C6E7;color:#000;
"
>
N2
<br
/>
课程时数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='N1课程时数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;
background-color:#B4C6E7;color:#000;
"
>
N1
<br
/>
课程时数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='学生小程序刷题次数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:75px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:75px;text-align:center;
background-color:#B4C6E7;color:#000;
"
>
学生小程序
<br
/>
刷题次数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='学生小程序刷题时间'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:75px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:75px;text-align:center;
background-color:#B4C6E7;color:#000;
"
>
学生小程序
<br
/>
刷题时间
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='活动次数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"background-color:#B4C6E7;color:#000;"
>
活动次数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='所有老师平均分数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:70px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:70px;text-align:center;
background-color:#FFC000;color:#000;
"
>
所有老师
<br
/>
平均分数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='总分数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:70px;text-align:center;background-color:#FFC000;color:#000;"
>
总分数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='分数差距'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:70px;text-align:center;background-color:#FFC000;color:#000;"
>
分数差距
</q-th>
</
template
>
<
template
v-else
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:70px"
>
{{
col
.
label
}}
...
...
@@ -108,6 +141,9 @@
import
{
GetTeacherDay
}
from
'../../api/teacher/index'
;
import
{
getTeacherDropDownList
}
from
"../../api/school/index"
;
import
{
EduDownLoad
}
from
"../../api/common/common"
;
...
...
@@ -266,8 +302,12 @@
msg
:
{
YearStr
:
''
,
MonthStr
:
''
,
TeacherId
:
''
,
rowsPerPage
:
0
},
teacher
:
0
,
AllTeacherList
:[],
TeacherList
:[]
//教师数据
}
},
created
()
{
...
...
@@ -280,9 +320,27 @@
this
.
msg
.
YearStr
=
d
.
getFullYear
().
toString
();
this
.
msg
.
MonthStr
=
(
d
.
getMonth
()
+
1
).
toString
();
this
.
myDate
=
this
.
msg
.
YearStr
+
'-'
+
this
.
msg
.
MonthStr
this
.
GetTeacherList
();
this
.
getList
();
},
methods
:
{
//获取教师下拉
GetTeacherList
()
{
getTeacherDropDownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TeacherList
=
res
.
Data
;
this
.
AllTeacherList
=
res
.
Data
;
}
});
},
//课程教师
filterTeacherFn
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
TeacherList
=
this
.
AllTeacherList
.
filter
(
v
=>
v
.
TeacherName
.
indexOf
(
val
)
>
-
1
);
});
},
//下载数据
downloadStudentStatic
()
{
this
.
loading
=
true
;
...
...
src/pages/teacher/monthFirst.vue
View file @
98d89f78
...
...
@@ -7,14 +7,21 @@
<
template
>
<div>
<div
class=
"col row wrap q-mb-lg"
style=
"justify-content:space-between;"
>
<div
class=
"col-3 Sysuser_Date q-mr-lg"
>
<q-field
filled
dense
>
<template
v-slot:control
>
<el-date-picker
v-model=
"msg.YearStr"
@
change=
"getList"
style=
"width:100%"
value-format=
"yyyy"
size=
"small"
type=
"year"
placeholder=
"选择年"
>
</el-date-picker>
</
template
>
</q-field>
<div
class=
"col row wrap"
>
<div
class=
"col-2 Sysuser_Date q-mr-lg"
>
<q-field
filled
dense
>
<template
v-slot:control
>
<el-date-picker
v-model=
"msg.YearStr"
@
change=
"getList"
style=
"width:100%"
value-format=
"yyyy"
size=
"mini"
type=
"year"
placeholder=
"选择年"
>
</el-date-picker>
</
template
>
</q-field>
</div>
<div
class=
"col-2"
style=
"display:none;"
>
<q-select
filled
dense
stack-label
@
input=
"getList"
option-value=
"TId"
@
filter=
"filterTeacherFn"
use-input
option-label=
"TeacherName"
v-model=
"msg.TeacherId"
ref=
"Teacher_Id"
:options=
"TeacherList"
label=
"教师团队"
clearable
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
/>
</div>
</div>
<div>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"download"
style=
"margin-top:15px;"
...
...
@@ -37,51 +44,77 @@
续约
<br
/>
(含留学)
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='学生退课'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"background-color:#FF66CC;color:#000;"
>
学生退课
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='学生投诉'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"background-color:#FF66CC;color:#000;"
>
学生投诉
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='老师迟到早退'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;
background-color:#FF66CC;color:#000;
"
>
老师
<br
/>
迟到早退
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='N5课程时数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;
background-color:#E2EFDA;color:#000;
"
>
N5
<br
/>
课程时数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='N4课程时数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;
background-color:#E2EFDA;color:#000;
"
>
N4
<br
/>
课程时数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='N3课程时数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;
background-color:#E2EFDA;color:#000;
"
>
N3
<br
/>
课程时数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='N2课程时数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;
background-color:#B4C6E7;color:#000;
"
>
N2
<br
/>
课程时数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='N1课程时数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:60px;text-align:center;
background-color:#B4C6E7;color:#000;
"
>
N1
<br
/>
课程时数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='学生小程序刷题次数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:75px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:75px;text-align:center;
background-color:#B4C6E7;color:#000;
"
>
学生小程序
<br
/>
刷题次数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='学生小程序刷题时间'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:75px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:75px;text-align:center;
background-color:#B4C6E7;color:#000;
"
>
学生小程序
<br
/>
刷题时间
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='活动次数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"background-color:#B4C6E7;color:#000;"
>
活动次数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='所有老师平均分数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:70px;text-align:center;"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:70px;text-align:center;
background-color:#FFC000;color:#000;
"
>
所有老师
<br
/>
平均分数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='总分数'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:70px;text-align:center;background-color:#FFC000;color:#000;"
>
总分数
</q-th>
</
template
>
<
template
v-else-if=
"col.label=='分数差距'"
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:70px;text-align:center;background-color:#FFC000;color:#000;"
>
分数差距
</q-th>
</
template
>
<
template
v-else
>
<q-th
:key=
"col.name"
:props=
"props"
style=
"max-width:70px"
>
{{
col
.
label
}}
...
...
@@ -102,6 +135,10 @@
import
{
EduDownLoad
}
from
"../../api/common/common"
;
import
{
getTeacherDropDownList
}
from
"../../api/school/index"
;
export
default
{
props
:
{},
meta
:
{
...
...
@@ -255,8 +292,11 @@
tableHeight
:
500
,
msg
:
{
YearStr
:
''
,
TeacherId
:
''
,
rowsPerPage
:
0
},
TeacherList
:[],
AllTeacherList
:[]
}
},
created
()
{
...
...
@@ -267,9 +307,27 @@
mounted
()
{
let
d
=
new
Date
();
this
.
msg
.
YearStr
=
d
.
getFullYear
().
toString
();
this
.
GetTeacherList
();
this
.
getList
();
},
methods
:
{
//获取教师下拉
GetTeacherList
()
{
getTeacherDropDownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TeacherList
=
res
.
Data
;
this
.
AllTeacherList
=
res
.
Data
;
}
});
},
//课程教师
filterTeacherFn
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
TeacherList
=
this
.
AllTeacherList
.
filter
(
v
=>
v
.
TeacherName
.
indexOf
(
val
)
>
-
1
);
});
},
downloadStudentStaticMonth
()
{
this
.
loading
=
true
;
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
...
...
src/pages/teacher/monthSecond.vue
View file @
98d89f78
...
...
@@ -11,14 +11,21 @@
<
template
>
<div>
<div
class=
"col row wrap q-mb-lg"
style=
"justify-content:space-between;"
>
<div
class=
"col-3 Sysuser_Date q-mr-lg"
>
<q-field
filled
dense
>
<template
v-slot:control
>
<el-date-picker
v-model=
"msg.YearStr"
@
change=
"getList"
style=
"width:100%"
value-format=
"yyyy"
size=
"small"
type=
"year"
placeholder=
"选择年"
>
</el-date-picker>
</
template
>
</q-field>
<div
class=
"col row wrap"
>
<div
class=
"col-2 Sysuser_Date q-mr-lg"
>
<q-field
filled
dense
>
<template
v-slot:control
>
<el-date-picker
v-model=
"msg.YearStr"
@
change=
"getList"
style=
"width:100%"
value-format=
"yyyy"
size=
"mini"
type=
"year"
placeholder=
"选择年"
>
</el-date-picker>
</
template
>
</q-field>
</div>
<div
class=
"col-2"
style=
"display:none;"
>
<q-select
filled
dense
stack-label
@
input=
"getList"
option-value=
"TId"
@
filter=
"filterTeacherFn"
use-input
option-label=
"TeacherName"
v-model=
"msg.TeacherId"
ref=
"Teacher_Id"
:options=
"TeacherList"
label=
"教师团队"
clearable
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
/>
</div>
</div>
<div>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"download"
style=
"margin-top:15px;"
label=
"下载"
...
...
@@ -107,6 +114,9 @@
import
{
EduDownLoad
}
from
"../../api/common/common"
;
import
{
getTeacherDropDownList
}
from
"../../api/school/index"
;
export
default
{
props
:
{},
meta
:
{
...
...
@@ -121,6 +131,7 @@
tableHeight
:
500
,
msg
:
{
YearStr
:
''
,
TeacherId
:
''
,
rowsPerPage
:
0
},
columns
:
[{
...
...
@@ -208,6 +219,8 @@
align
:
'left'
}
],
TeacherList
:[],
AllTeacherList
:[]
}
},
created
()
{
...
...
@@ -218,9 +231,28 @@
mounted
()
{
let
d
=
new
Date
();
this
.
msg
.
YearStr
=
d
.
getFullYear
().
toString
();
this
.
GetTeacherList
();
this
.
getList
();
},
methods
:
{
//获取教师下拉
GetTeacherList
()
{
getTeacherDropDownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TeacherList
=
res
.
Data
;
this
.
AllTeacherList
=
res
.
Data
;
}
});
},
//课程教师
filterTeacherFn
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
TeacherList
=
this
.
AllTeacherList
.
filter
(
v
=>
v
.
TeacherName
.
indexOf
(
val
)
>
-
1
);
});
},
//下载文件
downloadStudentStaticMonthRate
()
{
this
.
loading
=
true
;
...
...
src/pages/teacher/yearStatic.vue
View file @
98d89f78
...
...
@@ -4,15 +4,22 @@
<q-tab
:ripple=
"false"
:name=
"1"
label=
"年份统计"
/>
<q-tab
:ripple=
"false"
:name=
"2"
label=
"成长率"
/>
</q-tabs>
<div
class=
"col row wrap q-mb-lg"
>
<div
class=
"col-3 Sysuser_Date q-mr-lg"
style=
"display:none;"
>
<q-field
filled
dense
>
<template
v-slot:control
>
<el-date-picker
v-model=
"msg.YearStr"
@
change=
"getList"
style=
"width:100%"
value-format=
"yyyy"
size=
"small"
type=
"year"
placeholder=
"选择年"
>
</el-date-picker>
</
template
>
</q-field>
<div
class=
"col row wrap q-mb-lg"
style=
"justify-content:space-between;"
>
<div
class=
"col row wrap"
style=
"display:none;"
>
<div
class=
"col-2 Sysuser_Date q-mr-lg"
>
<q-field
filled
dense
>
<template
v-slot:control
>
<el-date-picker
v-model=
"msg.YearStr"
@
change=
"getList"
style=
"width:100%"
value-format=
"yyyy"
size=
"mini"
type=
"year"
placeholder=
"选择年"
>
</el-date-picker>
</
template
>
</q-field>
</div>
<div
class=
"col-2"
>
<q-select
filled
dense
stack-label
@
input=
"getList"
clearable
option-value=
"TId"
@
filter=
"filterTeacherFn"
use-input
option-label=
"TeacherName"
v-model=
"msg.TeacherId"
ref=
"Teacher_Id"
:options=
"TeacherList"
label=
"教师团队"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
/>
</div>
</div>
<div>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"download"
style=
"margin-top:15px;"
label=
"下载"
...
...
@@ -31,6 +38,9 @@
GetTeacherStaticYear
,
GetTeacherStaticYearRate
}
from
'../../api/teacher/index'
;
import
{
getTeacherDropDownList
}
from
"../../api/school/index"
;
export
default
{
props
:
{},
...
...
@@ -46,8 +56,11 @@
dataList
:
[],
msg
:
{
YearStr
:
''
,
TeacherId
:
''
,
rowsPerPage
:
0
}
},
TeacherList
:[],
AllTeacherList
:[]
}
},
created
()
{
...
...
@@ -56,9 +69,27 @@
mounted
()
{
let
d
=
new
Date
();
this
.
msg
.
YearStr
=
d
.
getFullYear
().
toString
();
this
.
GetTeacherList
();
this
.
getList
();
},
methods
:
{
//获取教师下拉
GetTeacherList
()
{
getTeacherDropDownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TeacherList
=
res
.
Data
;
this
.
AllTeacherList
=
res
.
Data
;
}
});
},
//课程教师
filterTeacherFn
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
TeacherList
=
this
.
AllTeacherList
.
filter
(
v
=>
v
.
TeacherName
.
indexOf
(
val
)
>
-
1
);
});
},
//下载文件
downloadStudentStaticYear
()
{
this
.
loading
=
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