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
88443ad6
Commit
88443ad6
authored
Sep 12, 2023
by
吴春
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
f676b355
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
282 additions
and
424 deletions
+282
-424
index.js
src/api/studyabroad/index.js
+15
-0
monthStatisticslist.vue
src/components/school/student/monthStatisticslist.vue
+208
-0
monthStatistics.vue
src/pages/sale/monthStatistics.vue
+59
-424
No files found.
src/api/studyabroad/index.js
View file @
88443ad6
...
...
@@ -238,6 +238,21 @@ export function querySupplierType() {
data
})
}
/**
* 获取已报名学员列表
*/
export
function
GetStudentMonthList
(
data
)
{
return
request
({
url
:
'/StudentStat/GetStudentMonthList'
,
method
:
'post'
,
data
})
}
/**
* 获取客人咨询分页列表
*/
...
...
src/components/school/student/monthStatisticslist.vue
0 → 100644
View file @
88443ad6
<
style
scoped
>
@import
"../../../pages/financial/css/cssReset.css"
;
.baseSet_Title
{
width
:
120px
!important
;
padding
:
18px
0
0
16px
;
text-align
:
right
;
}
.singeRowTable
tr
th
{
border
:
1px
solid
#d2d2d2
;
}
.studentTracking
td
:first-child
{
background-color
:
#E6E6E6
;
position
:
sticky
;
left
:
0px
;
}
.studentTracking
th
:first-child
{
position
:
sticky
;
left
:
0px
;
}
.stulistNumber
{
display
:
inline-block
;
width
:
25px
;
height
:
25px
;
text-align
:
center
;
line-height
:
22px
;
border
:
1px
solid
#2961FE
;
border-radius
:
50%
;
cursor
:
pointer
;
color
:
#2961FE
;
}
.OCourseTable
{
width
:
400px
;
text-align
:
center
;
}
.OCourseTable
tr
td
{
height
:
40px
;
}
.OCourseTable
tr
th
{
height
:
40px
;
background-color
:
rgb
(
238
,
238
,
239
);
}
.stufollowlistNumber
{
display
:
inline-block
;
width
:
25px
;
height
:
25px
;
text-align
:
center
;
line-height
:
22px
;
border
:
1px
solid
#2961FE
;
border-radius
:
50%
;
cursor
:
pointer
;
color
:
#2961FE
;
}
</
style
>
<
template
>
<div
class=
"monthStatisticslist"
>
<div
style=
"width: 100%;overflow-x: auto;"
>
<table
class=
"po_content singeRowTable"
ref=
"table"
style=
"border:1px solid #E6E6E6;"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
"loading"
>
<tr>
<th
width=
"120"
style=
"min-width: 110px;"
>
学生
</th>
<th
width=
"200"
style=
"min-width: 110px;z-index: 999;"
>
时间
</th>
<th
width=
"120"
style=
"min-width: 110px;"
>
类型
</th>
<th
width=
"120"
style=
"min-width: 110px;"
>
学历
</th>
<th
width=
"100"
style=
"min-width: 100px;"
>
目的
</th>
<th
width=
"200"
style=
"min-width: 200px;"
>
是否签合同
</th>
<th
width=
"200"
style=
"min-width: 200px;"
>
来源
</th>
<th
width=
"200"
style=
"min-width: 200px;"
>
来源人
</th>
<th
width=
"200"
style=
"min-width: 200px;"
>
课程名称
</th>
<th
width=
"200"
style=
"min-width: 80px;"
>
订单金额
</th>
</tr>
<template
v-if=
'dataObj&&dataObj.list && dataObj.list.length>0'
>
<tr
v-for=
" ( item , index ) in dataObj.list "
:key=
"index"
>
<td
style=
" border: 1px solid #d2d2d2;"
>
<div
class=
"text-blue cursor-pointer"
@
click=
"getStuRight(item)"
>
{{
item
.
StuName
}}
</div>
</td>
<td>
<span>
{{
item
.
CreateTimeStr
}}
</span>
</td>
<td>
<span>
{{
item
.
JoinType
==
3
?
"内产"
:
"新生"
}}
</span>
</td>
<td>
<span>
{{
item
.
StuEducationName
}}
</span>
</td>
<td>
<span>
{{
item
.
StuProfession
}}
</span>
</td>
<!--
<td>
<span>
{{
item
.
CourseName
}}
</span>
</td>
-->
<td>
<span>
{{
item
.
AdvisorStatusName
}}
</span>
</td>
<td>
{{
item
.
CreateTypeStr
}}
</td>
<td>
<span
v-if=
"item.CreateType==2 && item.EnterpriseName"
>
{{
item
.
EnterpriseName
}}
:
</span>
<span>
{{
item
.
StuSourceIdName
?
item
.
StuSourceIdName
:(
item
.
StuChannelName
+
"-"
+
item
.
CreateByName
)
}}
</span>
</td>
<td>
{{
item
.
CourseName
}}
</td>
<td>
<span>
{{
item
.
OrderIncome
}}{{
item
.
Refund
>
0
?
",已退款"
+
item
.
Refund
:
""
}}
</span>
</td>
</tr>
</
template
>
</table>
</div>
<div
v-if=
'dataObj&&dataObj.list && dataObj.list.length>0'
>
</div>
<div
v-else
style=
"width: 100%;border:1px solid #E6E6E6;display: flex;align-items: center;justify-content: center;height: 60px;"
>
暂无数据
</div>
<studentRight-form
v-if=
"isShowStuRight"
:BelongType=
"BelongType"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshTable"
>
</studentRight-form>
<studentFUForm
v-if=
"isShowStuFU"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
>
</studentFUForm>
</div>
</template>
<
script
>
import
studentRightForm
from
"./studentRight-form"
;
import
studentFUForm
from
"./studentFu-form"
;
export
default
{
props
:
{
//数据
dataObj
:
{
type
:
Object
,
default
:
null
},
loading
:
{
type
:
Boolean
,
default
:
false
,
},
AuthObj
:
{
type
:
Object
,
default
:
null
}
},
components
:
{
studentRightForm
,
studentFUForm
},
data
()
{
return
{
isShowStuFU
:
false
,
isShowStuRight
:
false
,
stuOption
:
{},
BelongType
:
0
,
ShowAuthObj
:
{
//是否显示同行、状态等信息
isShowSaleInfo
:
true
,
},
};
},
mounted
()
{
if
(
this
.
AuthObj
)
{
this
.
ShowAuthObj
.
isShowSaleInfo
=
this
.
AuthObj
.
isShowSaleInfo
;
}
},
methods
:
{
//刷新表格
refreshTable
()
{
this
.
$emit
(
"success"
);
},
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
;
},
//点击学生姓名弹出
getStuRight
(
obj
)
{
console
.
log
(
"我进来啦"
,
obj
);
if
(
obj
)
{
this
.
stuOption
=
obj
;
this
.
BelongType
=
3
;
}
this
.
isShowStuRight
=
true
;
},
//关闭弹窗
closeStuForm
()
{
this
.
isShowStuRight
=
false
;
this
.
isShowStuFU
=
false
},
}
};
</
script
>
\ No newline at end of file
src/pages/sale/monthStatistics.vue
View file @
88443ad6
...
...
@@ -53,86 +53,25 @@
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<
!--
<
div
class=
"col-3"
>
<q-field
filled
dense
>
<template
v-slot:control
>
<el-date-picker
v-model=
"dateArray"
size=
"mini"
@
change=
"resetSearch"
value-format=
"yyyy-MM-dd
"
type=
"daterange"
style=
"border:none;"
range-separator=
"至"
start-placeholder=
"跟进开始时间"
end-placeholder=
"跟进结束时间"
/
>
<el-date-picker
v-model=
"msg.StartTime"
type=
"month"
value-format=
"yyyy-MM"
placeholder=
"订单日期
"
size=
"small"
style=
"border:none;"
@
change=
"resetSearch"
clear-icon=
"iconfont icon-guanbi"
>
</el-date-picker
>
</
template
>
</q-field>
</div>
<
template
v-if=
"morequery"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
dense
filled
option-value=
"SId"
option-label=
"SName"
v-model=
"msg.School_Id"
:options=
"CompanyList"
emit-value
map-options
label=
"校区"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
filled
option-value=
"CourseId"
option-label=
"CourseName"
v-model=
"msg.CourseId"
clearable
emit-value
use-input
:options=
"myCourseList"
label=
"课程"
dense
map-options
@
filter=
"filterFnkec"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
dense
filled
option-value=
"Id"
option-label=
"EmployeeName"
v-model=
"msg.ConsultantId"
clearable
:options=
"RoleListData"
emit-value
map-options
label=
"课程顾问"
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
dense
filled
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.StuGuestState"
clearable
:options=
"hetongList"
emit-value
map-options
label=
"合同状态"
/>
</div>
<div
class=
"col-3"
>
<q-select
filled
v-model=
"msg.CreateBy"
dense
use-input
@
filter=
"filterStudent"
label=
"市场"
:options=
"MarketList"
option-label=
"EmployeeName"
@
input=
"resetSearch"
clearable
option-value=
"Id"
emit-value
map-options
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"msg.StuSourceId='',msg.StuChannel='',resetSearch()"
dense
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.StuChannel"
@
input=
"resetSearch"
label=
"收客渠道"
dense
: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"
>
未找到相关数据
</q-item-section>
</q-item>
</
template
>
</q-select>
</div>
<div
class=
"col-3"
v-if=
"msg.CreateType==2"
>
<q-select
filled
v-model=
"msg.StuSourceId"
dense
: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"
>
未找到相关数据
</q-item-section>
</q-item>
</
template
>
</q-select>
</div>
<div
class=
"col-3"
v-if=
"msg.CreateType==3"
>
<q-select
filled
v-model=
"msg.StuSourceId"
dense
@
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
use-input
@
filter=
"filterStudent"
label=
"转介人"
:options=
"MyTransListData"
option-label=
"StuName"
@
input=
"resetSearch"
clearable
option-value=
"StuId"
emit-value
map-options
/>
</div>
<div
class=
"col-3"
>
</div>
-->
(
<q-radio
size=
"xs"
v-model=
"msg.Q_FType"
val=
"1"
label=
"范围内有跟进记录"
@
input=
'resetSearch'
/>
<q-radio
size=
"xs"
v-model=
"msg.Q_FType"
val=
"2"
label=
"范围内没有跟进记录"
@
input=
'resetSearch'
/>
)
<div
class=
"col-2"
style=
"width: 13%"
>
<q-field
filled
dense
>
<el-date-picker
v-model=
"msg.StartTime"
type=
"month"
value-format=
"yyyy-MM"
placeholder=
"订单日期"
size=
"small"
style=
"width: 100%"
@
change=
"resetSearch"
clear-icon=
"iconfont icon-guanbi"
>
</el-date-picker>
</q-field>
</div>
</template>
</div>
</div>
...
...
@@ -140,53 +79,52 @@
<span
@
click=
"morequery=!morequery"
style=
"display:inline-flex;align-items:center;cursor: pointer;"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"download"
label=
"下载"
v-if=
"isHaveDownLoad"
@
click=
"downloadStudentFollow"
/>
<span
style=
"margin-right:5px;color: #089bab;"
>
高级查询
</span>
<img
v-show=
"!morequery"
style=
"width:12px;height:12px"
src=
"../../assets/images/more.png"
alt=
""
>
<img
v-show=
"morequery"
class=
"roatImg"
style=
"width:12px;height:12px"
src=
"../../assets/images/more.png"
alt=
""
>
</span>
</div>
<div
class=
"col row wrap q-gutter-x-md"
v-if=
"dataList
&&dataList.Stat
"
>
<div
class=
"col row wrap q-gutter-x-md"
v-if=
"dataList"
>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
学生总数
</span>
<span>
{{dataList.
Stat.StuTNum?dataList.Stat.StuTNum:0}}人
</span>
<span
class=
"stics-name"
>
订单总价
</span>
<span>
{{dataList.
totalPrice}}
</span>
</div>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
续费数量
</span>
<span
style=
"color: #F72E52"
>
{{dataList.Stat.RenewNum?dataList.Stat.RenewNum:0}}人
</span>
<span
class=
"stics-name"
>
总单数
</span>
<span
>
{{dataList.orderNum}}
</span>
</div>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
新生数量
</span>
<span
style=
"color:
#2961FE;"
>
{{dataList.Stat.NewNum?dataList.Stat.NewNum:0}}人
</span>
<span
class=
"stics-name"
>
上旬总价
</span>
<span
style=
"color:
#F72E52"
>
{{dataList.totalPriceShang}}
</span>
</div>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
学习中数量
</span>
<span
>
{{dataList.Stat.StudyNum?dataList.Stat.StudyNum:0}}人
</span>
<span
class=
"stics-name"
>
中旬总价
</span>
<span
style=
"color:#2961FE;"
>
{{dataList.totalPriceZhong}}
</span>
</div>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
毕业数量
</span>
<span>
{{dataList.
Stat.GraduateNum?dataList.Stat.GraduateNum:0}}人
</span>
<span
class=
"stics-name"
>
下旬总价
</span>
<span>
{{dataList.
totalPriceXia}}
</span>
</div>
<div
v-if=
"dataList.sourceList&&dataList.sourceList.length>0"
v-for=
" ( itemSource , indexSource ) in dataList.sourceList "
:key=
"indexSource"
>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
停课数量
</span>
<span>
{{dataList.Stat.SuspendNum?dataList.Stat.SuspendNum:0}}人
</span>
<span
class=
"stics-name"
>
{{itemSource.CreateTypeStr}}
</span>
<span>
{{itemSource.OrderNum}}单
</span>
<span>
占比{{itemSource.PriceRate*100}}%
</span>
</div>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
退学数量
</span>
<span>
{{dataList.Stat.DropOutNum?dataList.Stat.DropOutNum:0}}人
</span>
</div>
</div>
<div
style=
"width: 100%;margin-top: 20px"
>
<stufollowlist
:dataObj=
"dataList"
:RListlength=
"RListlength"
@
success=
"refreshPage"
:titlelist=
"titlelist"
:loading=
"loading"
ref=
"stuFollowList"
></stufollowlist>
<q-pagination
v-if=
'dataList&&dataList.RList && dataList.RList.length>0'
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"PageCount"
:input=
"true"
@
input=
"changePage"
/>
<monthStatisticslist
:dataObj=
"dataList"
@
success=
"refreshPage"
:loading=
"loading"
ref=
"monthStatisticslist"
></monthStatisticslist>
</div>
</div>
</template>
<
script
>
import
{
getStudentFollowUpPage
List
,
GetStudentMonth
List
,
}
from
'../../api/studyabroad/index'
import
{
queryCourseDropdownList
,
...
...
@@ -214,7 +152,7 @@
import
{
EduDownLoad
}
from
"../../api/common/common"
;
import
stufollowlist
from
"../../components/school/student/stufollow
list"
;
import
monthStatisticslist
from
"../../components/school/student/monthStatistics
list"
;
import
{
mapState
}
from
"vuex"
;
...
...
@@ -224,105 +162,24 @@
title
:
"市场部学员跟踪"
},
components
:
{
stufollow
list
monthStatistics
list
},
data
()
{
return
{
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
StuName
:
""
,
StuRealMobile
:
''
,
QQ
:
''
,
WeChatNo
:
''
,
StuType
:
''
,
//学生类型
StuGuestState
:
''
,
//合同状态
SFTime
:
''
,
EFTime
:
''
,
StuStage
:
''
,
//客户状态
Q_FType
:
'1'
,
//跟进类型 1范围内有跟进记录 2范围内没有跟进记录
CreateIds
:
[],
School_Id
:
'-1'
,
//校区
CourseId
:
''
,
//课程
ConsultantId
:
''
,
//课程顾问
CreateType
:
''
,
//客户来源
StuChannel
:
""
,
//收客渠道
StuSourceId
:
''
,
StuPurpose
:
''
,
//学习目的
QueryTpye
:
3
,
//市场部查询
AdvisorStatus
:
""
,
//当前状态
CreateBy
:
""
,
//创建人员
StartTime
:
''
,
},
loading
:
false
,
dataList
:
null
,
//列表数据
PageCount
:
0
,
customTypeList
:
[],
//客户类型
customState
:
[],
isMyStuList
:
[{
Id
:
'-1'
,
Name
:
'不限'
},
{
Id
:
'1'
,
Name
:
'是'
},
{
Id
:
'0'
,
Name
:
'否'
},
],
hetongList
:
[{
Id
:
'1'
,
Name
:
'正常'
},
{
Id
:
'2'
,
Name
:
'退学'
},
{
Id
:
'5'
,
Name
:
'停课'
},
{
Id
:
'7'
,
Name
:
'毕业'
},
],
dateArray
:
[],
//日期数组
RListlength
:
0
,
titlelist
:
[],
SubordList
:
[],
//我的下属数据
AllSubordList
:
[],
morequery
:
true
,
CompanyList
:
[],
allCourseList
:
[],
//课程
myCourseList
:
[],
RoleListData
:
[],
//课程顾问下拉数据
customFromList
:
[],
//客户来源
StuChannelList
:
[],
//收客渠道
allStuChannelList
:
[],
//所有收客渠道
customList
:
[],
//同行列表
allCustomList
:
[],
//所有同行列表
//员工列表
employeeList
:
[],
myEmployeeList
:
[],
TransListData
:
[],
//转介人数据
MyTransListData
:
[],
goalsList
:
[],
//学习目的列表
AdvConfigList
:
[],
//客户状态列表
MarketList
:
[],
//市场人员列表
}
},
created
()
{
this
.
getStuStageList
();
this
.
getCustomTypeList
();
this
.
GetSubordList
();
this
.
getBranchList
();
this
.
getCourseList
();
//获取课程下拉
this
.
getRole
();
this
.
getCustomFrom
();
this
.
GetStuChannelList
();
this
.
GetCustomerList
();
this
.
getEmployeeList
();
this
.
getStudentDorpDown
();
this
.
queryGoalsList
();
this
.
getAdvConfigList
();
this
.
getMarketList
()
let
firstDay
=
new
Date
();
var
year
=
firstDay
.
getFullYear
();
//年
var
month
=
firstDay
.
getMonth
()
+
1
-
2
;
//月
this
.
msg
.
StartTime
=
year
+
'-'
+
month
;
},
computed
:
mapState
({
//是否有下载权限
...
...
@@ -343,28 +200,7 @@
this
.
getList
();
//获取列表
},
methods
:
{
//获取市场人员
getMarketList
()
{
var
qMsg
=
{
IsLeave
:
1
,
Dept_Id
:
4
,
UserRole
:
1
};
queryEmployee
(
qMsg
).
then
(
res
=>
{
this
.
MarketList
=
res
.
Data
;
});
},
//获取状态列表
getAdvConfigList
()
{
let
msg
=
{
Name
:
''
}
GetStudentAdvisorConfigList
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
AdvConfigList
=
res
.
Data
;
}
})
},
//刷新页面
refreshPage
()
{
this
.
getList
()
...
...
@@ -373,110 +209,17 @@
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
this
.
loading
=
true
;
EduDownLoad
(
"/StudentStat/DownLoadStudent
FollowUp
"
,
"/StudentStat/DownLoadStudent
Month
"
,
msg
,
"
市场部学员跟踪
.xls"
,
res
=>
{
"
已报名学员
.xls"
,
res
=>
{
this
.
loading
=
false
;
}
);
},
//获取学习目的列表
queryGoalsList
()
{
getGuestLearningGoalsEnumList
({}).
then
(
res
=>
{
this
.
goalsList
=
res
.
Data
;
});
},
//获取收客渠道
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
);
});
},
//获取转介人下拉
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
);
});
},
getRole
()
{
queryEmployee
({
IsLeave
:
1
,
...
...
@@ -485,126 +228,18 @@
this
.
RoleListData
=
res
.
Data
;
});
},
getBranchList
()
{
//获取校区
getSchoolDropdown
({}).
then
(
res
=>
{
var
tempArray
=
res
.
Data
;
if
(
!
tempArray
)
{
tempArray
=
[];
}
tempArray
.
unshift
({
SId
:
'-1'
,
SName
:
"不限"
})
this
.
CompanyList
=
tempArray
;
}).
catch
(()
=>
{
})
},
//获取课程
getCourseList
()
{
queryCourseDropdownList
({
IsQPrice
:
1
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
let
data
=
res
.
Data
this
.
allCourseList
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
this
.
myCourseList
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
}
})
},
//获取我下属的下拉数据
GetSubordList
()
{
GetPersonalDimension
().
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
SubordList
=
res
.
Data
;
this
.
AllSubordList
=
res
.
Data
;
}
});
},
//筛选转介人
filterSubord
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
SubordList
=
this
.
AllSubordList
.
filter
(
v
=>
v
.
EmployeeName
.
indexOf
(
val
)
>
-
1
);
});
},
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
()
},
getList
()
{
this
.
loading
=
true
;
let
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
))
if
(
this
.
dateArray
&&
this
.
dateArray
.
length
>
0
)
{
msg
.
SFTime
=
this
.
dateArray
[
0
];
msg
.
EFTime
=
this
.
dateArray
[
1
];
}
else
{
msg
.
SFTime
=
""
;
msg
.
EFTime
=
""
;
}
if
(
msg
.
StuType
==
''
||
msg
.
StuType
==
null
)
{
msg
.
StuType
=
0
}
if
(
msg
.
StuGuestState
==
''
||
msg
.
StuGuestState
==
null
)
{
msg
.
StuGuestState
=
0
}
if
(
msg
.
StuStage
==
''
||
msg
.
StuStage
==
null
)
{
msg
.
StuStage
=
0
}
if
(
msg
.
ConsultantId
==
''
||
msg
.
ConsultantId
==
null
)
{
msg
.
ConsultantId
=
0
}
if
(
msg
.
StuChannel
==
''
||
msg
.
StuChannel
==
null
)
{
msg
.
StuChannel
=
0
}
if
(
msg
.
CreateType
==
''
||
msg
.
CreateType
==
null
)
{
msg
.
CreateType
=
0
}
if
(
msg
.
StuSourceId
==
''
||
msg
.
StuSourceId
==
null
)
{
msg
.
StuSourceId
=
0
}
getStudentFollowUpPageList
(
msg
).
then
(
res
=>
{
GetStudentMonthList
(
msg
).
then
(
res
=>
{
this
.
loading
=
false
;
this
.
RListlength
=
res
.
Data
.
PageData
&&
res
.
Data
.
PageData
.
MaxMonth
?
res
.
Data
.
PageData
.
MaxMonth
:
1
;
var
titlelist
=
[{
Name
:
'月份/续费/转介'
,
Id
:
1
,
index
:
0
},
{
Name
:
'教师跟踪时间及情况说明'
,
Id
:
2
,
index
:
0
},
{
Name
:
'顾问跟踪时间及情况说明'
,
Id
:
3
,
index
:
0
},
];
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
PageCount
=
res
.
Data
.
PageCount
;
titlelist
=
[];
for
(
let
i
=
0
;
i
<
this
.
RListlength
;
i
++
)
{
let
obj
=
[{
Name
:
'月份/续费/转介'
,
Id
:
1
,
index
:
i
},
{
Name
:
'教师跟踪时间及情况说明'
,
Id
:
2
,
index
:
i
},
{
Name
:
'顾问跟踪时间及情况说明'
,
Id
:
3
,
index
:
i
},
]
titlelist
=
[...
titlelist
,
...
obj
]
}
this
.
titlelist
=
titlelist
;
console
.
log
(
"res.Data"
,
res
.
Data
.
list
);
this
.
dataList
=
res
.
Data
;
})
.
catch
(()
=>
{
this
.
loading
=
false
;
...
...
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