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
39768cd8
Commit
39768cd8
authored
Jan 14, 2022
by
Mac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改
parent
8f2b0a0e
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
246 additions
and
122 deletions
+246
-122
more.png
src/assets/images/more.png
+0
-0
studentRight-form.vue
src/components/school/student/studentRight-form.vue
+1
-0
guestConsultation.vue
src/pages/sale/guestConsultation.vue
+108
-86
studentTracking.vue
src/pages/sale/studentTracking.vue
+137
-36
No files found.
src/assets/images/more.png
0 → 100644
View file @
39768cd8
334 Bytes
src/components/school/student/studentRight-form.vue
View file @
39768cd8
...
@@ -419,6 +419,7 @@ export default {
...
@@ -419,6 +419,7 @@ export default {
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
stuData
=
res
.
Data
;
this
.
stuData
=
res
.
Data
;
this
.
stateId
=
res
.
Data
.
StuStage
;
this
.
stateId
=
res
.
Data
.
StuStage
;
res
.
Data
.
BelongType
=
this
.
baseObj
.
BelongType
this
.
baseObj
=
res
.
Data
this
.
baseObj
=
res
.
Data
}
}
});
});
...
...
src/pages/sale/guestConsultation.vue
View file @
39768cd8
...
@@ -36,27 +36,40 @@ th:first-child{position: sticky;left:0px;}
...
@@ -36,27 +36,40 @@ th:first-child{position: sticky;left:0px;}
<q-select
@
input=
"resetSearch"
dense
filled
v-model=
"msg.StuGuestState"
:options=
"customState"
option-label=
"Name"
<q-select
@
input=
"resetSearch"
dense
filled
v-model=
"msg.StuGuestState"
:options=
"customState"
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
label=
"客户状态"
clearable
/>
option-value=
"Id"
emit-value
map-options
label=
"客户状态"
clearable
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
dense
v-model=
"msg.IsQueryMyStu"
:options=
"isMyStuList"
filled
use-input
<q-select
@
input=
"resetSearch"
dense
filled
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.BelongType"
label=
"是否我协助的"
option-label=
"Name"
option-value=
"Id"
ref=
"CustomerName"
class=
"col-6"
emit-value
:options=
"BelongTypeList"
emit-value
map-options
label=
"归属类型"
/>
map-options
>
</div>
<div
class=
"col-3"
v-if=
"msg.BelongType == 4"
>
</q-select>
<q-select
@
input=
"resetSearch"
dense
clearable
@
filter=
"filterSubord"
use-input
filled
option-value=
"Id"
option-label=
"EmployeeName"
v-model=
"msg.CreateIds"
multiple
:options=
"SubordList"
emit-value
map-options
label=
"我下属的"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
dense
filled
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.Q_EnrollState"
<q-select
@
input=
"resetSearch"
dense
filled
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.Q_EnrollState"
:options=
"FTypeList"
emit-value
map-options
label=
"报名状态"
/>
:options=
"FTypeList"
emit-value
map-options
label=
"报名状态"
/>
</div>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
dense
filled
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.BelongType"
:options=
"BelongTypeList"
emit-value
map-options
label=
"归属类型"
/>
</div>
</div>
</div>
</div>
</div>
<div
class=
"page-content"
>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-right-column-table sticky-tow-column-table"
separator=
"none"
:separator=
"cell"
class=
"sticky-right-column-table sticky-tow-column-table"
:data=
"dataList"
:columns=
"columns"
row-key=
"StuId"
>
:data=
"dataList"
:columns=
"columns"
row-key=
"StuId"
>
...
@@ -73,51 +86,28 @@ th:first-child{position: sticky;left:0px;}
...
@@ -73,51 +86,28 @@ th:first-child{position: sticky;left:0px;}
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-PlanPrice=
"props"
>
<
template
v-slot:body-cell-PlanPrice=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
style=
"max-width: 200px; white-space: normal;word-break:break-all"
>
<!--
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"props.row.PlanPrice"
placement=
"top"
>
<div>
{{
props
.
row
.
PlanPrice
}}
</div>
<div
class=
"w200text"
>
{{
props
.
row
.
PlanPrice
}}
</div>
</el-tooltip>
-->
<div
class=
"w200text"
>
{{
props
.
row
.
PlanPrice
}}
</div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-BaseCondition=
"props"
>
<
template
v-slot:body-cell-BaseCondition=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
class=
"w500text"
>
<div
class=
"w200text"
>
{{
props
.
row
.
BaseCondition
}}
</div>
<div
><span
class=
"w500text-l"
>
基本情况:
</span>
<span
class=
"text-r"
>
{{
props
.
row
.
BaseCondition
?
props
.
row
.
BaseCondition
:
'暂无'
}}
</span>
</div>
<!--
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"props.row.BaseCondition"
placement=
"top"
>
<div
><span
class=
"w500text-l"
>
需求点:
</span>
<span
class=
"text-r"
>
{{
props
.
row
.
DemandPoint
?
props
.
row
.
DemandPoint
:
'暂无'
}}
</span></div>
<div
class=
"w200text"
>
{{
props
.
row
.
BaseCondition
}}
</div>
<div
><span
class=
"w500text-l"
>
抗拒点:
</span>
<span
class=
"text-r"
>
{{
props
.
row
.
ResistPoint
?
props
.
row
.
ResistPoint
:
'暂无'
}}
</span></div>
</el-tooltip>
-->
<div
><span
class=
"w500text-l"
>
咨询结果:
</span>
<span
class=
"text-r"
>
{{
props
.
row
.
ConsultingResults
?
props
.
row
.
ConsultingResults
:
'暂无'
}}
</span></div>
</q-td>
</
template
>
<
template
v-slot:body-cell-DemandPoint=
"props"
>
<q-td
:props=
"props"
>
<div
class=
"w200text"
>
{{
props
.
row
.
DemandPoint
}}
</div>
<!--
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"props.row.DemandPoint"
placement=
"top"
>
<div
class=
"w200text"
>
{{
props
.
row
.
DemandPoint
}}
</div>
</el-tooltip>
-->
</q-td>
</
template
>
<
template
v-slot:body-cell-ResistPoint=
"props"
>
<q-td
:props=
"props"
>
<div
class=
"w200text"
>
{{
props
.
row
.
ResistPoint
}}
</div>
<!--
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"props.row.ResistPoint"
placement=
"top"
>
<div
class=
"w200text"
>
{{
props
.
row
.
ResistPoint
}}
</div>
</el-tooltip>
-->
</q-td>
</
template
>
<
template
v-slot:body-cell-ConsultingResults=
"props"
>
<q-td
:props=
"props"
>
<div
class=
"w200text"
>
{{
props
.
row
.
ConsultingResults
}}
</div>
<!--
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"props.row.ConsultingResults"
placement=
"top"
>
<div
class=
"w200text"
>
{{
props
.
row
.
ConsultingResults
}}
</div>
</el-tooltip>
-->
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-FURemark=
"props"
>
<
template
v-slot:body-cell-FURemark=
"props"
>
<q-td
>
<q-td
>
<div
style=
"max-width: 200px;overflow: hidden;white-space: normal;word-break:break-all;max-height: 40px;"
v-if=
"props.row.FURemark"
v-html=
"props.row.FURemark"
></div>
<div
style=
"display: flex;align-items: center;justify-content: space-between;"
>
{{
props
.
row
.
FUTime
}}
<span
style=
"text-decoration: underline;cursor: pointer;color: #2961fe ;"
v-if=
"props.row.FURemark"
@
click=
"lookgengduo(props.row)"
>
查看更多
</span>
<span
style=
"text-decoration: underline;cursor: pointer;color: #2961fe ;"
v-if=
"props.row.FURemark"
@
click=
"lookgengduo(props.row)"
>
更多
</span>
</div>
<div
style=
"max-width: 240px;overflow: hidden;white-space: normal;word-break:break-all;max-height: 40px;"
v-if=
"props.row.FURemark"
v-html=
"props.row.FURemark"
></div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:bottom
>
<
template
v-slot:bottom
>
...
@@ -156,7 +146,7 @@ import {
...
@@ -156,7 +146,7 @@ import {
import
{
import
{
queryStuStageList
,
queryStuStageList
,
GetStudentTypeList
,
GetStudentTypeList
,
GetPersonalDimension
}
from
"../../api/school/index"
;
}
from
"../../api/school/index"
;
import
studentRightForm
from
"../../components/school/student/studentRight-form"
;
import
studentRightForm
from
"../../components/school/student/studentRight-form"
;
import
studentFUForm
from
"../../components/school/student/studentFu-form"
;
import
studentFUForm
from
"../../components/school/student/studentFu-form"
;
...
@@ -182,9 +172,11 @@ export default {
...
@@ -182,9 +172,11 @@ export default {
WeChatNo
:
''
,
WeChatNo
:
''
,
StuType
:
''
,
//学生类型
StuType
:
''
,
//学生类型
StuGuestState
:
''
,
//状态
StuGuestState
:
''
,
//状态
BelongType
:
'1'
,
//归属类型(1-全部,2-我负责的,3-我协同的)
BelongType
:
'1'
,
//归属类型(1-全部,2-我负责的,3-我协同的
,4 下属
)
Q_EnrollState
:
'0'
,
//报名状态 1已报名 2未成交 0不限
Q_EnrollState
:
'0'
,
//报名状态 1已报名 2未成交 0不限
IsQueryMyStu
:
'-1'
,
IsQueryMyStu
:
'1'
,
//是否我协助的 1是 2否
CreateIds
:
[],
},
},
loading
:
false
,
loading
:
false
,
...
@@ -194,7 +186,7 @@ export default {
...
@@ -194,7 +186,7 @@ export default {
customState
:
[],
customState
:
[],
isMyStuList
:[{
Id
:
'-1'
,
Name
:
'不限'
},{
Id
:
'1'
,
Name
:
'是'
},{
Id
:
'0'
,
Name
:
'否'
},],
isMyStuList
:[{
Id
:
'-1'
,
Name
:
'不限'
},{
Id
:
'1'
,
Name
:
'是'
},{
Id
:
'0'
,
Name
:
'否'
},],
FTypeList
:[{
Id
:
'0'
,
Name
:
'不限'
},{
Id
:
'1'
,
Name
:
'已报名'
},{
Id
:
'2'
,
Name
:
'未成交'
},],
FTypeList
:[{
Id
:
'0'
,
Name
:
'不限'
},{
Id
:
'1'
,
Name
:
'已报名'
},{
Id
:
'2'
,
Name
:
'未成交'
},],
BelongTypeList
:[{
Id
:
'1'
,
Name
:
'全部'
},{
Id
:
'2'
,
Name
:
'我负责的'
},{
Id
:
'3'
,
Name
:
'我协同的'
},],
BelongTypeList
:[{
Id
:
'1'
,
Name
:
'全部'
},{
Id
:
'2'
,
Name
:
'我负责的'
},{
Id
:
'3'
,
Name
:
'我协同的'
},
{
Id
:
4
,
Name
:
"我下属的"
}
],
dateArray
:
[],
//日期数组
dateArray
:
[],
//日期数组
columns
:
[{
columns
:
[{
name
:
"StuName"
,
name
:
"StuName"
,
...
@@ -253,40 +245,34 @@ export default {
...
@@ -253,40 +245,34 @@ export default {
},
},
{
{
name
:
"BaseCondition"
,
name
:
"BaseCondition"
,
label
:
"
基本情况
"
,
label
:
"
客户情况分析
"
,
field
:
"BaseCondition"
,
field
:
"BaseCondition"
,
align
:
"left"
align
:
"left"
},
},
{
//
{
name
:
"DemandPoint"
,
//
name: "DemandPoint",
label
:
"需求点"
,
//
label: "需求点",
field
:
"DemandPoint"
,
//
field: "DemandPoint",
align
:
"left"
//
align: "left"
},
//
},
{
//
{
name
:
"ResistPoint"
,
//
name: "ResistPoint",
label
:
"抗拒点"
,
//
label: "抗拒点",
field
:
"ResistPoint"
,
//
field: "ResistPoint",
align
:
"left"
//
align: "left"
},
//
},
{
//
{
name
:
"ConsultingResults"
,
//
name: "ConsultingResults",
label
:
"咨询结果"
,
//
label: "咨询结果",
align
:
"left"
,
//
align: "left",
field
:
"ConsultingResults"
//
field: "ConsultingResults"
},
//
},
{
{
name
:
"JapanBaseInfo"
,
name
:
"JapanBaseInfo"
,
label
:
"日语基础"
,
label
:
"日语基础"
,
field
:
"JapanBaseInfo"
,
field
:
"JapanBaseInfo"
,
align
:
"left"
align
:
"left"
},
},
{
name
:
"FUTime"
,
label
:
"跟进日期"
,
field
:
"FUTime"
,
align
:
"left"
},
{
{
name
:
"FURemark"
,
name
:
"FURemark"
,
label
:
"跟进备注"
,
label
:
"跟进备注"
,
...
@@ -300,17 +286,45 @@ export default {
...
@@ -300,17 +286,45 @@ export default {
isShowStuRight
:
false
,
isShowStuRight
:
false
,
isJudgeTrans
:
1
,
isJudgeTrans
:
1
,
isShowStuFU
:
false
,
isShowStuFU
:
false
,
SubordList
:
[],
//我的下属数据
AllSubordList
:
[]
}
}
},
},
created
()
{
},
created
()
{
let
userinfo
=
this
.
getLocalStorage
();
//这个权限和学员跟踪学员的权限一样
userinfo
.
ActionMenuList
.
map
(
x
=>
{
//判断权限
if
(
x
.
FunctionCode
==
"studentTracking_look"
){
//判断是否有保存的权限
this
.
msg
.
IsQueryMyStu
=
2
return
}
})
},
mounted
()
{
mounted
()
{
this
.
getList
();
//获取规则
this
.
getList
();
//获取规则
this
.
getStuStageList
()
this
.
getStuStageList
()
this
.
getCustomTypeList
()
this
.
getCustomTypeList
()
this
.
GetSubordList
()
},
},
methods
:
{
methods
:
{
//获取我下属的下拉数据
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
()
{
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
this
.
getList
();
...
@@ -360,7 +374,7 @@ export default {
...
@@ -360,7 +374,7 @@ export default {
getStuRight
(
obj
)
{
getStuRight
(
obj
)
{
if
(
obj
)
{
if
(
obj
)
{
this
.
stuOption
=
obj
;
this
.
stuOption
=
obj
;
this
.
BelongType
=
obj
.
BelongType
;
this
.
BelongType
=
3
;
//点击弹出不让修改
}
}
this
.
isShowStuRight
=
true
;
this
.
isShowStuRight
=
true
;
},
},
...
@@ -393,15 +407,23 @@ export default {
...
@@ -393,15 +407,23 @@ export default {
background-color
:
transparent
;
background-color
:
transparent
;
border
:
none
;
border
:
none
;
}
}
.w200text
{
.w500text
{
/* width: 150px;
overflow: hidden;
width
:
500px
;
white-space: nowrap;
word-wrap: normal;
text-overflow:ellipsis;
cursor: pointer; */
min-width
:
200px
;
white-space
:
normal
;
word-break
:
break-all
white-space
:
normal
;
word-break
:
break-all
}
}
.w500text
div
{
display
:
flex
;
align-items
:
flex-start
;
}
.w500text
.w500text-l
{
display
:
inline-block
;
text-align-last
:
justify
;
width
:
70px
;
color
:
#666666
;
;
}
.w500text
.text-r
{
flex
:
1
}
</
style
>
</
style
>
src/pages/sale/studentTracking.vue
View file @
39768cd8
...
@@ -33,7 +33,7 @@ th:first-child{position: sticky;left:0px;}
...
@@ -33,7 +33,7 @@ th:first-child{position: sticky;left:0px;}
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
label=
"客户类型"
/>
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
label=
"客户类型"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
dense
filled
v-model=
"msg.Stu
GuestStat
e"
:options=
"customState"
option-label=
"Name"
<q-select
@
input=
"resetSearch"
dense
filled
v-model=
"msg.Stu
Stag
e"
:options=
"customState"
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
label=
"客户状态"
clearable
/>
option-value=
"Id"
emit-value
map-options
label=
"客户状态"
clearable
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
...
@@ -50,17 +50,7 @@ th:first-child{position: sticky;left:0px;}
...
@@ -50,17 +50,7 @@ th:first-child{position: sticky;left:0px;}
label=
"归属类型"
label=
"归属类型"
/>
/>
</div>
</div>
<!--
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
dense
v-model=
"msg.IsQueryMyStu"
:options=
"isMyStuList"
filled
use-input
label=
"是否查询我的学员"
option-label=
"Name"
option-value=
"Id"
ref=
"CustomerName"
class=
"col-6"
emit-value
map-options
>
</q-select>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
dense
filled
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.Q_FType"
:options=
"FTypeList"
emit-value
map-options
label=
"跟进类型"
/>
</div>
-->
<div
class=
"col-3"
v-if=
"msg.BelongType == 4"
>
<div
class=
"col-3"
v-if=
"msg.BelongType == 4"
>
<q-select
<q-select
...
@@ -80,7 +70,36 @@ th:first-child{position: sticky;left:0px;}
...
@@ -80,7 +70,36 @@ th:first-child{position: sticky;left:0px;}
label=
"我下属的"
label=
"我下属的"
/>
/>
</div>
</div>
</div>
</div>
<div
style=
"width: 100%;text-align: right;padding: 0 20px;margin-bottom: 10px;"
>
<span
@
click=
"morequery=!morequery"
style=
"display:inline-flex;align-items:center;cursor: pointer;"
>
<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=
"page-search row items-center"
v-if=
"morequery"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<!--
<q-select
@
input=
"resetSearch"
dense
filled
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.Q_FType"
:options=
"FTypeList"
emit-value
map-options
label=
"跟进类型"
/>
-->
<q-option-group
v-model=
"msg.Q_FType"
inline
class=
"q-mb-md"
:options=
"[
{ label: '范围内有跟进记录', value: '1' },
{ label: '范围内没有跟进记录', value: '2' },
]"
/>
</div>
<div
class=
"col-3"
>
<q-field
filled
dense
>
<q-field
filled
dense
>
<template
v-slot:control
>
<template
v-slot:control
>
<el-date-picker
v-model=
"dateArray"
size=
"mini"
@
change=
"resetSearch"
value-format=
"yyyy-MM-dd"
<el-date-picker
v-model=
"dateArray"
size=
"mini"
@
change=
"resetSearch"
value-format=
"yyyy-MM-dd"
...
@@ -89,12 +108,22 @@ th:first-child{position: sticky;left:0px;}
...
@@ -89,12 +108,22 @@ th:first-child{position: sticky;left:0px;}
</
template
>
</
template
>
</q-field>
</q-field>
</div>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetBelong"
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
filled
stack-label
option-value=
"CourseId"
option-label=
"CourseName"
v-model=
"addMsg.CourseList"
use-chips
use-input
:options=
"myCourseList"
label=
"课程"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
multiple
map-options
@
filter=
"filterFn"
/>
</div>
</div>
</div>
</div>
</div>
<div
class=
"col row wrap q-gutter-x-md"
v-if=
"dataList.Stat"
>
<div
class=
"col row wrap q-gutter-x-md"
v-if=
"dataList.Stat"
>
<div
class=
"col stics"
>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
学生总数
</span>
<span
class=
"stics-name"
>
学生总数
</span>
<span>
{{dataList.Stat.StuTNum?dataList.Stat.StuTNum:0}}人
</span>
<span>
{{dataList.Stat.StuTNum?dataList.Stat.StuTNum:0}}人
</span>
...
@@ -123,7 +152,8 @@ th:first-child{position: sticky;left:0px;}
...
@@ -123,7 +152,8 @@ th:first-child{position: sticky;left:0px;}
<span
class=
"stics-name"
>
退学数量
</span>
<span
class=
"stics-name"
>
退学数量
</span>
<span>
{{dataList.Stat.DropOutNum?dataList.Stat.DropOutNum:0}}人
</span>
<span>
{{dataList.Stat.DropOutNum?dataList.Stat.DropOutNum:0}}人
</span>
</div>
</div>
</div>
</div>
<div
style=
"width: 100%;margin-top: 20px"
>
<div
style=
"width: 100%;margin-top: 20px"
>
<div
style=
"width: 100%;overflow-x: auto;"
>
<div
style=
"width: 100%;overflow-x: auto;"
>
...
@@ -149,7 +179,7 @@ th:first-child{position: sticky;left:0px;}
...
@@ -149,7 +179,7 @@ th:first-child{position: sticky;left:0px;}
</th>
</th>
</tr>
</tr>
<tr
>
<tr
>
<th
v-for=
" ( item , index ) in titlelist "
:key =
'index'
:width=
"item.Id==1?1
0
0:200"
>
{{item.Name}}
</th>
<th
v-for=
" ( item , index ) in titlelist "
:key =
'index'
:width=
"item.Id==1?1
2
0:200"
>
{{item.Name}}
</th>
</tr>
</tr>
<tr
v-for=
" ( item , index ) in dataList.RList "
:key=
"index"
v-if=
'dataList.RList && dataList.RList.length>0'
>
<tr
v-for=
" ( item , index ) in dataList.RList "
:key=
"index"
v-if=
'dataList.RList && dataList.RList.length>0'
>
<td
style=
" border: 1px solid #d2d2d2;"
>
<td
style=
" border: 1px solid #d2d2d2;"
>
...
@@ -187,19 +217,26 @@ th:first-child{position: sticky;left:0px;}
...
@@ -187,19 +217,26 @@ th:first-child{position: sticky;left:0px;}
<span
style=
"margin:0 3px"
>
/
</span>
<span
style=
"margin:0 3px"
>
/
</span>
<span
:style=
"{'color':item.MonthList[x.index].IntroductionNum>0?'red':'#111'}"
>
{{item.MonthList[x.index].IntroductionNum}}
</span>
<span
:style=
"{'color':item.MonthList[x.index].IntroductionNum>0?'red':'#111'}"
>
{{item.MonthList[x.index].IntroductionNum}}
</span>
</div>
</div>
<div
v-if=
"x.Id==2"
>
<div
v-if=
"x.Id==2"
style=
"padding: 3px;"
>
<span
v-if=
"item.MonthList[x.index].TeacherTime"
>
{{item.MonthList[x.index].TeacherTime+':'}}
</span>
<div
v-if=
"item.MonthList[x.index].TeacherTime"
style=
"display: flex;align-items: center;justify-content: space-between;"
>
<div
>
{{item.MonthList[x.index].TeacherTime}}
</div>
<span
style=
"text-decoration: underline;cursor: pointer;color: #2961fe ;"
@
click=
"lookgengduo(item)"
>
更多
</span>
</div>
<
template
>
<
template
>
<
span
v-if=
"item.MonthList[x.index].Teacher!=''"
v-html=
"item.MonthList[x.index].Teacher"
></span
>
<
div
v-if=
"item.MonthList[x.index].Teacher!=''"
v-html=
"item.MonthList[x.index].Teacher"
></div
>
<span
v-if=
"item.MonthList[x.index].Teacher==''"
>
-
</span>
<span
v-if=
"item.MonthList[x.index].Teacher==''"
>
-
</span>
</
template
>
</
template
>
</div>
</div>
<div
v-if=
"x.Id==3"
>
<div
v-if=
"x.Id==3"
style=
"padding: 3px;"
>
<span
v-if=
"item.MonthList[x.index].ConsultantTime"
>
{{item.MonthList[x.index].ConsultantTime+':'}}
</span>
<div
v-if=
"item.MonthList[x.index].ConsultantTime"
style=
"display: flex;align-items: center;justify-content: space-between;"
>
<div
>
{{item.MonthList[x.index].ConsultantTime}}
</div>
<span
style=
"text-decoration: underline;cursor: pointer;color: #2961fe ;"
@
click=
"lookgengduo(item)"
>
更多
</span>
</div>
<
template
>
<
template
>
<
span
v-if=
"item.MonthList[x.index].Consultant"
v-html=
"item.MonthList[x.index].Consultant"
></span
>
<
div
v-if=
"item.MonthList[x.index].Consultant"
v-html=
"item.MonthList[x.index].Consultant"
></div
>
<span
v-if=
"item.MonthList[x.index].Consultant==''"
>
-
</span>
<span
v-if=
"item.MonthList[x.index].Consultant==''"
>
-
</span>
</
template
>
</
template
>
</div>
</div>
...
@@ -228,6 +265,13 @@ th:first-child{position: sticky;left:0px;}
...
@@ -228,6 +265,13 @@ th:first-child{position: sticky;left:0px;}
@
reload=
"getList"
@
reload=
"getList"
>
>
</studentRight-form>
</studentRight-form>
<studentFUForm
v-if=
"isShowStuFU"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
>
</studentFUForm>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
...
@@ -236,12 +280,18 @@ import {
...
@@ -236,12 +280,18 @@ import {
getStudentFollowUpPageList
,
getStudentFollowUpPageList
,
}
from
'../../api/studyabroad/index'
}
from
'../../api/studyabroad/index'
import
{
queryCourseDropdownList
,
}
from
'../../api/course/index'
import
{
import
{
queryStuStageList
,
queryStuStageList
,
GetStudentTypeList
,
GetStudentTypeList
,
GetPersonalDimension
GetPersonalDimension
,
getSchoolDropdown
}
from
"../../api/school/index"
;
}
from
"../../api/school/index"
;
import
studentRightForm
from
"../../components/school/student/studentRight-form"
;
import
studentRightForm
from
"../../components/school/student/studentRight-form"
;
import
studentFUForm
from
"../../components/school/student/studentFu-form"
;
export
default
{
export
default
{
meta
:
{
meta
:
{
...
@@ -249,7 +299,8 @@ export default {
...
@@ -249,7 +299,8 @@ export default {
},
},
props
:
{},
props
:
{},
components
:
{
components
:
{
studentRightForm
studentRightForm
,
studentFUForm
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -262,13 +313,15 @@ export default {
...
@@ -262,13 +313,15 @@ export default {
QQ
:
''
,
QQ
:
''
,
WeChatNo
:
''
,
WeChatNo
:
''
,
StuType
:
''
,
//学生类型
StuType
:
''
,
//学生类型
StuGuestState
:
''
,
//状态
StuGuestState
:
''
,
//
合同
状态
IsQueryMyStu
:
'1'
,
//是否查询我的学员 1是 0否
IsQueryMyStu
:
'1'
,
//是否查询我的学员 1是 0否
SFTime
:
''
,
SFTime
:
''
,
EFTime
:
''
,
EFTime
:
''
,
Q_FType
:
'-1'
,
//跟进类型 1范围内有跟进记录 2范围内没有跟进记录
StuStage
:
''
,
//客户状态
Q_FType
:
''
,
//跟进类型 1范围内有跟进记录 2范围内没有跟进记录
BelongType
:
1
,
BelongType
:
1
,
CreateIds
:
[],
CreateIds
:
[],
School_Id
:
'-1'
,
//校区
},
},
//归属类型列表
//归属类型列表
...
@@ -306,7 +359,16 @@ export default {
...
@@ -306,7 +359,16 @@ export default {
isShowStuRight
:
false
,
isShowStuRight
:
false
,
isJudgeTrans
:
1
,
isJudgeTrans
:
1
,
SubordList
:
[],
//我的下属数据
SubordList
:
[],
//我的下属数据
AllSubordList
:
[]
AllSubordList
:
[],
stuOption
:
null
,
isShowStuFU
:
false
,
morequery
:
false
,
CompanyList
:[],
allCourseList
:
[],
//课程
myCourseList
:[],
}
}
},
},
...
@@ -324,8 +386,38 @@ export default {
...
@@ -324,8 +386,38 @@ export default {
this
.
getStuStageList
()
this
.
getStuStageList
()
this
.
getCustomTypeList
()
this
.
getCustomTypeList
()
this
.
GetSubordList
()
this
.
GetSubordList
()
this
.
getBranchList
()
this
.
getCourseList
();
//获取课程下拉
},
},
methods
:
{
methods
:
{
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
()
{
GetSubordList
()
{
GetPersonalDimension
().
then
(
res
=>
{
GetPersonalDimension
().
then
(
res
=>
{
...
@@ -369,19 +461,16 @@ export default {
...
@@ -369,19 +461,16 @@ export default {
if
(
msg
.
StuGuestState
==
''
||
msg
.
StuGuestState
==
null
){
if
(
msg
.
StuGuestState
==
''
||
msg
.
StuGuestState
==
null
){
msg
.
StuGuestState
=
0
msg
.
StuGuestState
=
0
}
}
if
(
msg
.
StuStage
==
''
||
msg
.
StuStage
==
null
){
msg
.
StuStage
=
0
}
getStudentFollowUpPageList
(
msg
).
then
(
res
=>
{
getStudentFollowUpPageList
(
msg
).
then
(
res
=>
{
this
.
loading
=
false
;
this
.
loading
=
false
;
this
.
RListlength
=
res
.
Data
.
PageData
&&
res
.
Data
.
PageData
.
MaxMonth
?
res
.
Data
.
PageData
.
MaxMonth
:
1
;
this
.
RListlength
=
res
.
Data
.
PageData
&&
res
.
Data
.
PageData
.
MaxMonth
?
res
.
Data
.
PageData
.
MaxMonth
:
1
;
this
.
titlelist
=
[{
Name
:
'月份/续费/转介'
,
Id
:
1
,
index
:
0
},{
Name
:
'教师跟踪时间及情况说明'
,
Id
:
2
,
index
:
0
},{
Name
:
'顾问跟踪时间及情况说明'
,
Id
:
3
,
index
:
0
},];
this
.
titlelist
=
[{
Name
:
'月份/续费/转介'
,
Id
:
1
,
index
:
0
},{
Name
:
'教师跟踪时间及情况说明'
,
Id
:
2
,
index
:
0
},{
Name
:
'顾问跟踪时间及情况说明'
,
Id
:
3
,
index
:
0
},];
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
PageCount
=
res
.
Data
.
PageCount
;
this
.
PageCount
=
res
.
Data
.
PageCount
;
// if(this.dataList && this.dataList.RList&& this.dataList.RList.length>0){
// this.dataList.RList.forEach(x=>{
// if(x.MonthList.length> this.RListlength){
// this.RListlength = x.MonthList.length
// }
// })
// }
this
.
titlelist
=
[];
this
.
titlelist
=
[];
for
(
let
i
=
0
;
i
<
this
.
RListlength
;
i
++
){
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
},]
let
obj
=
[{
Name
:
'月份/续费/转介'
,
Id
:
1
,
index
:
i
},{
Name
:
'教师跟踪时间及情况说明'
,
Id
:
2
,
index
:
i
},{
Name
:
'顾问跟踪时间及情况说明'
,
Id
:
3
,
index
:
i
},]
...
@@ -421,12 +510,13 @@ export default {
...
@@ -421,12 +510,13 @@ export default {
getStuRight
(
obj
)
{
getStuRight
(
obj
)
{
if
(
obj
)
{
if
(
obj
)
{
this
.
stuOption
=
obj
;
this
.
stuOption
=
obj
;
this
.
BelongType
=
obj
.
BelongType
;
this
.
BelongType
=
3
;
}
}
this
.
isShowStuRight
=
true
;
this
.
isShowStuRight
=
true
;
},
},
closeStuForm
()
{
closeStuForm
()
{
this
.
isShowStuRight
=
false
;
this
.
isShowStuRight
=
false
;
this
.
isShowStuFU
=
false
},
},
resetBelong
()
{
resetBelong
()
{
if
(
this
.
msg
.
BelongType
!=
4
)
{
if
(
this
.
msg
.
BelongType
!=
4
)
{
...
@@ -434,6 +524,14 @@ export default {
...
@@ -434,6 +524,14 @@ export default {
this
.
getList
();
this
.
getList
();
}
}
},
},
lookgengduo
(
obj
){
//跟进备注
if
(
obj
)
{
this
.
stuOption
=
obj
;
this
.
BelongType
=
obj
.
BelongType
;
}
this
.
isShowStuFU
=
true
;
}
},
},
}
}
...
@@ -464,4 +562,7 @@ export default {
...
@@ -464,4 +562,7 @@ export default {
font-weight
:
600
;
font-weight
:
600
;
margin-right
:
10px
margin-right
:
10px
}
}
.roatImg
{
transform
:
rotate
(
180deg
);
}
</
style
>
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment