Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-3
Overview
Overview
Details
Activity
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
office
haoban-3
Commits
140ae901
Commit
140ae901
authored
Apr 24, 2021
by
陈羽
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update: 绑定门店列表添加分页
parent
2aaae491
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
199 additions
and
55 deletions
+199
-55
salesleads-task-info.vue
src/components/review/salesleads-task-info.vue
+49
-13
vue-office-header.vue
src/components/vue-office-header.vue
+0
-7
index.js
src/router/index.js
+0
-5
authMerchant.vue
src/views/business/authMerchant.vue
+9
-5
storeList.vue
src/views/business/storeList.vue
+4
-3
index.vue
src/views/salesleads/index.vue
+24
-0
salesleadsSet.vue
src/views/salesleads/salesleadsSet.vue
+1
-0
storeDetail.vue
src/views/salesleads/storeDetail.vue
+60
-8
storeList.vue
src/views/salesleads/storeList.vue
+30
-8
taskDetail.vue
src/views/salesleads/taskDetail.vue
+0
-0
taskList.vue
src/views/salesleads/taskList.vue
+22
-6
No files found.
src/components/review/salesleads-task-info.vue
View file @
140ae901
...
...
@@ -11,13 +11,20 @@
import salesleadsTaskinfo from '@/components/review/salesleads-task-info.vue';
-->
<
template
>
<el-dialog
title=
"完成详情"
:visible
.
sync=
"dialogVisible"
width=
"600px"
>
<el-dialog
title=
"完成详情"
:visible
.
sync=
"dialogVisible"
width=
"600px"
@
close=
"close"
>
<div
class=
""
>
<el-form
:model=
"ruleForm"
:rules=
"rules"
ref=
"ruleForm"
label-width=
"120px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"完成时间"
prop=
"appName"
>
</el-form-item>
<el-form-item
label=
"完成方式"
prop=
"appId"
>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"title"
>
</el-form-item>
<el-form-item
label=
"图片"
prop=
"title"
>
</el-form-item>
<el-form
:model=
"form"
:rules=
"rules"
ref=
"form"
label-width=
"120px"
class=
"demo-form"
>
<el-form-item
label=
"完成时间"
prop=
"overdueTime"
>
{{
form
.
finishTime
|
formatTimeStamp
}}
</el-form-item>
<el-form-item
label=
"完成方式"
prop=
"touchTypes"
>
{{
form
.
touchFinishTypeName
}}
</el-form-item>
<el-form-item
label=
"备注"
prop=
"finishRemark"
>
{{
form
.
finishRemark
}}
</el-form-item>
<el-form-item
label=
"图片"
prop=
"imgUrl"
>
<template
v-for=
"item in form.remarkImgUrl"
>
<el-popover
placement=
"right-start"
:open-delay=
"200"
width=
"300"
trigger=
"hover"
:key=
"item"
>
<img
style=
"display:block;width:100%"
:src=
"item"
alt=
""
/>
<el-image
slot=
"reference"
style=
"width: 40px; height: 40px"
:src=
"item"
fit=
"cover"
></el-image>
</el-popover>
</
template
>
</el-form-item>
</el-form>
</div>
</el-dialog>
...
...
@@ -37,19 +44,24 @@ export default {
return
{
dialogVisible
:
true
,
form
:
{
appName
:
''
,
appId
:
''
,
title
:
''
finishTime
:
null
,
finishRemark
:
''
,
touchFinishTypeName
:
''
,
remarkImgUrl
:
[]
}
};
},
methods
:
{},
methods
:
{
close
()
{
this
.
$emit
(
'close'
);
}
},
watch
:
{
item
(
newData
)
{
const
that
=
this
;
if
(
Object
.
keys
(
newData
).
length
)
{
that
.
$nextTick
(()
=>
{
that
.
ruleF
orm
=
JSON
.
parse
(
JSON
.
stringify
(
newData
));
that
.
f
orm
=
JSON
.
parse
(
JSON
.
stringify
(
newData
));
});
}
}
...
...
@@ -58,10 +70,34 @@ export default {
const
that
=
this
;
if
(
Object
.
keys
(
that
.
item
).
length
)
{
that
.
$nextTick
(()
=>
{
that
.
ruleF
orm
=
JSON
.
parse
(
JSON
.
stringify
(
that
.
item
));
that
.
f
orm
=
JSON
.
parse
(
JSON
.
stringify
(
that
.
item
));
});
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
<
style
lang=
"scss"
scoped
>
>>>
.el-dialog__header
{
padding
:
19px
28px
;
}
>>>
.el-dialog__body
{
padding-top
:
10px
;
}
>>>
.el-form-item
{
margin-bottom
:
0
;
.el-form-item__label
{
line-height
:
30px
;
}
.el-form-item__content
{
font-size
:
14px
;
font-weight
:
400
;
color
:
#303133
;
line-height
:
30px
;
}
.el-popover__reference
{
margin-top
:
10px
;
margin-right
:
10px
;
border-radius
:
4px
;
}
}
</
style
>
src/components/vue-office-header.vue
View file @
140ae901
...
...
@@ -91,13 +91,6 @@ export default {
url
:
'/enterpriseSet?/adminList'
,
parentCode
:
null
,
project
:
'office'
},
{
menuCode
:
null
,
rightName
:
'销售线索'
,
url
:
'/salesleads?/storeList'
,
parentCode
:
null
,
project
:
'office'
}
// {
// menuCode: null,
...
...
src/router/index.js
View file @
140ae901
...
...
@@ -161,11 +161,6 @@ export const constantRouterMap = [
component
:
_import
(
'salesleads'
,
'taskList'
),
},
{
path
:
'/taskDetail/:id'
,
name
:
'计划视图'
,
component
:
_import
(
'salesleads'
,
'taskDetail'
)
},
{
path
:
'/salesleadsSet'
,
name
:
'销售线索设置'
,
component
:
_import
(
'salesleads'
,
'salesleadsSet'
)
...
...
src/views/business/authMerchant.vue
View file @
140ae901
...
...
@@ -23,7 +23,10 @@
</div>
</div>
</div>
<div><span
class=
"color-909399 font-13 m-r-19"
>
最多授权 10 个商户
</span><el-button
v-if=
"tableData.length
<
10
"
type=
"primary"
@
click=
"AddAuthMerchant"
>
新建授权
</el-button></div>
<div>
<span
class=
"color-909399 font-13 m-r-19"
>
最多授权 10 个商户
</span>
<el-button
v-if=
"tableData.length
<
10
"
type=
"primary"
@
click=
"AddAuthMerchant"
>
新建授权
</el-button>
</div>
</div>
<div
class=
"m-t-20"
>
<el-table
class=
"select-table"
ref=
"multipleTable"
v-loading=
"loading"
:data=
"tableData"
tooltip-effect=
"dark"
:style=
"
{ width: '100%', minHeight: tableH }">
...
...
@@ -64,9 +67,9 @@
</
template
>
</el-table-column>
</el-table>
<
!-- <
div class="block common-wrap__page text-right m-t-24" v-if="tableData.length != 0">
<dm-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[20, 40, 60, 80]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="
total
"> </dm-pagination>
</div>
-->
<div
class=
"block common-wrap__page text-right m-t-24"
v-if=
"tableData.length != 0"
>
<dm-pagination
background
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page=
"currentPage"
:page-sizes=
"[20, 40, 60, 80]"
:page-size=
"pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"
8
"
>
</dm-pagination>
</div>
</div>
</div>
</div>
...
...
@@ -106,7 +109,8 @@ export default {
pageSize
:
20
,
total
:
0
,
tableData
:
[],
addShow
:
false
addShow
:
false
,
activeBrand
:
''
};
},
computed
:
{},
...
...
src/views/business/storeList.vue
View file @
140ae901
...
...
@@ -42,9 +42,9 @@
</
template
>
</el-table-column>
</el-table>
<
!-- <div class="block common-wrap__page text-right m-t-24" v-if="tableData.length != 0
">
<
dm-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageNum" :page-sizes="[20, 40, 60, 80]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </dm
-pagination>
</div>
-->
<
div
class=
"block common-wrap__page text-right m-t-24"
v-if=
"tableData.length
"
>
<
el-pagination
background
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page=
"pageParams.pageNum"
:page-sizes=
"[10, 20, 30]"
:page-size=
"pageParams.pageSize"
layout=
"total, sizes, prev, pager, next"
:total=
"total"
>
</el
-pagination>
</div>
</div>
</div>
</div>
...
...
@@ -140,6 +140,7 @@ export default {
let
resData
=
res
.
data
;
if
(
resData
.
errorCode
==
1
&&
resData
.
result
)
{
that
.
tableData
=
resData
.
result
.
result
||
[];
this
.
total
=
resData
.
result
.
totalCount
||
0
;
return
false
;
}
errMsg
.
errorMsg
(
resData
);
...
...
src/views/salesleads/index.vue
View file @
140ae901
...
...
@@ -314,3 +314,27 @@ export default {
}
}
</
style
>
<
style
lang=
"scss"
>
.salesleads-popover
{
padding
:
14px
!important
;
.m-b-10
{
margin-bottom
:
10px
;
}
p
{
font-size
:
14px
;
font-weight
:
400
;
color
:
#303133
;
line-height
:
20px
;
}
.temp
{
color
:
#909399
;
margin-bottom
:
4px
;
}
.m-l--6
{
margin-left
:
-6px
;
}
.m-b-14
{
margin-bottom
:
14px
;
}
}
</
style
>
src/views/salesleads/salesleadsSet.vue
View file @
140ae901
...
...
@@ -138,6 +138,7 @@ export default {
}
},
mounted
()
{
this
.
$emit
(
'showTab'
,
3
);
this
.
getDeatil
();
document
.
documentElement
.
style
.
backgroundColor
=
'#f0f2f5'
;
},
...
...
src/views/salesleads/storeDetail.vue
View file @
140ae901
...
...
@@ -21,10 +21,25 @@
<span
class=
"el-alert__title color-303133 font-13"
>
筛选时间:2020-12-31至2021-12-31
</span>
</div>
</div>
<div
role=
"tips"
class=
"tips flex flex-align-center"
>
<i
class=
"el-icon-warning-outline font-14 color-2f54eb"
></i>
<div
class=
"el-alert__content"
>
查看指标说明
</div>
</div>
<el-popover
placement=
"bottom-start"
width=
"550"
trigger=
"click"
popper-class=
"salesleads-popover"
>
<div
class=
"tips-content"
>
<p>
展示所选期间内的导购线索,以线索为主体,不以时间为主体。
</p>
<p
class=
"temp"
>
如 所选时间为 20210401~20210403,则显示期间相关的导购线索数据。
</p>
<p
class=
"m-b-14"
>
导购线索:计划中触达到门店导购端的都归入导购线索,包括话务、企微任务。
</p>
<p
class=
"m-l--6"
>
【 任务完成率 】:
</p>
<p
class=
"m-b-10"
>
导购任务完成数 / 任务总数,任务完成数不含放弃数。
</p>
<p
class=
"m-l--6"
>
【 触达转化收益 】:
</p>
<p>
通过导购线索触达,且触达的会员在触达效益计算有效期内前来消费的人数。
<br
/>
多个导购线索任务触达的,转化只记在首个触达任务上;收益只计销售单,
<br
/>
不看退货单和换货单;金额是应付还是实付看ERP传入的值。数据更新频率:1天1次
</p>
</div>
<div
slot=
"reference"
role=
"tips"
class=
"tips flex flex-align-center"
>
<i
class=
"el-icon-warning-outline font-14 color-2f54eb"
></i>
<div
class=
"el-alert__content"
>
查看指标说明
</div>
</div>
</el-popover>
</div>
<div
class=
"table-condition-search m-t-20"
>
<el-select
class=
"w-103"
v-model=
"pageParams.taskStatus"
slot=
"prepend"
placeholder=
"所有完成情况"
@
change=
"reFetch"
>
...
...
@@ -32,7 +47,7 @@
</el-select>
</div>
<div
class=
"m-t-20"
>
<el-table
class=
"select-table"
ref=
"multipleTable"
:data=
"tableData"
tooltip-effect=
"dark"
:style=
"
{ width: '100%', minHeight: tableH }">
<el-table
v-loading=
"loading"
class=
"select-table"
ref=
"multipleTable"
:data=
"tableData"
tooltip-effect=
"dark"
:style=
"
{ width: '100%', minHeight: tableH }">
<el-table-column
label=
"任务标题"
show-overflow-tooltip
width=
"87"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
taskTitle
||
'--'
}}
</
template
>
</el-table-column>
...
...
@@ -92,7 +107,7 @@
<dm-pagination
background
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page=
"pageNum"
:page-sizes=
"[20, 40, 60, 80]"
:page-size=
"pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"total"
>
</dm-pagination>
</div>
</div>
<salesleads-taskinfo
:item=
"confirmDetail"
v-if=
"confirmDetailShow"
></salesleads-taskinfo>
<salesleads-taskinfo
:item=
"confirmDetail"
v-if=
"confirmDetailShow"
@
close=
"close"
></salesleads-taskinfo>
</div>
</div>
</div>
...
...
@@ -114,6 +129,7 @@ export default {
return
{
headDefault
,
bgHeight
:
window
.
screen
.
availHeight
-
298
+
'px'
,
loading
:
false
,
// 面包屑参数
navpath
:
[
{
...
...
@@ -246,8 +262,39 @@ export default {
});
});
},
showDetail
()
{
this
.
confirmDetailShow
=
true
;
showDetail
(
item
)
{
console
.
log
(
item
);
const
that
=
this
;
that
.
loading
=
true
;
const
para
=
{
enterpriseId
:
'ff8080815dacd3a2015dacd3ef5c0000'
,
taskId
:
'b72417e8bb89481bb841c1f02e47602b'
};
getRequest
(
'/haoban-task-manage-web/market/clue/web/task-finish-info'
,
para
)
.
then
(
res
=>
{
let
resData
=
res
.
data
;
if
(
resData
.
errorCode
==
1
&&
resData
.
result
)
{
that
.
confirmDetail
=
{
...
resData
.
result
};
if
(
resData
.
result
.
remarkImgUrl
)
{
that
.
confirmDetail
.
remarkImgUrl
=
resData
.
result
.
remarkImgUrl
.
split
(
','
);
}
this
.
confirmDetailShow
=
true
;
}
else
{
errMsg
.
errorMsg
(
resData
);
}
that
.
loading
=
false
;
})
.
catch
(
function
(
error
)
{
that
.
loading
=
false
;
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
});
});
},
close
()
{
this
.
confirmDetailShow
=
false
;
this
.
confirmDetail
=
{};
}
},
watch
:
{},
...
...
@@ -255,6 +302,11 @@ export default {
const
that
=
this
;
that
.
getFilterOpts
();
that
.
getTableList
();
if
(
that
.
$route
.
query
.
tab
)
{
that
.
$emit
(
'showTab'
,
2
);
}
else
{
that
.
$emit
(
'showTab'
,
1
);
}
document
.
documentElement
.
style
.
backgroundColor
=
'#f0f2f5'
;
},
destroyed
()
{
...
...
src/views/salesleads/storeList.vue
View file @
140ae901
...
...
@@ -21,12 +21,25 @@
<span
class=
"el-alert__title color-303133 font-13"
>
仅展示近一年数据,数据截取时间:2020-12-31至2021-12-31
</span>
</div>
</div>
<div
role=
"tips"
class=
"tips flex flex-align-center"
>
<i
class=
"el-icon-warning-outline font-14 color-2f54eb"
></i>
<el-popover
placement=
"bottom-start"
title=
"标题"
width=
"200"
trigger=
"click"
content=
"这是一段内容,这是一段内容,这是一段内容,这是一段内容。"
>
<div
slot=
"reference"
class=
"el-alert__content"
>
查看指标说明
</div>
</el-popover>
</div>
<el-popover
placement=
"bottom-start"
width=
"550"
trigger=
"click"
popper-class=
"salesleads-popover"
>
<div
class=
"tips-content"
>
<p>
展示所选期间内的导购线索,以线索为主体,不以时间为主体。
</p>
<p
class=
"temp"
>
如 所选时间为 20210401~20210403,则显示期间相关的导购线索数据。
</p>
<p
class=
"m-b-14"
>
导购线索:计划中触达到门店导购端的都归入导购线索,包括话务、企微任务。
</p>
<p
class=
"m-l--6"
>
【 任务完成率 】:
</p>
<p
class=
"m-b-10"
>
导购任务完成数 / 任务总数,任务完成数不含放弃数。
</p>
<p
class=
"m-l--6"
>
【 触达转化收益 】:
</p>
<p>
通过导购线索触达,且触达的会员在触达效益计算有效期内前来消费的人数。
<br
/>
多个导购线索任务触达的,转化只记在首个触达任务上;收益只计销售单,
<br
/>
不看退货单和换货单;金额是应付还是实付看ERP传入的值。数据更新频率:1天1次
</p>
</div>
<div
slot=
"reference"
role=
"tips"
class=
"tips flex flex-align-center"
>
<i
class=
"el-icon-warning-outline font-14 color-2f54eb"
></i>
<div
class=
"el-alert__content"
>
查看指标说明
</div>
</div>
</el-popover>
</div>
<div
class=
"table-condition-search m-t-20"
>
<el-input
placeholder=
"请输入门店名称"
prefix-icon=
"el-icon-search"
v-model=
"pageParams.storeName"
class=
"w-260"
@
change=
"reFetch"
clearable
@
clear=
"clearInput"
>
</el-input>
...
...
@@ -193,13 +206,22 @@ export default {
});
},
showDetail
(
item
)
{
this
.
$router
.
push
(
`storeDetail/
${
item
.
storeId
}
`
);
if
(
this
.
$route
.
query
.
gicTaskId
)
{
this
.
$router
.
push
(
`storeDetail/
${
item
.
storeId
}
?tab=2`
);
}
else
{
this
.
$router
.
push
(
`storeDetail/
${
item
.
storeId
}
`
);
}
}
},
watch
:
{},
mounted
()
{
//
const that = this;
const
that
=
this
;
// that.getTableList();
if
(
this
.
$route
.
query
.
gicTaskId
)
{
that
.
$emit
(
'showTab'
,
2
);
}
else
{
that
.
$emit
(
'showTab'
,
1
);
}
document
.
documentElement
.
style
.
backgroundColor
=
'#f0f2f5'
;
},
destroyed
()
{
...
...
src/views/salesleads/taskDetail.vue
deleted
100644 → 0
View file @
2aaae491
This diff is collapsed.
Click to expand it.
src/views/salesleads/taskList.vue
View file @
140ae901
...
...
@@ -21,10 +21,25 @@
<span
class=
"el-alert__title color-303133 font-13"
>
仅展示近一年数据,数据截取时间:2020-12-31至2021-12-31
</span>
</div>
</div>
<div
role=
"tips"
class=
"tips flex flex-align-center"
>
<i
class=
"el-icon-warning-outline font-14 color-2f54eb"
></i>
<div
class=
"el-alert__content"
>
查看指标说明
</div>
</div>
<el-popover
placement=
"bottom-start"
width=
"550"
trigger=
"click"
popper-class=
"salesleads-popover"
>
<div
class=
"tips-content"
>
<p>
展示所选期间内的导购线索,以线索为主体,不以时间为主体。
</p>
<p
class=
"temp"
>
如 所选时间为 20210401~20210403,则显示期间相关的导购线索数据。
</p>
<p
class=
"m-b-14"
>
导购线索:计划中触达到门店导购端的都归入导购线索,包括话务、企微任务。
</p>
<p
class=
"m-l--6"
>
【 任务完成率 】:
</p>
<p
class=
"m-b-10"
>
导购任务完成数 / 任务总数,任务完成数不含放弃数。
</p>
<p
class=
"m-l--6"
>
【 触达转化收益 】:
</p>
<p>
通过导购线索触达,且触达的会员在触达效益计算有效期内前来消费的人数。
<br
/>
多个导购线索任务触达的,转化只记在首个触达任务上;收益只计销售单,
<br
/>
不看退货单和换货单;金额是应付还是实付看ERP传入的值。数据更新频率:1天1次
</p>
</div>
<div
slot=
"reference"
role=
"tips"
class=
"tips flex flex-align-center"
>
<i
class=
"el-icon-warning-outline font-14 color-2f54eb"
></i>
<div
class=
"el-alert__content"
>
查看指标说明
</div>
</div>
</el-popover>
</div>
<div
class=
"table-condition-search m-t-20"
>
<el-input
placeholder=
"请输入计划名称"
prefix-icon=
"el-icon-search"
v-model=
"pageParams.cluePlanName"
class=
"w-260"
@
change=
"reFetch"
clearable
@
clear=
"clearInput"
>
</el-input>
...
...
@@ -184,13 +199,14 @@ export default {
});
},
showDetail
(
item
)
{
this
.
$router
.
push
(
`
taskDetail/
${
item
.
gicTaskId
}
`
);
this
.
$router
.
push
(
`
storeList?gicTaskId=
${
item
.
gicTaskId
}
`
);
}
},
watch
:
{},
mounted
()
{
//
const that = this;
const
that
=
this
;
// that.getTableList();
that
.
$emit
(
'showTab'
,
2
);
document
.
documentElement
.
style
.
backgroundColor
=
'#f0f2f5'
;
},
destroyed
()
{
...
...
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