Commit 0b970d90 by 黑潮

Merge branch 'feature/3月迭代' into feature/销售线索

parents 7a7d603b 23a8824a
......@@ -75,6 +75,9 @@ export const exportBackCoupExcel = config.api + PREFIX + 'export-back-coup-excel
//卡券营销--卡券记录--投放记录--删除记录
export const deleteCardPuton = params => requests(PREFIX + 'delete-card-puton', params);
//卡券营销--卡券记录--投放记录--刷新记录
export const refreshPutOnCount = params => requests(PREFIX + 'refresh-put-on-count', params);
//卡券营销--卡券记录--领取记录--核销--(1)获取满足核销条件的订单
export const listCoupcardOrder = params => requests(PREFIX + 'list-coupcard-order', params);
......
......@@ -42,3 +42,5 @@ export const exportBatchSendDetails = config.api + PREFIX + 'export-batch-send-d
// 智能营销--实时人员列表--导出csv
export const exportCurrentSendDetails = config.api + PREFIX + 'export-current-send-details';
export const getUseStoredFalg = params => requests(PREFIX + 'get-ecm-store-flag', params);
......@@ -41,8 +41,9 @@
</template>
</el-table-column>
<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="150px" fixed="right">
<el-table-column label="操作" align="left" width="180px" fixed="right">
<template slot-scope="scope">
<el-button type="text" @click="refreshPutOnCount(scope.row.putonId)" v-if="scope.row.issuingQuantity - scope.row.getedQuantity > 0">刷新</el-button>
<el-button type="text" v-if="scope.row.putonStatus === 2 || scope.row.putonStatus === 3" @click="$router.push('/card/groupinfo/' + scope.row.putonId)">详情</el-button>
<el-button type="text" v-if="scope.row.putonStatus !== 2 && scope.row.putonStatus !== 3 && scope.row.canEdit !== false && scope.row.putonStatus !== 5 && scope.row.putonStatus !== 6" @click="$router.push('/card/groupsend/' + scope.row.putonId)">编辑</el-button>
<el-button type="text" v-if="scope.row.putonTime > nowDate" @click="$router.push('/card/record/sendInfo/' + scope.row.putonId)">记录</el-button>
......@@ -56,7 +57,7 @@
</section>
</template>
<script>
import { cardRecordPage, deleteCardPuton } from '@/service/api/cardApi.js';
import { cardRecordPage, deleteCardPuton, refreshPutOnCount } from '@/service/api/cardApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
import timeCounts from '@/components/timeCount/index.vue';
import tableMethods from '@/mixins/tableMethods.js';
......@@ -159,6 +160,17 @@ export default {
this.$tips({ type: 'error', message: '删除失败!' });
});
},
// 刷新当条营销记录
refreshPutOnCount(putonId) {
refreshPutOnCount({ cardPutOnId: putonId }).then(res => {
if (res.errorCode === 0) {
this.$tips({ type: 'success', message: '更新成功!' });
this.getTableList();
} else {
this.$tips({ type: 'error', message: '更新失败!' });
}
});
},
filterStatus(val) {
let result = { label: '执行错误', type: 'danger' };
switch (val) {
......
......@@ -5,6 +5,11 @@
<el-select class="dm-select" clearable v-model="listParams.success" placeholder="所有条件" @change="search">
<el-option v-for="(v, i) in successOptions" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
<el-select class="dm-select" placeholder="所有条件" v-model="listParams.status" @change="changeStatus">
<el-option label="正在进行中" :value="1"></el-option>
<el-option label="已删除" :value="0"></el-option>
</el-select>
<!-- <el-button type="text" @click="goHistory"> 历史记录</el-button> -->
<el-button icon="iconfont icon-icon_yunxiazai" class="fr" type="primary" @click="exportCurrentSendDetails"> 导出列表</el-button>
</div>
<div class="dm-wrap">
......@@ -83,7 +88,8 @@ export default {
pageSize: 20,
success: '',
beginTime: '',
endTime: ''
endTime: '',
status: 1
},
userMemberInfo: '', // 下面列表搜索
total: 0,
......@@ -185,6 +191,10 @@ export default {
this.listParams.ecmMarketingTypeRelationIds = list;
this.ecmCurrentSendDetails();
},
changeStatus() {
this.listParams.currentPage = 1;
this.ecmCurrentSendInfos();
},
search() {
this.listParams.currentPage = 1;
this.ecmCurrentSendInfos();
......@@ -211,7 +221,8 @@ export default {
beginTime: this.listParams.beginTime,
endTime: this.listParams.endTime,
memberInfo: this.listParams.memberInfo,
success: this.listParams.success
success: this.listParams.success,
status: this.listParams.status
});
this.infoList = res.result || [];
this.$nextTick(_ => {
......
import { _debounce } from '@/utils/index';
import { getEcmInfo, saveEcmInfo } from '@/service/api/ecmApi.js';
import { getEcmInfo, saveEcmInfo, getUseStoredFalg } from '@/service/api/ecmApi.js';
import { getCardManualSetting } from '@/service/api/cardApi.js';
import { listTemplateVariables } from '@/service/api/msgApi.js';
import { klflStrategy } from '@/service/api/gameApi.js'; // 会员等级列表接口
......@@ -19,7 +19,7 @@ export default {
creatorId: '',
code: '1001',
loading: false,
effectActionOptions: [{ value: 'subscribe', label: '关注触发' }, { value: 'authentication', label: '认证触发' }, { value: 'consume', label: '消费触发' }, { value: 'upgrade', label: '会员卡升级触发' }, { value: 'degrade', label: '会员卡降级触发' }], // eslint-disable-line
effectActionOptions: [{ value: 'subscribe', label: '关注触发' }, { value: 'authentication', label: '认证触发' }, { value: 'consume', label: '消费触发' }, { value: 'degrade', label: '会员卡降级触发' }, { value: 'upgrade', label: '会员卡升级触发' }, ], // eslint-disable-line
marketingTimesTypeOptions: [{ value: 0, label: '总共触发' }, { value: 1, label: '每天触发' }, { value: 2, label: '每周触发' }, { value: 3, label: '每月触发' }, { value: 4, label: '每年触发' }, { value: -1, label: '无限次触发' }], // eslint-disable-line
execDateType: [
{ label: '每天', value: 1 },
......@@ -79,7 +79,9 @@ export default {
lowest_cost_count: '',
max_cost_count: '',
// store_mode: 0,
order_store: ''
order_store: '',
storedLowest: 0,
storedMax: 0
},
template: {
headerColor: '#173177',
......@@ -146,7 +148,9 @@ export default {
count: false, // 消费件数
good: false // 消费商品
},
discount_limit: { type: 1, count: undefined, flag: false } // 适用商品折扣
storedChecked: false,
discount_limit: { type: 1, count: undefined, flag: false }, // 适用商品折扣
useStoredFlag: 0 //显示储值触发和会员卡升级事件
};
},
components: {
......@@ -390,6 +394,13 @@ export default {
}
});
}
if (this.form.effectAction === 'stored' && result.effectTriggerJson) {
let cost = JSON.parse(result.effectTriggerJson) || {};
this.storedChecked = true;
this.form.storedLowest = cost.lowest_cost;
this.form.storedMax = cost.max_cost;
}
}
if (!this.form.templateUseEnable) return;
let template = null;
......@@ -620,6 +631,17 @@ export default {
return;
}
}
// 如果是储值触发
if (this.form.effectAction === 'stored') {
if (this.storedChecked && !this.form.storedLowest && !this.form.storedMax) {
this.$tips({ type: 'warning', message: '请填写储值金额区间值' });
return;
}
if (this.storedChecked && this.form.storedLowest && this.form.storedMax && this.form.storedLowest > this.form.storedMax) {
this.$tips({ type: 'warning', message: '储值金额区间值填写错误' });
return;
}
}
this.$refs[formName].validate(valid => {
if (valid) {
let params = {
......@@ -703,6 +725,9 @@ export default {
}
params = Object.assign(params, consumeObj); // 合并消费触发数据
}
if (this.form.effectAction === 'stored' && this.storedChecked) {
params.effectTriggerJson = JSON.stringify({ lowest_cost: this.form.storedLowest || 0, max_cost: this.form.storedMax || 0 });
}
params.marketingActivityId = this.form.marketingActivityId || ''; // 否 String 营销场景
// 如果适用人群-人群筛选器可编辑:需要调用await this.$refs.threshold.triggerPeopleSet(); 强制触发回显,否则数据保存有错误
// await this.triggerPeopleSet();
......@@ -1006,6 +1031,12 @@ export default {
);
},
created() {
getUseStoredFalg().then(res => {
this.useStoredFlag = res.result.useStoredFlag;
if (this.useStoredFlag) {
this.effectActionOptions.push({ value: 'stored', label: '储值触发' });
}
});
// 设置面包屑
let breadcrumbName = '智能营销编辑';
if (this.isAdd) {
......
......@@ -124,7 +124,7 @@
<el-button type="primary" @click="handleXxSyspClick" class="fl mt5" size="mini">{{ !isAdd ? '查看' : '编辑' }}</el-button>
<el-button v-show="xxSysp.filterAbbrInfo.length && isAdd" @click="handleXxSyspReset" class="fl mt5" size="mini">清空</el-button>
</div>
<div v-show="consumeChecked.good" class="fz12 gray">勾选消费商品后,消费金额、消费件数仅指适用消费商品的金额和件数。</div>
<div v-show="consumeChecked.good" class="fz12 gray" style="color:#f5222d">勾选消费商品后,消费金额、消费件数仅指适用消费商品的金额和件数。</div>
</div>
</div>
</el-form-item>
......@@ -143,7 +143,7 @@
<el-input-number controls-position="right" :disabled="!isAdd" v-model="discount_limit.count" :precision="2" :min="0" :max="10" class="w150"></el-input-number>&nbsp;&nbsp;
</div>
<span class="fz14 gray" v-else>不限制消费商品折扣</span>
<div v-if="discount_limit.flag" class="fz12 gray">* 商品折扣=订单实付/订单总金额</div>
<div v-if="discount_limit.flag" class="fz12 gray">* 商品折扣 = 订单项实付金额 / 订单项应付金额</div>
</div>
</div>
</el-form-item>
......@@ -187,6 +187,30 @@
</el-select>
</el-form-item>
</section>
<!-- 储值触发配置 -->
<section class="dm-form__wrap" v-if="form.effectType == 0 && form.effectAction === 'stored'">
<h3 class="dm-title__label">
储值触发配置
<i class="dm-title__label--icon iconfont icon-xinxixianshi"></i>
<span class="gray fz13">仅适用于线下单笔充值场景;消费、退款等不会触发</span>
</h3>
<p class="fz14 gray mb20 ml10">同时满足以下条件即可触发</p>
<el-form-item>
<div class="no_label_form_label">
<el-checkbox class="el-form-item__label align-left" :disabled="!isAdd" v-model="storedChecked">储值金额</el-checkbox>
<div>
<span class="fz14 gray" v-show="!storedChecked">任意储值金额</span>
<div v-show="storedChecked">
<el-input-number :disabled="!isAdd" controls-position="right" min="" :max="1000000" style="width:150px;" v-model="form.storedLowest"></el-input-number>
<span class="ml5 mr5"></span>
<el-input-number :disabled="!isAdd" controls-position="right" min="" :max="1000000" style="width:150px;" v-model="form.storedMax"></el-input-number>
<span class="pl5"></span>
<el-popover placement="right" title="" width="200" trigger="hover" content="最大值最小值可选填其一或两个都填写,包含边界值"><i class="el-icon-info ml5 gray" slot="reference"></i></el-popover>
</div>
</div>
</div>
</el-form-item>
</section>
<!-- 营销次数配置 重复 -->
<section class="dm-form__wrap" v-if="form.effectType == 1">
<h3 class="dm-title__label">
......@@ -201,7 +225,7 @@
</div>
</section>
<!-- 营销次数配置 实时触点 -->
<section class="dm-form__wrap" v-if="form.effectType == 0 && ['consume', 'upgrade', 'degrade'].includes(form.effectAction)">
<section class="dm-form__wrap" v-if="form.effectType == 0 && ['consume', 'upgrade', 'degrade', 'stored'].includes(form.effectAction)">
<h3 class="dm-title__label">
营销次数配置
<i class="dm-title__label--icon iconfont icon-xinxixianshi"></i>
......@@ -251,7 +275,7 @@
<section class="dm-form__wrap">
<h3 class="dm-title__label">营销事件</h3>
<!-- 只有实时才是单图文 -->
<marketing-event :readOnly="isInfo" show-out-coupon-icon 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>
<marketing-event :readOnly="isInfo" show-out-coupon-icon 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" :use-stored="useStoredFlag && ['consume', 'stored'].includes(form.effectAction)"></marketing-event>
<!-- 只有非实时&&选择卡券了展示提示 -->
<div v-if="currentCard.comName && form.effectType != 0 && couponAutoGetFlag" class="fz13 regular-font-color line-height2" style="margin-left:120px;margin-top:30px;">
* 用户在领取卡券后需要<b class="bold">同步至ERP</b>,如果关闭用户<b class="bold">手动领取</b>,卡券在<b class="bold">批量投放</b>时会需要将卡券信息批量同步至ERP。 <br />
......
......@@ -44,7 +44,7 @@
</template>
<script>
import activitySelect from '@/components/activity-select/index.vue';
import { loadEcmList, deleteEcm, offlineEcmPlan } from '@/service/api/ecmApi.js';
import { loadEcmList, deleteEcm, offlineEcmPlan, getUseStoredFalg } 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 {
......@@ -130,6 +130,11 @@ export default {
activitySelect
},
created() {
getUseStoredFalg().then(res => {
if (res.result.useStoredFlag) {
this.marketingTypeOptions = [...this.marketingTypeOptions, { value: 'grade', label: '会员卡升级' }];
}
});
this.loadEcmList();
this.$store.commit('aside_handler', false);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }]); // eslint-disable-line
......
......@@ -164,3 +164,6 @@ export const deleteMarketingType = params => requests(PREFIX + 'delete-marketing
//模板库--分页列表 (有效)
export const LoadTempList = params => requests(PREFIX + 'load-message-templateList', params);
//会员等级
export const getCardLevelList = params => requests('api-plug/member-grade-list', params);
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1616486164284" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7879" xmlns:xlink="http://www.w3.org/1999/xlink" width="200.1953125" height="200"><defs><style type="text/css"></style></defs><path d="M833.532723 837.12H22.524723c-7.168 0-14.848-4.096-18.432-9.728-4.608-6.144-5.12-13.824-2.56-20.992l168.96-604.16c3.584-9.216 11.776-14.848 21.504-14.848h810.496c7.168 0 14.848 4.096 18.432 9.728 4.608 6.144 5.12 13.824 2.56 20.992l-168.96 604.16c-3.072 8.704-11.264 14.848-20.992 14.848z m-777.728-46.08h761.856l152.064-558.592H207.868723L55.804723 791.04z" fill="#606266" p-id="7880"></path><path d="M833.532723 837.12H22.524723c-7.168 0-14.848-4.096-18.432-9.728-4.608-6.144-5.12-13.824-2.56-20.992l168.96-604.16c3.584-9.216 11.776-14.848 21.504-14.848h810.496c7.168 0 14.848 4.096 18.432 9.728 4.608 6.144 5.12 13.824 2.56 20.992l-168.96 604.16c-3.072 8.704-11.264 14.848-20.992 14.848z m-777.728-46.08h761.856l152.064-558.592H207.868723L55.804723 791.04z" fill="#606266" p-id="7881"></path><path d="M478.204723 393.216L372.732723 634.88H320.508723L219.132723 393.216H276.988723l70.656 182.272 72.192-182.272h58.368z m25.088 241.664V393.216h51.712V634.88H503.292723z m152.064-83.968V634.88h-51.712V393.216h120.832c22.016 0 37.888 1.536 47.104 4.608 15.872 5.12 28.672 16.384 37.888 33.28 6.656 12.288 10.24 26.624 10.24 40.96 0 12.288-2.048 24.064-6.656 34.816-4.608 11.264-10.752 20.48-18.432 27.136-7.168 6.144-15.36 10.752-23.04 12.8-7.68 2.048-18.944 3.584-33.28 3.584H655.868723l-0.512 0.512z m0-43.52h70.144c12.288 0 21.504-1.536 26.624-5.632 7.168-6.144 11.264-16.384 11.264-31.744 0-16.384-5.632-26.624-16.896-30.72-4.096-1.536-10.752-2.56-19.456-2.56H655.868723v70.656h-0.512z" fill="#606266" p-id="7882"></path></svg>
\ No newline at end of file
......@@ -458,4 +458,16 @@
border-radius:4px;
display: inline-block;
position: relative;
}
\ No newline at end of file
vertical-align: middle;
margin: 0 10px;
}
.dm-grade__item__wrap {
width: 300px;
padding: 18px 20px;
border: 1px solid rgba(228,231,237,1);
border-radius:4px;
display: inline-block;
position: relative;
vertical-align: middle;
margin: 0 10px;
}
<template>
<div class="dm-grade__item__wrap">
<div class="fz16">会员卡升级</div>
<p class="mt15 fz24 primary-font-color">
{{ item.title }}
</p>
<p class="minor-font-color mt10 line-height1_5 fz12">*若当前会员卡等级超过该等级,则不会进行会员升级。</p>
</div>
</template>
<script>
export default {
name: 'item-grade',
props: {
item: {
type: Object,
default() {
return {};
}
}
}
};
</script>
<template>
<el-dialog title="会员卡升级" :visible.sync="show" width="340px" @closed="close">
等级:
<el-select style="width:220px" v-model="cardLevel" placeholder="等级选择">
<el-option v-for="(el, i) in cardLevelList" :key="i" :label="el.value" :value="el.key"></el-option>
</el-select>
<p class="minor-font-color mt10 line-height1_5 fz12">*若当前会员卡等级超过该等级,则不会进行会员升级。</p>
<span slot="footer" class="dialog-footer">
<el-button @click="close">关 闭</el-button>
<el-button type="primary" @click="addItem">确 定</el-button>
</span>
</el-dialog>
</template>
<script>
import { getCardLevelList } from '../assets/api.js';
export default {
name: 'lib-grade',
props: {
item: {
type: Object,
default() {
return {};
}
},
show: {
type: Boolean,
default: false
}
},
data() {
return {
cardLevelList: [],
cardLevel: ''
};
},
mounted() {
getCardLevelList({ requestProject: 'marketing', key: 'memberGrade' }).then(res => {
if (res.errorCode === 0) {
this.cardLevelList = res.result;
} else {
this.$message({ type: 'warning', message: '接口异常' });
}
});
},
watch: {
show(val) {
if (val) {
this.cardLevel = this.item.relationId || '';
} else {
this.cardLevel = '';
}
}
},
methods: {
close() {
this.$emit('update:show', false);
},
addItem() {
if (!this.cardLevel) {
return this.$message({ type: 'warning', message: '未选择会员卡等级' });
}
let title = this.cardLevelList.find(item => item.key === this.cardLevel).value;
this.$emit('sendItem', { title, relationId: this.cardLevel, comName: 'grade' });
this.close();
}
}
};
</script>
<template>
<div class="inline-block dm-marketing__opt">
<span v-for="(v, i) in options" :key="i" class="dm-marketing__opt__item" @click="addItem(v)">
<span v-for="(v, i) in options" :key="i" class="dm-marketing__opt__item" :class="{ 'is-disabled': v.disabled }" @click="addItem(v)">
<img :src="v.img" alt="" srcset="" /><span> {{ v.name }}</span>
</span>
</div>
......@@ -19,8 +19,19 @@ export default {
},
methods: {
addItem(item) {
if (item.disabled) return;
this.$emit('addItem', item);
}
}
};
</script>
<style lang="scss" scoped>
.is-disabled {
span,
img {
color: #c0c4cc !important;
}
cursor: not-allowed;
}
</style>
......@@ -51,6 +51,7 @@ import itemImage from './components/item-image.vue';
import itemMessage from './components/item-Message.vue';
import itemTeltask from './components/item-teltask.vue';
import itemIntegral from './components/item-integral.vue';
import itemGrade from './components/item-grade';
//弹窗组件
import libTeletext from './components/lib-teletext.vue';
import libMessage from './components/lib-Message.vue';
......@@ -60,10 +61,11 @@ import libWxa from './components/lib-wxa.vue';
import libImage from './components/lib-image.vue';
import libTeltask from './components/lib-teltask.vue';
import libIntegral from './components/lib-integral.vue';
import libGrade from './components/lib-grade';
// 全部的操作项
// eslint-disable-next-line
const allOptions = [{ name: '图文', value: 'teletext', key: 1, img: require('./assets/img/teletext.svg') }, { name: '文本', value: 'text', key: 2, img: require('./assets/img/text.svg') }, { name: '小程序', value: 'wxa', key: 3, img: require('./assets/img/wxa.svg') }, { name: '图片', value: 'image', key: 4, img: require('./assets/img/image.svg') }, { name: '卡券', value: 'card', key: 5, img: require('./assets/img/card.svg') }, { name: '短信', value: 'message', key: 6, img: require('./assets/img/message.svg') }, { name: '话务', value: 'teltask', key: 7, img: require('./assets/img/teltask.svg')}, { name: '积分', value: 'integral', key: 8, img: require('./assets/img/integral.svg') }];
let allOptions = [{ name: '图文', value: 'teletext', key: 1, img: require('./assets/img/teletext.svg') }, { name: '文本', value: 'text', key: 2, img: require('./assets/img/text.svg') }, { name: '小程序', value: 'wxa', key: 3, img: require('./assets/img/wxa.svg') }, { name: '图片', value: 'image', key: 4, img: require('./assets/img/image.svg') }, { name: '卡券', value: 'card', key: 5, img: require('./assets/img/card.svg') }, { name: '短信', value: 'message', key: 6, img: require('./assets/img/message.svg') }, { name: '话务', value: 'teltask', key: 7, img: require('./assets/img/teltask.svg')}, { name: '积分', value: 'integral', key: 8, img: require('./assets/img/integral.svg') }];
export default {
name: 'vue-gic-marketing-event',
components: {
......@@ -86,7 +88,9 @@ export default {
'lib-wxa': libWxa,
'lib-image': libImage,
'lib-teltask': libTeltask,
'lib-integral': libIntegral
'lib-integral': libIntegral,
'item-grade': itemGrade,
'lib-grade': libGrade
},
props: {
// 页面编码——- 1001-智能引擎; 1002-微信营销; 1003-被关注回复; 1004-关键字回复
......@@ -130,6 +134,10 @@ export default {
showOutCouponIcon: {
type: Boolean,
default: false
},
useStored: {
type: Number,
default: 0
}
},
data() {
......@@ -145,8 +153,38 @@ export default {
};
},
created() {
this.allOptions = [...allOptions];
if (this.useStored) {
this.allOptions.push({ name: '会员卡升级', value: 'grade', key: 9, img: require('./assets/img/grade.svg') }); //eslint-disable-line
}
this.init();
},
watch: {
useStored: {
handler() {
if (this.useStored) {
this.options = [ ...this.options, { name: '会员卡升级', value: 'grade', key: 9, img: require('./assets/img/grade.svg'), disabled: false }]; //eslint-disable-line
} else {
this.options = this.options.filter(item => item.value !== 'grade');
}
}
},
list() {
if (this.list.some(item => item.comName === 'item-grade')) {
this.options.forEach(item => {
if (item.value == 'grade') {
item.disabled = true;
}
});
} else {
this.options.forEach(item => {
if (item.value == 'grade') {
item.disabled = false;
}
});
}
}
},
methods: {
/*------------------逻辑方法--------------*/
// 初始化获取配置项
......@@ -157,7 +195,7 @@ export default {
this.maxEventCount = Number(res.result.maxEventCount || 0);
let list = res.result.list || [];
let optionNameList = list.map(v => v.eventName);
allOptions.map(v => {
this.allOptions.map(v => {
if (optionNameList.indexOf(v.name) >= 0) {
this.options.push(v);
}
......@@ -206,6 +244,9 @@ export default {
this.list.push({ comName: 'item-integral', item: { multipleNum: v.multipleNum, integralType: v.integralType, integralCount: v.integralCount, ecmMarketingTypeRelationId: v.ecmMarketingTypeRelationId, relationId: v.relationId, ecmPlanId: v.ecmPlanId } });
// this.list.push({ comName: 'item-teltask', item: { ...v.teltask, ecmMarketingTypeRelationId: v.ecmMarketingTypeRelationId, relationId: v.relationId, ecmPlanId: v.ecmPlanId } });
break;
case 'grade': // 8 积分
this.list.push({ comName: 'item-grade', item: { title: v.title, ecmMarketingTypeRelationId: v.ecmMarketingTypeRelationId, relationId: v.relationId, ecmPlanId: v.ecmPlanId } });
break;
}
});
this.hasReturnCard();
......@@ -290,6 +331,12 @@ export default {
params.title = `${val.multipleNum}倍积分`;
}
}
//9.会员卡升级
if (val.comName === 'grade') {
params.title = val.title;
params.relationId = val.relationId;
}
// 接口请求 保存
saveUpdateMarketingType({ marketingType: JSON.stringify(params) })
.then(res => {
......@@ -305,6 +352,10 @@ export default {
this.$message({ type: 'warning', message: `最多只能添加${this.maxEventCount}个营销事件` });
return;
}
// if (v.value === 'grade' && this.list.some(item => item.comName === 'item-grade')) {
// this.$message({ type: 'warning', message: `已添加会员卡升级营销事件` });
// return;
// }
// 判断是否欠费
if (v.value === 'message' && this.checkAccountState()) return;
this.dialogCom = 'lib-' + v.value;
......
<template>
<el-dialog title="拼图配置" :visible.sync="show" width="40%" :before-close="close">
<div v-loading="loading">
<div class="layout--tips" style="margin-top:0">
<i class="el-icon-info"></i>
免费赠送游戏前提:需要在前一天玩过游戏
</div>
<div style="margin-top:20px" v-loading="loading">
<h3 class="fz16 pb20">机制设置</h3>
<h4 class="fz14 gray pb20">用户免费体力数</h4>
<el-radio v-model="form.sysGiveValueType" :label="1">
......
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