Commit 2c15bd42 by 黑潮

Merge branch 'feature/卡券调整' into dev

# Conflicts:
#	src/views/card/partials/status-render.js
parents baefbcff 1407dd69
<!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.6d525aca5482e6b1e35a4532edf16620.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.28.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.30.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.71.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.06.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.21.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script src=//web-1251519181.file.myqcloud.com/components/track.1.0.4.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.872685ca97466f66d448.js></script><script type=text/javascript src=/marketing/static/js/vendor.fef1c3d3b3b586faaee2.js></script><script type=text/javascript src=/marketing/static/js/main.8eb765b5e05106393576.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.17ea00905033dbdf8db4401b9bc508ed.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.28.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.30.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.71.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.06.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.21.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script src=//web-1251519181.file.myqcloud.com/components/track.1.0.4.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.90ef29116cba0ffa1638.js></script><script type=text/javascript src=/marketing/static/js/vendor.fef1c3d3b3b586faaee2.js></script><script type=text/javascript src=/marketing/static/js/main.8eb765b5e05106393576.js></script></body></html>
\ No newline at end of file
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(n,a,o){for(var f,i,d,u=0,s=[];u<n.length;u++)i=n[u],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(u=0;u<o.length;u++)d=c(c.s=o[u]);return d};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:"8243e209f7b8db554925",1:"4e36dc6b55e0fd2d3c84",2:"1aad863c428279c5a169",3:"83c06aa714fa01a48b43",4:"c8a5e5c668cdc258c3c4",5:"d0eb9faf70c6db54f48d",6:"dcc289b2da00c81347e9",7:"ecf8f42559b898ee9c01",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
!function(e){var c=window.webpackJsonp;window.webpackJsonp=function(r,a,o){for(var f,i,d,u=0,s=[];u<r.length;u++)i=r[u],n[i]&&s.push(n[i][0]),n[i]=0;for(f in a)Object.prototype.hasOwnProperty.call(a,f)&&(e[f]=a[f]);for(c&&c(r,a,o);s.length;)s.shift()();if(o)for(u=0;u<o.length;u++)d=t(t.s=o[u]);return d};var r={},n={15:0};function t(c){if(r[c])return r[c].exports;var n=r[c]={i:c,l:!1,exports:{}};return e[c].call(n.exports,n,n.exports,t),n.l=!0,n.exports}t.e=function(e){var c=n[e];if(0===c)return new Promise(function(e){e()});if(c)return c[2];var r=new Promise(function(r,t){c=n[e]=[r,t]});c[2]=r;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:"88b1de4c0188aec609d6",1:"4e36dc6b55e0fd2d3c84",2:"1aad863c428279c5a169",3:"83c06aa714fa01a48b43",4:"c8a5e5c668cdc258c3c4",5:"d0eb9faf70c6db54f48d",6:"dcc289b2da00c81347e9",7:"ecf8f42559b898ee9c01",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 c=n[e];0!==c&&(c&&c[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return o.onerror=o.onload=i,a.appendChild(o),r},t.m=e,t.c=r,t.d=function(e,c,r){t.o(e,c)||Object.defineProperty(e,c,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(c,"a",c),c},t.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)},t.p="/marketing/",t.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
......@@ -249,7 +249,8 @@ export default {
// 转赠页面首图
code: '015f1e5a-3b2f-42f5-b638-6a29c17e8f7e',
imgUrl: 'https://pic01-10001430.image.myqcloud.com/015f1e5a-3b2f-42f5-b638-6a29c17e8f7e'
}
},
showWeimobDemoSelector: false
};
},
watch: {
......@@ -405,6 +406,7 @@ export default {
},
// 改变用户使用有效期类型
changeCardEffectiveMode(val, cover = true) {
this.form.sendDateTime = [];
this.reCheckSendDateTime();
const { dateTime, sendDateTime } = this.form;
if (!cover && sendDateTime && sendDateTime[0]) {
......@@ -429,8 +431,8 @@ export default {
if (val == 0) {
// 想要设置为自动领取
this.$confirm(
`<div class="fz16 mb10">是否关闭用户手动领取?</div><div class="regular-font-color fz13">用户在领取卡券后需要<b class="bold">同步至ERP</b>,如果关闭用户<b class="bold">手动领取</b>,卡券在<b class="bold">批量投放</b>时会需要将卡券信息批量同步至ERP。
该过程可能需要持续一段时间(具体同步时间和同步卡券张数以及ERP性能有关,参考同步时间为1万张卡券1个小时)。
`<div class="fz16 mb10">是否关闭用户手动领取?</div><div class="regular-font-color fz13">用户在领取卡券后需要<b class="bold">同步至ERP</b>,如果关闭用户<b class="bold">手动领取</b>,卡券在<b class="bold">批量投放</b>时会需要将卡券信息批量同步至ERP。
该过程可能需要持续一段时间(具体同步时间和同步卡券张数以及ERP性能有关,参考同步时间为1万张卡券1个小时)。
当前支持不需要用户手动领取的卡券库存最大值为<b class="bold">${this.couponAutoGetStock}</b>张。</div>`,
'提示',
{
......@@ -565,7 +567,9 @@ export default {
this.only = Boolean(useCondition.only);
this.form.proNoList = useCondition.proNo ? [{ name: useCondition.proNo, id: useCondition.proNo }] : [];
}
if (card.weimobDemoCode && JSON.parse(card.weimobDemoCode).length > 0) {
this.showWeimobDemoSelector = true;
}
// 微盟券号 -- 复制不赋值
if (card.cardApplyChannel.indexOf('WMmicroMall') !== -1 && card.weimobDemoCode && (this.isAdd || this.isInfo || this.isEdit)) {
this.weimobDemoCodeList = JSON.parse(card.weimobDemoCode).map(v => {
......@@ -1031,7 +1035,7 @@ export default {
card.startDay = this.form.startDay || 0;
card.limitDay = this.form.limitDay || 0;
}
// 卡券模板投放期限 putEffectiveMode(0:固定日期,1:长期)
const { cardEffectiveMode, putEffectiveMode, sendDateTime } = this.form;
card.putEffectiveMode = cardEffectiveMode == 0 || (cardEffectiveMode == 1 && putEffectiveMode == 0) ? 0 : 1;
......@@ -1040,7 +1044,7 @@ export default {
card.putBeginDate = formatDateTimeByType(sendDateTime[0], 'yyyy-MM-dd');
card.putEndDate = formatDateTimeByType(sendDateTime[1], 'yyyy-MM-dd');
}
card.jumpFlag = this.form.jumpFlag;
card.jumpLink = card.jumpFlag ? this.form.jumpLink : {};
......@@ -1183,6 +1187,9 @@ export default {
if (now.expireDateType == 1) {
this.form.cardEffectiveMode = 0;
this.form.dateTime = [now.startDate, now.expireDate];
this.$nextTick(() => {
this.$refs.effectDate.$emit('change', 0, false);
})
}
if (now.expireDateType == 2) {
if (now.expDayCount > 1200) {
......
......@@ -30,7 +30,7 @@
</el-form-item>
<!-- 微盟微商城 微盟券号 -->
<template v-if="form.cardApplyChannel.indexOf('WMmicroMall') !== -1 && countFlag">
<template v-if="showWeimobDemoSelector || (form.cardApplyChannel.indexOf('WMmicroMall') !== -1 && countFlag)">
<el-alert type="warning" show-icon :closable="false" class="f-alert" style="margin-bottom: 10px;margin-left:130px;">
<span slot="title">选择设置微盟微商城-微盟券号时,卡券信息将以微盟侧为准,本页填写信息将视为无效。</span>
</el-alert>
......@@ -59,7 +59,7 @@
</el-form-item>
<!-- 抵金券 -->
<el-form-item prop="cardDenomination" label="减免金额" v-if="form.cardType === 0"> <el-input-number controls-position="right" :disabled="isEdit || isInfo" v-model="form.cardDenomination" class="200" :precison="0" :min="0"></el-input-number><span class="fz12 gray">请输入大于0的整数</span> </el-form-item>
<el-form-item prop="cardDenomination" label="减免金额" v-if="form.cardType === 0"> <el-input-number controls-position="right" :disabled="isEdit || isInfo" v-model="form.cardDenomination" class="200" :precison="0" :min="0" :max="10000000"></el-input-number><span class="fz12 gray">请输入大于0的整数</span> </el-form-item>
<!-- 折扣券 -->
<el-form-item prop="cardDenomination" label="折扣额度" v-if="form.cardType === 1"> <el-input-number controls-position="right" :disabled="isEdit || isInfo" v-model="form.cardDenomination" class="200" :precision="1" :step="0.1" :max="9.9" :min="0"></el-input-number><span class="fz12 gray">请填写1-9.9之间的数字</span></el-form-item>
......@@ -234,7 +234,7 @@
</el-tooltip>
<div>
<el-radio @change="changeCardEffectiveMode" v-model="form.cardEffectiveMode" :disabled="isEdit || isInfo || cardValidity" :label="0">固定日期</el-radio>
<el-date-picker @change="changeCardEffectiveMode(0, false)" v-model="form.dateTime" @focus="form.cardEffectiveMode = 0" :disabled="isEdit || isInfo || cardValidity" :picker-options="pickerOptions" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<el-date-picker ref="effectDate" @change="changeCardEffectiveMode(0, false)" v-model="form.dateTime" @focus="form.cardEffectiveMode = 0" :disabled="isEdit || isInfo || cardValidity" :picker-options="pickerOptions" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</div>
<div class="pt20">
<el-radio @change="changeCardEffectiveMode" v-model="form.cardEffectiveMode" :label="1" :disabled="isEdit || isInfo || cardValidity">领取后,</el-radio>
......@@ -251,13 +251,13 @@
<span class="tooltip-icon cursor">卡券模板投放期限</span>
</el-tooltip>
<div v-if="form.cardEffectiveMode == 0">
<el-date-picker v-model="form.sendDateTime" :disabled="isEdit || isInfo" :picker-options="pickerOptions2" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<el-date-picker v-model="form.sendDateTime" :disabled="isEdit || isInfo || form.cardApplyChannel.indexOf('WMmicroMall') !== -1" :picker-options="pickerOptions2" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<span class="gray fz13">* 卡券模板投放期限结束日期不能超过卡券使用有效期固定日期结束日期</span>
</div>
<div v-if="form.cardEffectiveMode == 1" style="height:35px;">
<el-radio @change="resetSendDateTime" v-model="form.putEffectiveMode" :disabled="isEdit || isInfo" :label="1">长期有效</el-radio>
<el-radio @change="resetSendDateTime" v-model="form.putEffectiveMode" :disabled="isEdit || isInfo" :label="0">固定日期</el-radio>
<el-date-picker v-if="form.putEffectiveMode == 0" v-model="form.sendDateTime" @focus="form.putEffectiveMode = 0" :disabled="isEdit || isInfo" :picker-options="pickerOptions" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<el-radio @change="resetSendDateTime" v-model="form.putEffectiveMode" :disabled="isEdit || isInfo || form.cardApplyChannel.indexOf('WMmicroMall') !== -1" :label="1">长期有效</el-radio>
<el-radio @change="resetSendDateTime" v-model="form.putEffectiveMode" :disabled="isEdit || isInfo || form.cardApplyChannel.indexOf('WMmicroMall') !== -1" :label="0">固定日期</el-radio>
<el-date-picker v-if="form.putEffectiveMode == 0" v-model="form.sendDateTime" @focus="form.putEffectiveMode = 0" :disabled="isEdit || isInfo || form.cardApplyChannel.indexOf('WMmicroMall') !== -1" :picker-options="pickerOptions" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</div>
</el-form-item>
......
......@@ -11,6 +11,7 @@ export default Vue.component('render-temp', {
render(h) {
const canEdit = this.item.canEdit !== false; // 只有canEdit === false 才证明不能使用 没有权限仅可以详情/报表
const isApiCreate = this.item.isApiCreate || false; // 由外部api创建 仅展示详情、删除、报表按钮
const showPutonBtn = this.item.showPutonBtn || false;
// 当前卡券是否 是长期有效||在投放有效期内
// putEffectiveMode 0:固定日期,1:长期
const canGroupSend = this.item.putEffectiveMode == 1 ? true : new Date() > new Date(this.item.putBeginDate) && new Date() < new Date(this.item.putEndDate);
......@@ -19,7 +20,7 @@ export default Vue.component('render-temp', {
// 微盟外部券:领取记录、投放、报表
// 通用外部券:领取记录、报表
const bind1 =
canEdit && (!isApiCreate || isWeimo) && canGroupSend && !isCommon ? (
canEdit && (!isApiCreate || isWeimo) && canGroupSend && !isCommon && showPutonBtn ? (
<a title="投放" onClick={this.handler.bind(null, 1)}>
<i class="iconfont icon-daohang-" />
</a>
......
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