Commit 9785fd01 by liuchenxi

update: 触达效果优化

parent e9e50e87
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -6,6 +6,230 @@
"description": "",
"glyphs": [
{
"icon_id": "22270569",
"name": "Icon-yishanchu",
"font_class": "Icon-yishanchu",
"unicode": "e65a",
"unicode_decimal": 58970
},
{
"icon_id": "10704949",
"name": "数据",
"font_class": "shujux",
"unicode": "e658",
"unicode_decimal": 58968
},
{
"icon_id": "8192956",
"name": "小程序",
"font_class": "xiaochengxu3",
"unicode": "e657",
"unicode_decimal": 58967
},
{
"icon_id": "10896036",
"name": "消息中心已失效",
"font_class": "xiaoxizhongxinyishixiao",
"unicode": "e678",
"unicode_decimal": 59000
},
{
"icon_id": "20557410",
"name": "会员卡升级",
"font_class": "huiyuankashengji",
"unicode": "e64e",
"unicode_decimal": 58958
},
{
"icon_id": "12417923",
"name": "商品-一行两个",
"font_class": "shangpin-yihangliangge1",
"unicode": "ea18",
"unicode_decimal": 59928
},
{
"icon_id": "13727026",
"name": "一行多个",
"font_class": "yihangduoge",
"unicode": "ea91",
"unicode_decimal": 60049
},
{
"icon_id": "19162424",
"name": "预览",
"font_class": "yulan",
"unicode": "e8ae",
"unicode_decimal": 59566
},
{
"icon_id": "435984",
"name": "我的积分",
"font_class": "wodejifen",
"unicode": "e7eb",
"unicode_decimal": 59371
},
{
"icon_id": "15887887",
"name": "添加热区",
"font_class": "tianjiarequ",
"unicode": "e651",
"unicode_decimal": 58961
},
{
"icon_id": "18049658",
"name": "指标说明",
"font_class": "zhibiaoshuoming",
"unicode": "eb57",
"unicode_decimal": 60247
},
{
"icon_id": "13894326",
"name": "喇叭",
"font_class": "laba",
"unicode": "e680",
"unicode_decimal": 59008
},
{
"icon_id": "16041446",
"name": "排序",
"font_class": "paixu1",
"unicode": "e64f",
"unicode_decimal": 58959
},
{
"icon_id": "12577879",
"name": "图片",
"font_class": "tupian-copy",
"unicode": "e64c",
"unicode_decimal": 58956
},
{
"icon_id": "17614018",
"name": "绘制热区",
"font_class": "huizhirequ",
"unicode": "e64d",
"unicode_decimal": 58957
},
{
"icon_id": "17675917",
"name": "视频流量",
"font_class": "shipinliuliang",
"unicode": "eb4d",
"unicode_decimal": 60237
},
{
"icon_id": "10501417",
"name": "图标_图片空间",
"font_class": "tubiao_tupiankongjian",
"unicode": "e656",
"unicode_decimal": 58966
},
{
"icon_id": "5722952",
"name": "视频",
"font_class": "video1",
"unicode": "e64b",
"unicode_decimal": 58955
},
{
"icon_id": "12472553",
"name": "开卡",
"font_class": "kaika",
"unicode": "e716",
"unicode_decimal": 59158
},
{
"icon_id": "12987636",
"name": "订单",
"font_class": "dingdan1",
"unicode": "e64a",
"unicode_decimal": 58954
},
{
"icon_id": "12996480",
"name": "会员数量",
"font_class": "huiyuanshuliang",
"unicode": "e6e2",
"unicode_decimal": 59106
},
{
"icon_id": "8922363",
"name": "好友",
"font_class": "haoyou",
"unicode": "e649",
"unicode_decimal": 58953
},
{
"icon_id": "3824532",
"name": "兑换记录",
"font_class": "duihuanjilu",
"unicode": "e661",
"unicode_decimal": 58977
},
{
"icon_id": "3961924",
"name": "兑换码",
"font_class": "duihuanma-",
"unicode": "e646",
"unicode_decimal": 58950
},
{
"icon_id": "16075322",
"name": "会员概览",
"font_class": "huiyuangailan",
"unicode": "eb01",
"unicode_decimal": 60161
},
{
"icon_id": "15683446",
"name": "客户占比",
"font_class": "kehuzhanbi",
"unicode": "eae5",
"unicode_decimal": 60133
},
{
"icon_id": "2430810",
"name": "流失率",
"font_class": "liushishuai",
"unicode": "e645",
"unicode_decimal": 58949
},
{
"icon_id": "8486759",
"name": "结构",
"font_class": "jiegou",
"unicode": "e676",
"unicode_decimal": 58998
},
{
"icon_id": "12361673",
"name": "概率",
"font_class": "gaishuai1",
"unicode": "e68b",
"unicode_decimal": 59019
},
{
"icon_id": "15682687",
"name": "会员新增",
"font_class": "huiyuanxinzeng",
"unicode": "eae3",
"unicode_decimal": 60131
},
{
"icon_id": "15682536",
"name": "会员率",
"font_class": "gaishuai",
"unicode": "eae2",
"unicode_decimal": 60130
},
{
"icon_id": "15682331",
"name": "会员总数",
"font_class": "huiyuanzongshu",
"unicode": "eae1",
"unicode_decimal": 60129
},
{
"icon_id": "8291620",
"name": "领取记录",
"font_class": "tubiaozhizuomoban-",
......@@ -293,6 +517,13 @@
"unicode_decimal": 58972
},
{
"icon_id": "20612141",
"name": "选中",
"font_class": "xuanzhong1-copy",
"unicode": "eb58",
"unicode_decimal": 60248
},
{
"icon_id": "1091359",
"name": "互动传播",
"font_class": "hudongchuanbo",
......
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1623824837087" class="icon" viewBox="0 0 2243 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16708" xmlns:xlink="http://www.w3.org/1999/xlink" width="438.0859375" height="200"><defs><style type="text/css"></style></defs><path d="M159.744 43.885714h1920.24381c66.31619 0 119.856762 54.320762 119.856761 121.027048v605.817905a120.441905 120.441905 0 0 1-119.905523 121.075809H279.649524L39.887238 1013.369905V165.205333C39.887238 98.206476 93.42781 43.885714 159.744 43.885714z" fill="#F5222D" p-id="16709"></path><path d="M456.996571 371.370667h42.032762v67.388952h291.888762V312.124952H438.857143v-36.425142h392.825905v229.668571h-40.96v-30.183619h-291.693715v143.457524c0 30.183619 14.09219 45.251048 42.422857 45.251047h240.737524c27.940571 0 44.81219-10.093714 50.761143-30.573714 5.753905-20.041143 10.24-46.762667 13.214476-80.359619 12.629333 5.607619 26.672762 10.532571 42.032762 14.872381a693.394286 693.394286 0 0 1-14.677333 81.871238c-9.849905 37.059048-37.156571 55.588571-81.92 55.588571h-259.900952c-49.737143 0-74.703238-25.84381-74.703239-77.775238V371.370667zM1096.899048 263.801905h112.249904V452.998095h36.08381v31.451429h-36.08381v188.269714c0 30.817524-13.458286 46.32381-40.131047 46.32381-11.702857 0-25.6-0.438857-41.398857-1.462858a231.424 231.424 0 0 0-5.753905-34.084571c13.458286 2.389333 25.84381 3.657143 37.546667 3.900952 11.946667 0.438857 18.139429-7.314286 18.139428-22.625523V484.449524h-48.859428v50.858666c0 81.871238-14.921143 146.041905-44.812191 192.609524a227.181714 227.181714 0 0 0-24.33219-27.599238c24.966095-38.375619 37.546667-93.525333 37.546666-165.010286V484.449524h-40.521143v174.518857c0 32.085333-13.458286 48.274286-40.521142 48.274286-10.727619 0-22.869333-0.487619-36.08381-1.560381a306.224762 306.224762 0 0 0-5.753905-34.03581c14.726095 2.389333 25.84381 3.462095 33.694476 3.462095 11.312762 0 17.066667-7.119238 17.066667-21.113904V484.449524h-48.225524v56.661333c0 75.824762-15.36 137.898667-46.323809 185.685333a227.181714 227.181714 0 0 0-24.283429-27.550476c26.038857-41.155048 39.009524-96.548571 39.009524-166.521904v-48.274286h-39.009524V452.998095h39.009524V264.728381h111.85981V452.998095h40.521142V263.801905h-0.633904zM1330.517333 243.809524h35.644953v422.66819c0 35.59619-15.36 53.248-46.32381 53.248-18.529524 0-40.082286-0.487619-64.853333-1.121524a309.150476 309.150476 0 0 0-6.826667-40.911238c23.503238 2.389333 42.032762 3.657143 56.124953 3.900953 17.554286 0.390095 26.477714-8.630857 26.477714-26.721524V243.809524h-0.24381z m-40.96 366.445714h-34.133333v-329.630476h34.133333v329.630476z m-112.201143-315.830857h-48.859428V452.998095h48.859428V294.424381z m-152.771047 1.072762h-48.274286v157.696h48.274286V295.497143z m556.470857 213.284571h122.88V446.756571h-91.331048v-23.698285c-11.702857 9.898667-23.649524 19.358476-36.083809 28.623238a292.717714 292.717714 0 0 0-23.893333-33.596953c68.754286-46.957714 120.393143-102.107429 155.16038-165.64419h40.131048l-6.436571 13.750857c34.620952 59.050667 86.211048 105.179429 155.111619 137.898667a1589.638095 1589.638095 0 0 0-21.504 40.472381c-65.731048-38.960762-116.736-87.235048-153.209905-144.335238a551.887238 551.887238 0 0 1-97.52381 111.859809h200.118858v34.425905h-83.382858v62.073905h131.169524v34.474666h-131.169524v122.148572c0 37.692952-17.554286 56.661333-52.711619 56.661333-13.653333 0-31.792762-0.24381-54.613333-0.487619a1029.802667 1029.802667 0 0 0-6.826667-40.911238c17.456762 2.584381 34.328381 3.900952 50.322286 3.900952 17.944381 0 26.86781-9.264762 26.86781-27.599238v-113.712762h-122.88v-34.279619h-0.195048z m-11.751619 11.849143c9.167238 62.073905-5.753905 97.182476-44.373333 104.935619-11.946667 2.584381-27.940571 2.779429-47.786667 0.438857a389.851429 389.851429 0 0 0-10.24-41.398857c15.36 3.900952 29.842286 5.168762 43.495619 3.900953 22.186667-2.389333 29.257143-24.576 21.552762-66.998858-3.85219-23.064381-18.139429-50.614857-42.422857-82.748952 11.897905-41.984 24.917333-87.430095 39.009524-135.899429h-61.878858v426.130286h-36.083809V268.385524h137.654857v34.474666c-15.60381 49.298286-29.45219 92.40381-41.398857 129.706667 24.527238 33.987048 38.863238 63.536762 42.471619 88.064z m201.386667 73.923048l27.306666-24.137143a2474.910476 2474.910476 0 0 1 90.307048 94.98819l-30.086095 27.794286a3299.815619 3299.815619 0 0 0-87.478857-98.645333z m-148.72381-28.038095l32.280381 17.700571c-23.064381 43.056762-47.786667 82.261333-74.264381 117.808762-8.533333-6.436571-18.773333-14.189714-30.72-22.625524 26.672762-31.695238 50.761143-69.144381 72.752762-112.883809z" fill="#FFFFFF" p-id="16710"></path></svg>
\ No newline at end of file
......@@ -177,7 +177,7 @@ export default {
formatter(row) {
let openFlag = JSON.parse(row.analyseJson);
if (!openFlag) openFlag = {};
return openFlag.open_flag == 0 || (!row.ecmMemberNum && row.ecmMemberNum != 0) ? '--' : row.ecmMemberNum;
return openFlag.open_flag == 0 || (!row.ecmMemberNum && row.ecmMemberNum != 0) ? '0' : row.ecmMemberNum;
}
},
{
......@@ -188,7 +188,7 @@ export default {
formatter(row) {
let openFlag = JSON.parse(row.analyseJson);
if (!openFlag) openFlag = {};
return openFlag.open_flag == 0 || (!row.ecmSuccessNum && row.ecmSuccessNum != 0) ? '--' : row.ecmSuccessNum;
return openFlag.open_flag == 0 || (!row.ecmSuccessNum && row.ecmSuccessNum != 0) ? '0' : row.ecmSuccessNum;
}
},
{
......@@ -199,7 +199,7 @@ export default {
formatter(row) {
let openFlag = JSON.parse(row.analyseJson);
if (!openFlag) openFlag = {};
return openFlag.open_flag == 0 || (!row.ecmTranNum && row.ecmTranNum != 0) ? '--' : row.ecmTranNum;
return openFlag.open_flag == 0 || (!row.ecmTranNum && row.ecmTranNum != 0) ? '0' : row.ecmTranNum;
}
},
{
......@@ -210,7 +210,7 @@ export default {
formatter(row) {
let openFlag = JSON.parse(row.analyseJson);
if (!openFlag) openFlag = {};
return openFlag.open_flag == 0 || (!row.ecmTranIncome && row.ecmTranIncome != 0) ? '--' : row.ecmTranIncome.toFixed(2);
return openFlag.open_flag == 0 || (!row.ecmTranIncome && row.ecmTranIncome != 0) ? '0.00' : row.ecmTranIncome.toFixed(2);
}
},
{
......@@ -221,7 +221,7 @@ export default {
formatter(row) {
let openFlag = JSON.parse(row.analyseJson);
if (!openFlag) openFlag = {};
return openFlag.open_flag == 0 || (!row.cardSalesAmt && row.cardSalesAmt != 0) ? '--' : row.cardSalesAmt.toFixed(2);
return openFlag.open_flag == 0 || (!row.cardSalesAmt && row.cardSalesAmt != 0) ? '0.00' : row.cardSalesAmt.toFixed(2);
}
}
],
......
......@@ -29,9 +29,10 @@
<div class="tab2">
<template v-if="type == 1">
<span class="tab2-item" v-for="item in listTabsIndex == 1 ? touchTabs : taskTabs" :key="item.id" :class="{ active2: listTabsIndex == 1 ? item.id == tabsIndex : item.id == taskTabIndex }" @click="changeTabs(item.id)">{{ item.name }}</span>
<span class="tab2-tip" v-if="listTabsIndex == 1">* 只展示有数据的触达方式</span>
<span class="tab2-tip" v-if="listTabsIndex == 1">* 只展示有数据的触达方式(默认按触达转化率倒序排序)</span>
<span class="tab2-tip" v-else>* 只展示有数据的任务</span>
</template>
<span class="tab2-tip" v-else>默认按转化人数倒序排序</span>
</div>
<el-button type="primary" class="btn" @click="cdkeyExport"><i class="iconfont icon-icon_yunxiazai" style="marginRight:6px;fontSize:14px"></i>导出</el-button>
</div>
......@@ -118,8 +119,10 @@ export default {
this.getTabData();
if (this.type == 2) {
name = '后台线索';
this.touchOrderBy = 'convMbrNum desc';
} else {
name = '导购线索';
this.touchOrderBy = 'reachConvMbrRate desc';
}
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }, { name: `${planName} - 触达效果`, path: `/ecm/touch/${planId}?name=${planName}` }, { name }]); // eslint-disable-line
},
......@@ -174,7 +177,7 @@ export default {
if (this.listTabsIndex != 0) {
this.tableHeader = [
{
label: '排',
label: '排',
prop: 'index',
align: 'left',
fixed: 'left',
......@@ -222,7 +225,7 @@ export default {
if (this.type == 1 && this.listTabsIndex == 0) {
this.tableHeader = [
{
label: '排',
label: '排',
prop: 'index',
align: 'left',
fixed: 'left',
......@@ -296,7 +299,7 @@ export default {
let resetArr = [];
this.tableExtra.forEach(item => {
if (item.groupName == '区域合计') resetArr[0] = item;
else if (item.groupName == '计划整体' && this.level < 2) resetArr[1] = item;
// else if (item.groupName == '计划整体' && this.level < 2) resetArr[1] = item;
});
res.result.result && (this.tableList = resetArr.concat(res.result.result));
this.total = res.result.totalCount;
......@@ -574,7 +577,6 @@ export default {
justify-content: space-between;
padding: 20px;
.tab2 {
cursor: pointer;
display: flex;
.tab2-item {
display: inline-block;
......@@ -589,6 +591,7 @@ export default {
color: #606266;
line-height: 32px;
text-align: center;
cursor: pointer;
}
.tab2-tip {
line-height: 32px;
......
......@@ -40,11 +40,12 @@
<template slot-scope="scope">
<div class="name" v-if="scope.row.cardName">
<div class="top">
<span v-if="scope.row.cardName.length <= 15">{{ scope.row.cardName }}</span>
<span v-if="scope.row.cardName.length <= 15" :class="[scope.row.status == 0 ? 'del_card' : 'pointer']" @click="toCardDetail(scope.row)">{{ scope.row.cardName }}</span>
<el-tooltip open-delay="100" placement="top-start" :content="scope.row.cardName" v-else>
<span class="card_name">{{ scope.row.cardName }}</span>
<span :class="['card_name', scope.row.status == 0 ? 'del_card' : 'pointer']" @click="toCardDetail(scope.row)">{{ scope.row.cardName }}</span>
</el-tooltip>
<span class="type">{{ scope.row.cardType == 0 ? '抵金券' : scope.row.cardType == 1 ? '折扣券' : scope.row.cardType == 2 ? '兑换券' : '--' }}</span>
<span class="type" v-if="scope.row.status != 0">{{ scope.row.cardType == 0 ? '抵金券' : scope.row.cardType == 1 ? '折扣券' : scope.row.cardType == 2 ? '兑换券' : '--' }}</span>
<img :src="require('@/assets/img/Icon-yishanchu.svg')" alt="" v-else style="width: 46px;height: 21px;margin-left: 6px" />
</div>
<p>{{ scope.row.subTitle }}</p>
</div>
......@@ -93,6 +94,12 @@ export default {
]
};
},
methods: {
toCardDetail(row) {
if (row.status == 0) return;
window.open(window.location.origin + `/marketing/#/card/edit/${row.cardId}`);
}
},
computed: {
formatterNum() {
return val => (!val ? '0' : parseInt(val).toLocaleString());
......@@ -205,6 +212,13 @@ export default {
overflow: hidden;
max-width: 210px;
}
.del_card {
cursor: normal;
opacity: 0.56;
}
.pointer {
cursor: pointer;
}
}
p {
font-size: 12px;
......
......@@ -50,7 +50,7 @@
</li>
</ul>
</el-drawer>
<el-drawer title="【导购线索】说明" :visible.sync="drawer" :direction="direction" custom-class="touch_drawer h850" v-else-if="contentTitle == '导购线索'">
<el-drawer title="【导购线索】说明" :visible.sync="drawer" :direction="direction" custom-class="touch_drawer h860" v-else-if="contentTitle == '导购线索'">
<ul class="content">
<li>数据更新频率:1天1次</li>
<!-- <li>导购线索:计划中触达到门店导购端的都归入导购线索,包括话务、企微任务。</li>
......@@ -93,7 +93,7 @@
<p>
任务完成情况:不同任务的完成情况,任务完成数不含放弃。<br />
触达效果:导购线索中不同任务完成方式的触达转化情况。话务任务暂不区分私人电话和企业电话,所以完成方式为 话务。<br />
注意:区域详情合计按任务门店统计汇总,上方计划整体数据以企业粒度单独计算,数据不完全一致。
注意:区域详情合计按任务门店统计汇总,同一用户在不同门店下消费,汇总不去重;上方计划整体数据以企业粒度单独计算,数据不完全一致。
</p>
</div>
</li>
......@@ -139,8 +139,8 @@
<p>4.区域详情</p>
<p>区域粒度的『触达人数』和『触达率』按服务门店统计,其余转化信息按消费门店统计。</p>
<p>无归属门店:触达的人群无服务门店,归入无归属;</p>
<p>计划整体:按计划整体去重,同一用户被触达多次,转化多次,只记1人;</p>
<p>区域合计:按所选范围下的门店汇总,同一用户在不同门店下消费,汇总不去重</p>
<!-- <p>计划整体:按计划整体去重,同一用户被触达多次,转化多次,只记1人;</p> -->
<p>区域合计:按所选范围下的门店汇总,同一用户在不同门店下消费,汇总不去重;上方展示的是计划整体数据,按计划整体去重,同一用户被触达多次,转化多次,只记1人,两者数据会有差异。</p>
</div>
</li>
</ul>
......@@ -149,8 +149,8 @@
<ul class="content">
<li>更新频率:营销人次实时统计,其余指标1天更新1次;</li>
<li>
①【营销人次】:本智能营销计划预计营销的人次<br />
②【计划触达人数】:本计划计划触达的人数。一些预计营销的人中因为一些系统特殊情况导致触发失败的,不会计入在内;重复营销的,只记1人;<br />
①【营销人次】:本次计划各次营销的人数汇总。如计划执行两次,第一次选中10000人使用了2个卡券1个短信,第二次选中相同的10000人使用了群发,整体营销人次为20000<br />
②【计划触达人数】:本计划计划触达的人数。计划中同1人被多次营销的,只记1人;<br />
③【触达人数】:通过计划中各种营销方式触达到的会员人数;<br />
④【转化人数】:触达的人中,在触达收益有效期内前来消费的人数;<br />
⑤【线索转化收益】:转化人数带来的收益,只计销售单,不看退货单和换货单;金额是应付还是实付看ERP传入的值;<br />
......@@ -183,8 +183,8 @@ export default {
</script>
<style lang="scss">
.h850 {
height: 850px !important;
.h860 {
height: 860px !important;
}
.h790 {
height: 790px !important;
......
......@@ -21,11 +21,10 @@
</template>
<!--非线索页列表-->
<div class="right" :class="[isCluePage ? 'cluePage' : '']" ref="right">
<div v-if="!isCluePage">
<!-- <div v-if="!isCluePage">
<p>计划人次</p>
<!-- <p>{{ item.planMbrTimes ? item.planMbrTimes.toLocaleString() : 0 }}</p> -->
<p>{{ formatterNum(item.planMbrTimes) }}</p>
</div>
</div> -->
<div>
<p>{{ isCluePage ? '计划触达人数' : '计划人数' }}</p>
<p>{{ formatterNum(item.planMbrNum) }}</p>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -6,6 +6,55 @@
"description": "",
"glyphs": [
{
"icon_id": "22270569",
"name": "Icon-yishanchu",
"font_class": "Icon-yishanchu",
"unicode": "e65a",
"unicode_decimal": 58970
},
{
"icon_id": "10704949",
"name": "数据",
"font_class": "shujux",
"unicode": "e658",
"unicode_decimal": 58968
},
{
"icon_id": "8192956",
"name": "小程序",
"font_class": "xiaochengxu3",
"unicode": "e657",
"unicode_decimal": 58967
},
{
"icon_id": "10896036",
"name": "消息中心已失效",
"font_class": "xiaoxizhongxinyishixiao",
"unicode": "e678",
"unicode_decimal": 59000
},
{
"icon_id": "20557410",
"name": "会员卡升级",
"font_class": "huiyuankashengji",
"unicode": "e64e",
"unicode_decimal": 58958
},
{
"icon_id": "12417923",
"name": "商品-一行两个",
"font_class": "shangpin-yihangliangge1",
"unicode": "ea18",
"unicode_decimal": 59928
},
{
"icon_id": "13727026",
"name": "一行多个",
"font_class": "yihangduoge",
"unicode": "ea91",
"unicode_decimal": 60049
},
{
"icon_id": "19162424",
"name": "预览",
"font_class": "yulan",
......@@ -468,6 +517,13 @@
"unicode_decimal": 58972
},
{
"icon_id": "20612141",
"name": "选中",
"font_class": "xuanzhong1-copy",
"unicode": "eb58",
"unicode_decimal": 60248
},
{
"icon_id": "1091359",
"name": "互动传播",
"font_class": "hudongchuanbo",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment