Commit f3e1294f by chenxin

fix: ecm 增加立即发送

parent 32c9fc8c
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/fonts/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link rel=stylesheet href=//web-1251519181.file.myqcloud.com/components/element.2.12.0.css><link href=/marketing/static/css/main.bc65cf9f9ccba23ef52f777139ff3454.css rel=stylesheet></head><body><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.5.2/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/components/element.2.12.0.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.36.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.04.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.10.js></script><script src=//web-1251519181.file.myqcloud.com/components/store.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/member-group.2.2.16.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.18.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.42.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.20.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.2.10.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script type=text/javascript src=/marketing/static/js/manifest.e643e1b1a3ed6a6f3140.js></script><script type=text/javascript src=/marketing/static/js/vendor.cbb380c2053ab598e892.js></script><script type=text/javascript src=/marketing/static/js/main.5ea46072e6bbe4a41500.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/fonts/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link rel=stylesheet href=//web-1251519181.file.myqcloud.com/components/element.2.12.0.css><link href=/marketing/static/css/main.3339188f7d44b70b6afa241856edd9d0.css rel=stylesheet></head><body><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.5.2/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/components/element.2.12.0.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.36.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.04.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.10.js></script><script src=//web-1251519181.file.myqcloud.com/components/store.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/member-group.2.2.16.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.18.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.42.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.20.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.2.10.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script type=text/javascript src=/marketing/static/js/manifest.73103b4d44725e9b897a.js></script><script type=text/javascript src=/marketing/static/js/vendor.cbb380c2053ab598e892.js></script><script type=text/javascript src=/marketing/static/js/main.b634f177ab6bc3146025.js></script></body></html>
\ No newline at end of file
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(t,a,c){for(var d,i,u,f=0,s=[];f<t.length;f++)i=t[f],n[i]&&s.push(n[i][0]),n[i]=0;for(d in a)Object.prototype.hasOwnProperty.call(a,d)&&(e[d]=a[d]);for(r&&r(t,a,c);s.length;)s.shift()();if(c)for(f=0;f<c.length;f++)u=o(o.s=c[f]);return u};var t={},n={13:0};function o(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.e=function(e){var r=n[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var t=new Promise(function(t,o){r=n[e]=[t,o]});r[2]=t;var a=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,o.nc&&c.setAttribute("nonce",o.nc),c.src=o.p+"static/js/"+({0:"card",1:"game",2:"wechat",3:"message",4:"ewash",5:"ecm",6:"evaluation",7:"activity",8:"recharge",9:"msg",10:"calllog"}[e]||e)+"."+{0:"964aa9c226a60ff1065a",1:"d89d10dabf2d00de0d52",2:"306ee775683f06877d11",3:"933ec7d0c60e1ac1ed98",4:"17d5d8e8e5023c0ef4dd",5:"762a563d44df26d14f15",6:"cc67d69fa470a328de38",7:"eeb506934d60615dcdbd",8:"02630d56b70a8187a0cf",9:"396c5bb8123ba2181dab",10:"012adc27d4425d824c4b"}[e]+".js";var d=setTimeout(i,12e4);function i(){c.onerror=c.onload=null,clearTimeout(d);var r=n[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return c.onerror=c.onload=i,a.appendChild(c),t},o.m=e,o.c=t,o.d=function(e,r,t){o.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:t})},o.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(r,"a",r),r},o.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},o.p="/marketing/",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(t,c,a){for(var d,i,f,u=0,s=[];u<t.length;u++)i=t[u],n[i]&&s.push(n[i][0]),n[i]=0;for(d in c)Object.prototype.hasOwnProperty.call(c,d)&&(e[d]=c[d]);for(r&&r(t,c,a);s.length;)s.shift()();if(a)for(u=0;u<a.length;u++)f=o(o.s=a[u]);return f};var t={},n={13:0};function o(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.e=function(e){var r=n[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var t=new Promise(function(t,o){r=n[e]=[t,o]});r[2]=t;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+({0:"card",1:"game",2:"wechat",3:"message",4:"ewash",5:"evaluation",6:"ecm",7:"activity",8:"recharge",9:"msg",10:"calllog"}[e]||e)+"."+{0:"8ebf37063b64c65f4bbc",1:"d89d10dabf2d00de0d52",2:"306ee775683f06877d11",3:"933ec7d0c60e1ac1ed98",4:"17d5d8e8e5023c0ef4dd",5:"0c17680da1cc0f794988",6:"15df3bf42a1fff3a1333",7:"eeb506934d60615dcdbd",8:"02630d56b70a8187a0cf",9:"396c5bb8123ba2181dab",10:"012adc27d4425d824c4b"}[e]+".js";var d=setTimeout(i,12e4);function i(){a.onerror=a.onload=null,clearTimeout(d);var r=n[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return a.onerror=a.onload=i,c.appendChild(a),t},o.m=e,o.c=t,o.d=function(e,r,t){o.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:t})},o.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(r,"a",r),r},o.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},o.p="/marketing/",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
......@@ -40,11 +40,21 @@ export default {
}
},
{
path: 'oncelist/:id',
name: '立即发送记录',
component: () => import(/* webpackChunkName: "ecm" */ '../../views/ecm/current-list.vue'),
meta: {
path: '/ecm/list',
type: 'once'
}
},
{
path: 'currentlist/:id',
name: '实时发送记录',
component: () => import(/* webpackChunkName: "ecm" */ '../../views/ecm/current-list.vue'),
meta: {
path: '/ecm/list'
path: '/ecm/list',
type: 'currrent'
}
}
]
......
......@@ -107,7 +107,7 @@ export default {
this.$store.commit(
'mutations_layoutTips',
`<div class="layout--tips">
<i class="el-icon-info"></i>当天卡券统计报表数据在次日更新
<i class="el-icon-info"></i>卡券统计报表数据每隔3小时更新一次
</div>`
);
},
......
......@@ -22,7 +22,7 @@
<h5>{{ item.saleAmount }}</h5>
<p>销售额</p>
</div>
<el-tooltip class="item" effect="dark" content="当日的领取数量\使用数量\核销率\销售额统计数据在次日凌晨更新" :open-delay="300">
<el-tooltip class="item" effect="dark" content="卡券的领取数量\使用数量\核销率\销售额统计数据每隔3小时更新一次" :open-delay="300">
<i style="position:absolute;right:10px;top:10px;cursor:pointer;color:#c0c4cc;font-size:18px;" class="el-icon-question"></i>
</el-tooltip>
</div>
......
......@@ -158,7 +158,7 @@ export default {
},
created() {
this.ecmCurrentSendInfos();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }, { name: this.$route.query.name + ' - 实时发送记录', path: '' }]); // eslint-disable-line
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }, { name: this.$route.query.name + ` - ${ this.$route.meta.type == 'current' ? '实时' : '立即' }发送记录`, path: '' }]); // eslint-disable-line
},
beforeDestroy() {
this.$store.commit('mutations_layoutTips', '');
......
......@@ -9,16 +9,17 @@
</el-form-item>
<el-form-item label="时效">
<el-radio v-model="form.effectType" :label="0" :disabled="!isAdd">实时</el-radio>
<el-radio v-model="form.effectType" :label="2" :disabled="!isAdd">立即发送</el-radio>
<el-radio class="mr10" v-model="form.effectType" :label="1" :disabled="!isAdd">每天</el-radio>
<el-select style="width:262px;" :disabled="isEdit" v-model="form.effectTime" v-if="form.effectType" placeholder="请选择时间">
<el-option v-for="(v, i) in dayOptions" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
<div class="layout--tips mt10" v-if="form.effectType">
<div class="layout--tips mt10" v-if="form.effectType == 1 || form.effectType == 2">
<!-- <i class="el-icon-info inline-block"></i> -->
<div class="layout--tips__content">
<p><span class="dm-status--primary pl10"></span>每天发送<b class="bold">图文、文本、图片</b>将使用微信群发接口,占用每个用户每月4条的群发次数</p>
<p><span class="dm-status--primary pl10"></span>每天发送<b class="bold">小程序</b>使用客服接口,但客服接口需要用户在24小时之内与微信公众号互动才能发送成功,可能导致成功率过低,不占用每个用户每月4条的群发次数。</p>
<p><span class="dm-status--primary pl10"></span>每天发送<b class="bold">短信、话务</b>均不占用群发次数,卡券详见卡券通知方式配置不同投放方式说明。</p>
<p><span class="dm-status--primary pl10"></span>{{ form.effectType == 1 ? '每天发送' : '立即发送' }}<b class="bold">图文、文本、图片</b>将使用微信群发接口,占用每个用户每月4条的群发次数</p>
<p><span class="dm-status--primary pl10"></span>{{ form.effectType == 1 ? '每天发送' : '立即发送' }}<b class="bold">小程序</b>使用客服接口,但客服接口需要用户在24小时之内与微信公众号互动才能发送成功,可能导致成功率过低,不占用每个用户每月4条的群发次数。</p>
<p><span class="dm-status--primary pl10"></span>{{ form.effectType == 1 ? '每天发送' : '立即发送' }}<b class="bold">短信、话务</b>均不占用群发次数,卡券详见卡券通知方式配置不同投放方式说明。</p>
</div>
</div>
<div class="layout--tips" v-else>
......@@ -26,12 +27,12 @@
实时发送调用微信客服接口,不占用每个用户每月4条的群发次数
</div>
</el-form-item>
<el-form-item label="触发行为" class="width50" v-if="!form.effectType">
<el-form-item label="触发行为" class="width50" v-if="form.effectType == 0">
<el-select class="w400" :disabled="isEdit" v-model="form.effectAction" placeholder="选择发送状态" @change="effectActionChange">
<el-option v-for="(v, i) in effectActionOptions" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="常用场景" class="width50" v-if="form.effectType">
<el-form-item label="常用场景" class="width50" v-if="form.effectType == 1">
<div class="fz12 gray">选填,勾选后生效</div>
<el-checkbox-group v-model="checked" :max="1">
<div class="pb10">
......@@ -54,7 +55,7 @@
<activity-select style="margin-left:42px" :actId.sync="form.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
</section>
<!-- 消费触发配置 -->
<section class="dm-form__wrap" v-if="!form.effectType && form.effectAction === 'consume'">
<section class="dm-form__wrap" v-if="form.effectType == 1 && form.effectAction === 'consume'">
<h3 class="dm-title__label">
消费触发配置
<i class="dm-title__label--icon iconfont icon-xinxixianshi"></i>
......@@ -121,7 +122,7 @@
</el-form-item>
</section>
<!-- 会员卡升/降级触发设置 -->
<section class="dm-form__wrap" v-if="!form.effectType && (form.effectAction === 'degrade' || form.effectAction === 'upgrade')">
<section class="dm-form__wrap" v-if="form.effectType == 0 && (form.effectAction === 'degrade' || form.effectAction === 'upgrade')">
<h3 class="dm-title__label">会员卡{{ form.effectAction === 'degrade' ? '降' : '升' }}级触发设置</h3>
<el-form-item prop="gradeIds" :label="`会员卡${form.effectAction === 'degrade' ? '降' : '升'}级至`">
<el-select :disabled="isEdit" v-model="form.gradeIds" multiple placeholder="请选择" class="w300">
......@@ -130,7 +131,7 @@
</el-form-item>
</section>
<!-- 营销次数配置 -->
<section class="dm-form__wrap" v-if="!form.effectType && (form.effectAction === 'consume' || form.effectAction === 'upgrade' || form.effectAction === 'degrade')">
<section class="dm-form__wrap" v-if="form.effectType == 0 && (form.effectAction === 'consume' || form.effectAction === 'upgrade' || form.effectAction === 'degrade')">
<h3 class="dm-title__label">
营销次数配置
<i class="dm-title__label--icon iconfont icon-xinxixianshi"></i>
......@@ -145,7 +146,7 @@
</el-form-item>
</section>
<!-- 有效时间 -->
<section class="dm-form__wrap">
<section class="dm-form__wrap" v-if="form.effectType == 0 || form.effectType == 1">
<h3 class="dm-title__label">有效时间</h3>
<el-form-item label="有效时间" prop="endDate" :show-message="showMessage">
<el-radio v-model="form.expireType" :label="0">长期有效</el-radio>
......@@ -179,6 +180,7 @@
<!-- 营销事件组件 -->
<section class="dm-form__wrap">
<h3 class="dm-title__label">营销事件</h3>
<!-- 只有实时才是单图文 -->
<marketing-event ref="marketingEvent" @has-card="hasCard" v-if="ecmPlanId" :singleFlag="form.effectType === 0" :integralMultiple="form.effectAction === 'consume'" :ecmPlanId="ecmPlanId" :isSupportVar="form.effectType === 0" :code="code" :enabledMessageState="enabledMessageState" :cardLimitType="-1"></marketing-event>
</section>
<!-- 只有存在卡券的情况下出现卡券通知方式 -->
......
......@@ -47,7 +47,7 @@ export default {
name: 'ecm',
data() {
return {
effectTypeOption: [{ value: '', label: '所有时效' }, { value: 0, label: '实时' }, { value: 1, label: '定时' }], // eslint-disable-line
effectTypeOption: [{ value: '', label: '所有时效' }, { value: 0, label: '实时' }, { value: 1, label: '定时' }, { value: 2, label: '立即发送' }], // eslint-disable-line
onlineOptions: [{ value: '', label: '所有上线状态' }, { value: 0, label: '待上线' }, { value: 1, label: '已上线' }, { value: 2, label: '已下线' }], // eslint-disable-line
marketingTypeOptions,
listParams: {
......@@ -70,7 +70,13 @@ export default {
width: '160',
align: 'left',
formatter(row) {
return row.effectType ? `<span><i class="el-icon-time fz18 vertical-middle"></i><span class="vertical-middle"> 每天${row.effectTime}:00</span></span>` : '实时';
if (row.effectType == 0) {
return '实时';
} else if (row.effectType == 1) {
return `<span><i class="el-icon-time fz18 vertical-middle"></i><span class="vertical-middle"> 每天${row.effectTime}:00</span></span>`;
} else if (row.effectType == 2) {
return '立即执行';
}
}
},
{ label: '营销方式', prop: 'marketingType', minWidth: '160', align: 'left' },
......@@ -148,7 +154,8 @@ export default {
},
// 记录
toRecord(row) {
this.$router.push({ path: `/ecm/${row.effectType ? 'batchlist' : 'currentlist'}/${row.ecmPlanId}`, query: { name: row.ecmPlanName } });
const prefix = row.effectType == 1 ? 'batchlist' : row.effectType == 2 ? 'oncelist' : 'currentlist';
this.$router.push({ path: `/ecm/${prefix}/${row.ecmPlanId}`, query: { name: row.ecmPlanName } });
},
// 删除
async delData(row) {
......
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