Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
A
admin-base
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
new-sing
admin-base
Commits
e66a89fa
Commit
e66a89fa
authored
Sep 08, 2019
by
赵茹林
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
611ad860
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
363 additions
and
208 deletions
+363
-208
App.vue
src/App.vue
+31
-0
index.vue
src/components/salesLevel/index.vue
+0
-22
hour.vue
src/components/team/hour.vue
+60
-183
hourDialog.vue
src/components/team/hourDialog.vue
+256
-0
index.vue
src/components/team/index.vue
+2
-1
api.js
src/service/api.js
+12
-0
menuList.js
src/util/menuList.js
+2
-2
No files found.
src/App.vue
View file @
e66a89fa
...
...
@@ -299,6 +299,9 @@
border-radius: 3px;
text-decoration: underline;
transition: color 240ms, background-color 240ms;
& + .cell-link {
margin-left: 0;
}
&:hover {
background-color: #cce4ff;
color: #007fff;
...
...
@@ -340,4 +343,32 @@
margin-right: 8px !important;
}
}
.custom-table {
margin-top: 20px;
width: 100%;
border: solid 1px #EBEEF5;
border-spacing: 0;
border-collapse: collapse;
thead {
color: #909399;
font-weight: 500;
th {
padding: 12px 10px;
border: 1px solid #EBEEF5;
}
}
tbody {
tr {
transition: background-color 240ms;
&:hover {
background-color: #F5F7FA;
}
td {
padding: 12px 10px;
border: 1px solid #EBEEF5;
}
}
}
}
</
style
>
src/components/salesLevel/index.vue
View file @
e66a89fa
...
...
@@ -244,28 +244,6 @@
padding: 10px;
box-sizing: border-box;
.custom-table {
margin-top: 20px;
width: 100%;
border: solid 1px #EBEEF5;
border-spacing: 0;
border-collapse: collapse;
thead {
color: #909399;
font-weight: 500;
th {
padding: 12px 10px;
border: 1px solid #EBEEF5;
}
}
tbody {
td {
padding: 12px 10px;
border: 1px solid #EBEEF5;
}
}
}
.subcompany-list {
width: 100%;
.from-item {
...
...
src/components/team/hour.vue
View file @
e66a89fa
...
...
@@ -9,198 +9,73 @@
</el-date-picker>
<el-tabs
v-model=
"search.team"
type=
"card"
class=
"tabs-refresh"
@
tab-click=
"getData"
>
<
el-tab-pane
label=
"总计"
name=
"1,2,3,4,5,6,7,8,9,10"
/
>
<
!--
<el-tab-pane
label=
"总计"
name=
"1,2,3,4,5,6,7,8,9,10"
/>
--
>
<el-tab-pane
v-for=
"i in 10"
:key=
"i"
:label=
"'T'+i"
:name=
"i.toString()"
/>
</el-tabs>
<el-table
class=
"team-table"
border
size=
"small"
:data=
"list"
v-loading=
"loading"
:row-class-name=
"tableRowClassName"
>
<el-table-column
label=
"组别"
width=
"50px"
>
<!--
<table
class=
"custom-table"
v-loading=
"loading"
>
<thead>
<tr>
<th
v-for=
"th in table.th"
>
{{
th
}}
</th>
</tr>
</thead>
<tbody>
<tr
v-if=
"table.td1.length != 0"
>
<td
v-for=
"td in table.td1"
>
{{
td
}}
</td>
</tr>
<tr
v-if=
"table.td2.length != 0"
>
<td
v-for=
"td in table.td2"
>
{{
td
}}
</td>
</tr>
<tr
v-if=
"table.td3.length != 0"
>
<td
v-for=
"td in table.td3"
>
{{
td
}}
</td>
</tr>
</tbody>
</table>
-->
<el-table
class=
"team-table"
border
size=
"small"
:data=
"list"
v-loading=
"loading"
>
<el-table-column
label=
"组别"
width=
"50px"
fixed=
"left"
>
<template
slot-scope=
"scope"
>
{{
(
String
(
scope
.
row
.
squad
).
indexOf
(
','
)
>
-
1
&&
scope
.
row
.
total
)
?
'合计'
:
`T${scope.row.squad
}
`
}}
<
/template
>
<
/el-table-column
>
<!--
<
el
-
table
-
column
label
=
"销售顾问"
>
<
template
slot
-
scope
=
"scope"
>
<
span
v
-
html
=
"transStaff(scope.row)"
><
/span
>
<
/template
>
<
/el-table-column>--
>
<
el
-
table
-
column
v
-
if
=
"this.search.team != '1,2,3,4,5,6,7,8,9,10'"
label
=
"销售顾问"
>
<
el
-
table
-
column
label
=
"销售顾问"
fixed
=
"left"
>
<
template
slot
-
scope
=
"scope"
>
{{
scope
.
row
.
total
?
'-'
:
scope
.
row
.
staff_name
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
prop
=
"reach_class_num"
>
<
template
slot
=
"header"
slot
-
scope
=
"scope"
>
<
el
-
tooltip
effect
=
"dark"
:
content
=
"TIP_TEAM['reach_class_num']"
placement
=
"top"
>
<
span
class
=
"table-refresh-header"
>
近
30
天
<
i
class
=
"el-icon-question"
><
/i><br>到班
数
<
/span
>
<
/el-tooltip
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
prop
=
"reach_course_num"
>
<
template
slot
=
"header"
slot
-
scope
=
"scope"
>
<
el
-
tooltip
effect
=
"dark"
:
content
=
"TIP_TEAM['reach_course_num']"
placement
=
"top"
>
<
span
class
=
"table-refresh-header"
>
近
30
天
<
i
class
=
"el-icon-question"
><
/i><br>到课
数
<
/span
>
<
/el-tooltip
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
prop
=
"wait_add_friend"
>
<
template
slot
=
"header"
slot
-
scope
=
"scope"
>
<
el
-
tooltip
effect
=
"dark"
:
content
=
"TIP_TEAM['wait_add_friend']"
placement
=
"top"
>
<
span
class
=
"table-refresh-header"
>
近
7
天
<
i
class
=
"el-icon-question"
><
/i><br>待添
加
<
/span
>
<
/el-tooltip
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
prop
=
"wait_visit_num"
>
<
template
slot
=
"header"
slot
-
scope
=
"scope"
>
<
el
-
tooltip
effect
=
"dark"
:
content
=
"TIP_TEAM['wait_visit_num']"
placement
=
"top"
>
<
span
class
=
"table-refresh-header"
>
当日
<
i
class
=
"el-icon-question"
><
/i><br>待回
访
<
/span
>
<
/el-tooltip
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
prop
=
"over_visit_num"
>
<
template
slot
=
"header"
slot
-
scope
=
"scope"
>
<
el
-
tooltip
effect
=
"dark"
:
content
=
"TIP_TEAM['over_visit_num']"
placement
=
"top"
>
<
span
class
=
"table-refresh-header"
>
当日
<
i
class
=
"el-icon-question"
><
/i><br>已回
访
<
/span
>
<
/el-tooltip
>
<
/template
>
<
el
-
table
-
column
label
=
"有效微信沟通/通次"
>
<
template
slot
-
scope
=
"scope"
>
<
span
class
=
"cell-link"
@
click
=
"dialogToggle(scope.row
, 'callback')"
>
{{
scope
.
row
.
over_visit_num
}}
<
/span
>
<
span
class
=
"cell-link"
@
click
=
"dialogToggle(scope.row
)"
>
{{
scope
.
row
.
valid_chat_count
+
'/'
+
scope
.
row
.
valid_phone_count
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
prop
=
"chat_contact_count
"
>
<
el
-
table
-
column
v
-
for
=
"(t, index) in time"
:
key
=
"index"
width
=
"60px
"
>
<
template
slot
=
"header"
slot
-
scope
=
"scope"
>
<
el
-
tooltip
effect
=
"dark"
:
content
=
"TIP_TEAM['chat_contact_count']"
placement
=
"top"
>
<
span
class
=
"table-refresh-header"
>
当日
<
i
class
=
"el-icon-question"
><
/i><br>微信沟
通
<
/span
>
<
/el-tooltip
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
prop
=
"valid_chat_contact_count"
>
<
template
slot
=
"header"
slot
-
scope
=
"scope"
>
<
el
-
tooltip
effect
=
"dark"
:
content
=
"TIP_TEAM['valid_chat_contact_count']"
placement
=
"top"
>
<
span
class
=
"table-refresh-header"
>
当日
<
i
class
=
"el-icon-question"
><
/i><br>微信有效沟
通
<
/span
>
<
/el-tooltip
>
<!--
<
span
v
-
html
=
"t.split('-').join('<br>-')"
><
/span>--
>
{{
t
.
replace
(
/:00/g
,
""
)
}}
<
/template
>
<
template
slot
-
scope
=
"scope"
>
<
span
class
=
"cell-link"
@
click
=
"dialogToggle(scope.row, 'validchat')"
>
{{
scope
.
row
.
valid_chat_contact_count
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
prop
=
"valid_phone_counts"
>
<
template
slot
=
"header"
slot
-
scope
=
"scope"
>
<
el
-
tooltip
effect
=
"dark"
:
content
=
"TIP_TEAM['valid_phone_counts']"
placement
=
"top"
>
<
span
class
=
"table-refresh-header"
>
当日
<
i
class
=
"el-icon-question"
><
/i><br>有效通
次
<
/span
>
<
/el-tooltip
>
<
/template
>
<
template
slot
-
scope
=
"scope"
>
<
span
class
=
"cell-link"
@
click
=
"dialogToggle(scope.row, 'phonerecord')"
>
{{
scope
.
row
.
valid_phone_counts
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
prop
=
"phone_total_time"
>
<
template
slot
=
"header"
slot
-
scope
=
"scope"
>
<!--
TODO
-->
<
el
-
tooltip
effect
=
"dark"
:
content
=
"TIP_TEAM['phone_total_time']"
placement
=
"top"
>
<
span
class
=
"table-refresh-header"
>
当日
<
i
class
=
"el-icon-question"
><
/i><br>有效通
时
<
/span
>
<
/el-tooltip
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
prop
=
"lately_class_num"
>
<
template
slot
=
"header"
slot
-
scope
=
"scope"
>
<
el
-
tooltip
effect
=
"dark"
:
content
=
"TIP_TEAM['lately_class_num']"
placement
=
"top"
>
<
span
class
=
"table-refresh-header"
>
未来
7
日
<
i
class
=
"el-icon-question"
><
/i><br>开课班
级
<
/span
>
<
/el-tooltip
>
<
/template
>
<
template
slot
-
scope
=
"scope"
>
<
span
class
=
"cell-link"
@
click
=
"dialogToggle(scope.row, 'class')"
>
{{
scope
.
row
.
lately_class_num
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
prop
=
"month_order_num"
>
<
template
slot
=
"header"
slot
-
scope
=
"scope"
>
<
el
-
tooltip
effect
=
"dark"
:
content
=
"TIP_TEAM['month_order_num']"
placement
=
"top"
>
<
span
class
=
"table-refresh-header"
>
当月
<
i
class
=
"el-icon-question"
><
/i><br>订
单
<
/span
>
<
/el-tooltip
>
<
/template
>
<
template
slot
-
scope
=
"scope"
>
<
span
class
=
"cell-link"
@
click
=
"dialogToggle(scope.row, 'achievement')"
>
{{
scope
.
row
.
month_order_num
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
prop
=
"month_order_rate"
>
<
template
slot
=
"header"
slot
-
scope
=
"scope"
>
<
el
-
tooltip
effect
=
"dark"
:
content
=
"TIP_TEAM['month_order_rate']"
placement
=
"top"
>
<
span
class
=
"table-refresh-header"
>
当月
<
i
class
=
"el-icon-question"
><
/i><br>平均转
化
<
/span
>
<
/el-tooltip
>
<
/template
>
<
template
slot
-
scope
=
"scope"
>
<
span
class
=
"cell-link"
@
click
=
"dialogToggle(scope.row, 'achievement')"
>
{{
transRate
(
scope
.
row
.
month_trans_order_num
,
scope
.
row
.
month_trans_user_num
)
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
prop
=
"order_money_count"
>
<
template
slot
=
"header"
slot
-
scope
=
"scope"
>
<
el
-
tooltip
effect
=
"dark"
:
content
=
"TIP_TEAM['order_money_count']"
placement
=
"top"
>
<
span
class
=
"table-refresh-header"
>
当月
<
i
class
=
"el-icon-question"
><
/i><br>总业
绩
<
/span
>
<
/el-tooltip
>
<
/template
>
<
template
slot
-
scope
=
"scope"
>
<
span
class
=
"cell-link"
@
click
=
"dialogToggle(scope.row, 'achievement')"
>
{{
scope
.
row
.
order_money_count
}}
<
/span
>
<
span
class
=
"cell-link"
@
click
=
"dialogToggle(scope.row)"
>
{{
scope
.
row
[
`valid_count${index
}
`
]
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
/el-table
>
<
page
:
total
=
"total"
:
limit
=
"limit"
@
pageChange
=
"onPageChange"
@
sizeChange
=
"onSizeChange"
/>
<
team
-
dialog
:
dialog
-
obj
=
"dialogObj"
/>
<
hour
-
dialog
:
dialog
-
obj
=
"dialogObj"
/>
<
/div
>
<
/template
>
<
script
>
import
page
from
'@framework/page'
import
TeamDialog
from
'./d
ialog'
import
{
getTeamApi
}
from
'@service/api'
;
import
HourDialog
from
'./hourD
ialog'
import
{
get
Hour
TeamApi
}
from
'@service/api'
;
import
{
TIP_TEAM
}
from
'@util/tipArr'
;
function
getNowFormatDate
()
{
var
date
=
new
Date
();
var
seperator1
=
"-"
;
var
year
=
date
.
getFullYear
();
//年
var
month
=
date
.
getMonth
()
+
1
;
//月
var
year
=
date
.
getFullYear
();
//年
var
month
=
date
.
getMonth
()
+
1
;
//月
var
strDate
=
date
.
getDate
();
//日
if
(
month
>=
1
&&
month
<=
9
)
{
month
=
"0"
+
month
;
...
...
@@ -214,9 +89,14 @@
export
default
{
name
:
"index"
,
components
:
{
page
,
Team
Dialog
}
,
components
:
{
page
,
Hour
Dialog
}
,
data
()
{
return
{
time
:
[],
table
:
{
th
:
[],
td
:
[]
}
,
TIP_TEAM
:
TIP_TEAM
,
loading
:
true
,
search
:
{
...
...
@@ -279,24 +159,18 @@
return
'-'
}
}
,
tableRowClassName
({
row
,
rowIndex
}
)
{
if
(
rowIndex
===
0
)
{
return
'primary-row'
;
}
return
''
;
}
,
dialogToggle
(
row
,
type
)
{
dialogToggle
(
row
)
{
this
.
dialogObj
=
{
alias
:
row
.
alias
,
// 老师微信号
squad
:
(
String
(
row
.
squad
).
indexOf
(
','
)
>
-
1
&&
row
.
total
)
?
''
:
`${row.squad
}
`
,
squad
:
row
.
squad
,
// 组别
show
:
true
,
total
:
row
.
total
,
type
:
type
,
user_id
:
row
.
user_id
,
teacher_id
:
row
.
teacher_id
,
start_at
:
this
.
search
.
start_at
,
staff_name
:
row
.
staff_name
.
indexOf
(
','
)
>
-
1
?
row
.
staff_name
.
split
(
','
).
join
(
','
)
:
row
.
staff_name
// total: row.total,
// type: type,
// teacher_id: row.teacher_id,
}
}
,
getData
()
{
...
...
@@ -304,22 +178,25 @@
let
json
=
{
team
:
this
.
search
.
team
,
page
:
this
.
nowPage
,
limit
:
this
.
limit
}
getTeamApi
(
json
).
then
(
res
=>
{
if
(
Object
.
keys
(
res
).
length
&&
res
.
team_list
&&
res
.
team_list
.
page_data
)
{
if
(
Object
.
keys
(
res
.
team_total
).
length
)
{
res
.
team_total
.
total
=
true
;
// 方便"合计" 可以这样写,也可以用scope.$index
res
.
team_list
.
page_data
.
unshift
(
res
.
team_total
);
limit
:
this
.
limit
,
start_at
:
this
.
search
.
start_at
}
getHourTeamApi
(
json
).
then
(
res
=>
{
console
.
log
(
res
)
if
(
res
&&
res
.
time
)
{
res
.
time
.
push
(
'合计'
);
this
.
time
=
res
.
time
;
}
else
{
this
.
time
=
[]
}
if
(
res
&&
res
.
team_list
&&
res
.
team_list
.
page_data
)
{
this
.
list
=
res
.
team_list
.
page_data
;
this
.
total
=
res
.
team_list
.
total
;
this
.
loading
=
false
;
this
.
total
=
res
.
team_list
.
total
}
else
{
this
.
list
=
[];
this
.
total
=
0
;
this
.
loading
=
false
;
this
.
total
=
0
}
this
.
loading
=
false
;
}
)
}
,
onPageChange
(
val
)
{
...
...
src/components/team/hourDialog.vue
0 → 100644
View file @
e66a89fa
<
template
>
<el-dialog
:title=
"title"
append-to-body
:visible
.
sync=
"show"
top=
"5vh"
width=
"1200px"
>
<div
v-loading=
"loading"
>
<table
class=
"custom-table el-table"
style=
"margin-bottom: 20px;"
>
<thead>
<tr>
<th
v-for=
"th in table.th"
>
{{
th
.
replace
(
/:00/g
,
""
)
}}
</th>
</tr>
</thead>
<tbody>
<tr
v-if=
"table.td1.length != 0"
>
<td
v-for=
"(td, index) in table.td1"
>
<span
class=
"cell"
:class=
"index>0 ? 'cell-link' : ''"
@
click=
"dialogToggle()"
>
{{
td
}}
</span>
</td>
</tr>
<tr
v-if=
"table.td2.length != 0"
>
<td
v-for=
"(td, index) in table.td2"
>
<span
class=
"cell"
:class=
"index>0 ? 'cell-link' : ''"
@
click=
"dialogToggle()"
>
{{
td
}}
</span>
</td>
</tr>
<tr
v-if=
"table.td3.length != 0"
>
<td
v-for=
"(td, index) in table.td3"
>
<span
class=
"cell"
:class=
"index>0 ? 'cell-link' : ''"
@
click=
"dialogToggle()"
>
{{
td
}}
</span>
</td>
</tr>
<tr
v-if=
"table.td4.length != 0"
>
<td
v-for=
"(td, index) in table.td4"
>
<span
class=
"cell"
:class=
"index>0 ? 'cell-link' : ''"
@
click=
"dialogToggle()"
>
{{
td
}}
</span>
</td>
</tr>
</tbody>
</table>
<!--回访 开始-->
<el-table
:data=
"list"
border
size=
"small"
>
<!--
<el-table-column
label=
"序号"
prop=
"staff_name"
></el-table-column>
-->
<el-table-column
label=
"老师"
prop=
"teacher_name"
></el-table-column>
<el-table-column
label=
"UID"
prop=
"user_id"
></el-table-column>
<el-table-column
label=
"客户微信昵称"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
nick
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"聊天条数"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
chat_count
}}
</
template
>
</el-table-column>
<el-table-column
label=
"电话号码"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
mobile
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"呼出时间"
width=
"92px"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
phone_start_time
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"通话时间"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
phone_duration
+
's'
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"意向度"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
intention
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"下次回访时间"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
next_visit_at
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<span
class=
"cell-link"
>
聊天记录
</span>
<span
class=
"cell-link"
>
录音
</span>
</
template
>
</el-table-column>
</el-table>
<!--回访 结束-->
<page
:current-page=
"nowPage"
:total=
"total"
:limit=
"limit"
@
pageChange=
"onPageChange"
@
sizeChange=
"onSizeChange"
/>
</div>
</el-dialog>
</template>
<
script
>
import
{
getHourSingleApi
,
getHourTimeApi
}
from
"@service/api"
;
import
page
from
'@framework/page'
export
default
{
name
:
"HourDialog"
,
components
:
{
page
},
props
:
{
dialogObj
:
{
type
:
Object
,
required
:
true
,
default
:
()
=>
{
}
}
},
data
()
{
return
{
show
:
false
,
loading
:
true
,
table
:
{
th
:
[],
td1
:
[],
td2
:
[],
td3
:
[],
td4
:
[],
},
list
:
[],
title
:
''
,
total
:
0
,
nowPage
:
1
,
limit
:
10
,
dialogObj2
:
{
}
}
},
mounted
()
{
this
.
initDialog
()
},
methods
:
{
initDialog
()
{
// console.log(this.dialogObj)
if
(
this
.
dialogObj
)
{
this
.
show
=
this
.
dialogObj
.
show
;
this
.
getData
();
}
},
dialogToggle
(
row
,
type
)
{
this
.
dialogObj2
=
{
alias
:
row
.
alias
,
// 老师微信号
squad
:
(
String
(
row
.
squad
).
indexOf
(
','
)
>
-
1
&&
row
.
isTotal
)
?
''
:
`
${
row
.
squad
}
`
,
show
:
true
,
isTotal
:
row
.
isTotal
,
type
:
type
,
user_id
:
row
.
user_id
,
teacher_id
:
row
.
teacher_id
,
start_at
:
this
.
search
.
start_at
,
staff_name
:
row
.
staff_name
.
indexOf
(
','
)
>
-
1
?
row
.
staff_name
.
split
(
','
).
join
(
','
)
:
row
.
staff_name
}
},
getData
()
{
let
json
=
{
wechat_number
:
this
.
dialogObj
.
alias
,
start_at
:
this
.
dialogObj
.
start_at
,
page
:
this
.
nowPage
,
limit
:
this
.
limit
,
// type:
}
getHourSingleApi
(
json
).
then
(
res
=>
{
console
.
log
(
111
,
res
)
if
(
res
&&
res
.
list
&&
res
.
list
.
page_data
)
{
this
.
list
=
res
.
list
.
page_data
;
this
.
total
=
res
.
list
.
total
}
else
{
this
.
list
=
[];
this
.
total
=
0
}
if
(
res
&&
res
.
time
&&
res
.
time
.
length
)
{
res
.
time
.
unshift
(
' '
);
res
.
time
.
push
(
'合计'
);
this
.
table
.
th
=
res
.
time
;
}
else
{
this
.
table
.
th
=
[]
}
if
(
res
&&
res
.
count
&&
res
.
count
.
valid_chat_count
)
{
res
.
count
.
valid_chat_count
.
unshift
(
'微信有效沟通'
);
this
.
table
.
td1
=
res
.
count
.
valid_chat_count
}
else
{
this
.
table
.
td1
=
[]
}
if
(
res
&&
res
.
count
&&
res
.
count
.
chat_count10
)
{
res
.
count
.
chat_count10
.
unshift
(
'沟通>10'
);
this
.
table
.
td2
=
res
.
count
.
chat_count10
}
else
{
this
.
table
.
td2
=
[]
}
if
(
res
&&
res
.
count
&&
res
.
count
.
valid_phone_count
)
{
res
.
count
.
valid_phone_count
.
unshift
(
'有效通次'
);
this
.
table
.
td3
=
res
.
count
.
valid_phone_count
}
else
{
this
.
table
.
td3
=
[]
}
if
(
res
&&
res
.
count
&&
res
.
count
.
three_min_count
)
{
res
.
count
.
three_min_count
.
unshift
(
'>3分钟'
);
this
.
table
.
td4
=
res
.
count
.
three_min_count
}
else
{
this
.
table
.
td4
=
[]
}
this
.
loading
=
false
})
/*getHourTimeApi(json).then(res => {
console.log(222,res)
})*/
},
getVisited
()
{
// 已回访
let
json
=
{
teacher_id
:
this
.
dialogObj
.
teacher_id
,
// teacher_id: '82',
start_at
:
this
.
dialogObj
.
start_at
,
page
:
this
.
nowPage
,
limit
:
this
.
limit
}
getVisitedApi
(
json
).
then
(
res
=>
{
this
.
list
=
res
;
this
.
total
=
res
.
total
||
0
;
// todo 后台没给分页
this
.
loading
=
false
;
})
},
getValidchat
()
{
// 有效沟通
let
json
=
{
alias
:
this
.
dialogObj
.
alias
,
teacher_id
:
this
.
dialogObj
.
teacher_id
,
start_at
:
this
.
dialogObj
.
start_at
,
page
:
this
.
nowPage
,
limit
:
this
.
limit
}
getValidchatApi
(
json
.
alias
,
json
).
then
(
res
=>
{
if
(
Object
.
keys
(
res
).
length
&&
res
.
chat_friend_list
)
{
this
.
list
=
res
.
chat_friend_list
.
page_data
;
this
.
total
=
res
.
chat_friend_list
.
total
;
}
else
{
this
.
list
=
[];
this
.
total
=
0
;
}
this
.
loading
=
false
;
})
},
onPageChange
(
val
)
{
this
.
nowPage
=
val
this
.
getData
()
},
onSizeChange
(
val
)
{
this
.
limit
=
val
;
this
.
nowPage
=
1
;
this
.
getData
()
},
},
watch
:
{
dialogObj
:
{
handler
:
function
()
{
this
.
loading
=
true
;
this
.
initDialog
()
},
deep
:
true
},
show
(
value
)
{
this
.
nowPage
=
1
;
// 重置
this
.
$emit
(
"changeShow"
,
value
);
}
}
}
</
script
>
src/components/team/index.vue
View file @
e66a89fa
...
...
@@ -305,7 +305,8 @@
let
json
=
{
team
:
this
.
search
.
team
,
page
:
this
.
nowPage
,
limit
:
this
.
limit
limit
:
this
.
limit
,
start_at
:
this
.
search
.
start_at
}
getTeamApi
(
json
).
then
(
res
=>
{
if
(
Object
.
keys
(
res
).
length
&&
res
.
team_list
&&
res
.
team_list
.
page_data
)
{
...
...
src/service/api.js
View file @
e66a89fa
...
...
@@ -1485,3 +1485,15 @@ export const getClassOpenedApi = function (json) {
export
const
getAchievementApi
=
function
(
json
)
{
return
Vue
.
prototype
.
$fetch
(
`
${
_baseUrl
}
api/admin/teacher/teamachievement`
,
json
)
};
// 小时动态 - 分组数据
export
const
getHourTeamApi
=
function
(
json
)
{
return
Vue
.
prototype
.
$fetch
(
`
${
_baseUrl
}
api/admin/teacher/teamhoursinfo`
,
json
)
};
// 小时动态 - 组员统计
export
const
getHourSingleApi
=
function
(
json
)
{
return
Vue
.
prototype
.
$fetch
(
`
${
_baseUrl
}
api/admin/teacher/singleteamhoursinfo`
,
json
)
};
// 小时动态 - 分段数据
export
const
getHourTimeApi
=
function
(
json
)
{
return
Vue
.
prototype
.
$fetch
(
`
${
_baseUrl
}
api/admin/teacher/timeslotrecordlist`
,
json
)
};
src/util/menuList.js
View file @
e66a89fa
...
...
@@ -216,7 +216,7 @@ export default [
component
:
e
=>
require
([
'@/components/team'
],
e
),
}
},
/*
{
{
value
:
'小时动态'
,
routerName
:
'hour'
,
path
:
'/hour'
,
...
...
@@ -226,7 +226,7 @@ export default [
name
:
'hour'
,
component
:
e
=>
require
([
'@/components/team/hour'
],
e
),
}
},
*/
},
]
},
{
name
:
''
,
...
...
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