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