Commit 46adcb6b by chenxin

Merge branch 'dev'

# Conflicts:
#	dist/index.html
#	dist/static/css/main.315c86f70d99e5a8ba7846de769f7d16.css
#	dist/static/css/main.6c1ae59e9a37a6875e8c50598fab8f7b.css
#	dist/static/css/main.9d0b42d41ece83f0e0c58006bdc5c35c.css
#	dist/static/js/manifest.e9866106c65bbba13ada.js
parents 790dbfda 52fcbfac
<!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.315c86f70d99e5a8ba7846de769f7d16.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.e9866106c65bbba13ada.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.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
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,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:"evaluation",6:"ecm",7:"activity",8:"recharge",9:"msg",10:"calllog"}[e]||e)+"."+{0:"152a1eed094f838a3200",1:"da8b66b44fa1dfaa9bdc",2:"cd42387aec189ac5e3ae",3:"817c2fce5d629049941d",4:"17d5d8e8e5023c0ef4dd",5:"0c17680da1cc0f794988",6:"563a679b8a8fd3bc31d6",7:"eeb506934d60615dcdbd",8:"592425f0cd96d383286c",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
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.
......@@ -223,7 +223,7 @@
<el-alert v-show="storeMode && form.cardApplyChannel.indexOf('WMmicroMall') !== -1" title="选择的门店必须保持与微盟侧门店一致,请确认选择无误" type="warning" show-icon :closable="false" class="mt20 width80"></el-alert>
</el-form-item>
<el-form-item v-if="giveEnable && form.useCustomCode != 1" label="卡券转赠" class="is-required">
<el-form-item v-if="giveEnable && form.useCustomCode != 1" label="卡券转赠">
<el-switch :disabled="isEdit" v-model="form.giveFlag" :active-value="1" :inactive-value="0"></el-switch>
<span class="tips fz12 gray ml5">* code类型为自定义号段暂时不支持卡券转赠,转赠多次会消耗相同次数的库存,请设置足够的安全库存</span>
</el-form-item>
......
......@@ -179,7 +179,7 @@
<!-- 营销事件组件 -->
<section class="dm-form__wrap">
<h3 class="dm-title__label">营销事件</h3>
<marketing-event ref="marketingEvent" @has-card="hasCard" v-if="ecmPlanId" :integralMultiple="form.effectAction === 'consume'" :ecmPlanId="ecmPlanId" :isSupportVar="form.effectType === 0" :code="code" :enabledMessageState="enabledMessageState" :cardLimitType="-1"></marketing-event>
<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>
<!-- 只有存在卡券的情况下出现卡券通知方式 -->
<section class="dm-form__wrap" v-if="currentCard.comName">
......
......@@ -33,12 +33,13 @@
</el-table-column>
<el-table-column label="更新时间" prop="updateTimeStr" align="left" width="160px">
<template slot-scope="scope">
{{ scope.row.updateTimeStr }}
{{ scope.row.updateTimeStr || '--' }}
</template>
</el-table-column>
</el-table>
</el-radio-group>
<dm-pagination v-show="textImgList.length" class="dm-pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listParams.currentPage" :page-sizes="[20, 40, 60, 80]" :page-size="listParams.pageSize" layout="prev, pager, next" :total="total"></dm-pagination>
<p v-if="singleFlag" class="minor-font-color mb10">* 将使用微信客服接口发送,已按微信规则过滤图文数目大于1的图文。</p>
<span slot="footer" class="dialog-footer">
<el-button @click="close">关 闭</el-button>
<el-button type="primary" @click="addItem">确 定</el-button>
......@@ -55,6 +56,11 @@ export default {
show: {
type: Boolean,
default: false
},
singleFlag: {
// 图文 实时发送这个参数为true,过滤图文仅要单图文
type: Boolean,
default: false
}
},
created() {
......@@ -73,10 +79,22 @@ export default {
selectedData: {}
};
},
watch: {
show(val) {
if (val) {
this.selectedData = {};
this.loadImgTextList();
}
}
},
methods: {
loadImgTextList() {
this.loading = true;
loadImgTextList(this.listParams).then(res => {
const params = { ...this.listParams };
if (this.singleFlag) {
params.singleFlag = 1; // 不是实时就不穿这个参数,不传表示全部
}
loadImgTextList(params).then(res => {
if (res.errorCode === 0) {
this.textImgList = res.result.result || [];
this.total = res.result.totalCount;
......
......@@ -30,7 +30,7 @@
</transition>
</div>
<!-- 弹窗组件 -->
<component :is="dialogCom" @sendItem="saveToList" :item="currentItem" :show.sync="dialogShow" :isSupportVar="isSupportVar" :cardLimitType="cardLimitType" :integralMultiple="integralMultiple"></component>
<component :is="dialogCom" @sendItem="saveToList" :item="currentItem" :show.sync="dialogShow" :isSupportVar="isSupportVar" :cardLimitType="cardLimitType" :integralMultiple="integralMultiple" :singleFlag="singleFlag"></component>
</section>
</template>
......@@ -113,6 +113,11 @@ export default {
// 积分 是否需要倍数(场景:消费触发)
type: Boolean,
default: false
},
singleFlag: {
// 图文 实时发送这个参数为true,过滤图文仅要单图文
type: Boolean,
default: false
}
},
data() {
......
......@@ -100,8 +100,8 @@
<template v-else>
{{ scope.row.prizeType === 1 ? `${scope.row.prizeIntegral}积分` : `${scope.row.cardName}` }}
</template>
<template v-if="!isAdd && scope.row.prizeType == 2">
<!-- 卡券 且不是新增表单 -->
<template v-if="scope.row.prizeId && !scope.row.inOpt && scope.row.prizeType == 2">
<!-- 卡券 已经保存过数据 -->
<span v-if="scope.row.status == 0" class="dm-tags warning">已删除</span>
<span v-else-if="scope.row.cardStock <= 0" class="dm-tags error">无库存</span>
</template>
......
......@@ -79,8 +79,8 @@
<template v-else>
{{ scope.row.prizeType === 1 ? `${scope.row.prizeIntegral}积分` : `${scope.row.cardName}` }}
</template>
<template v-if="!isAdd && scope.row.prizeType == 2">
<!-- 卡券 且不是新增表单 -->
<template v-if="scope.row.prizeId && scope.row.prizeType == 2">
<!-- 卡券 已经保存过数据 -->
<span v-if="scope.row.status == 0" class="dm-tags warning">已删除</span>
<span v-else-if="scope.row.cardStock <= 0" class="dm-tags error">无库存</span>
</template>
......@@ -257,7 +257,6 @@ export default {
result += parseInt(v.prizeCount);
}
});
console.log(result);
return parseInt(this.form.gameWinningRate) / result;
},
asideShow() {
......@@ -268,11 +267,11 @@ export default {
// 更新游戏奖品
updateGamePrize(index) {
const current = this.tableList[index];
console.log(current);
let count = 0;
// console.log(current);
if (!current.prizeId) {
// 编辑的新增
if (current.prizeType == 3) {
if (current.prizeType != 3) {
// 给目标值
count = current.prizeCount;
} else {
......@@ -294,7 +293,6 @@ export default {
count = backupCurrent.prizeType != 2 || backupCurrent.prizeCardId != current.prizeCardId ? current.prizeCount : current.prizeCount - backupCurrent.prizeCount;
}
}
let params = {
gameId: this.$route.params.id,
type: current.prizeType, // 奖品类型,1:积分,2:卡券,3:谢谢参与
......@@ -306,7 +304,6 @@ export default {
if (current.prizeId) {
params.gamePrizeId = current.prizeId;
}
this.prizeLoading = true;
updateGamePrize(params)
.then(res => {
......@@ -341,7 +338,7 @@ export default {
}
this.tableList.push({ prizeId: '', prizeType: 3, prizeCount: null, prizeIntegral: null, prizeCardId: '', gameId: '', prizeStatus: 0, prizeSort: null, prizeRate: 0, cardName: '', cardType: null, cardDenomination: null, cardImageUrl: '', cardStock: null, wechatCardId: null, winRecordCode: 0, receiveCount: 0, inOpt: true });
if (this.isEdit) {
this.backupTableList.splice({ prizeId: '', prizeType: 3, prizeCount: null, prizeIntegral: null, prizeCardId: '', gameId: '', prizeStatus: 0, prizeSort: null, prizeRate: 0, cardName: '', cardType: null, cardDenomination: null, cardImageUrl: '', cardStock: null, wechatCardId: null, winRecordCode: 0, receiveCount: 0, inOpt: true });
this.backupTableList.push({ prizeId: '', prizeType: 3, prizeCount: null, prizeIntegral: null, prizeCardId: '', gameId: '', prizeStatus: 0, prizeSort: null, prizeRate: 0, cardName: '', cardType: null, cardDenomination: null, cardImageUrl: '', cardStock: null, wechatCardId: null, winRecordCode: 0, receiveCount: 0, inOpt: true });
}
},
delPrize(i) {
......
......@@ -8,6 +8,7 @@
<p>4.不能发送房产、移民、贷款、政治、色情、暴力等违法类短信</p>
<p>5.短信内容中不能输入Enter/换行,否则将导致短信分条发送</p>
<p>6.请注意:【短信签名】也计入短信字数,请注意计算</p>
<p>7.请注意:您的积分体系是由GIC侧计算时,积分相关的变量值才可生效(19项、20项),若您的积分体系是由外部(ERP等)计算,则积分变量值插入后将无法生效,请注意设置内容</p>
</el-col>
</el-row>
<el-row :gutter="20" class="mt20">
......
......@@ -317,9 +317,8 @@ export default {
try {
let res = await wechatImageTextEdit({ imageTextId: this.$route.params.id });
this.$nextTick(_ => {
// console.log(this.editorInstance);
this.imgTextList = res.result.imageText.itemList.map(v => {
v.content = v.content.replace(/data-src/g, 'src');
v.content = v.content ? v.content.replace(/data-src/g, 'src') : '';
return v;
});
this.imageTextId = res.result.imageText.imageTextId;
......
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