Commit eb053f1a by chenxin

Merge branch 'feature/营销1月迭代' into dev

# Conflicts:
#	dist/index.html
parents a8787e41 7b96377d
<!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.47ce56f2e993ed8ee0cd2b022e34ca3e.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.45.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.19.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.26.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.24.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.65.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.43.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.16.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.20.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script src=//web-1251519181.file.myqcloud.com/components/activity-select.1.0.2.1.js></script><script type=text/javascript src=/marketing/static/js/manifest.fbbf2b9e15d67cdb1993.js></script><script type=text/javascript src=/marketing/static/js/vendor.fef1c3d3b3b586faaee2.js></script><script type=text/javascript src=/marketing/static/js/main.f21fa84ea2fafaf1a2cf.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.9454f077352978e56ceb69809ab04b72.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.45.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.19.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.26.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.24.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.65.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.43.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.16.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.20.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script src=//web-1251519181.file.myqcloud.com/components/activity-select.1.0.2.1.js></script><script type=text/javascript src=/marketing/static/js/manifest.7d6c1a12fd8e970e87eb.js></script><script type=text/javascript src=/marketing/static/js/vendor.fef1c3d3b3b586faaee2.js></script><script type=text/javascript src=/marketing/static/js/main.f21fa84ea2fafaf1a2cf.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(c,a,o){for(var i,f,u,d=0,s=[];d<c.length;d++)f=c[d],n[f]&&s.push(n[f][0]),n[f]=0;for(i in a)Object.prototype.hasOwnProperty.call(a,i)&&(e[i]=a[i]);for(r&&r(c,a,o);s.length;)s.shift()();if(o)for(d=0;d<o.length;d++)u=t(t.s=o[d]);return u};var c={},n={15:0};function t(r){if(c[r])return c[r].exports;var n=c[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}t.e=function(e){var r=n[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var c=new Promise(function(c,t){r=n[e]=[c,t]});r[2]=c;var a=document.getElementsByTagName("head")[0],o=document.createElement("script");o.type="text/javascript",o.charset="utf-8",o.async=!0,o.timeout=12e4,t.nc&&o.setAttribute("nonce",t.nc),o.src=t.p+"static/js/"+({0:"card",1:"game",2:"wechat",3:"message",4:"ewash",5:"scan",6:"ecm",7:"evaluation",8:"activity",9:"cdKey",10:"recharge",11:"msg",12:"calllog"}[e]||e)+"."+{0:"de20800acd80415e47e5",1:"13dab37beda20959629e",2:"2bc295c93adcee55a98f",3:"0378b23ea9e2767987cf",4:"c8a5e5c668cdc258c3c4",5:"ca91348c68e2de246797",6:"d134a25c8c15ec842db8",7:"99e49bc49f2439ac7253",8:"5ddb72b68fcdf6943011",9:"acd1803f49e3f7121560",10:"fd4ef6af3cd790ec9e39",11:"00a6edc9657c9e4c34fa",12:"f1c9fa1ccd0d36ae0602"}[e]+".js";var i=setTimeout(f,12e4);function f(){o.onerror=o.onload=null,clearTimeout(i);var r=n[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return o.onerror=o.onload=f,a.appendChild(o),c},t.m=e,t.c=c,t.d=function(e,r,c){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:c})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="/marketing/",t.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(n,a,o){for(var f,i,u,d=0,s=[];d<n.length;d++)i=n[d],t[i]&&s.push(t[i][0]),t[i]=0;for(f in a)Object.prototype.hasOwnProperty.call(a,f)&&(e[f]=a[f]);for(r&&r(n,a,o);s.length;)s.shift()();if(o)for(d=0;d<o.length;d++)u=c(c.s=o[d]);return u};var n={},t={15:0};function c(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,c),t.l=!0,t.exports}c.e=function(e){var r=t[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var n=new Promise(function(n,c){r=t[e]=[n,c]});r[2]=n;var a=document.getElementsByTagName("head")[0],o=document.createElement("script");o.type="text/javascript",o.charset="utf-8",o.async=!0,o.timeout=12e4,c.nc&&o.setAttribute("nonce",c.nc),o.src=c.p+"static/js/"+({0:"card",1:"game",2:"wechat",3:"message",4:"ewash",5:"scan",6:"ecm",7:"evaluation",8:"activity",9:"cdKey",10:"recharge",11:"msg",12:"calllog"}[e]||e)+"."+{0:"de20800acd80415e47e5",1:"13dab37beda20959629e",2:"2bc295c93adcee55a98f",3:"0378b23ea9e2767987cf",4:"c8a5e5c668cdc258c3c4",5:"ca91348c68e2de246797",6:"acee40f9500ceb7f215e",7:"99e49bc49f2439ac7253",8:"5ddb72b68fcdf6943011",9:"acd1803f49e3f7121560",10:"fd4ef6af3cd790ec9e39",11:"00a6edc9657c9e4c34fa",12:"f1c9fa1ccd0d36ae0602"}[e]+".js";var f=setTimeout(i,12e4);function i(){o.onerror=o.onload=null,clearTimeout(f);var r=t[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return o.onerror=o.onload=i,a.appendChild(o),n},c.m=e,c.c=n,c.d=function(e,r,n){c.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},c.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(r,"a",r),r},c.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},c.p="/marketing/",c.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
......@@ -9,17 +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="!isAdd" v-model="form.effectTime" v-if="form.effectType == 1" placeholder="请选择时间">
<el-radio v-model="form.effectType" :label="1" :disabled="!isAdd">重复</el-radio>
<el-radio v-model="form.effectType" :label="2" :disabled="!isAdd">单次</el-radio>
<!-- <el-select style="width:262px;" :disabled="!isAdd" v-model="form.effectTime" v-if="form.effectType == 1" placeholder="请选择时间">
<el-option v-for="(v, i) in dayOptions" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
</el-select> -->
<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>{{ 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>
<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>
......@@ -32,7 +32,8 @@
<el-option v-for="(v, i) in effectActionOptions" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
</el-form-item>
<!-- <template v-if="form.effectType == 2">
<!-- 重复执行 -->
<template v-if="form.effectType == 1">
<el-form-item label="执行频率" prop="execDate">
<div class="flex">
<el-select :disabled="!isAdd" style="width:220px;" class="mr20" v-model="form.execDateType" placeholder="请选择" @change="form.execDate = []">
......@@ -43,12 +44,12 @@
</el-select>
</div>
</el-form-item>
<el-form-item label="执行时间" prop="execTime" class="mt10">
<el-time-picker :disabled="!isAdd" class="w220" v-model="form.execTime" value-format="HH:mm:ss" placeholder="请设置" />
<el-form-item label="执行时间" class="mt10">
<el-time-select v-model="form.effectTime" :disabled="!isAdd" :picker-options="{ start: '00:00', step: '01:00', end: '23:00' }" placeholder="请设置"></el-time-select>
</el-form-item>
</template> -->
</template>
<!-- 单次执行 -->
<!-- <template v-if="form.effectType === 1">
<template v-if="form.effectType === 2">
<el-form-item label="执行时间">
<el-radio-group :disabled="!isAdd" v-model="form.execType">
<el-radio :label="1">立即执行</el-radio>
......@@ -59,10 +60,10 @@
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.execType === 0" prop="execTime" key="execTime2">
<el-time-select :disabled="!isAdd" v-model="form.execTime" :picker-options="pickerOptions" value-format="HH:mm:ss" placeholder="请选择" />
<el-form-item v-if="form.execType === 0">
<el-date-picker :disabled="!isAdd" class="inputTime" value-format="yyyy-MM-dd HH:mm:ss" @change="changeExecTime" v-model="form.execTime" :picker-options="pickerOptions" type="datetime" placeholder="请选择" />
</el-form-item>
</template> -->
</template>
<el-form-item label="常用场景" v-if="form.effectType == 1">
<div class="fz12 gray">选填,勾选后生效</div>
<el-checkbox-group v-model="checked" :max="1">
......@@ -187,7 +188,7 @@
</el-form-item>
</section>
<!-- 营销次数配置 重复 -->
<!-- <section class="dm-form__wrap" v-if="form.effectType == 2">
<section class="dm-form__wrap" v-if="form.effectType == 1">
<h3 class="dm-title__label">
营销次数配置
<i class="dm-title__label--icon iconfont icon-xinxixianshi"></i>
......@@ -198,7 +199,7 @@
<el-switch v-model="form.marketingOnceFlag" :active-value="1" :inactive-value="0"></el-switch>
<span class="gray ml10 fz13">{{ form.marketingOnceFlag ? '该营销计划对每个用户执行一次' : '该营销计划对每个用户不限制执行次数' }}</span>
</div>
</section> -->
</section>
<!-- 营销次数配置 实时触点 -->
<section class="dm-form__wrap" v-if="form.effectType == 0 && ['consume', 'upgrade', 'degrade'].includes(form.effectAction)">
<h3 class="dm-title__label">
......
......@@ -45,6 +45,7 @@
<script>
import activitySelect from '@/components/activity-select/index.vue';
import { loadEcmList, deleteEcm, offlineEcmPlan } from '@/service/api/ecmApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
const marketingTypeOptions = [{ value: '', label: '所有发送类型' }, { value: 'card', label: '卡券营销' }, { value: 'message', label: '短信营销' }, { value: 'teletext', label: '图文营销' }, { value: 'text', label: '文本营销' }, { value: 'teltask', label: '话务' }, { value: 'image', label: '微信图片' }]; // eslint-disable-line
export default {
name: 'ecm',
......@@ -76,9 +77,16 @@ export default {
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>`;
/** '重复执行频率(1:天; 2:周 3:月)' **/
const html = row.execDateType == 1 ? '每天' : row.execDateType == 2 ? '每周' : '每月';
return `重复(${html})`;
} else if (row.effectType == 2) {
return '立即执行';
/** '单次执行类型(1:立即执行; 0:定时执行)' **/
if (row.execType == 0) {
return `单次(<i class="el-icon-time fz18 vertical-middle"></i>${formatDateTimeByType(row.execTime, 'yyyy-MM-dd HH:mm:ss')})`;
} else {
return '单次(立即执行)';
}
}
}
},
......
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