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
dfd0be6e
Commit
dfd0be6e
authored
May 17, 2022
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增待办消息气泡和动态切换消息通知功能
parent
4cf4355a
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
1365 additions
and
968 deletions
+1365
-968
business.vue
src/components/todolist/business.vue
+4
-0
contract.vue
src/components/todolist/contract.vue
+1
-0
distribution.vue
src/components/todolist/distribution.vue
+1
-0
graduation.vue
src/components/todolist/graduation.vue
+7
-11
index.vue
src/components/todolist/index.vue
+47
-11
payee.vue
src/components/todolist/payee.vue
+1
-0
students.vue
src/components/todolist/students.vue
+1
-0
todayFollow.vue
src/components/todolist/todayFollow.vue
+2
-0
todoStu.vue
src/components/todolist/todoStu.vue
+1
-0
todoToday.vue
src/components/todolist/todoToday.vue
+1
-0
Work.vue
src/pages/Work.vue
+47
-3
stuList.vue
src/pages/stuMan/stuList.vue
+1249
-943
changeClassManager.vue
src/pages/teacher/changeClassManager.vue
+3
-0
No files found.
src/components/todolist/business.vue
View file @
dfd0be6e
...
...
@@ -50,6 +50,7 @@
:isComponents=
"true"
:billId=
"msg.billId"
:receipt=
"msg.receipt"
@
success=
"refreshPage"
></changeClassManager>
</div>
</div>
...
...
@@ -82,6 +83,9 @@ export default {
}
})
.
catch
(()
=>
{});
},
refreshPage
()
{
this
.
$root
.
$emit
(
"updateTodoList"
);
}
}
};
...
...
src/components/todolist/contract.vue
View file @
dfd0be6e
...
...
@@ -282,6 +282,7 @@ export default {
},
refreshPage
()
{
this
.
getStudent
();
this
.
$root
.
$emit
(
"updateTodoList"
);
}
}
};
...
...
src/components/todolist/distribution.vue
View file @
dfd0be6e
...
...
@@ -106,6 +106,7 @@ export default {
},
refreshPage
()
{
this
.
getStudent
();
this
.
$root
.
$emit
(
"updateTodoList"
);
},
changePage
()
{
this
.
getStudent
();
...
...
src/components/todolist/graduation.vue
View file @
dfd0be6e
...
...
@@ -41,15 +41,10 @@
</div>
<div
style=
"height:calc(100% - 158px)"
>
<stulist
:dataList=
"stus"
@
reload=
"getStudent"
@
success=
"refreshPage"
:loading=
"loading"
ref=
"stuList"
:showHeader=
"false"
:isJudgeTrans=
"isJudgeTrans"
height=
"100%"
:noSelect=
"true"
:outData=
"stus"
:outLoading=
"loading"
:pageSize=
"msg.pageSize"
:isComponent=
"true"
></stulist>
</div>
<div
class=
"row"
style=
"justify-content: flex-end;padding: 5px 20px"
>
...
...
@@ -67,7 +62,7 @@
</
template
>
<
script
>
import
stulist
from
"../
school/student/stulist
"
;
import
stulist
from
"../
../pages/stuMan/stuList.vue
"
;
import
{
getGraduateStudent
}
from
"../../api/stuMan/index"
;
export
default
{
components
:
{
stulist
},
...
...
@@ -80,7 +75,7 @@ export default {
pageCount
:
0
,
msg
:
{
PageIndex
:
1
,
pageSize
:
1
2
,
pageSize
:
1
5
,
KeyWords
:
""
}
};
...
...
@@ -110,6 +105,7 @@ export default {
},
refreshPage
()
{
this
.
getStudent
();
this
.
$root
.
$emit
(
"updateTodoList"
);
},
changePage
()
{
this
.
getStudent
();
...
...
src/components/todolist/index.vue
View file @
dfd0be6e
...
...
@@ -14,7 +14,22 @@
:name=
"x.id.toString()"
:icon=
"`iconfont $
{x.icon}`"
:label="x.name"
>
</q-tab>
content-class="todo-box-tab-class"
>
<div
class=
"col row justify-end"
v-if=
"
childTodoTipList[`$
{x.value}`]
&&
childTodoTipList[`${x.value}`] != 0
"
>
<q-badge
rounded
color=
"red"
:label=
"childTodoTipList[`$
{x.value}`]"
/>
</div>
</q-tab>
</q-tabs>
</div>
<div
class=
"col bg-white rounded-borders full-height"
>
...
...
@@ -80,6 +95,7 @@ import payee from "./payee.vue";
import
business
from
"./business.vue"
;
import
financialDocuments
from
"../../pages/financial/financalDocument/FinancialDocuments.vue"
;
export
default
{
inject
:
[
"todoTipList"
],
components
:
{
todoToday
,
todoStu
,
...
...
@@ -101,67 +117,83 @@ export default {
id
:
1
,
name
:
"今日需联系线索"
,
msg
:
0
,
icon
:
"icon-xiansuo"
icon
:
"icon-xiansuo"
,
value
:
"TodayClueCount"
},
{
id
:
2
,
name
:
"今日需联系学员"
,
msg
:
0
,
icon
:
"icon-xueyuan2"
icon
:
"icon-xueyuan2"
,
value
:
"TodayConnectCount"
},
{
id
:
3
,
name
:
"分配给我的线索"
,
msg
:
0
,
icon
:
"icon-fenpei"
icon
:
"icon-fenpei"
,
value
:
"MyClueCount"
},
{
id
:
4
,
name
:
"分配给我的学员"
,
msg
:
0
,
icon
:
"icon-fenpeijiaose"
icon
:
"icon-fenpeijiaose"
,
value
:
"MyStudentCount"
},
{
id
:
5
,
name
:
"待申领合同"
,
msg
:
0
,
icon
:
"icon-hetong"
icon
:
"icon-hetong"
,
value
:
"MyOrderNotReceiveContractCount"
},
{
id
:
6
,
name
:
"待收款提醒"
,
msg
:
0
,
icon
:
"icon-shoukuan"
icon
:
"icon-shoukuan"
,
value
:
"MyOrderNotBalanceCount"
},
{
id
:
7
,
name
:
"今日被跟进学员"
,
msg
:
0
,
icon
:
"icon-genjin"
icon
:
"icon-genjin"
,
value
:
"TodayFollowCount"
},
{
id
:
8
,
name
:
"即将毕业学员"
,
msg
:
0
,
icon
:
"icon-biyejieye"
icon
:
"icon-biyejieye"
,
value
:
"GraduateStudentCount"
},
{
id
:
9
,
name
:
"待审核财务单据"
,
msg
:
0
,
icon
:
"icon-caiwu1"
icon
:
"icon-caiwu1"
,
value
:
"todoFincal"
},
{
id
:
10
,
name
:
"待审核业务单据"
,
msg
:
0
,
icon
:
"icon-yewu"
icon
:
"icon-yewu"
,
value
:
"NotBusinessBillCount"
}
]
};
},
computed
:
{
childTodoTipList
()
{
return
this
.
todoTipList
.
result
;
}
},
mounted
()
{
this
.
currentMenu
=
this
.
menulist
[
0
].
id
.
toString
();
//console.log(this.todoTipList);
},
methods
:
{}
};
...
...
@@ -175,5 +207,9 @@ export default {
.q-tabs--vertical
.justify-center
,
.q-tabs--vertical
.flex-center
{
justify-content
:
unset
!important
;
width
:
100%
;
}
.todo-box-tab-class
{
width
:
100%
;
}
</
style
>
src/components/todolist/payee.vue
View file @
dfd0be6e
...
...
@@ -108,6 +108,7 @@ export default {
},
refreshPage
()
{
this
.
getStudent
();
this
.
$root
.
$emit
(
"updateTodoList"
);
},
changePage
()
{
this
.
getStudent
();
...
...
src/components/todolist/students.vue
View file @
dfd0be6e
...
...
@@ -106,6 +106,7 @@ export default {
},
refreshPage
()
{
this
.
getStudent
();
this
.
$root
.
$emit
(
"updateTodoList"
);
},
changePage
()
{
this
.
getStudent
();
...
...
src/components/todolist/todayFollow.vue
View file @
dfd0be6e
...
...
@@ -87,6 +87,8 @@ export default {
},
mounted
()
{
this
.
getStudent
();
this
.
$root
.
$emit
(
"updateTodoList"
);
//@TODO:添加查询条件
},
methods
:
{
getStudent
()
{
...
...
src/components/todolist/todoStu.vue
View file @
dfd0be6e
...
...
@@ -106,6 +106,7 @@ export default {
},
refreshPage
()
{
this
.
getStudent
();
this
.
$root
.
$emit
(
"updateTodoList"
);
},
changePage
()
{
this
.
getStudent
();
...
...
src/components/todolist/todoToday.vue
View file @
dfd0be6e
...
...
@@ -106,6 +106,7 @@ export default {
},
refreshPage
()
{
this
.
getStudent
();
this
.
$root
.
$emit
(
"updateTodoList"
);
},
changePage
()
{
this
.
getStudent
();
...
...
src/pages/Work.vue
View file @
dfd0be6e
...
...
@@ -20,7 +20,15 @@
:color=
"chosenMenu == 7 ? 'primary' : 'blue-grey-14'"
:class=
"[chosenMenu == 7 ? 'text-weight-bold' : '']"
label=
"待办工作"
></q-btn>
>
<q-badge
rounded
color=
"red"
:label=
"todoCount"
v-if=
"todoCount > 0"
floating
/>
</q-btn>
<q-btn
flat
@
click=
"changeMenu(5)"
...
...
@@ -125,7 +133,7 @@
<
script
>
import
{
GetMyNoticePageList
}
from
"../api/course/index"
;
import
{
getTodayStatic
}
from
"../api/stuMan/index"
;
import
teachplan
from
"./course/teacherLesson"
;
import
okr
from
"./okr/index"
;
import
alignView
from
"./okr/okr-align-view"
;
...
...
@@ -164,12 +172,21 @@ export default {
pageSize
:
1
,
LookTime
:
""
},
todoList
:
{
result
:
null
},
todoCount
:
0
,
isShowNotice
:
false
,
noticeObj
:
{},
autoSendTodo
:
null
,
TimeList
:
[]
//存放时间作为比较
};
},
created
()
{},
created
()
{
this
.
$root
.
$on
(
"updateTodoList"
,
this
.
initTodoList
);
},
beforeDestroy
()
{
this
.
$root
.
$off
(
"updateTodoList"
,
this
.
initTodoList
);
clearInterval
(
this
.
autoSendTodo
);
},
mounted
()
{
let
userInfo
=
this
.
getLocalStorage
();
this
.
AccountType
=
userInfo
.
AccountType
;
...
...
@@ -195,8 +212,35 @@ export default {
this
.
noticeMsg
.
LookTime
=
notifyTime
;
}
this
.
getNoticeList
();
this
.
initTodoList
();
this
.
autoSendTodo
=
setInterval
(()
=>
{
this
.
initTodoList
();
},
60
*
1000
);
},
provide
()
{
return
{
todoTipList
:
this
.
todoList
};
},
methods
:
{
initTodoList
()
{
getTodayStatic
().
then
(
r
=>
{
console
.
log
(
r
);
let
d
=
r
.
Data
;
this
.
todoList
.
result
=
d
;
let
tempCount
=
0
;
tempCount
+=
d
.
GraduateStudentCount
;
tempCount
+=
d
.
MyClueCount
;
tempCount
+=
d
.
MyOrderNotBalanceCount
;
tempCount
+=
d
.
MyOrderNotReceiveContractCount
;
tempCount
+=
d
.
MyStudentCount
;
tempCount
+=
d
.
NotBusinessBillCount
;
tempCount
+=
d
.
TodayClueCount
;
tempCount
+=
d
.
TodayConnectCount
;
tempCount
+=
d
.
TodayFollowCount
;
this
.
todoCount
=
tempCount
;
});
},
changeMenu
(
i
)
{
if
(
i
==
1
)
{
this
.
okrMenu
=
1
;
...
...
src/pages/stuMan/stuList.vue
View file @
dfd0be6e
<
style
>
li
{
list-style-type
:
none
;
}
.stuList
ul
{
padding
:
0px
;
}
.stuList
li
{
background
:
rgba
(
221
,
222
,
224
,
0.2
);
border-radius
:
4px
;
margin-top
:
15px
;
}
li
{
list-style-type
:
none
;
}
.stuList
li
.dline
{
display
:
table
;
width
:
100%
;
display
:
flex
;
flex-direction
:
row
;
}
.stuList
ul
{
padding
:
0px
;
}
.stuList
li
.d1
,
.stuList
li
.d2
,
.stuList
li
.d3
,
.stuList
li
.d4
,
.stuList
li
.d5
{
width
:
18%
;
padding
:
20px
20px
10px
;
}
.stuList
li
{
background
:
rgba
(
221
,
222
,
224
,
0.2
);
border-radius
:
4px
;
margin-top
:
15px
;
}
.stuList
li
.d7
{
flex
:
1
;
width
:
1px
;
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
justify-content
:
center
;
}
.stuList
li
.dline
{
display
:
table
;
width
:
100%
;
display
:
flex
;
flex-direction
:
row
;
}
.stuList
li
.d1
.di-title
{
font-size
:
16px
;
color
:
#111111
;
}
.stuList
li
.d1
,
.stuList
li
.d2
,
.stuList
li
.d3
,
.stuList
li
.d4
,
.stuList
li
.d5
{
width
:
18%
;
padding
:
20px
20px
10px
;
}
.stuList
li
.d1
.di-c
{
font-size
:
14px
;
display
:
flex
;
line-height
:
28px
;
color
:
#111111
;
}
.stuList
li
.d7
{
flex
:
1
;
width
:
1px
;
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
justify-content
:
center
;
}
.stuList
li
.d6
{
padding
:
10px
20px
;
width
:
100%
;
height
:
inherit
;
position
:
relative
;
border-top
:
1px
solid
#dddee0
;
}
.stuList
li
.d1
.di-title
{
font-size
:
16px
;
color
:
#111111
;
}
.stuList
li
.d6
.progress
{
width
:
100%
;
height
:
5px
;
position
:
absolute
;
left
:
0
;
bottom
:
0
;
}
.stuList
li
.d1
.di-c
{
font-size
:
14px
;
display
:
flex
;
line-height
:
28px
;
color
:
#111111
;
}
.stuList
li
.d2
div
{
margin
:
2px
0
;
font-size
:
14px
;
color
:
#111111
;
}
.stuList
li
.d6
{
padding
:
10px
20px
;
width
:
100%
;
height
:
inherit
;
position
:
relative
;
border-top
:
1px
solid
#dddee0
;
}
.stuList
li
.d2-n
{
font-size
:
12px
;
color
:
#999999
;
margin-right
:
20px
;
}
.stuList
li
.d6
.progress
{
width
:
100%
;
height
:
5px
;
position
:
absolute
;
left
:
0
;
bottom
:
0
;
}
.stuList
li
.d3
.d3-s
{
color
:
var
(
--q-color-negative
);
font-weight
:
bold
;
}
.stuList
li
.d2
div
{
margin
:
2px
0
;
font-size
:
14px
;
color
:
#111111
;
}
.stuList
li
.d3
div
{
margin
:
2px
0
;
font-size
:
14px
;
}
.stuList
li
.d2-n
{
font-size
:
12px
;
color
:
#999999
;
margin-right
:
20px
;
}
.stuList
li
.d4
div
{
font-size
:
14px
;
color
:
#111111
;
margin
:
2px
0
;
}
.stuList
li
.d3
.d3-s
{
color
:
var
(
--q-color-negative
);
font-weight
:
bold
;
}
.stuList
li
.d5
div
{
font-size
:
14px
;
color
:
#111111
;
margin
:
2px
0
;
}
.stuList
li
.d3
div
{
margin
:
2px
0
;
font-size
:
14px
;
}
.stuList
.myCourseNName
{
width
:
25px
;
height
:
25px
;
border-radius
:
50%
;
color
:
#fff
!important
;
text-align
:
center
;
line-height
:
25px
;
background-color
:
#004d40
;
}
.stuList
li
.d4
div
{
font-size
:
14px
;
color
:
#111111
;
margin
:
2px
0
;
}
.stuList
.app-image
{
background-position
:
center
center
;
width
:
50px
;
height
:
50px
;
border-radius
:
0%
;
float
:
left
;
margin-right
:
8px
;
}
.stuList
li
.d5
div
{
font-size
:
14px
;
color
:
#111111
;
margin
:
2px
0
;
}
.Sysuser_Date
.el-input
{
width
:
100%
;
border
:
none
;
background-color
:
transparent
;
}
.stuList
.myCourseNName
{
width
:
25px
;
height
:
25px
;
border-radius
:
50%
;
color
:
#fff
!important
;
text-align
:
center
;
line-height
:
25px
;
background-color
:
#004d40
;
}
.Sysuser_Date
.el-input__inner
{
width
:
100%
;
border
:
none
;
background-color
:
transparent
;
}
.stuList
.app-image
{
background-position
:
center
center
;
width
:
50px
;
height
:
50px
;
border-radius
:
0%
;
float
:
left
;
margin-right
:
8px
;
}
.Sysuser_Date
.el-range-editor
.el-range
-input
{
width
:
100%
;
border
:
none
;
background-color
:
transparent
;
}
.Sysuser_Date
.el
-input
{
width
:
100%
;
border
:
none
;
background-color
:
transparent
;
}
.el-picker-panel
{
z-index
:
99999
!important
;
}
.Sysuser_Date
.el-input__inner
{
width
:
100%
;
border
:
none
;
background-color
:
transparent
;
}
.syster_qDropdown
.q-btn__wrapper
{
padding
:
0
3px
;
min-height
:
0
!important
;
}
.Sysuser_Date
.el-range-editor
.el-range-input
{
width
:
100%
;
border
:
none
;
background-color
:
transparent
;
}
.editOrderDrawerTop
{
width
:
100%
;
height
:
50px
;
display
:
flex
;
justify-content
:
space-between
;
background-color
:
#f0f5fb
;
padding
:
5px
10px
;
align-items
:
center
;
}
.stics
{
padding
:
10px
20px
;
background
:
#DDDEE0
;
border-radius
:
4px
;
font-size
:
13px
;
color
:
#000000
;
font-weight
:
bold
}
.el-picker-panel
{
z-index
:
99999
!important
;
}
.stics
.stics-name
{
color
:
#2D2D2D
;
font-weight
:
600
;
margin-right
:
10px
}
.syster_qDropdown
.q-btn__wrapper
{
padding
:
0
3px
;
min-height
:
0
!important
;
}
.editOrderDrawerTop
{
width
:
100%
;
height
:
50px
;
display
:
flex
;
justify-content
:
space-between
;
background-color
:
#f0f5fb
;
padding
:
5px
10px
;
align-items
:
center
;
}
.stics
{
padding
:
10px
20px
;
background
:
#dddee0
;
border-radius
:
4px
;
font-size
:
13px
;
color
:
#000000
;
font-weight
:
bold
;
}
.stics
.stics-name
{
color
:
#2d2d2d
;
font-weight
:
600
;
margin-right
:
10px
;
}
</
style
>
<
template
>
<div
class=
"page-body stuList"
>
<div
class=
"row q-mb-md"
v-if=
"source!=1"
>
<div
:class=
"[
{ 'page-body stuList': !isComponent },
{ 'full-height': isComponent }
]"
>
<div
class=
"row q-mb-md"
v-if=
"source != 1 && !isComponent"
>
<q-space></q-space>
<div
style=
"position: relative"
>
<q-btn
color=
"accent"
label=
"高级查询"
@
click=
"IsShowQuery = true"
></q-btn>
<q-btn
color=
"accent"
label=
"高级查询"
@
click=
"IsShowQuery = true"
></q-btn>
<q-badge
floating
rounded
color=
"red"
>
{{
queryNum
}}
</q-badge>
</div>
</div>
<div
v-else
class=
"q-mb-sm"
style=
"font-size:20px"
>
{{
courseName
}}
</div>
<div
class=
"page-search row items-center flex"
>
<div
v-else-if=
"!isComponent"
class=
"q-mb-sm"
style=
"font-size:20px"
>
{{
courseName
}}
</div>
<div
class=
"page-search row items-center flex"
v-if=
"!isComponent"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-select
@
input=
"changeSchool"
dense
filled
v-model=
"msg.School_Id"
class=
"col-6"
option-label=
"SName"
option-value=
"SId"
:options=
"SchoolList"
emit-value
map-options
label=
"校区"
/>
<q-select
@
input=
"changeSchool"
dense
filled
v-model=
"msg.School_Id"
class=
"col-6"
option-label=
"SName"
option-value=
"SId"
:options=
"SchoolList"
emit-value
map-options
label=
"校区"
/>
</div>
<div
class=
"col-3"
v-if=
"source!=1"
>
<q-select
@
input=
"changeCourse"
dense
filled
v-model=
"msg.CourseId"
class=
"col-6"
option-label=
"CourseName"
option-value=
"CourseId"
use-input
:options=
"CourseList"
@
filter=
"filterCourse"
emit-value
map-options
label=
"课程"
clearable
>
<div
class=
"col-3"
v-if=
"source != 1"
>
<q-select
@
input=
"changeCourse"
dense
filled
v-model=
"msg.CourseId"
class=
"col-6"
option-label=
"CourseName"
option-value=
"CourseId"
use-input
:options=
"CourseList"
@
filter=
"filterCourse"
emit-value
map-options
label=
"课程"
clearable
>
<template
v-slot:no-option
>
<q-item>
<q-item-section
class=
"text-grey"
>
...
...
@@ -202,16 +235,31 @@
</q-select>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
dense
filled
v-model=
"msg.ClassId"
class=
"col-6"
use-input
@
filter=
"filterClass"
option-label=
"ClassName"
option-value=
"ClassId"
:options=
"classList"
emit-value
map-options
label=
"班级"
clearable
>
<
template
v-slot:option=
"{
<q-select
@
input=
"resetSearch"
dense
filled
v-model=
"msg.ClassId"
class=
"col-6"
use-input
@
filter=
"filterClass"
option-label=
"ClassName"
option-value=
"ClassId"
:options=
"classList"
emit-value
map-options
label=
"班级"
clearable
>
<
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>
...
...
@@ -231,12 +279,33 @@
</q-select>
</div>
<div
class=
"col-3"
>
<q-input
@
keyup
.
enter
.
native=
"resetSearch"
clearable
dense
filled
v-model=
"msg.GuestName"
label=
"学员姓名"
@
clear=
"resetSearch"
maxlength=
"20"
/>
<q-input
@
keyup
.
enter
.
native=
"resetSearch"
clearable
dense
filled
v-model=
"msg.GuestName"
label=
"学员姓名"
@
clear=
"resetSearch"
maxlength=
"20"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
dense
filled
v-model=
"msg.GuestState"
class=
"col-6"
option-label=
"Name"
option-value=
"Id"
use-input
:options=
"GuestStateList"
emit-value
map-options
label=
"学员状态"
clearable
>
<q-select
@
input=
"resetSearch"
dense
filled
v-model=
"msg.GuestState"
class=
"col-6"
option-label=
"Name"
option-value=
"Id"
use-input
:options=
"GuestStateList"
emit-value
map-options
label=
"学员状态"
clearable
>
<
template
v-slot:no-option
>
<q-item>
<q-item-section
class=
"text-grey"
>
...
...
@@ -247,13 +316,37 @@
</q-select>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"getShaixuanFrom()"
dense
filled
clearable
filled
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.CreateType"
:options=
"customFromList"
emit-value
map-options
label=
"客户来源"
/>
<q-select
@
input=
"getShaixuanFrom()"
dense
filled
clearable
filled
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.CreateType"
:options=
"customFromList"
emit-value
map-options
label=
"客户来源"
/>
</div>
<div
class=
"col-3"
v-if=
"msg.CreateType == 1"
>
<q-select
filled
v-model=
"msg.StuChannelId"
@
input=
"resetSearch"
label=
"收客渠道"
:dense=
"false"
:options=
"StuChannelList"
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
use-input
clearable
@
filter=
"filterStuChannel"
>
<q-select
filled
v-model=
"msg.StuChannelId"
@
input=
"resetSearch"
label=
"收客渠道"
:dense=
"false"
:options=
"StuChannelList"
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
use-input
clearable
@
filter=
"filterStuChannel"
>
<
template
v-slot:no-option
>
<q-item>
<q-item-section
class=
"text-grey"
>
...
...
@@ -264,9 +357,21 @@
</q-select>
</div>
<div
class=
"col-3"
v-if=
"msg.CreateType == 2"
>
<q-select
filled
v-model=
"msg.StuSourceId"
:dense=
"false"
:options=
"customList"
use-input
label=
"关联同行"
@
filter=
"filterFn"
option-label=
"CustomerName"
@
input=
"resetSearch"
clearable
option-value=
"CustomerId"
emit-value
map-options
>
<q-select
filled
v-model=
"msg.StuSourceId"
:dense=
"false"
:options=
"customList"
use-input
label=
"关联同行"
@
filter=
"filterFn"
option-label=
"CustomerName"
@
input=
"resetSearch"
clearable
option-value=
"CustomerId"
emit-value
map-options
>
<
template
v-slot:no-option
>
<q-item>
<q-item-section
class=
"text-grey"
>
...
...
@@ -277,52 +382,104 @@
</q-select>
</div>
<div
class=
"col-3"
v-if=
"msg.CreateType == 3"
>
<q-select
filled
v-model=
"msg.StuSourceId"
:dense=
"false"
@
filter=
"filterEmployee"
label=
"介绍人"
use-input
:options=
"myEmployeeList"
option-label=
"EmployeeName"
@
input=
"resetSearch"
clearable
option-value=
"Id"
emit-value
map-options
/>
<q-select
filled
v-model=
"msg.StuSourceId"
:dense=
"false"
@
filter=
"filterEmployee"
label=
"介绍人"
use-input
:options=
"myEmployeeList"
option-label=
"EmployeeName"
@
input=
"resetSearch"
clearable
option-value=
"Id"
emit-value
map-options
/>
</div>
<div
class=
"col-3"
v-if=
"msg.CreateType == 4"
>
<q-select
filled
v-model=
"msg.StuSourceId"
:dense=
"false"
use-input
@
filter=
"filterStudent"
label=
"转介人"
:options=
"MyTransListData"
option-label=
"StuName"
@
input=
"resetSearch"
clearable
option-value=
"StuId"
emit-value
map-options
/>
<q-select
filled
v-model=
"msg.StuSourceId"
:dense=
"false"
use-input
@
filter=
"filterStudent"
label=
"转介人"
:options=
"MyTransListData"
option-label=
"StuName"
@
input=
"resetSearch"
clearable
option-value=
"StuId"
emit-value
map-options
/>
</div>
</div>
</div>
<div
class=
"col row wrap q-gutter-x-md"
v-if=
"staticObj"
>
<div
class=
"col row wrap q-gutter-x-md"
v-if=
"staticObj
&& !isComponent
"
>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
正常学员数量
</span>
<span>
{{
staticObj.NormalNum?staticObj.NormalNum:0
}}人
</span>
<span>
{{
staticObj.NormalNum ? staticObj.NormalNum : 0
}}人
</span>
</div>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
退课学员数量
</span>
<span
style=
"color: #F72E52"
>
{{staticObj.DropOutNum?staticObj.DropOutNum:0}}人
</span>
<span
style=
"color: #F72E52"
>
{{ staticObj.DropOutNum ? staticObj.DropOutNum : 0 }}人
</span
>
</div>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
停课学员数量
</span>
<span
style=
"color:#2961FE;"
>
{{staticObj.StopClassesNum?staticObj.StopClassesNum:0}}人
</span>
<span
style=
"color:#2961FE;"
>
{{ staticObj.StopClassesNum ? staticObj.StopClassesNum : 0 }}人
</span
>
</div>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
毕业学员数量
</span>
<span>
{{
staticObj.GraduateNum?staticObj.GraduateNum:0
}}人
</span>
<span>
{{
staticObj.GraduateNum ? staticObj.GraduateNum : 0
}}人
</span>
</div>
</div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table sticky-right-column-table"
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<div
:class=
"[
{ 'page-content': !isComponent },
{ 'full-height': isComponent }
]"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table"
:class=
"[
{ 'my-sticky-header-table full-height': isComponent },
{ 'sticky-right-column-table': !isComponent }
]"
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
:hide-bottom=
"isComponent"
>
<
template
v-slot:top
>
<!--
<div
class=
"col-2 q-table__title"
>
学员名单
</div>
-->
</
template
>
<
template
v-slot:body-cell-ContractNo=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"seeContract(props.row)"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"seeContract(props.row)"
>
{{
props
.
row
.
ContractNo
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-GuestName=
"props"
>
<q-td
:props=
"props"
>
<div
class=
"text-blue cursor-pointer"
@
click=
"getStuRight(props.row)"
>
<div
class=
"text-blue cursor-pointer"
@
click=
"getStuRight(props.row)"
>
{{
props
.
value
}}
</div>
</q-td>
...
...
@@ -331,70 +488,99 @@
<
template
v-slot:body-cell-StuSourceIdName=
"props"
>
<q-td
:props=
"props"
>
<div>
<span
v-if=
"props.row.CreateType == 2 && props.row.EnterpriseName"
>
{{
props
.
row
.
EnterpriseName
}}
:
</span>
<span
v-if=
"props.row.CreateType == 2 && props.row.EnterpriseName"
>
{{
props
.
row
.
EnterpriseName
}}
:
</span
>
{{
props
.
row
.
StuSourceIdName
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-ClassName=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"seeClassDetail(props.row)"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"seeClassDetail(props.row)"
>
{{
props
.
row
.
ClassName
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-OrderId=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showOrderDetail(props.row, 1)"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showOrderDetail(props.row, 1)"
>
{{
props
.
row
.
OrderId
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-Income=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showOrderDetail(props.row, 4)"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showOrderDetail(props.row, 4)"
>
{{
props
.
row
.
Income
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-Refund=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showOrderDetail(props.row, 4)"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showOrderDetail(props.row, 4)"
>
{{
props
.
row
.
Refund
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-CompleteHours=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"seeStudentsClassUse(props.row)"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"seeStudentsClassUse(props.row)"
>
{{
props
.
row
.
CompleteHours
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-MakeUpHours=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showList(props.row, 1)"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showList(props.row, 1)"
>
{{
props
.
row
.
MakeUpHours
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-AbsenceNum=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showList(props.row, 2)"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showList(props.row, 2)"
>
{{
props
.
row
.
AbsenceNum
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-LeaveNum=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showList(props.row, 3)"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showList(props.row, 3)"
>
{{
props
.
row
.
LeaveNum
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-EventlogNum=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showEventLog(props.row)"
>
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showEventLog(props.row)"
>
{{
props
.
row
.
EventlogNum
}}
</div>
</q-td>
...
...
@@ -405,16 +591,41 @@
<
template
v-slot:body-cell-TeacherManager=
"props"
>
<q-td
:props=
"props"
v-html=
"getTeacherManager(props.row)"
></q-td>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<
template
v-slot:body-cell-optioned=
"props"
v-if=
"!isComponent"
>
<q-td
:props=
"props"
>
<div>
<q-btn
flat
size=
"xs"
color=
"accent"
style=
"font-weight: 400"
label=
"停课"
v-if=
"props.row.GuestState === 1"
@
click=
"ShowStopLesson(props.row)"
/>
<q-btn
flat
size=
"xs"
color=
"accent"
style=
"font-weight: 400"
label=
"转班"
v-if=
"props.row.GuestState === 1"
@
click=
"transferClass(props.row, 1)"
/>
<q-btn-dropdown
flat
size=
"xs"
color=
"dark"
label=
"更多"
style=
"margin-left: 10px"
>
<q-btn
flat
size=
"xs"
color=
"accent"
style=
"font-weight: 400"
label=
"停课"
v-if=
"props.row.GuestState === 1"
@
click=
"ShowStopLesson(props.row)"
/>
<q-btn
flat
size=
"xs"
color=
"accent"
style=
"font-weight: 400"
label=
"转班"
v-if=
"props.row.GuestState === 1"
@
click=
"transferClass(props.row, 1)"
/>
<q-btn-dropdown
flat
size=
"xs"
color=
"dark"
label=
"更多"
style=
"margin-left: 10px"
>
<q-list>
<q-item
dense
clickable
v-close-popup
@
click=
"showAddEvent(props.row)"
>
<q-item
dense
clickable
v-close-popup
@
click=
"showAddEvent(props.row)"
>
<q-item-section>
<q-item-label
overline
>
添加事件
</q-item-label>
</q-item-section>
...
...
@@ -429,389 +640,479 @@
</div>
</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
v-if=
"!isComponent"
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>
</div>
<!-- 高级查询 -->
<MoreQuery
v-if=
"IsShowQuery"
:typeEnum=
"typeEnum"
:warnEnum=
"warnEnum"
:saveQuery=
"msg"
@
close=
"closeHandle"
@
success=
"morequery"
>
<MoreQuery
v-if=
"IsShowQuery"
:typeEnum=
"typeEnum"
:warnEnum=
"warnEnum"
:saveQuery=
"msg"
@
close=
"closeHandle"
@
success=
"morequery"
>
</MoreQuery>
<!-- 停课申请 -->
<StopLesson-form
v-if=
"isShowStopLesson"
:setObj=
"stuObj"
@
success=
"resetSearch"
@
close=
"closeHandle"
/>
<StopLesson-form
v-if=
"isShowStopLesson"
:setObj=
"stuObj"
@
success=
"resetSearch"
@
close=
"closeHandle"
/>
<!-- 转班申请 -->
<transferclass-form
v-if=
"isShowTransferClass"
:save-obj=
"orderObj"
:ChangeType=
"ChangeType"
@
close=
"closeHandle"
@
success=
"resetSearch"
></transferclass-form>
<transferclass-form
v-if=
"isShowTransferClass"
:save-obj=
"orderObj"
:ChangeType=
"ChangeType"
@
close=
"closeHandle"
@
success=
"resetSearch"
></transferclass-form>
<!-- 添加事件 -->
<AddEvent-form
v-if=
"isShowAddEvent"
:setObj=
"eventObj"
@
success=
"resetSearch"
@
close=
"closeHandle"
/>
<AddEvent-form
v-if=
"isShowAddEvent"
:setObj=
"eventObj"
@
success=
"resetSearch"
@
close=
"closeHandle"
/>
<!-- 班级详情 -->
<classinfo-form
v-if=
"isShowClassInfo"
:seting-obj=
"eventObj"
@
close=
"closeHandle"
@
success=
"refreshPage"
/>
<classinfo-form
v-if=
"isShowClassInfo"
:seting-obj=
"eventObj"
@
close=
"closeHandle"
@
success=
"refreshPage"
/>
<!-- 订单详情 -->
<myOrder-form
v-if=
"isShowmyorderForm"
:save-obj=
"eventObj"
@
close=
"closeHandle"
></myOrder-form>
<myOrder-form
v-if=
"isShowmyorderForm"
:save-obj=
"eventObj"
@
close=
"closeHandle"
></myOrder-form>
<!-- 可补课课时,缺勤次数,请假次数 -->
<list
v-if=
"isShowList"
:type=
"showType"
:set-obj=
"eventObj"
@
close=
"closeHandle"
/>
<list
v-if=
"isShowList"
:type=
"showType"
:set-obj=
"eventObj"
@
close=
"closeHandle"
/>
<!-- 事件记录 -->
<eventLog
v-if=
"isShowEventLog"
:set-obj=
"eventObj"
@
modify=
"modifyEvent"
@
close=
"closeHandle"
/>
<studentRight-form
v-if=
"isShowStuRight"
:isJudgeTrans=
"isJudgeTrans"
:BelongType=
"BelongType"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
@
reload=
"refreshStuList"
>
<eventLog
v-if=
"isShowEventLog"
:set-obj=
"eventObj"
@
modify=
"modifyEvent"
@
close=
"closeHandle"
/>
<studentRight-form
v-if=
"isShowStuRight"
:isJudgeTrans=
"isJudgeTrans"
:BelongType=
"BelongType"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
@
reload=
"refreshStuList"
>
</studentRight-form>
<!-- 跳课 -->
<JumpCourse
v-model=
"isShowChangeCourse"
:saveObj=
"ChangeCourseObj"
@
success=
"refreshPage"
></JumpCourse>
<JumpCourse
v-model=
"isShowChangeCourse"
:saveObj=
"ChangeCourseObj"
@
success=
"refreshPage"
></JumpCourse>
</div>
</template>
<
script
>
import
{
getSchoolDropdown
,
getClassDropDownList
,
getStudentDorpDownList
}
from
"../../api/school/index"
;
import
{
queryCourseDropdownList
}
from
"../../api/course/index"
;
import
{
getStuList
,
getEarlyWarningEnum
,
getTypeEnum
}
from
"../../api/stuMan/index.js"
;
import
{
queryGuestStateList
,
CreateTypeList
,
GetStuChannelList
,
GetCustomerList
}
from
"../../api/sale/sale.js"
;
import
MoreQuery
from
"../../components/stuMan/moreQuery.vue"
;
import
StopLessonForm
from
"../../components/teacher/stopLessonForm"
;
import
transferclassForm
from
"../../components/sale/transferclass-form"
;
//转班信息
import
AddEventForm
from
"../../components/stuMan/addEvent-form.vue"
;
//转班信息
import
classinfoForm
from
"../../components/course/classinfo-form"
;
//班级详情
import
myOrderForm
from
"../../components/sale/myOrder-form"
;
//订单详情
import
list
from
"../../components/stuMan/makeUpHours.vue"
;
//可补课课时,缺勤次数,请假次数
import
eventLog
from
"../../components/stuMan/eventRecord.vue"
;
//事件记录
import
studentRightForm
from
"../../components/school/student/studentRight-form"
;
import
JumpCourse
from
"../../components/stuMan/jumpCourse"
import
{
queryEmployee
}
from
"../../api/users/user"
;
export
default
{
meta
:
{
title
:
"学员名单"
import
{
getSchoolDropdown
,
getClassDropDownList
,
getStudentDorpDownList
}
from
"../../api/school/index"
;
import
{
queryCourseDropdownList
}
from
"../../api/course/index"
;
import
{
getStuList
,
getEarlyWarningEnum
,
getTypeEnum
}
from
"../../api/stuMan/index.js"
;
import
{
queryGuestStateList
,
CreateTypeList
,
GetStuChannelList
,
GetCustomerList
}
from
"../../api/sale/sale.js"
;
import
MoreQuery
from
"../../components/stuMan/moreQuery.vue"
;
import
StopLessonForm
from
"../../components/teacher/stopLessonForm"
;
import
transferclassForm
from
"../../components/sale/transferclass-form"
;
//转班信息
import
AddEventForm
from
"../../components/stuMan/addEvent-form.vue"
;
//转班信息
import
classinfoForm
from
"../../components/course/classinfo-form"
;
//班级详情
import
myOrderForm
from
"../../components/sale/myOrder-form"
;
//订单详情
import
list
from
"../../components/stuMan/makeUpHours.vue"
;
//可补课课时,缺勤次数,请假次数
import
eventLog
from
"../../components/stuMan/eventRecord.vue"
;
//事件记录
import
studentRightForm
from
"../../components/school/student/studentRight-form"
;
import
JumpCourse
from
"../../components/stuMan/jumpCourse"
;
import
{
queryEmployee
}
from
"../../api/users/user"
;
export
default
{
props
:
{
isComponent
:
{
type
:
Boolean
,
default
:
false
},
outData
:
{
type
:
Array
,
default
:
()
=>
[]
},
components
:
{
MoreQuery
,
StopLessonForm
,
transferclassForm
,
AddEventForm
,
classinfoForm
,
myOrderForm
,
list
,
eventLog
,
studentRightForm
,
JumpCourse
pageSize
:
{
type
:
Number
,
default
:
10
},
outLoading
:
{
type
:
Boolean
,
default
:
false
}
},
meta
:
{
title
:
"学员名单"
},
components
:
{
MoreQuery
,
StopLessonForm
,
transferclassForm
,
AddEventForm
,
classinfoForm
,
myOrderForm
,
list
,
eventLog
,
studentRightForm
,
JumpCourse
},
data
()
{
return
{
IsShowQuery
:
false
,
data
:
[],
loading
:
false
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
School_Id
:
""
,
//校区
CourseId
:
0
,
//课程
ClassId
:
0
,
//班级
GuestName
:
""
,
//学生姓名
ClassNo
:
""
,
//班号
OrderId
:
0
,
//订单号
EnterID
:
0
,
//业务员
EffectStatus
:
""
,
//状态
JoinType
:
0
,
//类型
EarlyWarning
:
0
,
//预警
OrderTime
:
""
,
//下单时间
EndOrderTime
:
""
,
//下单结束时间
GuestState
:
""
,
//学员状态
CreateType
:
""
,
//客户来源
StuChannelId
:
""
,
//收客渠道
StuSourceId
:
""
data
()
{
return
{
IsShowQuery
:
false
,
data
:
[],
loading
:
false
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
School_Id
:
""
,
//校区
CourseId
:
0
,
//课程
ClassId
:
0
,
//班级
GuestName
:
""
,
//学生姓名
ClassNo
:
""
,
//班号
OrderId
:
0
,
//订单号
EnterID
:
0
,
//业务员
EffectStatus
:
""
,
//状态
JoinType
:
0
,
//类型
EarlyWarning
:
0
,
//预警
OrderTime
:
""
,
//下单时间
EndOrderTime
:
""
,
//下单结束时间
GuestState
:
""
,
//学员状态
CreateType
:
""
,
//客户来源
StuChannelId
:
""
,
//收客渠道
StuSourceId
:
""
},
pageCount
:
0
,
columns
:
[
{
name
:
"Id"
,
label
:
"编号"
,
field
:
"Id"
,
align
:
"left"
,
required
:
true
},
pageCount
:
0
,
columns
:
[{
name
:
"Id"
,
label
:
"编号"
,
field
:
"Id"
,
align
:
"left"
,
required
:
true
},
{
name
:
"GuestName"
,
label
:
"姓名"
,
align
:
"left"
,
field
:
"GuestName"
,
required
:
true
},
{
name
:
"CurseManager"
,
label
:
"课程顾问"
,
align
:
"left"
},
{
name
:
"TeacherManager"
,
label
:
"协助老师"
,
align
:
"left"
},
{
name
:
"CreateTypeName"
,
label
:
"客户来源"
,
field
:
"CreateTypeName"
,
align
:
"left"
},
{
name
:
"StuSourceIdName"
,
label
:
"来源关联人"
,
field
:
"StuSourceIdName"
,
align
:
"left"
},
{
name
:
"StuChannelName"
,
label
:
"收客渠道"
,
field
:
"StuChannelName"
,
align
:
"left"
},
{
name
:
"StuCreateByName"
,
label
:
"负责人"
,
align
:
"left"
,
field
:
"StuCreateByName"
},
{
name
:
"Mobile"
,
label
:
"电话"
,
align
:
"left"
,
field
:
"Mobile"
},
{
name
:
"ContractNo"
,
label
:
"合同编号"
,
align
:
"left"
,
field
:
"ContractNo"
},
{
name
:
"ClassName"
,
label
:
"班级"
,
align
:
"left"
,
field
:
"ClassName"
},
{
name
:
"CourseName"
,
label
:
"课程"
,
align
:
"left"
,
field
:
"CourseName"
},
{
name
:
"TeacherName"
,
label
:
"老师"
,
align
:
"left"
,
field
:
"TeacherName"
},
{
name
:
"OrderId"
,
label
:
"订单号"
,
align
:
"left"
,
field
:
"OrderId"
},
{
name
:
"OrderTime"
,
label
:
"报名时间"
,
align
:
"left"
,
field
:
"OrderTime"
},
{
name
:
"EnterName"
,
label
:
"业务员"
,
field
:
"EnterName"
,
align
:
"left"
},
{
name
:
"PreferPrice"
,
label
:
"应收金额"
,
field
:
"PreferPrice"
,
align
:
"left"
},
{
name
:
"Income"
,
label
:
"实收金额"
,
field
:
"Income"
,
align
:
"left"
},
{
name
:
"Refund"
,
label
:
"退款金额"
,
field
:
"Refund"
,
align
:
"left"
},
{
name
:
"TotalHours"
,
label
:
"课程总课时"
,
field
:
"TotalHours"
,
align
:
"left"
},
{
name
:
"ValidClassHours"
,
label
:
"有效课时"
,
field
:
"ValidClassHours"
,
align
:
"left"
},
{
name
:
"CompleteHours"
,
label
:
"消耗课时"
,
field
:
"CompleteHours"
,
align
:
"left"
},
{
name
:
"SurplusHours"
,
label
:
"剩余课时"
,
field
:
"SurplusHours"
,
align
:
"left"
},
{
name
:
"MakeUpHours"
,
label
:
"可补课课时"
,
field
:
"MakeUpHours"
,
align
:
"left"
},
{
name
:
"CourseChapterNo"
,
label
:
"已上课次数"
,
field
:
"CourseChapterNo"
,
align
:
"left"
},
{
name
:
"AppointNum"
,
label
:
"预约次数"
,
field
:
"AppointNum"
,
align
:
"left"
},
{
name
:
"AbsenceNum"
,
label
:
"缺勤次数"
,
field
:
"AbsenceNum"
,
align
:
"left"
},
{
name
:
"LeaveNum"
,
label
:
"请假次数"
,
field
:
"LeaveNum"
,
align
:
"left"
},
{
name
:
"EventlogNum"
,
label
:
"事件记录"
,
field
:
"EventlogNum"
,
align
:
"left"
},
{
name
:
"GuestStateStr"
,
label
:
"状态"
,
field
:
"GuestStateStr"
,
align
:
"left"
},
{
name
:
"GraduationTime"
,
label
:
"毕业时间"
,
field
:
"GraduationTime"
,
align
:
"left"
},
{
name
:
"CourseRateName"
,
label
:
"毕业课程等级"
,
field
:
"CourseRateName"
,
align
:
"left"
},
{
name
:
"JoinTypeStr"
,
label
:
"类型"
,
field
:
"JoinTypeStr"
,
align
:
"left"
},
{
name
:
"GuestName"
,
label
:
"姓名"
,
align
:
"left"
,
field
:
"GuestName"
,
required
:
true
},
{
name
:
"CurseManager"
,
label
:
"课程顾问"
,
align
:
"left"
},
{
name
:
"TeacherManager"
,
label
:
"协助老师"
,
align
:
"left"
},
{
name
:
"CreateTypeName"
,
label
:
"客户来源"
,
field
:
"CreateTypeName"
,
align
:
"left"
},
{
name
:
"StuSourceIdName"
,
label
:
"来源关联人"
,
field
:
"StuSourceIdName"
,
align
:
"left"
},
{
name
:
"StuChannelName"
,
label
:
"收客渠道"
,
field
:
"StuChannelName"
,
align
:
"left"
},
{
name
:
"StuCreateByName"
,
label
:
"负责人"
,
align
:
"left"
,
field
:
"StuCreateByName"
},
{
name
:
"Mobile"
,
label
:
"电话"
,
align
:
"left"
,
field
:
"Mobile"
},
{
name
:
"ContractNo"
,
label
:
"合同编号"
,
align
:
"left"
,
field
:
"ContractNo"
},
{
name
:
"ClassName"
,
label
:
"班级"
,
align
:
"left"
,
field
:
"ClassName"
},
{
name
:
"CourseName"
,
label
:
"课程"
,
align
:
"left"
,
field
:
"CourseName"
},
{
name
:
"TeacherName"
,
label
:
"老师"
,
align
:
"left"
,
field
:
"TeacherName"
},
{
name
:
"OrderId"
,
label
:
"订单号"
,
align
:
"left"
,
field
:
"OrderId"
},
{
name
:
"OrderTime"
,
label
:
"报名时间"
,
align
:
"left"
,
field
:
"OrderTime"
},
{
name
:
"EnterName"
,
label
:
"业务员"
,
field
:
"EnterName"
,
align
:
"left"
},
{
name
:
"PreferPrice"
,
label
:
"应收金额"
,
field
:
"PreferPrice"
,
align
:
"left"
},
{
name
:
"Income"
,
label
:
"实收金额"
,
field
:
"Income"
,
align
:
"left"
},
{
name
:
"Refund"
,
label
:
"退款金额"
,
field
:
"Refund"
,
align
:
"left"
},
{
name
:
"TotalHours"
,
label
:
"课程总课时"
,
field
:
"TotalHours"
,
align
:
"left"
},
{
name
:
"ValidClassHours"
,
label
:
"有效课时"
,
field
:
"ValidClassHours"
,
align
:
"left"
},
{
name
:
"CompleteHours"
,
label
:
"消耗课时"
,
field
:
"CompleteHours"
,
align
:
"left"
},
{
name
:
"SurplusHours"
,
label
:
"剩余课时"
,
field
:
"SurplusHours"
,
align
:
"left"
},
{
name
:
"MakeUpHours"
,
label
:
"可补课课时"
,
field
:
"MakeUpHours"
,
align
:
"left"
},
{
name
:
"CourseChapterNo"
,
label
:
"已上课次数"
,
field
:
"CourseChapterNo"
,
align
:
"left"
},
{
name
:
"AppointNum"
,
label
:
"预约次数"
,
field
:
"AppointNum"
,
align
:
"left"
},
{
name
:
"AbsenceNum"
,
label
:
"缺勤次数"
,
field
:
"AbsenceNum"
,
align
:
"left"
},
{
name
:
"LeaveNum"
,
label
:
"请假次数"
,
field
:
"LeaveNum"
,
align
:
"left"
},
{
name
:
"EventlogNum"
,
label
:
"事件记录"
,
field
:
"EventlogNum"
,
align
:
"left"
},
{
name
:
"optioned"
,
label
:
"操作"
,
required
:
true
,
align
:
"left"
}
],
SchoolList
:
[],
CourseList
:
[],
AllCourseList
:
[],
classList
:
[],
AllClassList
:
[],
queryClass
:
{
CourseId
:
0
,
IsAddDefault
:
1
,
SchoolId
:
""
,
Teacher_Id
:
0
,
MoreStatus
:
"1,2,3"
,
IsQuerySurplusPlan
:
0
{
name
:
"GuestStateStr"
,
label
:
"状态"
,
field
:
"GuestStateStr"
,
align
:
"left"
},
{
name
:
"GraduationTime"
,
label
:
"毕业时间"
,
field
:
"GraduationTime"
,
align
:
"left"
},
{
name
:
"CourseRateName"
,
label
:
"毕业课程等级"
,
field
:
"CourseRateName"
,
align
:
"left"
},
typeEnum
:
[],
warnEnum
:
[],
queryNum
:
0
,
//高级查询个数
isShowStopLesson
:
false
,
stuObj
:
{},
//停课
isShowTransferClass
:
false
,
//是否显示转班
orderObj
:
{},
//转班
ChangeType
:
1
,
//1-转班 2-分拆
isShowAddEvent
:
false
,
//是否显示添加事件
eventObj
:
{},
isShowClassInfo
:
false
,
//是否显示班级详情
isShowmyorderForm
:
false
,
//是否显示订单详情
isShowList
:
false
,
//是否显示可补课课时,缺勤次数,请假次数
showType
:
1
,
isShowEventLog
:
false
,
//是否显示事件记录
GuestStateList
:
[],
//学员状态列表
stuOption
:
null
,
BelongType
:
1
,
isShowStuRight
:
false
,
isJudgeTrans
:
1
,
{
name
:
"JoinTypeStr"
,
label
:
"类型"
,
field
:
"JoinTypeStr"
,
align
:
"left"
}
],
SchoolList
:
[],
CourseList
:
[],
AllCourseList
:
[],
classList
:
[],
AllClassList
:
[],
queryClass
:
{
CourseId
:
0
,
IsAddDefault
:
1
,
SchoolId
:
""
,
Teacher_Id
:
0
,
MoreStatus
:
"1,2,3"
,
IsQuerySurplusPlan
:
0
},
typeEnum
:
[],
warnEnum
:
[],
queryNum
:
0
,
//高级查询个数
isShowStopLesson
:
false
,
stuObj
:
{},
//停课
isShowTransferClass
:
false
,
//是否显示转班
orderObj
:
{},
//转班
ChangeType
:
1
,
//1-转班 2-分拆
isShowAddEvent
:
false
,
//是否显示添加事件
eventObj
:
{},
isShowClassInfo
:
false
,
//是否显示班级详情
isShowmyorderForm
:
false
,
//是否显示订单详情
isShowList
:
false
,
//是否显示可补课课时,缺勤次数,请假次数
showType
:
1
,
isShowEventLog
:
false
,
//是否显示事件记录
GuestStateList
:
[],
//学员状态列表
stuOption
:
null
,
BelongType
:
1
,
isShowStuRight
:
false
,
isJudgeTrans
:
1
,
customFromList
:
[],
//客户来源
StuChannelList
:
[],
//收客渠道
allStuChannelList
:
[],
//所有收客渠道
customFromList
:
[],
//客户来源
StuChannelList
:
[],
//收客渠道
allStuChannelList
:
[],
//所有收客渠道
customList
:
[],
//同行列表
allCustomList
:
[],
//所有同行列表
//员工列表
employeeList
:
[],
myEmployeeList
:
[],
customList
:
[],
//同行列表
allCustomList
:
[],
//所有同行列表
//员工列表
employeeList
:
[],
myEmployeeList
:
[],
TransListData
:
[],
//转介人数据
MyTransListData
:
[],
source
:
0
,
//1:从课程列表进入
courseName
:
""
,
isShowChangeCourse
:
false
,
ChangeCourseObj
:
{},
staticObj
:
{},
//学生统计信息
};
},
created
()
{
this
.
getGuestStateList
();
if
(
this
.
$route
.
query
.
source
)
{
this
.
source
=
this
.
$route
.
query
.
source
;
}
if
(
this
.
$route
.
query
.
CourseId
)
{
this
.
msg
.
CourseId
=
parseInt
(
this
.
$route
.
query
.
CourseId
);
}
if
(
this
.
$route
.
query
.
CourseName
)
{
this
.
courseName
=
decodeURIComponent
(
this
.
$route
.
query
.
CourseName
);
}
TransListData
:
[],
//转介人数据
MyTransListData
:
[],
source
:
0
,
//1:从课程列表进入
courseName
:
""
,
isShowChangeCourse
:
false
,
ChangeCourseObj
:
{},
staticObj
:
{}
//学生统计信息
};
},
created
()
{
this
.
getGuestStateList
();
if
(
this
.
$route
.
query
.
source
)
{
this
.
source
=
this
.
$route
.
query
.
source
;
}
if
(
this
.
$route
.
query
.
CourseId
)
{
this
.
msg
.
CourseId
=
parseInt
(
this
.
$route
.
query
.
CourseId
);
}
if
(
this
.
$route
.
query
.
CourseName
)
{
this
.
courseName
=
decodeURIComponent
(
this
.
$route
.
query
.
CourseName
);
}
},
watch
:
{
outData
:
{
handler
:
function
(
val
)
{
if
(
this
.
isComponent
)
{
this
.
data
=
val
;
}
},
deep
:
true
},
mounted
()
{
outLoading
:
{
handler
:
function
(
val
)
{
if
(
this
.
isComponent
)
{
this
.
loading
=
val
;
}
},
deep
:
true
}
},
mounted
()
{
if
(
!
this
.
isComponent
)
{
this
.
columns
.
push
({
name
:
"optioned"
,
label
:
"操作"
,
required
:
true
,
align
:
"left"
});
this
.
getSchool
();
this
.
getCourseList
();
this
.
getClass
();
...
...
@@ -823,406 +1124,411 @@
this
.
GetStuChannelList
();
this
.
GetCustomerList
();
this
.
getEmployeeList
();
}
else
{
this
.
msg
.
rowsPerPage
=
this
.
pageSize
;
this
.
loading
=
this
.
outLoading
;
this
.
data
=
this
.
outData
;
}
},
methods
:
{
//获取收客渠道
GetStuChannelList
()
{
GetStuChannelList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
StuChannelList
=
res
.
Data
;
this
.
allStuChannelList
=
res
.
Data
;
}
});
},
methods
:
{
//获取收客渠道
GetStuChannelList
()
{
GetStuChannelList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
StuChannelList
=
res
.
Data
;
this
.
allStuChannelList
=
res
.
Data
;
}
});
},
//筛选渠道
filterStuChannel
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
StuChannelList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
allStuChannelList
)
);
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
StuChannelList
=
this
.
allStuChannelList
.
filter
(
v
=>
v
.
Name
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
}
});
},
//获取客户来源
getCustomFrom
()
{
CreateTypeList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
customFromList
=
res
.
Data
;
}
});
},
//获取客户下拉数据
GetCustomerList
()
{
let
msg
=
{
QCreateBy
:
0
};
GetCustomerList
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
customList
=
res
.
Data
;
this
.
allCustomList
=
res
.
Data
;
}
});
},
//筛选客户
filterFn
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
customList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
allCustomList
));
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
customList
=
this
.
allCustomList
.
filter
(
v
=>
v
.
CustomerName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
}
});
},
//获取员工列表
getEmployeeList
()
{
queryEmployee
({
IsLeave
:
1
}).
then
(
res
=>
{
this
.
employeeList
=
res
.
Data
;
this
.
myEmployeeList
=
res
.
Data
;
});
},
//筛选员工
filterEmployee
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
myEmployeeList
=
this
.
employeeList
.
filter
(
v
=>
v
.
EmployeeName
.
indexOf
(
val
)
>
-
1
//筛选渠道
filterStuChannel
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
StuChannelList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
allStuChannelList
)
);
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
StuChannelList
=
this
.
allStuChannelList
.
filter
(
v
=>
v
.
Name
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
});
},
//筛选客户来源
getShaixuanFrom
()
{
this
.
msg
.
StuSourceId
=
''
this
.
msg
.
StuChannelId
=
''
if
(
this
.
msg
.
CreateType
==
4
)
{
this
.
getStudentDorpDown
();
}
this
.
resetSearch
()
},
//获取转介人下拉
getStudentDorpDown
()
{
getStudentDorpDownList
().
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TransListData
=
res
.
Data
;
this
.
MyTransListData
=
res
.
Data
;
}
});
},
//筛选转介人
filterStudent
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
MyTransListData
=
this
.
TransListData
.
filter
(
v
=>
v
.
StuName
.
indexOf
(
val
)
>
-
1
});
},
//获取客户来源
getCustomFrom
()
{
CreateTypeList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
customFromList
=
res
.
Data
;
}
});
},
//获取客户下拉数据
GetCustomerList
()
{
let
msg
=
{
QCreateBy
:
0
};
GetCustomerList
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
customList
=
res
.
Data
;
this
.
allCustomList
=
res
.
Data
;
}
});
},
//筛选客户
filterFn
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
customList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
allCustomList
));
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
customList
=
this
.
allCustomList
.
filter
(
v
=>
v
.
CustomerName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
});
},
}
});
},
//获取员工列表
getEmployeeList
()
{
queryEmployee
({
IsLeave
:
1
}).
then
(
res
=>
{
this
.
employeeList
=
res
.
Data
;
this
.
myEmployeeList
=
res
.
Data
;
});
},
//筛选员工
filterEmployee
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
myEmployeeList
=
this
.
employeeList
.
filter
(
v
=>
v
.
EmployeeName
.
indexOf
(
val
)
>
-
1
);
});
},
//筛选客户来源
getShaixuanFrom
()
{
this
.
msg
.
StuSourceId
=
""
;
this
.
msg
.
StuChannelId
=
""
;
if
(
this
.
msg
.
CreateType
==
4
)
{
this
.
getStudentDorpDown
();
}
this
.
resetSearch
();
},
//获取转介人下拉
getStudentDorpDown
()
{
getStudentDorpDownList
().
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TransListData
=
res
.
Data
;
this
.
MyTransListData
=
res
.
Data
;
}
});
},
//筛选转介人
filterStudent
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
MyTransListData
=
this
.
TransListData
.
filter
(
v
=>
v
.
StuName
.
indexOf
(
val
)
>
-
1
);
});
},
//获取学员状态列表
getGuestStateList
()
{
queryGuestStateList
({}).
then
(
res
=>
{
var
tempArray
=
res
.
Data
;
if
(
tempArray
)
{
tempArray
.
forEach
(
item
=>
{
if
(
item
.
Id
==
1
||
item
.
Id
==
2
||
item
.
Id
==
5
||
item
.
Id
==
7
)
{
this
.
GuestStateList
.
push
(
item
);
}
});
}
});
},
//获取校区下拉
getSchool
()
{
getSchoolDropdown
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
SchoolList
=
res
.
Data
;
}
});
},
//获取课程
getCourseList
()
{
queryCourseDropdownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
var
tempArray
=
res
.
Data
;
if
(
!
tempArray
)
{
tempArray
=
[];
}
tempArray
.
unshift
({
CourseId
:
0
,
CourseName
:
"不限"
});
this
.
CourseList
=
tempArray
;
this
.
AllCourseList
=
tempArray
;
}
});
},
// 筛选课程
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
);
}
});
},
//获取班级
getClass
()
{
getClassDropDownList
(
this
.
queryClass
).
then
(
res
=>
{
this
.
classList
=
[];
this
.
msg
.
ClassId
=
0
;
if
(
res
.
Code
==
1
)
{
this
.
classList
=
res
.
Data
;
this
.
AllClassList
=
res
.
Data
;
var
obj
=
{
ClassName
:
"不限"
,
ClassId
:
0
};
this
.
classList
.
unshift
(
obj
);
}
});
},
//筛选班级
filterClass
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
classList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
AllClassList
));
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
classList
=
this
.
AllClassList
.
filter
(
v
=>
v
.
ClassName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
}
});
},
changeSchool
(
val
)
{
this
.
queryClass
.
SchoolId
=
val
;
this
.
getClass
();
this
.
resetSearch
();
},
changeCourse
(
val
)
{
this
.
queryClass
.
CourseId
=
val
;
this
.
getClass
();
this
.
resetSearch
();
},
getList
()
{
this
.
loading
=
true
;
getStuList
(
this
.
msg
)
.
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
Code
===
1
)
{
this
.
data
=
res
.
Data
.
pageModel
.
PageData
;
this
.
pageCount
=
res
.
Data
.
pageModel
.
PageCount
;
this
.
staticObj
=
res
.
Data
.
StudentStatic
;
//获取学员状态列表
getGuestStateList
()
{
queryGuestStateList
({}).
then
(
res
=>
{
var
tempArray
=
res
.
Data
;
if
(
tempArray
)
{
tempArray
.
forEach
(
item
=>
{
if
(
item
.
Id
==
1
||
item
.
Id
==
2
||
item
.
Id
==
5
||
item
.
Id
==
7
)
{
this
.
GuestStateList
.
push
(
item
);
}
})
.
catch
(
err
=>
{
this
.
loading
=
false
;
});
},
//显示停课弹窗
ShowStopLesson
(
item
)
{
this
.
isShowStopLesson
=
true
;
this
.
stuObj
=
item
;
},
// 高级查询
morequery
(
val
)
{
this
.
IsShowQuery
=
false
;
this
.
queryNum
=
val
.
chooseNum
;
this
.
msg
.
ClassNo
=
val
.
ClassNo
;
this
.
msg
.
OrderId
=
val
.
OrderId
;
this
.
msg
.
EnterID
=
val
.
EnterID
;
this
.
msg
.
EffectStatus
=
val
.
EffectStatus
;
this
.
msg
.
JoinType
=
val
.
JoinType
;
this
.
msg
.
EarlyWarning
=
val
.
EarlyWarning
;
this
.
msg
.
OrderTime
=
val
.
OrderTime
;
this
.
msg
.
EndOrderTime
=
val
.
EndOrderTime
;
this
.
resetSearch
();
},
//重新查询
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
//关闭弹窗
closeHandle
()
{
this
.
IsShowQuery
=
false
;
this
.
isShowStopLesson
=
false
;
this
.
isShowTransferClass
=
false
;
this
.
isShowAddEvent
=
false
;
this
.
isShowClassInfo
=
false
;
this
.
isShowmyorderForm
=
false
;
this
.
isShowList
=
false
;
this
.
isShowEventLog
=
false
;
this
.
isShowEventLog
=
false
;
},
//刷新页面
refreshPage
()
{
this
.
closeHandle
();
this
.
getList
();
},
goUrl
(
url
,
item
)
{
if
(
item
)
{
this
.
$router
.
push
({
path
:
url
,
query
:
{
Id
:
item
.
Id
}
}
});
},
//获取校区下拉
getSchool
()
{
getSchoolDropdown
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
SchoolList
=
res
.
Data
;
}
});
},
//获取课程
getCourseList
()
{
queryCourseDropdownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
var
tempArray
=
res
.
Data
;
if
(
!
tempArray
)
{
tempArray
=
[];
}
tempArray
.
unshift
({
CourseId
:
0
,
CourseName
:
"不限"
});
this
.
CourseList
=
tempArray
;
this
.
AllCourseList
=
tempArray
;
}
});
},
// 筛选课程
filterCourse
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
CourseList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
AllCourseList
));
}
else
{
this
.
$router
.
push
({
path
:
url
,
query
:
{
Id
:
0
}
});
const
needle
=
val
.
toLowerCase
();
this
.
CourseList
=
this
.
AllCourseList
.
filter
(
v
=>
v
.
CourseName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
}
},
goUrl1
(
url
,
item
)
{
});
},
//获取班级
getClass
()
{
getClassDropDownList
(
this
.
queryClass
).
then
(
res
=>
{
this
.
classList
=
[];
this
.
msg
.
ClassId
=
0
;
if
(
res
.
Code
==
1
)
{
this
.
classList
=
res
.
Data
;
this
.
AllClassList
=
res
.
Data
;
var
obj
=
{
ClassName
:
"不限"
,
ClassId
:
0
};
this
.
classList
.
unshift
(
obj
);
}
});
},
//筛选班级
filterClass
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
classList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
AllClassList
));
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
classList
=
this
.
AllClassList
.
filter
(
v
=>
v
.
ClassName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
}
});
},
changeSchool
(
val
)
{
this
.
queryClass
.
SchoolId
=
val
;
this
.
getClass
();
this
.
resetSearch
();
},
changeCourse
(
val
)
{
this
.
queryClass
.
CourseId
=
val
;
this
.
getClass
();
this
.
resetSearch
();
},
getList
()
{
this
.
loading
=
true
;
getStuList
(
this
.
msg
)
.
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
Code
===
1
)
{
this
.
data
=
res
.
Data
.
pageModel
.
PageData
;
this
.
pageCount
=
res
.
Data
.
pageModel
.
PageCount
;
this
.
staticObj
=
res
.
Data
.
StudentStatic
;
}
})
.
catch
(
err
=>
{
this
.
loading
=
false
;
});
},
//显示停课弹窗
ShowStopLesson
(
item
)
{
this
.
isShowStopLesson
=
true
;
this
.
stuObj
=
item
;
},
// 高级查询
morequery
(
val
)
{
this
.
IsShowQuery
=
false
;
this
.
queryNum
=
val
.
chooseNum
;
this
.
msg
.
ClassNo
=
val
.
ClassNo
;
this
.
msg
.
OrderId
=
val
.
OrderId
;
this
.
msg
.
EnterID
=
val
.
EnterID
;
this
.
msg
.
EffectStatus
=
val
.
EffectStatus
;
this
.
msg
.
JoinType
=
val
.
JoinType
;
this
.
msg
.
EarlyWarning
=
val
.
EarlyWarning
;
this
.
msg
.
OrderTime
=
val
.
OrderTime
;
this
.
msg
.
EndOrderTime
=
val
.
EndOrderTime
;
this
.
resetSearch
();
},
//重新查询
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
//关闭弹窗
closeHandle
()
{
this
.
IsShowQuery
=
false
;
this
.
isShowStopLesson
=
false
;
this
.
isShowTransferClass
=
false
;
this
.
isShowAddEvent
=
false
;
this
.
isShowClassInfo
=
false
;
this
.
isShowmyorderForm
=
false
;
this
.
isShowList
=
false
;
this
.
isShowEventLog
=
false
;
this
.
isShowEventLog
=
false
;
},
//刷新页面
refreshPage
()
{
this
.
closeHandle
();
this
.
getList
();
},
goUrl
(
url
,
item
)
{
if
(
item
)
{
this
.
$router
.
push
({
path
:
url
,
query
:
{
Id
:
item
.
Id
,
name
:
item
.
ActivityName
}
});
},
getTypeEnum
()
{
getTypeEnum
({}).
then
(
res
=>
{
if
(
res
.
Code
===
1
)
{
res
.
Data
.
unshift
({
Name
:
"不限"
,
Id
:
0
});
this
.
typeEnum
=
res
.
Data
;
Id
:
item
.
Id
}
});
}
,
getEarlyWarningEnum
()
{
getEarlyWarningEnum
({}).
then
(
res
=>
{
if
(
res
.
Code
===
1
)
{
this
.
warnEnum
=
res
.
Data
;
}
else
{
this
.
$router
.
push
(
{
path
:
url
,
query
:
{
Id
:
0
}
});
},
//转班
transferClass
(
item
,
type
)
{
this
.
orderObj
=
item
;
this
.
ChangeType
=
type
;
this
.
isShowTransferClass
=
true
;
},
//显示添加事件
showAddEvent
(
item
)
{
let
newitem
=
JSON
.
parse
(
JSON
.
stringify
(
item
));
// Id和修改的Id冲突 自定义学生id=STUID
newitem
.
STUID
=
newitem
.
Id
;
newitem
.
Id
=
0
;
this
.
eventObj
=
newitem
;
this
.
isShowAddEvent
=
true
;
},
//查看合同
seeContract
(
item
)
{
this
.
OpenNewUrl
(
"/contractView"
,
{
ContractId
:
item
.
ContractId
});
},
//查看课时消耗
seeStudentsClassUse
(
item
)
{
let
obj
=
{
StudentId
:
item
.
Id
,
TeacherId
:
item
.
Teacher_Id
,
ClassId
:
item
.
ClassId
};
this
.
OpenNewUrl
(
"/teacher/studentsClassSee"
,
obj
);
},
//查看班级详情
seeClassDetail
(
item
)
{
this
.
eventObj
=
item
;
this
.
isShowClassInfo
=
true
;
},
//查看订单详情
showOrderDetail
(
item
,
tab
)
{
item
.
tab
=
tab
;
this
.
eventObj
=
item
;
this
.
isShowmyorderForm
=
true
;
},
showList
(
item
,
type
)
{
this
.
eventObj
=
item
;
this
.
showType
=
type
;
this
.
isShowList
=
true
;
},
showEventLog
(
item
)
{
this
.
eventObj
=
item
;
this
.
isShowEventLog
=
true
;
},
// 修改事件
modifyEvent
(
val
)
{
this
.
closeHandle
();
this
.
eventObj
=
val
;
this
.
isShowAddEvent
=
true
;
},
getCurseManager
(
row
)
{
let
managerName
=
"<span class='text-grey-4'>暂未推送</span>"
;
if
(
row
.
AssistList
&&
row
.
AssistList
.
length
>
0
)
{
row
.
AssistList
.
forEach
(
y
=>
{
if
(
y
.
AssistType
==
2
)
{
managerName
=
`<span class='text-dark'>
${
y
.
AssistName
}
</span>`
;
}
});
}
},
goUrl1
(
url
,
item
)
{
this
.
$router
.
push
({
path
:
url
,
query
:
{
Id
:
item
.
Id
,
name
:
item
.
ActivityName
}
return
managerName
;
},
getTeacherManager
(
row
)
{
let
managerName
=
"<span class='text-grey-4'>暂无</span>"
;
if
(
row
.
AssistList
&&
row
.
AssistList
.
length
>
0
)
{
row
.
AssistList
.
forEach
(
y
=>
{
if
(
y
.
AssistType
==
4
)
{
managerName
=
`<span class='text-dark'>
${
y
.
AssistName
}
</span>`
;
}
});
},
getTypeEnum
()
{
getTypeEnum
({}).
then
(
res
=>
{
if
(
res
.
Code
===
1
)
{
res
.
Data
.
unshift
({
Name
:
"不限"
,
Id
:
0
});
this
.
typeEnum
=
res
.
Data
;
}
return
managerName
;
},
getStuRight
(
obj
)
{
if
(
obj
)
{
this
.
stuOption
=
{
StuId
:
obj
.
Student_Id
,
noEdit
:
true
};
this
.
BelongType
=
obj
.
BelongType
;
});
},
getEarlyWarningEnum
()
{
getEarlyWarningEnum
({}).
then
(
res
=>
{
if
(
res
.
Code
===
1
)
{
this
.
warnEnum
=
res
.
Data
;
}
this
.
isShowStuRight
=
true
;
},
closeStuForm
()
{
this
.
isShowStuRight
=
false
;
},
refreshStuList
()
{
this
.
getList
();
},
showChangeCourse
(
item
)
{
this
.
isShowChangeCourse
=
true
this
.
ChangeCourseObj
=
item
});
},
//转班
transferClass
(
item
,
type
)
{
this
.
orderObj
=
item
;
this
.
ChangeType
=
type
;
this
.
isShowTransferClass
=
true
;
},
//显示添加事件
showAddEvent
(
item
)
{
let
newitem
=
JSON
.
parse
(
JSON
.
stringify
(
item
));
// Id和修改的Id冲突 自定义学生id=STUID
newitem
.
STUID
=
newitem
.
Id
;
newitem
.
Id
=
0
;
this
.
eventObj
=
newitem
;
this
.
isShowAddEvent
=
true
;
},
//查看合同
seeContract
(
item
)
{
this
.
OpenNewUrl
(
"/contractView"
,
{
ContractId
:
item
.
ContractId
});
},
//查看课时消耗
seeStudentsClassUse
(
item
)
{
let
obj
=
{
StudentId
:
item
.
Id
,
TeacherId
:
item
.
Teacher_Id
,
ClassId
:
item
.
ClassId
};
this
.
OpenNewUrl
(
"/teacher/studentsClassSee"
,
obj
);
},
//查看班级详情
seeClassDetail
(
item
)
{
this
.
eventObj
=
item
;
this
.
isShowClassInfo
=
true
;
},
//查看订单详情
showOrderDetail
(
item
,
tab
)
{
item
.
tab
=
tab
;
this
.
eventObj
=
item
;
this
.
isShowmyorderForm
=
true
;
},
showList
(
item
,
type
)
{
this
.
eventObj
=
item
;
this
.
showType
=
type
;
this
.
isShowList
=
true
;
},
showEventLog
(
item
)
{
this
.
eventObj
=
item
;
this
.
isShowEventLog
=
true
;
},
// 修改事件
modifyEvent
(
val
)
{
this
.
closeHandle
();
this
.
eventObj
=
val
;
this
.
isShowAddEvent
=
true
;
},
getCurseManager
(
row
)
{
let
managerName
=
"<span class='text-grey-4'>暂未推送</span>"
;
if
(
row
.
AssistList
&&
row
.
AssistList
.
length
>
0
)
{
row
.
AssistList
.
forEach
(
y
=>
{
if
(
y
.
AssistType
==
2
)
{
managerName
=
`<span class='text-dark'>
${
y
.
AssistName
}
</span>`
;
}
});
}
return
managerName
;
},
getTeacherManager
(
row
)
{
let
managerName
=
"<span class='text-grey-4'>暂无</span>"
;
if
(
row
.
AssistList
&&
row
.
AssistList
.
length
>
0
)
{
row
.
AssistList
.
forEach
(
y
=>
{
if
(
y
.
AssistType
==
4
)
{
managerName
=
`<span class='text-dark'>
${
y
.
AssistName
}
</span>`
;
}
});
}
return
managerName
;
},
getStuRight
(
obj
)
{
if
(
obj
)
{
this
.
stuOption
=
{
StuId
:
obj
.
Student_Id
,
noEdit
:
true
};
this
.
BelongType
=
obj
.
BelongType
;
}
this
.
isShowStuRight
=
true
;
},
closeStuForm
()
{
this
.
isShowStuRight
=
false
;
},
refreshStuList
()
{
this
.
getList
();
},
showChangeCourse
(
item
)
{
this
.
isShowChangeCourse
=
true
;
this
.
ChangeCourseObj
=
item
;
}
};
}
};
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
\ No newline at end of file
@import
url('~assets/css/table.sass')
</
style
>
src/pages/teacher/changeClassManager.vue
View file @
dfd0be6e
...
...
@@ -648,6 +648,9 @@ export default {
this
.
isShowAssessmentForm
=
false
;
this
.
billObj
=
{};
this
.
getStuBackBill
();
if
(
this
.
isComponents
)
{
this
.
$emit
(
"success"
);
}
},
//获取下拉数据
getEducationType
()
{
...
...
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