Commit ef1e1e7d by 无尘

fix: 修改活动中心配置

parent 21225630
<!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./favicon.ico><title>分享有礼</title><link href=./static/css/app.e1e851ec3585d471e95f45780145e857.css rel=stylesheet></head><body style="background-color: #f0f2f5;min-width: 1400px;"><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/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/lib/elementUI/index.2.5.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.33.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.03.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.29.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.38.js></script><script src=//web-1251519181.file.myqcloud.com/components/aside-menu.2.0.11.js></script><script src=//web-1251519181.file.myqcloud.com/components/area-ab.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.1.91.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.12.js></script><script type=text/javascript src=./static/js/manifest.3051b8db8b0e115d993d.js></script><script type=text/javascript src=./static/js/vendor.14f8172dd3290d7d86d8.js></script><script type=text/javascript src=./static/js/app.fea04cb8f4b9cb9f749e.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./favicon.ico><title>分享有礼</title><link href=./static/css/app.daaf2737402874bbe0da965d16551654.css rel=stylesheet></head><body style="background-color: #f0f2f5;min-width: 1400px;"><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/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/lib/elementUI/index.2.5.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.33.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.03.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.29.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.38.js></script><script src=//web-1251519181.file.myqcloud.com/components/aside-menu.2.0.11.js></script><script src=//web-1251519181.file.myqcloud.com/components/area-ab.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.1.91.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.12.js></script><script type=text/javascript src=./static/js/manifest.c8a326fde315870d4bcf.js></script><script type=text/javascript src=./static/js/vendor.14f8172dd3290d7d86d8.js></script><script type=text/javascript src=./static/js/app.fea04cb8f4b9cb9f749e.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 n=window.webpackJsonp;window.webpackJsonp=function(r,c,f){for(var a,i,u,d=0,b=[];d<r.length;d++)i=r[d],t[i]&&b.push(t[i][0]),t[i]=0;for(a in c)Object.prototype.hasOwnProperty.call(c,a)&&(e[a]=c[a]);for(n&&n(r,c,f);b.length;)b.shift()();if(f)for(d=0;d<f.length;d++)u=o(o.s=f[d]);return u};var r={},t={15:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],f=document.createElement("script");f.type="text/javascript",f.charset="utf-8",f.async=!0,f.timeout=12e4,o.nc&&f.setAttribute("nonce",o.nc),f.src=o.p+"static/js/"+e+"."+{0:"faf56cdf4f10498cbe2c",1:"5b546fa38466a0b05e37",2:"27da330c910cf42beb39",3:"b20b49b2fa998896c6f0",4:"e42560cdcc9ef2f1fe8a",5:"8ecd133bf1cda0bdffb4",6:"fda09ea240d5c03fd4f4",7:"b0fd74564cc799593b8f",8:"fe9ec49f63ecd8e527ba",9:"522a01ff8d619d2bf030",10:"e16b73d2d4b922255e52",11:"c11d02c33702d00b2e2e",12:"b96af0829c134b12bfbb"}[e]+".js";var a=setTimeout(i,12e4);function i(){f.onerror=f.onload=null,clearTimeout(a);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return f.onerror=f.onload=i,c.appendChild(f),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="./",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,f){for(var a,d,i,u=0,b=[];u<r.length;u++)d=r[u],t[d]&&b.push(t[d][0]),t[d]=0;for(a in c)Object.prototype.hasOwnProperty.call(c,a)&&(e[a]=c[a]);for(n&&n(r,c,f);b.length;)b.shift()();if(f)for(u=0;u<f.length;u++)i=o(o.s=f[u]);return i};var r={},t={15:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],f=document.createElement("script");f.type="text/javascript",f.charset="utf-8",f.async=!0,f.timeout=12e4,o.nc&&f.setAttribute("nonce",o.nc),f.src=o.p+"static/js/"+e+"."+{0:"faf56cdf4f10498cbe2c",1:"5b546fa38466a0b05e37",2:"ed566b1e07400f265f24",3:"c97ed0ddd8c9f7390362",4:"e42560cdcc9ef2f1fe8a",5:"8ecd133bf1cda0bdffb4",6:"fda09ea240d5c03fd4f4",7:"b0fd74564cc799593b8f",8:"fe9ec49f63ecd8e527ba",9:"522a01ff8d619d2bf030",10:"e16b73d2d4b922255e52",11:"c11d02c33702d00b2e2e",12:"b96af0829c134b12bfbb"}[e]+".js";var a=setTimeout(d,12e4);function d(){f.onerror=f.onload=null,clearTimeout(a);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return f.onerror=f.onload=d,c.appendChild(f),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="./",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
......@@ -4,7 +4,7 @@
* @Author: 无尘
* @Date: 2019-11-18 10:37:02
* @LastEditors: 无尘
* @LastEditTime: 2019-11-28 14:31:15
* @LastEditTime: 2019-11-28 19:26:46
-->
<!--
<base-config @submitNext="submitNext"></base-config>
......@@ -14,91 +14,30 @@ import baseConfig from '@/components/active-config/base-config.vue';
<template>
<div class="base-config-content">
<div class="config-title font-14 color-303133">基本信息</div>
<el-form
label-width="114px"
:model="activeInfoData"
ref="baseForm"
:rules="rules"
>
<el-form-item
v-if="$route.query.activityId"
label="活动目的:"
prop=""
>
{{activeInfoData.parentGoalName}} - {{activeInfoData.goalName}}
<el-form label-width="114px" :model="activeInfoData" ref="baseForm" :rules="rules">
<el-form-item v-if="$route.query.activityId" label="活动目的:" prop=""> {{ activeInfoData.parentGoalName }} - {{ activeInfoData.goalName }} </el-form-item>
<el-form-item v-if="$route.query.activityId" label="转化路径:" prop="">
<div>{{ activeInfoData.router && activeInfoData.router.length ? activeInfoData.router.map(ele => ele.transName).join('→') : '' }}</div>
</el-form-item>
<el-form-item
v-if="$route.query.activityId"
label="转化路径:"
prop=""
>
<div>{{activeInfoData.router&&activeInfoData.router.length ? activeInfoData.router.map(ele=>ele.transName).join('→') : ''}}</div>
<el-form-item v-if="$route.query.activityId && activeInfoData.activityMarketPageName" label="活动营销页:" prop=""> </el-form-item>
<el-form-item v-if="$route.query.activityId && activeInfoData.gamePlanName" label="游戏计划:" prop=""> </el-form-item>
<el-form-item v-if="$route.query.activityId && activeInfoData.cardCoupName" label="卡券:" prop=""> </el-form-item>
<el-form-item label="活动名称:" prop="activityName">
<limitInput :inputWidth="350" :disflag="$route.query.interfaceId ? true : false" :inputValue.sync="activeInfoData.activityName" :holder="'请输入活动名称'" :getByType="'word'" :maxLength="30"> </limitInput>
</el-form-item>
<el-form-item
v-if="$route.query.activityId && activeInfoData.activityMarketPageName"
label="活动营销页:"
prop=""
> </el-form-item>
<el-form-item
v-if="$route.query.activityId && activeInfoData.gamePlanName"
label="游戏计划:"
prop=""
> </el-form-item>
<el-form-item
v-if="$route.query.activityId && activeInfoData.cardCoupName"
label="卡券:"
prop=""
> </el-form-item>
<el-form-item
label="活动名称:"
prop="activityName"
>
<limitInput
:inputWidth="350"
:disflag="$route.query.interfaceId ? true : false"
:inputValue.sync="activeInfoData.activityName"
:holder="'请输入活动名称'"
:getByType="'word'"
:maxLength="30"
> </limitInput>
</el-form-item>
<el-form-item
label="活动有效期:"
prop="dateRange"
>
<el-date-picker
class="m-l-10"
prefix-icon="el-icon-time"
:picker-options="pickerOptions"
v-model="activeInfoData.dateRange"
@change="changeDate"
:editable="false"
:value-format="'yyyy-MM-dd HH:mm:ss'"
:default-time="['00:00:00', '23:59:59']"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
> </el-date-picker>
<el-form-item label="活动有效期:" prop="dateRange">
<el-date-picker class="m-l-10" prefix-icon="el-icon-time" :picker-options="pickerOptions" v-model="activeInfoData.dateRange" @change="changeDate" :editable="false" :value-format="'yyyy-MM-dd HH:mm:ss'" :default-time="['00:00:00', '23:59:59']" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
</el-form-item>
<el-form-item class="m-t-50">
<el-button
type="primary"
@click="returnBack"
>返回</el-button>
<el-button
type="primary"
@click="submitForm('baseForm')"
>下一步</el-button>
<el-button type="primary" @click="returnBack">返回</el-button>
<el-button type="primary" @click="submitForm('baseForm')">下一步</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
import limitInput from '@/components/limit-input.vue';
import { getRequest,postRequest } from '@/api/api';
import { getRequest, postRequest } from '@/api/api';
// import showMsg from '@/common/js/showmsg';
import errMsg from '@/common/js/error';
import timeFormat from '@/common/js/timeFormat';
......@@ -121,6 +60,7 @@ export default {
cardCoupId: '',
activityMarketPageName: '',
gamePlanName: '',
gamePlanUrl: '',
cardCoupName: '',
router: '',
activityName: '',
......@@ -147,7 +87,7 @@ export default {
}
return time.getTime() < Date.now() - 8.64e6;
}
},
}
};
},
methods: {
......@@ -234,7 +174,7 @@ export default {
}
resData.result.startDate = timeFormat.timeToDateTime(resData.result.startDate);
resData.result.endDate = timeFormat.timeToDateTime(resData.result.endDate);
resData.result.dateRange = [resData.result.startDate,resData.result.endDate];
resData.result.dateRange = [resData.result.startDate, resData.result.endDate];
that.activeInfoData = resData.result;
return false;
}
......@@ -246,7 +186,7 @@ export default {
message: error.message
});
});
},
}
},
mounted() {
const that = this;
......@@ -261,17 +201,18 @@ export default {
that.activeInfoData.activityMarketPageName = info.activityMarketPageName;
that.activeInfoData.gamePlanId = info.gameValue[1];
that.activeInfoData.gamePlanName = info.gamePlanName;
that.activeInfoData.gamePlanUrl = info.gamePlanUrl;
that.activeInfoData.cardCoupId = info.cardValue;
that.activeInfoData.cardCoupName = info.cardCoupName;
that.activeInfoData.router = info.pathArr
that.activeInfoData.router = info.pathArr;
}
// 上一步获取状态内数据
if (Object.keys(that.$store.state.baseInfo).length) {
that.$nextTick(()=> {
that.$nextTick(() => {
that.activeInfoData = JSON.parse(JSON.stringify(that.$store.state.baseInfo));
})
});
}
},
}
};
</script>
<style lang="less" scoped>
......
......@@ -4,7 +4,7 @@
* @Author: 无尘
* @Date: 2019-11-18 10:37:02
* @LastEditors: 无尘
* @LastEditTime: 2019-11-28 14:06:31
* @LastEditTime: 2019-11-28 15:20:58
-->
<!--
<card-config @submitBack="submitBack" @submitNext="submitNext"></card-config>
......@@ -14,51 +14,26 @@ import cardConfig from '@/components/active-config/card-config.vue';
<template>
<div class="card-config-content">
<div class="config-title font-14 color-303133">小程序卡片配置</div>
<div
role="alert"
class="el-alert el-alert--info"
>
<div role="alert" class="el-alert el-alert--info">
<i class="el-alert__icon el-icon-info font-12 color-1890ff"></i>
<div class="el-alert__content">
<span class="el-alert__title color-606266 font-14 font-w-400">1. 邀请人可在活动中心一键转发【会员认证流程】的小程序卡片给微信好友,请对小程序卡片的样式进行设置。优秀的活动标题和封面图可以大幅提升受邀人的参与积极性!<br />
2. 受邀人服务号关注后,系统将自动发送【会员认证流程】的小程序卡片,请对小程序卡片的样式进行设置。优秀的活动标题和封面图可以大幅提升受邀人的参与积极性!</span>
<span class="el-alert__title color-606266 font-14 font-w-400"
>1. 邀请人可在活动中心一键转发【会员认证流程】的小程序卡片给微信好友,请对小程序卡片的样式进行设置。优秀的活动标题和封面图可以大幅提升受邀人的参与积极性!<br />
2. 受邀人服务号关注后,系统将自动发送【会员认证流程】的小程序卡片,请对小程序卡片的样式进行设置。优秀的活动标题和封面图可以大幅提升受邀人的参与积极性!</span
>
</div>
</div>
<div class="form-wrap flex">
<el-form
label-width="114px"
:model="activeInfoData"
ref="cardForm"
:rules="rules"
>
<el-form-item
label="页面标题:"
prop="appletTitle"
>
<limitInput
:inputWidth="503"
:disflag="$route.query.interfaceId ? true : false"
:inputValue.sync="activeInfoData.appletTitle"
:holder="'请输入页面标题'"
:getByType="'word'"
:maxLength="40"
> </limitInput>
<el-form label-width="114px" :model="activeInfoData" ref="cardForm" :rules="rules">
<el-form-item label="页面标题:" prop="appletTitle">
<limitInput :inputWidth="503" :disflag="$route.query.interfaceId ? true : false" :inputValue.sync="activeInfoData.appletTitle" :holder="'请输入页面标题'" :getByType="'word'" :maxLength="40"> </limitInput>
</el-form-item>
<el-form-item
label="海报上传:"
prop="palyBillUrl"
>
<single-upload v-model="activeInfoData.palyBillUrl"> </single-upload>
<el-form-item label="海报上传:" prop="playBillUrl">
<single-upload v-model="activeInfoData.playBillUrl"> </single-upload>
</el-form-item>
<el-form-item class="m-t-50">
<el-button
type="primary"
@click="submitBack"
>上一步</el-button>
<el-button
type="primary"
@click="submitForm('cardForm')"
>下一步</el-button>
<el-button type="primary" @click="submitBack">上一步</el-button>
<el-button type="primary" @click="submitForm('cardForm')">下一步</el-button>
</el-form-item>
</el-form>
<div class="form-preview">
......@@ -67,10 +42,7 @@ import cardConfig from '@/components/active-config/card-config.vue';
<div class="form-preview-inner">
<div class="form-preview-title">{{ activeInfoData.appletTitle }}</div>
<div class="form-preview-img flex flex-pack-center flex-align-center">
<img
:src="activeInfoData.palyBillUrl"
alt=""
/>
<img :src="activeInfoData.playBillUrl" alt="" />
</div>
</div>
</div>
......@@ -96,11 +68,11 @@ export default {
return {
activeInfoData: {
appletTitle: '',
palyBillUrl: ''
playBillUrl: ''
},
rules: {
appletTitle: [{ required: true, message: '请输入页面标题', trigger: 'blur' }],
palyBillUrl: [{ required: true, message: '请上传海报图片', trigger: 'blur' }]
playBillUrl: [{ required: true, message: '请上传海报图片', trigger: 'blur' }]
}
};
},
......@@ -130,7 +102,7 @@ export default {
const that = this;
let para = {
activityId: that.activeInfoData.activityId,
palyBillUrl: that.activeInfoData.palyBillUrl,
playBillUrl: that.activeInfoData.playBillUrl,
appletTitle: that.activeInfoData.appletTitle
};
postRequest('/sharing-core-web/edit-activity-applet', para)
......@@ -162,6 +134,9 @@ export default {
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
if (!resData.result) {
return false;
}
that.activeInfoData = resData.result;
return false;
}
......@@ -184,9 +159,9 @@ export default {
that.activeInfoData.activityId = JSON.parse(JSON.stringify(that.$store.state.baseInfo)).activityId;
}
if (Object.keys(that.$store.state.cardInfo).length) {
that.$nextTick(()=> {
that.$nextTick(() => {
that.activeInfoData = JSON.parse(JSON.stringify(that.$store.state.cardInfo));
})
});
}
}
};
......
......@@ -14,23 +14,11 @@ import consumeConfig from '@/components/active-config/configs/consume-config.vue
<template>
<div class="consume-config border-box">
<el-form
label-width="154px"
:model="consumeAction"
ref="consumeForm"
:rules="rules"
>
<el-form-item
label="消费门店控制:"
prop=""
>
<el-form label-width="154px" :model="consumeAction" ref="consumeForm" :rules="rules">
<el-form-item label="消费门店控制:" prop="">
<ul class="flex ">
<template v-for="(item, index) in consumeStoreData">
<li
:class="['li-cell li-second-cell flex-1 ', consumeAction.consumeStoreControlFlag == item.goalId ? 'li-second-active' : '']"
:key="index + 'first'"
@click="selectStore(item)"
>
<li :class="['li-cell li-second-cell flex-1 ', consumeAction.consumeStoreControlFlag == item.goalId ? 'li-second-active' : '']" :key="index + 'first'" @click="selectStore(item)">
<div class="li-cell-inner">
<div class="li-cell-bottom border-box">
<div class="li-cell-scene">
......@@ -49,46 +37,24 @@ import consumeConfig from '@/components/active-config/configs/consume-config.vue
</li>
</template>
</ul>
<div
v-if="consumeAction.consumeStoreControlFlag == 1"
class="store-select-wrap"
>
<div v-if="consumeAction.consumeStoreControlFlag == 1" class="store-select-wrap">
<div class="store-select-title">
<el-tooltip placement="top">
<div slot="content">该文案将显示在消费奖励规则中,<br />向活动参与者说明消费门店的条件要求,<br />请尽量用简洁易懂的描述。</div>
<span class="font-12 color-606266 cursor-pointer store-title-name">门店条件文案:</span>
</el-tooltip>
<limitInput
:inputWidth="385"
:disflag="$route.query.editFlag ? true : false"
:inputValue.sync="consumeAction.consumeStoreName"
:holder="'请输入门店条件文案'"
:getByType="'char'"
:maxLength="30"
> </limitInput>
<limitInput :inputWidth="385" :disflag="$route.query.editFlag ? true : false" :inputValue.sync="consumeAction.consumeStoreName" :holder="'请输入门店条件文案'" :getByType="'char'" :maxLength="30"> </limitInput>
</div>
<div class="store-select-body">
<vue-gic-store-card
:readonly="$route.query.editFlag ? true : false"
:uuid.sync="uuid"
ref="storeCard"
></vue-gic-store-card>
<vue-gic-store-card :readonly="$route.query.editFlag ? true : false" :uuid.sync="uuid" ref="storeCard"></vue-gic-store-card>
</div>
</div>
</el-form-item>
<el-form-item
class="m-t-20"
label="成交额控制:"
prop=""
>
<el-form-item class="m-t-20" label="成交额控制:" prop="">
<ul class="flex ">
<template v-for="(item, index) in dealAmountData">
<li
:class="['li-cell li-second-cell flex-1 ', consumeAction.dealAmountControlFlag == item.goalId ? 'li-second-active' : '']"
:key="index + 'first'"
@click="selectMoney(item)"
>
<li :class="['li-cell li-second-cell flex-1 ', consumeAction.dealAmountControlFlag == item.goalId ? 'li-second-active' : '']" :key="index + 'first'" @click="selectMoney(item)">
<div class="li-cell-inner">
<div class="li-cell-bottom border-box">
<div class="li-cell-scene">
......@@ -107,41 +73,20 @@ import consumeConfig from '@/components/active-config/configs/consume-config.vue
</li>
</template>
</ul>
<div
v-if="consumeAction.dealAmountControlFlag == 1"
class="store-select-wrap child-select-wrap"
>
<div v-if="consumeAction.dealAmountControlFlag == 1" class="store-select-wrap child-select-wrap">
<div class="store-select-title">
<span class="font-14 color-606266">控制区间:</span>
<el-input-number
v-model="consumeAction.dealAmountControlMin"
controls-position="right"
:min="1"
:max="999999"
> </el-input-number>
<el-input-number v-model="consumeAction.dealAmountControlMin" controls-position="right" :min="1" :max="999999"> </el-input-number>
<span class="font-14 color-606266 p-l-3 p-r-10">元 - </span>
<el-input-number
v-model="consumeAction.dealAmountControlMax"
controls-position="right"
:min="1"
:max="999999"
> </el-input-number>
<el-input-number v-model="consumeAction.dealAmountControlMax" controls-position="right" :min="1" :max="999999"> </el-input-number>
<span class="font-14 color-606266"></span>
</div>
</div>
</el-form-item>
<el-form-item
class="m-t-20"
label="单笔成交件数控制:"
prop=""
>
<el-form-item class="m-t-20" label="单笔成交件数控制:" prop="">
<ul class="flex">
<template v-for="(item, index) in singleDealData">
<li
:class="['li-cell li-second-cell flex-1 ', consumeAction.singleDealNumberControlFlag == item.goalId ? 'li-second-active' : '']"
:key="index + 'first'"
@click="selectNumber(item)"
>
<li :class="['li-cell li-second-cell flex-1 ', consumeAction.singleDealNumberControlFlag == item.goalId ? 'li-second-active' : '']" :key="index + 'first'" @click="selectNumber(item)">
<div class="li-cell-inner">
<div class="li-cell-bottom border-box">
<div class="li-cell-scene">
......@@ -160,25 +105,12 @@ import consumeConfig from '@/components/active-config/configs/consume-config.vue
</li>
</template>
</ul>
<div
v-if="consumeAction.singleDealNumberControlFlag == 1"
class="store-select-wrap child-select-wrap"
>
<div v-if="consumeAction.singleDealNumberControlFlag == 1" class="store-select-wrap child-select-wrap">
<div class="store-select-title">
<span class="font-14 color-606266">控制区间:</span>
<el-input-number
v-model="consumeAction.singleDealNumberControlMin"
controls-position="right"
:min="1"
:max="99"
> </el-input-number>
<el-input-number v-model="consumeAction.singleDealNumberControlMin" controls-position="right" :min="1" :max="99"> </el-input-number>
<span class="font-14 color-606266 p-l-3 p-r-10">件 - </span>
<el-input-number
v-model="consumeAction.singleDealNumberControlMax"
controls-position="right"
:min="1"
:max="99"
> </el-input-number>
<el-input-number v-model="consumeAction.singleDealNumberControlMax" controls-position="right" :min="1" :max="99"> </el-input-number>
<span class="font-14 color-606266"></span>
</div>
</div>
......@@ -190,6 +122,25 @@ import consumeConfig from '@/components/active-config/configs/consume-config.vue
import limitInput from '@/components/limit-input.vue';
export default {
name: 'consume-config',
props: {
value: {
type: [Object, Array],
default() {
return {
consumeStoreControlFlag: 0, //消费门店控制开关 1控制,0不控制
consumeStoreName: '', //消费门店文案
dealAmountControlFlag: 0, //成交额控制开关 0不控制,1控制区间
dealAmountControlMin: 0, //成交额控制最小值
dealAmountControlMax: 0, //成交额控制最大值
singleDealNumberControlFlag: 0, //单笔成交件数控制开关 0不控制,1控制区间
singleDealNumberControlMin: 0, //单笔成交件数最小值
singleDealNumberControlMax: 0, //单笔成交件数最大值
uuid: '',
storeList: []
};
}
}
},
components: {
limitInput
},
......@@ -252,12 +203,16 @@ export default {
submitForm() {
const that = this;
that.consumeAction.storeList = that.refs.storeCard.rightList;
that.$refs['consumeForm'].validate(valid => {
if (valid) {
that.consumeAction.storeList = that.refs.storeCard.rightList;
} else {
return false;
}
return new Promise(function(resolve, reject) {
that.$refs['consumeForm'].validate(valid => {
if (valid) {
that.consumeAction.storeList = that.refs.storeCard.rightList;
that.$emit('input', that.consumeAction);
resolve(that.consumeAction);
} else {
reject(false);
}
});
});
},
/**
......@@ -283,9 +238,15 @@ export default {
that.consumeAction.singleDealNumberControlFlag = item.goalId;
}
},
watch: {
value(newData) {
const that = this;
that.consumeAction = JSON.parse(JSON.stringify(newData));
}
},
mounted() {
const that = this;
console.log(that.refs.storeCard.rightList);
that.consumeAction = JSON.parse(JSON.stringify(that.value));
}
};
</script>
......
......@@ -4,7 +4,7 @@
* @Author: 无尘
* @Date: 2019-11-21 16:37:02
* @LastEditors: 无尘
* @LastEditTime: 2019-11-25 16:10:37
* @LastEditTime: 2019-11-28 15:24:54
-->
<!--
<fraud-control></fraud-control>
......@@ -14,20 +14,33 @@ import fraudControl from '@/components/active-config/configs/fraud-control.vue';
<template>
<div class="fraud-control border-box">
<el-form label-width="154px" :model="pointFreeze" ref="rewardForm" :rules="rules">
<div role="alert" class="el-alert el-alert--info">
<el-form
label-width="154px"
:model="pointFreeze"
ref="rewardForm"
:rules="rules"
>
<div
role="alert"
class="el-alert el-alert--info"
>
<i class="el-alert__icon el-icon-info font-12 color-1890ff"></i>
<div class="el-alert__content">
<span class="el-alert__title color-606266 font-14 font-w-400"
>为了获取邀请人奖励,可能会出现恶意盗刷的情况,因此系统支持对单个受邀人的成交额累计上限做控制。<br />
这能有效的杜绝邀请人在闯关奖励、竞赛奖励中采用作弊手段(即时奖励有单独的限制控制,该成交额上限对即时奖励不起作用)。</span
>
<span class="el-alert__title color-606266 font-14 font-w-400">为了获取邀请人奖励,可能会出现恶意盗刷的情况,因此系统支持对单个受邀人的成交额累计上限做控制。<br />
这能有效的杜绝邀请人在闯关奖励、竞赛奖励中采用作弊手段(即时奖励有单独的限制控制,该成交额上限对即时奖励不起作用)。</span>
</div>
</div>
<el-form-item label="成交额上限控制:" prop="">
<el-form-item
label="成交额上限控制:"
prop=""
>
<ul class="flex ">
<template v-for="(item, index) in modeData">
<li :class="['li-cell li-second-cell flex-1 ', pointFreeze.numberLimitType == item.goalId ? 'li-second-active' : '']" :key="index + 'first'" @click="selectStore(item)">
<li
:class="['li-cell li-second-cell flex-1 ', pointFreeze.numberLimitType == item.goalId ? 'li-second-active' : '']"
:key="index + 'first'"
@click="selectStore(item)"
>
<div class="li-cell-inner">
<div class="li-cell-bottom border-box">
<div class="li-cell-scene">
......@@ -46,24 +59,43 @@ import fraudControl from '@/components/active-config/configs/fraud-control.vue';
</li>
</template>
</ul>
<div v-if="pointFreeze.numberLimitType == 2" class="store-select-wrap">
<div
v-if="pointFreeze.numberLimitType == 2"
class="store-select-wrap"
>
<div class="store-select-title">
<span class="font-14 color-606266">限制额度:</span>
<el-input-number v-model="pointFreeze.numberLimitNum" controls-position="right" :min="1" :max="999999"> </el-input-number>
<el-input-number
v-model="pointFreeze.numberLimitNum"
controls-position="right"
:min="1"
:max="999999"
> </el-input-number>
<span class="font-14 color-606266"></span>
</div>
</div>
</el-form-item>
<div role="alert" class="el-alert el-alert--info m-t-20">
<div
role="alert"
class="el-alert el-alert--info m-t-20"
>
<i class="el-alert__icon el-icon-info font-12 color-1890ff"></i>
<div class="el-alert__content">
<span class="el-alert__title color-606266 font-14 font-w-400">转化路径的一系列节点中,消费行为尤其特殊,因为可以申请退款,所以涉及到奖励回收的问题。请根据自身的活动政策,配置相关的风险控制策略。注意:仅针对即时奖励可进行控制,闯关奖励、竞赛奖励和受邀人奖励不作回收处理。由于即时奖励中没有卡券类奖励,因此没有卡券处理方案的配置。</span>
</div>
</div>
<el-form-item class="m-t-20" label="积分处理方案:" prop="">
<el-form-item
class="m-t-20"
label="积分处理方案:"
prop=""
>
<ul class="flex ">
<template v-for="(item, index) in contentData">
<li :class="['li-cell li-second-cell flex-1 ', pointFreeze.awardLimitType == item.goalId ? 'li-second-active' : '']" :key="index + 'first'" @click="selectMoney(item)">
<li
:class="['li-cell li-second-cell flex-1 ', pointFreeze.awardLimitType == item.goalId ? 'li-second-active' : '']"
:key="index + 'first'"
@click="selectMoney(item)"
>
<div class="li-cell-inner">
<div class="li-cell-bottom border-box">
<div class="li-cell-scene">
......@@ -82,17 +114,33 @@ import fraudControl from '@/components/active-config/configs/fraud-control.vue';
</li>
</template>
</ul>
<div v-if="pointFreeze.awardLimitType == 1" class="store-select-wrap child-select-wrap">
<div
v-if="pointFreeze.awardLimitType == 1"
class="store-select-wrap child-select-wrap"
>
<div class="store-select-title">
<span class="font-14 color-606266">延时时长:</span>
<el-input-number v-model="pointFreeze.operateDay" controls-position="right" :min="1" :max="99"> </el-input-number>
<el-input-number
v-model="pointFreeze.operateDay"
controls-position="right"
:min="1"
:max="99"
> </el-input-number>
<span class="font-14 color-606266 p-l-3 p-r-10"></span>
</div>
</div>
<div v-if="pointFreeze.awardLimitType == 2" class="store-select-wrap child-select-wrap">
<div
v-if="pointFreeze.awardLimitType == 2"
class="store-select-wrap child-select-wrap"
>
<div class="store-select-title">
<span class="font-14 color-606266">冻结时长:</span>
<el-input-number v-model="pointFreeze.operateDay" controls-position="right" :min="1" :max="99"> </el-input-number>
<el-input-number
v-model="pointFreeze.operateDay"
controls-position="right"
:min="1"
:max="99"
> </el-input-number>
<span class="font-14 color-606266 p-l-3 p-r-10"></span>
</div>
</div>
......@@ -187,10 +235,9 @@ export default {
});
}
},
mounted() {
/* mounted() {
const that = this;
console.log(that.refs.storeCard.rightList);
}
} */
};
</script>
<style lang="less" scoped>
......
......@@ -250,11 +250,11 @@ export default {
infinity: false
});
}
},
mounted() {
}
/* mounted() {
const that = this;
console.log(that.refs.storeCard.rightList);
}
} */
};
</script>
<style lang="less" scoped>
......
......@@ -5,13 +5,7 @@ import gameSelect from '@/components/active/game-select.vue'
-->
<template>
<div>
<el-cascader
v-model="caseValue"
:options="options"
:props="props"
@change="handleChange"
@expand-change="expandChange"
></el-cascader>
<el-cascader v-model="caseValue" :options="options" :props="props" @change="handleChange" @expand-change="expandChange"></el-cascader>
</div>
</template>
......@@ -66,7 +60,7 @@ export default {
gameTypeName: '口令福利',
label: '口令福利',
children: []
},
}
],
props: {
label: 'label',
......@@ -86,11 +80,11 @@ export default {
if (value.length == 2 && value[0] == ele.id) {
ele.children.forEach(child => {
if (value[1] == child.gameId) {
that.$emit('changeGame', child.gameName);
that.$emit('changeGame', child.gameName, child.gameUrl);
}
})
});
}
})
});
},
/**
*
......@@ -108,7 +102,7 @@ export default {
let para = {
gameType: gameType
};
getRequest('/sharing-core-web/list-game',para)
getRequest('/sharing-core-web/list-game', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
......
......@@ -4,7 +4,7 @@
* @Author: 无尘
* @Date: 2019-11-20 13:44:22
* @LastEditors: 无尘
* @LastEditTime: 2019-11-27 20:59:25
* @LastEditTime: 2019-11-28 15:00:29
-->
<!--
单个上传组件
......@@ -96,7 +96,7 @@ export default {
const that = this;
let host = window.location.origin;
if (host.indexOf('localhost') != -1) {
that.baseUrl = 'http://www.gicdev.com';
that.baseUrl = 'http://gicdev.demogic.com';
} else {
that.baseUrl = host;
}
......@@ -112,7 +112,7 @@ export default {
let host = window.location.origin;
let baseUrl;
if (host.indexOf('localhost') != '-1') {
baseUrl = 'http://www.gicdev.com';
baseUrl = 'http://gicdev.demogic.com';
} else {
baseUrl = host;
}
......
......@@ -4,7 +4,7 @@
* @Author: 无尘
* @Date: 2019-11-20 13:44:22
* @LastEditors: 无尘
* @LastEditTime: 2019-11-27 20:59:17
* @LastEditTime: 2019-11-28 15:00:39
-->
<!--
单个上传组件
......@@ -90,7 +90,7 @@ export default {
const that = this;
let host = window.location.origin;
if (host.indexOf('localhost') != -1) {
that.baseUrl = 'http://www.gicdev.com';
that.baseUrl = 'http://gicdev.demogic.com';
} else {
that.baseUrl = host;
}
......@@ -106,7 +106,7 @@ export default {
let host = window.location.origin;
let baseUrl;
if (host.indexOf('localhost') != '-1') {
baseUrl = 'http://www.gicdev.com';
baseUrl = 'http://gicdev.demogic.com';
} else {
baseUrl = host;
}
......
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