Commit 53cfac5a by chenxin

Merge branch 'dev' into 'master'

Dev

See merge request !83
parents 46adcb6b ed2c3226
<!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.6c1ae59e9a37a6875e8c50598fab8f7b.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.46aefea3065c8f69aec6.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.5b1c53f500e2189419695ada777be291.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.12.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.ae295c5ad1369778736f.js></script><script type=text/javascript src=/marketing/static/js/vendor.cbb380c2053ab598e892.js></script><script type=text/javascript src=/marketing/static/js/main.3c58594923662ae24d78.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.
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.
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.
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.
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.
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(t,c,a){for(var i,u,f,d=0,s=[];d<t.length;d++)u=t[d],n[u]&&s.push(n[u][0]),n[u]=0;for(i in c)Object.prototype.hasOwnProperty.call(c,i)&&(e[i]=c[i]);for(r&&r(t,c,a);s.length;)s.shift()();if(a)for(d=0;d<a.length;d++)f=o(o.s=a[d]);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:"3621fa47514c89ab6f5e",1:"39f7524cf7b8e8b737c8",2:"f9d19ec4b3ff03678173",3:"108799c9b5a0b2361a97",4:"17d5d8e8e5023c0ef4dd",5:"0c17680da1cc0f794988",6:"2b4e0714179aea2a21c3",7:"eeb506934d60615dcdbd",8:"592425f0cd96d383286c",9:"396c5bb8123ba2181dab",10:"012adc27d4425d824c4b"}[e]+".js";var i=setTimeout(u,12e4);function u(){a.onerror=a.onload=null,clearTimeout(i);var r=n[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return a.onerror=a.onload=u,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
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(t,c,a){for(var i,u,f,d=0,s=[];d<t.length;d++)u=t[d],n[u]&&s.push(n[u][0]),n[u]=0;for(i in c)Object.prototype.hasOwnProperty.call(c,i)&&(e[i]=c[i]);for(r&&r(t,c,a);s.length;)s.shift()();if(a)for(d=0;d<a.length;d++)f=o(o.s=a[d]);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:"ecm",6:"evaluation",7:"activity",8:"recharge",9:"msg",10:"calllog"}[e]||e)+"."+{0:"a3874639c8bc4f6904a6",1:"4e4a9dc6c93676249324",2:"306ee775683f06877d11",3:"933ec7d0c60e1ac1ed98",4:"1343aacbbc19705f2e09",5:"f471dfb1a0a34bd8a1ac",6:"a69c5c6513644d0f2537",7:"eeb506934d60615dcdbd",8:"cc81505df4e6d8d06e69",9:"42e94f0ad107f4564295",10:"02cb948d4fe0b121b72b"}[e]+".js";var i=setTimeout(u,12e4);function u(){a.onerror=a.onload=null,clearTimeout(i);var r=n[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return a.onerror=a.onload=u,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
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.
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.
......@@ -23,7 +23,7 @@
<!-- 组件引用cdn -->
<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/card.2.0.12.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>
......
......@@ -12,27 +12,27 @@
},
"dependencies": {
"@antv/data-set": "^0.8.9",
"@antv/g2": "^3.2.6",
"@antv/g2": "^3.5.17",
"@riophae/vue-treeselect": "^0.0.36",
"@tinymce/tinymce-vue": "^1.0.8",
"animate.css": "^3.7.2",
"animated-vue": "^0.5.3",
"axios": "^0.18.0",
"echarts": "^4.1.0",
"element-ui": "^2.4.1",
"echarts": "^4.8.0",
"element-ui": "^2.13.2",
"packele": "^1.0.5",
"scriptjs": "^2.5.8",
"tinymce": "^4.8.2",
"tinymce": "^4.9.11",
"uuid": "^3.3.2",
"v-charts": "^1.17.8",
"viser-vue": "^2.2.5",
"vue-axios": "^2.1.1",
"vue-qr": "^1.3.8",
"vue-router": "^3.0.1",
"vue-router": "^3.3.4",
"vue-ueditor-wrap": "^1.3.4",
"vue2-editor": "^2.5.0",
"vuedraggable": "^2.16.0",
"vuex": "^3.0.1"
"vuedraggable": "^2.24.0",
"vuex": "^3.5.1"
},
"devDependencies": {
"ansi-html": "^0.0.7",
......@@ -52,16 +52,16 @@
"chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.0",
"element-theme-chalk": "^2.4.1",
"element-theme-chalk": "^2.13.2",
"eslint": "^5.6.0",
"eslint-config-prettier": "^4.0.0",
"eslint-config-standard": "^12.0.0",
"eslint-friendly-formatter": "^4.0.1",
"eslint-loader": "^2.1.1",
"eslint-plugin-html": "^5.0.0",
"eslint-plugin-import": "^2.14.0",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-node": "^7.0.1",
"eslint-plugin-prettier": "^3.0.1",
"eslint-plugin-prettier": "^3.1.4",
"eslint-plugin-promise": "^4.0.1",
"eslint-plugin-standard": "^4.0.0",
"eslint-plugin-vue": "^4.7.1",
......@@ -69,13 +69,13 @@
"file-loader": "^1.1.4",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1",
"localforage": "^1.7.2",
"localforage": "^1.8.0",
"node-notifier": "^5.1.2",
"node-sass": "^4.9.0",
"node-sass": "^4.14.1",
"onchange": "^5.2.0",
"optimize-css-assets-webpack-plugin": "^3.2.0",
"ora": "^1.2.0",
"portfinder": "^1.0.13",
"portfinder": "^1.0.27",
"postcss-import": "^11.0.0",
"postcss-loader": "^2.0.8",
"postcss-url": "^7.2.1",
......
......@@ -328,3 +328,8 @@
.el-table__empty-block{
min-height: 240px;
}
.member-block {
display: block;
height: 50px;
}
\ No newline at end of file
......@@ -156,12 +156,12 @@ export default {
activityList(this.listParams)
.then(res => {
this.loading = false;
const tableList = this.tableList.concat(res.result.result) || [];
const total = res.result.totalCount;
const resList = res.result.result || [];
const tableList = this.tableList.concat(resList);
const total = res.result.totalCount || 0;
this.tableList = tableList;
this.total = total;
this.nomore = total <= tableList.length || total - tableList.length < this.listParams.pagesize; // 没有下一页了
// console.log('total:', total, 'length:', tableList.length, this.nomore);
})
.catch(() => {
this.loading = false;
......
......@@ -23,6 +23,15 @@ export default {
}
},
{
path: 'info/:id',
name: '智能营销详情',
component: () => import(/* webpackChunkName: "ecm" */ '../../views/ecm/form.vue'),
meta: {
type: 'info',
path: '/ecm/list'
}
},
{
path: 'add',
name: '智能营销新增',
component: () => import(/* webpackChunkName: "ecm" */ '../../views/ecm/form.vue'),
......@@ -40,11 +49,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>`
);
},
......
......@@ -242,14 +242,11 @@ export default {
this.$store.commit(
'mutations_layoutTips',
`<div class="layout--tips">
<i class="el-icon-info"></i>
风险提示:大规模投放卡券可能导致模板消息被封
<div><i class="el-icon-info"></i>风险提示:大规模投放卡券可能导致模板消息被封</div>
<div><i class="el-icon-info"></i>卡券投放对象不包含POS会员,已自动过滤。</div>
</div>
`
);
setTimeout(_ => {
this.$store.commit('mutations_layoutTips', '');
}, 10000);
},
created() {
this.listTemplateVariables();
......
......@@ -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>
......
......@@ -32,7 +32,8 @@
<el-button @click="close">关闭</el-button>
<el-button v-if="type === 'add'" type="primary" @click="submit">确认销毁</el-button>
</span>
<vue-gic-card appendToBody :showCardDialog="showCardDialog" @selectCard="selectCard" :cardLimit="-1" :cardType="null"></vue-gic-card>
<!-- 只有卡券销毁处传这个参数 -->
<vue-gic-card getCardListUrl="/api-marketing/list-coupon-destroy" appendToBody :showCardDialog="showCardDialog" @selectCard="selectCard" :cardLimit="-1" :cardType="null"></vue-gic-card>
</el-dialog>
</template>
......
......@@ -38,9 +38,9 @@
</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="120" header-align="left" align="left" prop="clerkId" label="会员信息">
<el-table-column :show-overflow-tooltip="true" min-width="140" header-align="left" align="left" prop="clerkId" label="会员信息">
<template slot-scope="scope">
<a :href="'/member/#/wechatmemberDetail?memberId=' + scope.row.memberId" target="_blank">
<a class="member-block" :href="'/member/#/wechatmemberDetail?memberId=' + scope.row.memberId" target="_blank">
<img class="vertical-middle table__avatar--40" :src="scope.row.thirdimgurl || defaultAvatar" width="60" height="60" />
<div class="inline-block vertical-middle">
<p class="table-name--ellipsis">{{ scope.row.thirdName || scope.row.memberName || '--' }}</p>
......
......@@ -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', '');
......
......@@ -94,6 +94,7 @@ export default {
},
isEdit: this.$route.meta.type === 'edit',
isAdd: this.$route.meta.type === 'add',
isInfo: this.$route.meta.type === 'info',
// 人群筛选器可传参数
sceneValue: 'member', // 场景值
useId: '', // 模板id
......@@ -225,7 +226,7 @@ export default {
const consumTrigger = res.result.consumTrigger;
this.enabledMessageState = res.result.enabledMessageState || 0;
this.xxSysp.goodsEnable = res.result.goodsEnable || false; // 是否支持商品选择器
if (result && this.isEdit) {
if (result && !this.isAdd) {
this.creatorId = res.result.ecmDTO.creatorId;
this.ecmPlanId = this.form.ecmPlanId = result.ecmPlanId || '';
this.form.ecmPlanName = result.ecmPlanName;
......@@ -860,17 +861,12 @@ export default {
props: ['ppp']
});
new Profile().$mount('#mount-point');
// var Profile = Vue.extend({
// template: '<p>{{firstName}} {{lastName}} aka {{alias}}</p>',
// data: function() {
// return {
// firstName: 'Walter',
// lastName: 'White',
// alias: 'Heisenberg'
// };
// }
// });
this.$store.commit(
'mutations_layoutTips',
`<div class="layout--tips">
<i class="el-icon-info"></i>营销对象为所有会员,包括微信会员、POS会员以及微信粉丝。
</div>`
);
},
created() {
// 设置面包屑
......@@ -880,5 +876,8 @@ export default {
}
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }, { name: breadcrumbName, path: '' }]); // eslint-disable-line
this.listTemplateVariables();
},
beforeDestroy() {
this.$store.commit('mutations_layoutTips', '');
}
};
......@@ -25,10 +25,13 @@
<el-table-column min-width="100" align="left" prop="creatorName" label="创建人" v-if="$store.state.marketing.openFlag"></el-table-column>
<el-table-column label="操作" align="left" width="220" fixed="right">
<template slot-scope="scope">
<dm-delete v-if="scope.row.onlineStatus === 1 && scope.row.canEdit !== false" @confirm="offlineEcmPlan(scope.row)" tips="是否下线该计划?">
<template v-if="scope.row.canEdit !== false">
<el-button type="text" v-if="scope.row.effectType == 0 || scope.row.effectType == 1" @click="editData(scope.row)">编辑</el-button>
<el-button type="text" v-if="scope.row.effectType == 2" @click="$router.push(`/ecm/info/${scope.row.ecmPlanId}`)">详情</el-button>
</template>
<dm-delete v-if="scope.row.effectType !== 2 && scope.row.onlineStatus === 1 && scope.row.canEdit !== false" @confirm="offlineEcmPlan(scope.row)" tips="是否下线该计划?">
<el-button type="text">下线</el-button>
</dm-delete>
<el-button type="text" v-if="scope.row.canEdit !== false" @click="editData(scope.row)">编辑</el-button>
<dm-delete v-if="scope.row.putonStatus !== 2 && scope.row.canEdit !== false" @confirm="delData(scope.row)" tips="是否删除该计划?">
<el-button type="text">删除</el-button>
</dm-delete>
......@@ -47,7 +50,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 +73,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 +157,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) {
......
......@@ -2,7 +2,7 @@
<div class="dm-integral__item__wrap">
<!-- {{ item.integralType }} -->
<template v-if="item.integralType === 1">
<span class="fz16">赠送积分<span class="fz12 gray ml20">* 仅支持给认证会员赠送积分</span></span>
<span class="fz16">赠送积分<span class="fz12 gray ml20">* 仅支持给开卡会员赠送积分</span></span>
<p class="mt15">
<span class="fz24 mr5 primary-font-color">{{ item.integralCount }}</span>
<span>积分</span>
......
......@@ -16,14 +16,16 @@
<div class="dm-marketing__content__item" v-for="(v, i) in list" :key="i">
<i class="dm-marketing__content--index">{{ i + 1 }}</i>
<component :is="v.comName" :item="v.item" :isSupportVar="isSupportVar"></component>
<i class="el-icon-edit dm-marketing__opt--icon" v-if="v.comName === 'item-teltask' || v.comName === 'item-text' || v.comName === 'item-wxa' || v.comName === 'item-integral'" @click="editItem(v)"></i>
<dm-delete @confirm="delItem(v)">
<i class="el-icon-delete dm-marketing__opt--icon"></i>
</dm-delete>
<template v-if="!readOnly">
<i class="el-icon-edit dm-marketing__opt--icon" v-if="v.comName === 'item-teltask' || v.comName === 'item-text' || v.comName === 'item-wxa' || v.comName === 'item-integral'" @click="editItem(v)"></i>
<dm-delete @confirm="delItem(v)">
<i class="el-icon-delete dm-marketing__opt--icon"></i>
</dm-delete>
</template>
</div>
</div>
</div>
<div class="dm-marketing__opt--wrap" @mouseleave="optShow = false">
<div v-if="!readOnly" class="dm-marketing__opt--wrap" @mouseleave="optShow = false">
<i class="el-icon-plus dm-marketing__opt--icon--bottom" v-if="list.length && list.length < maxEventCount" @mouseover="optShow = true"></i>
<transition name="fade">
<opt @addItem="addItem" :options="options" v-if="list.length && list.length < maxEventCount && optShow" style="margin:0px 0 0 15px;position:relative;top:10px;"></opt>
......@@ -118,6 +120,11 @@ export default {
// 图文 实时发送这个参数为true,过滤图文仅要单图文
type: Boolean,
default: false
},
readOnly: {
// 只读
type: Boolean,
default: false
}
},
data() {
......
......@@ -176,7 +176,7 @@ export default {
gameId: '',
gameName: '',
dateTime: [],
background: '',
background: '#fff', // 默认白色
gameIntroduction: '',
gameIntegral: '',
gameWinningRate: '',
......
......@@ -160,7 +160,7 @@ export default {
gameId: '',
gameName: '',
dateTime: [],
background: '',
background: '#fff', // 默认白色
gameIntroduction: '',
gameIntegral: '',
gameWinningRate: '',
......
......@@ -94,7 +94,8 @@
<div class="dm-wrap" v-loading="loading">
<div class="pb22">
<div slot="header" class="clearfix">
<el-date-picker v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="consumeRecord"></el-date-picker>
<el-date-picker :pickerOptions="pickerOptions" v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="consumeRecord"></el-date-picker>
<span class="fz12 gray">* 此处仅支持筛选近半年的统计数据</span>
</div>
</div>
<el-table tooltipEffect="light" :data="tableList" style="width: 100%">
......@@ -146,7 +147,7 @@ export default {
},
pickerOptions: {
disabledDate(val) {
return Date.now() >= val.getTime() + 3 * 30 * 24 * 60 * 60 * 1000;
return Date.now() >= val.getTime() + 6 * 30 * 24 * 60 * 60 * 1000;
}
}
};
......
<template>
<section class="recharge">
<div class="dm-wrap">日期:<el-date-picker v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="loadAll(false)"></el-date-picker></div>
<div class="dm-wrap">
日期:<el-date-picker :pickerOptions="pickerOptions" v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="loadAll(false)"></el-date-picker>
<span class="fz12 gray">* 此处仅支持筛选近半年的统计数据</span>
</div>
<div class="dm-form__wrap">
<h3 class="dm-title__label">趋势分析图</h3>
<div class="text-center fz16" v-if="$route.params.type === 'record'">{{ formatDateTimeByType(dateTime[0], 'yyyy-MM-dd') }}{{ formatDateTimeByType(dateTime[1], 'yyyy-MM-dd') }} 成功存储:{{ sumCount || 0 }} 分钟 总计消费:{{ (sumFee / 100).toFixed(2) }}</div>
......@@ -218,7 +221,7 @@ export default {
placeholder: '',
pickerOptions: {
disabledDate(val) {
return Date.now() >= val.getTime() + 3 * 30 * 24 * 60 * 60 * 1000;
return Date.now() >= val.getTime() + 6 * 30 * 24 * 60 * 60 * 1000;
}
}
};
......
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