|
@@ -1,5 +1,6 @@
|
|
|
<template>
|
|
|
<div class="newPlan">
|
|
|
+ <a-spin :spinning="spinning">
|
|
|
<a-form :form="form">
|
|
|
<!-- 投放范围 -->
|
|
|
<div class="moduler">
|
|
@@ -32,12 +33,12 @@
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
<a-form-item >
|
|
|
- <a-radio-group v-decorator="['marketingGoal',{initialValue:'2' }]" @change="marketingGoalChange">
|
|
|
- <a-radio-button value="2">提升应用安装</a-radio-button>
|
|
|
- <a-radio-button value="3">获取电商下单</a-radio-button>
|
|
|
- <a-radio-button value="4">推广品牌活动</a-radio-button>
|
|
|
- <a-radio-button value="5">收集销售线索</a-radio-button>
|
|
|
- <a-radio-button value="7">提高应用活跃</a-radio-button>
|
|
|
+ <a-radio-group v-decorator="['campaignType',{initialValue:2 }]" @change="campaignTypeChange">
|
|
|
+ <a-radio-button :value="2">提升应用安装</a-radio-button>
|
|
|
+ <a-radio-button :value="3">获取电商下单</a-radio-button>
|
|
|
+ <a-radio-button :value="4">推广品牌活动</a-radio-button>
|
|
|
+ <a-radio-button :value="5">收集销售线索</a-radio-button>
|
|
|
+ <a-radio-button :value="7">提高应用活跃</a-radio-button>
|
|
|
</a-radio-group>
|
|
|
</a-form-item>
|
|
|
</div>
|
|
@@ -49,7 +50,7 @@
|
|
|
<div class="moduler">
|
|
|
<div class="moduler-title">请设置基本信息</div>
|
|
|
|
|
|
- <div class="row-item">
|
|
|
+ <!-- <div class="row-item">
|
|
|
<div class="hint-item"> </div>
|
|
|
<div class="label-item">
|
|
|
<div class="text-item">模板名称</div>
|
|
@@ -60,7 +61,7 @@
|
|
|
<a-input v-model="strategyName" allow-clear />
|
|
|
</a-form-item>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
<div class="row-item">
|
|
|
<div class="hint-item"> </div>
|
|
|
<div class="label-item">
|
|
@@ -106,7 +107,7 @@
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="row-item" v-if="getFormData('marketingGoal')=='2'||getFormData('marketingGoal')=='7'">
|
|
|
+ <div class="row-item" v-if="getFormData('campaignType')==2||getFormData('campaignType')==7">
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
|
<div class="text-item">选择应用</div>
|
|
@@ -114,8 +115,8 @@
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
<a-form-item>
|
|
|
- <a-select v-decorator="['appIds', { rules: [{ required: true, message: '请选择目标应用' }] }]" showSearch allowClear
|
|
|
- placeholder="选择应用目标" optionFilterProp="children" style="width: 500px" mode='multiple' :maxTagCount='1'
|
|
|
+ <a-select v-decorator="['appId', { rules: [{ required: true, message: '请选择目标应用' }] }]" showSearch allowClear
|
|
|
+ placeholder="选择应用目标" optionFilterProp="children" style="width: 500px"
|
|
|
:filterOption="filterOption" @change="appIdChange">
|
|
|
<!-- <a-select-option value="0">请选择目标应用</a-select-option> -->
|
|
|
<a-select-option v-for="appModel in appList" :key="appModel.appId" :value="appModel.appId">
|
|
@@ -128,7 +129,7 @@
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="row-item" v-if="getFormData('marketingGoal') == '3'">
|
|
|
+ <div class="row-item" v-if="getFormData('campaignType') == 3">
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
|
<div class="text-item">转化类型</div>
|
|
@@ -145,21 +146,21 @@
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="row-item" v-if="getFormData('marketingGoal') == '3'||getFormData('marketingGoal') == '4'||getFormData('marketingGoal') == '5'">
|
|
|
+ <div class="row-item" v-if="getFormData('campaignType') == 3||getFormData('campaignType') == 4||getFormData('campaignType') == 5">
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
|
<div class="text-item">链接</div>
|
|
|
<!-- <div class="required-item"></div> -->
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
- <a-form-item v-if="getFormData('marketingGoal') != 2" :class="{ 'else-label': getFormData('marketingGoal') == 3 }">
|
|
|
+ <a-form-item v-if="getFormData('campaignType') != 2" :class="{ 'else-label': getFormData('campaignType') == 3 }">
|
|
|
<a-input placeholder="请填写链接" v-decorator="['url', { rules: [{ required: true,message:'链接不能为空'}] }]" />
|
|
|
</a-form-item>
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="row-item" v-if="getFormData('marketingGoal') == 2||getFormData('marketingGoal') == 4||getFormData('marketingGoal') == 5">
|
|
|
+ <div class="row-item" v-if="getFormData('campaignType') == 2||getFormData('campaignType') == 4||getFormData('campaignType') == 5">
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
|
<div class="text-item">转化追踪</div>
|
|
@@ -208,9 +209,9 @@
|
|
|
<a-radio :value="1">
|
|
|
不使用定向
|
|
|
</a-radio>
|
|
|
- <a-radio :value="0">
|
|
|
+ <!-- <a-radio :value="0">
|
|
|
使用定向包
|
|
|
- </a-radio>
|
|
|
+ </a-radio> -->
|
|
|
</a-radio-group>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -233,11 +234,11 @@
|
|
|
<div class="region" style="margin-top:20px" v-show="district!='NONE'">
|
|
|
<!-- 省市 -->
|
|
|
<div class="provincyCity" v-if="district=='CITY'">
|
|
|
- <linkMultiSelect title='省份' :listArr='[]' :maxLayers='2' :listUrl='regionCityListUrl' @getSelectedArr='getSelectedCityArr'/>
|
|
|
+ <linkMultiSelect title='省份' :listArr='regionList' :maxLayers='2' :listUrl='regionCityListUrl' @getSelectedArr='getSelectedCityArr'/>
|
|
|
</div>
|
|
|
<!-- 区县 -->
|
|
|
<div class="district" v-else-if="district=='COUNTY'">
|
|
|
- <linkMultiSelect title='省份' :listArr='[]' :maxLayers='3' :listUrl='regionCityListUrl' @getSelectedArr='getSelectedCountyArr'/>
|
|
|
+ <linkMultiSelect title='省份' :listArr='regionList' :maxLayers='3' :listUrl='regionCityListUrl' @getSelectedArr='getSelectedCountyArr'/>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
@@ -279,7 +280,7 @@
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
<a-form-item>
|
|
|
- <a-radio-group v-decorator="['platformOs', {initialValue:0 }]" >
|
|
|
+ <a-radio-group v-decorator="['platformOs', {initialValue:1 }]" >
|
|
|
<a-radio-button :value="0">不限</a-radio-button>
|
|
|
<a-radio-button :value="1">Android</a-radio-button>
|
|
|
<a-radio-button :value="2">IOS</a-radio-button>
|
|
@@ -341,7 +342,7 @@
|
|
|
|
|
|
</a-tabs>
|
|
|
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
@@ -372,14 +373,14 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="moduler">
|
|
|
+ <!-- <div class="moduler">
|
|
|
<div class="moduler-title">预算和排期</div>
|
|
|
<div class="ad-range">
|
|
|
<div class="row-item" >
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
|
<div class="text-item">投放时间</div>
|
|
|
- <!-- <div class="required-item"></div> -->
|
|
|
+ <div class="required-item"></div>
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
<a-form-item>
|
|
@@ -402,7 +403,7 @@
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
|
<div class="text-item">投放时段</div>
|
|
|
- <!-- <div class="required-item"></div> -->
|
|
|
+ <div class="required-item"></div>
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
<a-form-item>
|
|
@@ -439,10 +440,10 @@
|
|
|
<a-input-group compact v-if="getFormData('strategyBudget')=='unifiedBudget'" style="margin-top:20px">
|
|
|
<a-select :disabled="true" v-decorator="['budgetMode', { initialValue:'TOTAL' }]">
|
|
|
<a-select-option value="TOTAL" >总预算</a-select-option>
|
|
|
- <!-- <a-select-option
|
|
|
+ <a-select-option
|
|
|
value="TOTAL"
|
|
|
v-if="getFormData('smartBidType')=='SMART_BID_CUSTOM'"
|
|
|
- >总预算</a-select-option> -->
|
|
|
+ >总预算</a-select-option>
|
|
|
</a-select>
|
|
|
<a-input style="width: 25%" v-decorator="['budget', { initialValue:300 }]" />
|
|
|
</a-input-group>
|
|
@@ -452,7 +453,7 @@
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
|
|
|
|
|
|
<div class="moduler">
|
|
@@ -487,9 +488,9 @@
|
|
|
|
|
|
<a-select-option :value="2">行为数</a-select-option>
|
|
|
<a-select-option :value="180"
|
|
|
- v-if="getFormData('marketingGoal') == '2' && groupTypeData.isActivate == '1'">激活</a-select-option>
|
|
|
+ v-if="getFormData('campaignType') == 2 && groupTypeData.isActivate == 1">激活</a-select-option>
|
|
|
<a-select-option :value="53" v-if="
|
|
|
- (getFormData('marketingGoal') == '4' || getFormData('marketingGoal') == '5') && groupTypeData.isFormSubmit == '1'
|
|
|
+ (getFormData('campaignType') == 4 || getFormData('campaignType') == 5) && groupTypeData.isFormSubmit == '1'
|
|
|
">表单提交</a-select-option>
|
|
|
|
|
|
<a-select-option :value="394" v-if="
|
|
@@ -519,7 +520,7 @@
|
|
|
</a-form-item>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="row-item" v-if="(getFormData('ocpxActionType') == 180 || getFormData('ocpxActionType') == 53) &&groupTypeData.deepConversionTypes.length > 0 ">
|
|
|
+ <div class="row-item" v-if="(getFormData('ocpxActionType') == 180 || getFormData('ocpxActionType') == 53) &&groupTypeData.deepConversionTypes&&groupTypeData.deepConversionTypes.length > 0 ">
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
|
<div class="text-item">深度转化目标</div>
|
|
@@ -577,7 +578,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="row-item" v-if="getFormData('bidType')==10&&getFormData('scenes')=='2'">
|
|
|
+ <div class="row-item" v-if="getFormData('bidType')==10">
|
|
|
<div class="hint-item">
|
|
|
</div>
|
|
|
<div class="label-item">
|
|
@@ -601,57 +602,8 @@
|
|
|
>请输入点击出价,不少于0.1元,不超过10000元</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="row-item" v-if="getFormData('bidType')==10&&getFormData('scenes')=='1'">
|
|
|
- <div class="hint-item">
|
|
|
- </div>
|
|
|
- <div class="label-item">
|
|
|
- <div class="text-item">转化目标出价范围</div>
|
|
|
- <div class="required-item"></div>
|
|
|
- </div>
|
|
|
- <div class="input-item">
|
|
|
- <a-form-item>
|
|
|
- <a-input-number
|
|
|
- style="width:150px"
|
|
|
- :max="10000"
|
|
|
- :step="0.1"
|
|
|
- v-decorator="['cpaBidMin', {rules:validationRules.bid} ]"
|
|
|
- />
|
|
|
- <span style="margin-left:5px">元</span>
|
|
|
- <span style="margin:0 15px;"> — </span>
|
|
|
- <a-input-number
|
|
|
- style="width:150px"
|
|
|
- :max="10000"
|
|
|
- :step="0.1"
|
|
|
- v-decorator="['cpaBidMax', {rules:validationRules.bid} ]"
|
|
|
- />
|
|
|
- <span style="margin-left:5px">元</span>
|
|
|
- </a-form-item>
|
|
|
-
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="row-item" v-if="getFormData('bidType')==10&&getFormData('scenes')=='1'">
|
|
|
- <div class="hint-item">
|
|
|
- </div>
|
|
|
- <div class="label-item">
|
|
|
- <div class="text-item">出价分解步长</div>
|
|
|
- <div class="required-item"></div>
|
|
|
- </div>
|
|
|
- <div class="input-item">
|
|
|
- <a-form-item>
|
|
|
- <a-input-number
|
|
|
- style="width:150px"
|
|
|
- :max="getFormData('cpaBidMax')"
|
|
|
- :step="0.1"
|
|
|
- :min='0.1'
|
|
|
- v-decorator="['stepSize', {rules:validationRules.bid} ]"
|
|
|
- />
|
|
|
- <span style="margin-left:5px">元</span>
|
|
|
-
|
|
|
- </a-form-item>
|
|
|
-
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="row-item" v-if="(getFormData('ocpxActionType') == 180 || getFormData('ocpxActionType') == 53) &&groupTypeData.deepConversionTypes.length > 0 ">
|
|
|
+
|
|
|
+ <div class="row-item" v-if="(getFormData('ocpxActionType') == 180 || getFormData('ocpxActionType') == 53) &&groupTypeData.deepConversionTypes&&groupTypeData.deepConversionTypes.length > 0 ">
|
|
|
<div class="hint-item">
|
|
|
</div>
|
|
|
<div class="label-item">
|
|
@@ -682,7 +634,7 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="moduler">
|
|
|
- <div class="moduler-title">广告位置</div>
|
|
|
+ <div class="moduler-title">创意信息</div>
|
|
|
<div class="ad-range">
|
|
|
<div class="row-item">
|
|
|
<div class="hint-item"></div>
|
|
@@ -710,17 +662,17 @@
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="row-item" v-if="siteList.length">
|
|
|
+ <div class="row-item" >
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
|
<div class="text-item">下载详情</div>
|
|
|
<!-- <div class="required-item"></div> -->
|
|
|
</div>
|
|
|
<div class="input-item" >
|
|
|
- <div v-for="(item,index) in siteList" :key="index" :style="index==(siteList.length-1)?{'margin-bottom':'0px'}:{'margin-bottom':'20px'}">
|
|
|
+
|
|
|
<a-form-item>
|
|
|
<a-select
|
|
|
- v-model="item.siteId"
|
|
|
+ v-decorator="['siteId']"
|
|
|
showSearch
|
|
|
allowClear
|
|
|
placeholder="选择应用下载详情页"
|
|
@@ -728,18 +680,12 @@
|
|
|
:filterOption="filterOption"
|
|
|
style="width:400px"
|
|
|
>
|
|
|
- <a-select-option v-for="appModel in item.siteList" :key="appModel.siteId" :value="appModel.siteId">
|
|
|
+ <a-select-option v-for="appModel in siteList" :key="appModel.siteId" :value="appModel.siteId">
|
|
|
{{ appModel.name }}
|
|
|
</a-select-option>
|
|
|
|
|
|
- </a-select>
|
|
|
- <span style="margin-left:30px;display:inline-block">
|
|
|
- {{'appId:'+item.appId}}
|
|
|
- </span>
|
|
|
+ </a-select>
|
|
|
</a-form-item>
|
|
|
- </div>
|
|
|
-
|
|
|
-
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="row-item">
|
|
@@ -874,9 +820,10 @@
|
|
|
<a-form-item >
|
|
|
<a-input-number
|
|
|
style="width:200px"
|
|
|
- :max="20"
|
|
|
+ :max="15"
|
|
|
:step="1"
|
|
|
- v-decorator="['imageCnt',{ rules: [{ required: true, message: '请填写关联封面数' }] } ]"
|
|
|
+ :min='1'
|
|
|
+ v-decorator="['imageCnt',{ initialValue:1, rules: [{ required: true, message: '请填写关联封面数' }] } ]"
|
|
|
/>
|
|
|
</a-form-item>
|
|
|
|
|
@@ -890,22 +837,14 @@
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
<a-form-item>
|
|
|
- <div
|
|
|
- class="step4-else"
|
|
|
- style="
|
|
|
- display: inline-block;
|
|
|
- position: relative;
|
|
|
- border-radius: 4px;
|
|
|
- border: 1px solid #d9d9d9;
|
|
|
- width: 100%;
|
|
|
- "
|
|
|
- >
|
|
|
+ <div style="position:relative">
|
|
|
<a-textarea
|
|
|
- class="rending"
|
|
|
- placeholder="请输入广告语"
|
|
|
- v-decorator="['description',{ rules: [{ required: true, message: '请填写广告语' }] } ]"
|
|
|
- :autosize="{ minRows: 2, maxRows: 6 }"
|
|
|
- :max-length="30"
|
|
|
+ class="rending"
|
|
|
+ placeholder="请输入广告语"
|
|
|
+ @change="descriptionchange"
|
|
|
+ v-decorator="['description',{rules: [ { required: true, message: '请填写广告语' }] } ]"
|
|
|
+ :autosize="{ minRows: 2, maxRows: 6 }"
|
|
|
+ :max-length="30"
|
|
|
></a-textarea>
|
|
|
<p
|
|
|
style="
|
|
@@ -913,7 +852,7 @@
|
|
|
color: #b6bbc7;
|
|
|
letter-spacing: 0.3px;
|
|
|
text-align: right;
|
|
|
- line-height: 20px;
|
|
|
+ line-height: 30px;
|
|
|
position: absolute;
|
|
|
bottom: 0;
|
|
|
right: 6px;
|
|
@@ -921,7 +860,8 @@
|
|
|
margin-bottom: 0;
|
|
|
"
|
|
|
>
|
|
|
- {{ item.description.length + '/30' }}
|
|
|
+ {{ description.length }}/30
|
|
|
+ <!-- {{ getFormData('description').length }}/30 -->
|
|
|
</p>
|
|
|
</div>
|
|
|
</a-form-item>
|
|
@@ -941,7 +881,7 @@
|
|
|
<div class="moduler">
|
|
|
<!-- <div class="moduler-title">计划名称</div> -->
|
|
|
<div class="opt">
|
|
|
- <a-button type="default" style="margin-right:15px" @click="goBack">上一步</a-button>
|
|
|
+ <a-button type="default" style="margin-right:15px" @click="goBack">取消</a-button>
|
|
|
<!-- -->
|
|
|
<a-button type="primary" @click="goNext" :loading="goNextloading">确定</a-button>
|
|
|
</div>
|
|
@@ -974,12 +914,12 @@
|
|
|
<a-form-item label="追踪方式" :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
|
:wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }">
|
|
|
<a-radio-group buttonStyle="solid" v-model="convertType" @change="convertChange">
|
|
|
- <a-radio-button value="1" v-show="getFormData('marketingGoal') == 4||getFormData('marketingGoal') == 5">JS布玛</a-radio-button>
|
|
|
- <a-radio-button value="2" v-show="getFormData('marketingGoal') == 4||getFormData('marketingGoal') == 5">Xpath</a-radio-button>
|
|
|
+ <a-radio-button value="1" v-show="getFormData('campaignType') == 4||getFormData('campaignType') == 5">JS布玛</a-radio-button>
|
|
|
+ <a-radio-button value="2" v-show="getFormData('campaignType') == 4||getFormData('campaignType') == 5">Xpath</a-radio-button>
|
|
|
<a-radio-button value="3"
|
|
|
- v-show="getFormData('marketingGoal') == 2">应用-SDK
|
|
|
+ v-show="getFormData('campaignType') == 2">应用-SDK
|
|
|
</a-radio-button>
|
|
|
- <a-radio-button value="7" v-show="getFormData('marketingGoal') == 2">应用-API</a-radio-button>
|
|
|
+ <a-radio-button value="7" v-show="getFormData('campaignType') == 2">应用-API</a-radio-button>
|
|
|
</a-radio-group>
|
|
|
</a-form-item>
|
|
|
<a-form-item label="选择转化" :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
@@ -1014,6 +954,7 @@
|
|
|
</div>
|
|
|
</a-spin>
|
|
|
</a-modal>
|
|
|
+ </a-spin>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -1029,7 +970,7 @@ import radioCheck from './components/radioCheck';
|
|
|
import linkMultiSelect from './components/linkMultiSelect'
|
|
|
import singleLayersSelecte from './components/singleLayerSelecte'
|
|
|
import scheduleTime from '@/components/formComponents/toutiaoTime'
|
|
|
-
|
|
|
+import $ from "jquery"
|
|
|
// import { filter } from 'vue/types/umd';
|
|
|
var str = ""
|
|
|
for (let i = 0; i < 7*24; i++) {
|
|
@@ -1152,6 +1093,11 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ regionList:[],
|
|
|
+ editRecordId:'',
|
|
|
+ spinning:false,
|
|
|
+
|
|
|
+ description:'',
|
|
|
whiteList:{},
|
|
|
actionBarTextList:[],
|
|
|
treeData:[],
|
|
@@ -1311,6 +1257,7 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
this.getWhiteList()
|
|
|
+ this.getpopulationlist()
|
|
|
}else{
|
|
|
|
|
|
}
|
|
@@ -1356,7 +1303,9 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
methods: {
|
|
|
-
|
|
|
+ descriptionchange(e){
|
|
|
+ this.description=e.target.value
|
|
|
+ },
|
|
|
|
|
|
//获取表单的某一个属性值
|
|
|
getFormData(className) {
|
|
@@ -1373,11 +1322,11 @@ export default {
|
|
|
},
|
|
|
|
|
|
//推广目的改变
|
|
|
- marketingGoalChange(e){
|
|
|
+ campaignTypeChange(e){
|
|
|
console.log(e.target)
|
|
|
- let strategyNamepart=this.marketingGoalHandle(e.target.value);
|
|
|
+ let strategyNamepart=this.campaignTypeHandle(e.target.value);
|
|
|
this.strategyName ='[策略]_'+ strategyNamepart+'_' + moment().format('MM_DD_hh:mm') ;
|
|
|
- this.actionBarTextList()
|
|
|
+ this.getActionBarText()
|
|
|
},
|
|
|
|
|
|
|
|
@@ -1424,7 +1373,7 @@ export default {
|
|
|
},
|
|
|
|
|
|
|
|
|
- marketingGoalHandle(val){
|
|
|
+ campaignTypeHandle(val){
|
|
|
let str='';
|
|
|
switch (val) {
|
|
|
case '2':
|
|
@@ -1501,17 +1450,9 @@ export default {
|
|
|
appIdChange(val){
|
|
|
console.log(val)
|
|
|
this.siteList=[]
|
|
|
- if(val.length){
|
|
|
- val.forEach(item=>{
|
|
|
- this.siteList.push({
|
|
|
- siteList:[],
|
|
|
- appId:item,
|
|
|
- siteId:''
|
|
|
- })
|
|
|
-
|
|
|
- })
|
|
|
- this.getPageList(val)
|
|
|
- }
|
|
|
+
|
|
|
+ this.getPageList(val)
|
|
|
+
|
|
|
},
|
|
|
disabledDate(current) {
|
|
|
|
|
@@ -1592,7 +1533,7 @@ export default {
|
|
|
this.loading=false;
|
|
|
if(res.success){
|
|
|
res.result.forEach((ele)=>{
|
|
|
- ele.key=this.accountId+'_'+ele.orientationId
|
|
|
+ ele.key=ele.orientationId
|
|
|
ele.id= ele.orientationId
|
|
|
ele.name=ele.orientationName+"("+ele.orientationId+")"
|
|
|
ele.accountName=this.accountInfo.title
|
|
@@ -1728,115 +1669,137 @@ export default {
|
|
|
goNext() {
|
|
|
|
|
|
this.$nextTick(()=>{
|
|
|
-
|
|
|
- // if((!this.getFormData('creativeCategory')&&this.getFormData('creativeTag')) || (this.getFormData('creativeCategory')&&!this.getFormData('creativeTag')) ){
|
|
|
- // this.$message.error('创意分类和标签必须同时填写或者同时不填写')
|
|
|
- // return
|
|
|
- // }
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
this.form.validateFields((err, values) => {
|
|
|
- if (!err) {
|
|
|
-
|
|
|
- this.goNextloading=true;
|
|
|
+
|
|
|
+ if (!err) {
|
|
|
+ // this.goNextloading=true;
|
|
|
if(this.district!='NONE'){
|
|
|
values.district=this.district
|
|
|
}
|
|
|
-
|
|
|
console.log(this.excludeSelectedKeys,this.incluedSelectedKeys)
|
|
|
- this.goNextloading=true;
|
|
|
+
|
|
|
// 设置广告位值
|
|
|
if(this.adposition!='inventoryTypes'){
|
|
|
this.checkedList=[];
|
|
|
- values.sceneId=[this.adposition]
|
|
|
+ values.sceneId=JSON.stringify([this.adposition])
|
|
|
}else{
|
|
|
- values.sceneId=this.checkedList
|
|
|
+ values.sceneId=JSON.stringify(this.checkedList)
|
|
|
}
|
|
|
// 时间段值
|
|
|
- if(this.getFormData('scheduleTime')!=''){
|
|
|
- values.scheduleTime=this.scheduleTimeData
|
|
|
- }else{
|
|
|
- values.scheduleTime=''
|
|
|
- }
|
|
|
+ // if(this.getFormData('scheduleTime')!=''){
|
|
|
+ // values.scheduleTime=this.scheduleTimeData
|
|
|
+ // }else{
|
|
|
+ // values.scheduleTime=''
|
|
|
+ // }
|
|
|
|
|
|
- values.siteId=this.siteList.map(item=>{
|
|
|
- return {
|
|
|
- appId:item.appId,
|
|
|
- siteId:item.siteId
|
|
|
- }
|
|
|
- })
|
|
|
// 投放时间的值
|
|
|
- if(this.getFormData('scheduleType')=='SCHEDULE_FROM_NOW'){
|
|
|
- values.beginTime=this.dateRange[0].format('YYYY-MM-DD');
|
|
|
- values.endTime= this.dateRange[1].add(10,"years").format('YYYY-MM-DD');
|
|
|
+ // if(this.getFormData('scheduleType')=='SCHEDULE_FROM_NOW'){
|
|
|
+ // values.beginTime=this.dateRange[0].format('YYYY-MM-DD');
|
|
|
+ // values.endTime= this.dateRange[1].add(10,"years").format('YYYY-MM-DD');
|
|
|
|
|
|
- }else{
|
|
|
- values.beginTime=this.dateRange[0].format('YYYY-MM-DD');
|
|
|
- values.endTime= this.dateRange[1].format('YYYY-MM-DD');
|
|
|
- }
|
|
|
+ // }else{
|
|
|
+ // values.beginTime=this.dateRange[0].format('YYYY-MM-DD');
|
|
|
+ // values.endTime= this.dateRange[1].format('YYYY-MM-DD');
|
|
|
+ // }
|
|
|
+
|
|
|
+ values.agesRange=JSON.stringify(this.agesRange)
|
|
|
+ values.region=this.region.length?JSON.stringify(this.region):undefined;
|
|
|
|
|
|
- values.agesRange=this.agesRange
|
|
|
- values.region=this.region
|
|
|
- values.convertId=this.convertId
|
|
|
- values.excludePopulation=this.excludeSelectedKeys.map(item=>{
|
|
|
+ values.convertId=this.convertId==''?undefined:this.convertId;
|
|
|
+
|
|
|
+ let excludePopulation=this.excludeSelectedKeys.map(item=>{
|
|
|
return item.id
|
|
|
})
|
|
|
- values.population=this.incluedSelectedKeys.map(item=>{
|
|
|
+ let population=this.incluedSelectedKeys.map(item=>{
|
|
|
return item.id
|
|
|
})
|
|
|
- values.strategyState='1'
|
|
|
+ values.excludePopulation=excludePopulation.length>0?JSON.stringify(excludePopulation):undefined;
|
|
|
+ values.population=population.length>0?JSON.stringify(population):undefined;
|
|
|
+
|
|
|
+
|
|
|
values.useAppMarket=values.useAppMarket?'1':'0'
|
|
|
- console.log('Received values of form: ', values)
|
|
|
|
|
|
- if(this.useDirectional==0){
|
|
|
- values.templateId=this.directionalCheckedList
|
|
|
- }
|
|
|
+
|
|
|
+ // if(this.useDirectional==0){
|
|
|
+ // values.templateId=this.directionalCheckedList
|
|
|
+ // }
|
|
|
if(this.sysType==1&&this.getData('useAppMarket')){
|
|
|
- values.appStore=this.appStore
|
|
|
+ values.appStore=JSON.stringify(this.appStore)
|
|
|
}
|
|
|
if(values.cpaBid){
|
|
|
values.cpaBid=parseInt(values.cpaBid*1000)
|
|
|
}
|
|
|
- if(values.bid){
|
|
|
- values.bid=parseInt(values.bid*1000)
|
|
|
- }
|
|
|
- if(values.cpaBidMin){
|
|
|
- values.cpaBidMin=parseInt(values.cpaBidMin*1000)
|
|
|
- }
|
|
|
- if(values.cpaBidMax){
|
|
|
- values.cpaBidMax=parseInt(values.cpaBidMax*1000)
|
|
|
- }
|
|
|
- if(values.stepSize){
|
|
|
- values.stepSize=parseInt(values.stepSize*1000)
|
|
|
- }
|
|
|
+
|
|
|
+ // if(values.bid){
|
|
|
+ // values.bid=parseInt(values.bid*1000)
|
|
|
+ // }
|
|
|
+ // if(values.cpaBidMin){
|
|
|
+ // values.cpaBidMin=parseInt(values.cpaBidMin*1000)
|
|
|
+ // }
|
|
|
+ // if(values.cpaBidMax){
|
|
|
+ // values.cpaBidMax=parseInt(values.cpaBidMax*1000)
|
|
|
+ // }
|
|
|
+ // if(values.stepSize){
|
|
|
+ // values.stepSize=parseInt(values.stepSize*1000)
|
|
|
+ // }
|
|
|
if(values.creativeCategory&&values.creativeCategory.length>0){
|
|
|
values.creativeCategory=values.creativeCategory[values.creativeCategory.length-1]
|
|
|
}else{
|
|
|
- values.creativeCategory=null
|
|
|
+ values.creativeCategory=undefined
|
|
|
}
|
|
|
|
|
|
values.accountId = this.accountId
|
|
|
- values.strategyName=this.strategyName
|
|
|
- let params={
|
|
|
- ...values,
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+ console.log('Received values of form: ', values)
|
|
|
+ let url=''
|
|
|
+ if(this.editRecordId){
|
|
|
+ url='/ctop/aiKuaishouAdvertiserStrategy/edit'
|
|
|
+ }else{
|
|
|
+ url='/ctop/aiKuaishouAdvertiserStrategy/add'
|
|
|
}
|
|
|
- console.log(params)
|
|
|
- postAction('/kuaishouStrategy/add',params).then(res=>{
|
|
|
+ postAction(url,values).then(res=>{
|
|
|
console.log(res)
|
|
|
this.goNextloading=false
|
|
|
if(res.success){
|
|
|
|
|
|
- this.$router.replace('/autoLaunch/autoLaunchList')
|
|
|
- this.$bus.$emit('remove', '/autoLaunch/newStrategy')
|
|
|
+ this.$router.replace('/autoLaunch/configLaunchList')
|
|
|
+ this.$bus.$emit('remove', '/autoLaunch/configLaunchInfo')
|
|
|
}else{
|
|
|
- this.$messgae.error(res.message)
|
|
|
+ this.$message.error(res.message)
|
|
|
|
|
|
- this.$router.replace('/autoLaunch/autoLaunchList')
|
|
|
- this.$bus.$emit('remove', '/autoLaunch/newStrategy')
|
|
|
+ // this.$router.replace('/autoLaunch/configLaunchList')
|
|
|
+ // this.$bus.$emit('remove', '/autoLaunch/configLaunchInfo')
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+ // $.ajax({
|
|
|
+ // url:'http://192.168.1.193:31012/add_advertiser_strategy',
|
|
|
+ // type:"POST",
|
|
|
+ // data:JSON.stringify(values),
|
|
|
+ // crossDomain:true,
|
|
|
+ // contentType:"application/json; charset=utf-8;",
|
|
|
+ // dataType:'json',
|
|
|
+ // success:(res)=>{
|
|
|
+ // this.goNextloading=false
|
|
|
+ // console.log(res)
|
|
|
+ // let result=JSON.parse(res)
|
|
|
+ // if(result.code==0){
|
|
|
+ // this.$router.replace('/autoLaunch/configLaunchList')
|
|
|
+ // this.$bus.$emit('remove', '/autoLaunch/configLaunchInfo')
|
|
|
+ // }else{
|
|
|
+ // this.$message.error(result.message)
|
|
|
+ // this.$router.replace('/autoLaunch/configLaunchList')
|
|
|
+ // this.$bus.$emit('remove', '/autoLaunch/configLaunchInfo')
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // error:(res)=>{
|
|
|
+ // console.log(res)
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+
|
|
|
+
|
|
|
|
|
|
}else{
|
|
|
this.$message.error('请正确填写必填项目')
|
|
@@ -1895,10 +1858,11 @@ export default {
|
|
|
sysTypeChange(e){
|
|
|
console.log(e.target.value);
|
|
|
this.form.setFieldsValue({
|
|
|
- appIds:[],
|
|
|
+ appId:'',
|
|
|
+ platformOs:e.target.value
|
|
|
})
|
|
|
- if(this.getFormData('marketingGoal')==2 || this.getFormData('marketingGoal')==7){
|
|
|
- this.appIdChange(this.getFormData('appIds'))
|
|
|
+ if(this.getFormData('campaignType')==2 || this.getFormData('campaignType')==7){
|
|
|
+ this.appIdChange(this.getFormData('appId'))
|
|
|
}
|
|
|
|
|
|
if(this.sysType==1){
|
|
@@ -1922,8 +1886,8 @@ export default {
|
|
|
},
|
|
|
showConvert() {
|
|
|
this.convertChange()
|
|
|
- if (this.getFormData('marketingGoal') == 2) {
|
|
|
- if (this.getData('appIds')) {
|
|
|
+ if (this.getFormData('campaignType') == 2) {
|
|
|
+ if (this.getData('appId')) {
|
|
|
this.convert = true;
|
|
|
|
|
|
if (this.getPlatForm(this.getData('appId')) == 1 || this.getPlatForm(this.getData('appId')) == 2) {
|
|
@@ -1943,28 +1907,25 @@ export default {
|
|
|
},
|
|
|
|
|
|
getPageList(appId) {
|
|
|
- if(appId.length){
|
|
|
- appId.forEach((item,index)=>{
|
|
|
- getAction('/kuaishou/batch/getPageList', {
|
|
|
- accountId: this.accountId,
|
|
|
- appId: item,
|
|
|
- viewComp: 7,
|
|
|
- }).then((res) => {
|
|
|
- if (res.success) {
|
|
|
- this.siteList[index].siteList = res.result
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
+
|
|
|
+ getAction('/kuaishou/batch/getPageList', {
|
|
|
+ accountId: this.accountId,
|
|
|
+ appId: appId,
|
|
|
+ viewComp: 7,
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.success) {
|
|
|
+ this.siteList = res.result
|
|
|
+ }
|
|
|
+ })
|
|
|
|
|
|
- }
|
|
|
-
|
|
|
+
|
|
|
},
|
|
|
|
|
|
// 获取行动号召按钮
|
|
|
getActionBarText(){
|
|
|
this.actionBarTextList=[]
|
|
|
getAction('/kuaishou/batch/getActionBarTextByType', {
|
|
|
- type:this.getFormData('marketingGoal')
|
|
|
+ type:this.getFormData('campaignType')
|
|
|
}).then((res) => {
|
|
|
if (res.success) {
|
|
|
this.actionBarTextList = res.result
|
|
@@ -1986,16 +1947,132 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+
|
|
|
+ editEchoPage(){
|
|
|
+ this.spinning=true;
|
|
|
+ if(this.editRecordId){
|
|
|
+ getAction('/ctop/aiKuaishouAdvertiserStrategy/queryById',{
|
|
|
+ id:this.editRecordId
|
|
|
+ }).then(res=>{
|
|
|
+ console.log(res);
|
|
|
+ this.accountId=res.result.accountId;
|
|
|
+ this.description=res.result.description
|
|
|
+ this.form.setFieldsValue({
|
|
|
+ ...res.result,
|
|
|
+ creativeTag:res.result.creativeTag?res.result.creativeTag:undefined,
|
|
|
+ useAppMarket:res.result.useAppMarket==1?true:false,
|
|
|
+
|
|
|
+ cpaBid:res.result.cpaBid/1000,
|
|
|
+
|
|
|
+ })
|
|
|
+ this.ageArr=[];
|
|
|
+ this.ageArr=JSON.parse(JSON.stringify(ageArr))
|
|
|
+ let agesRange=res.result.agesRange?JSON.parse(res.result.agesRange):[]
|
|
|
+ if(agesRange.length>0){
|
|
|
+ agesRange.forEach((item,index)=>{
|
|
|
+ this.ageArr.forEach((ele)=>{
|
|
|
+ if(ele.value==item){
|
|
|
+ ele.checked=true;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ });
|
|
|
+ }
|
|
|
+ let sceneId=res.result.sceneId?JSON.parse(res.result.sceneId):[]
|
|
|
+ if(sceneId.length==1&&sceneId[0]==1){
|
|
|
+ this.adposition=1
|
|
|
+ }else{
|
|
|
+ this.adposition='inventoryTypes';
|
|
|
+ this.checkedList=this.sceneId
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if(res.result.population&&res.result.excludePopulation){
|
|
|
+ this.form.setFieldsValue({
|
|
|
+ customCrowd:'3'
|
|
|
+ })
|
|
|
+ }else if(res.result.population&&!res.result.excludePopulation){
|
|
|
+ this.form.setFieldsValue({
|
|
|
+ customCrowd:'1'
|
|
|
+ })
|
|
|
+ }else if(!res.result.population&&!res.result.excludePopulation){
|
|
|
+ this.form.setFieldsValue({
|
|
|
+ customCrowd:'0'
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ this.form.setFieldsValue({
|
|
|
+ customCrowd:'2'
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ let incluedSelectedRowKeys=res.result.population?JSON.parse(res.result.population):[]
|
|
|
+ let excludeSelectedRowKeys=res.result.excludePopulation?JSON.parse(res.result.excludePopulation):[]
|
|
|
+ let selectedRow=[]
|
|
|
+ incluedSelectedRowKeys.forEach(item=>{
|
|
|
+ selectedRow.push({
|
|
|
+ accountId:this.accountId,
|
|
|
+ key:item,
|
|
|
+ id:item,
|
|
|
+ })
|
|
|
+
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if(this.getFormData('customCrowd')=='1' || this.getFormData('customCrowd')=='2'){
|
|
|
+
|
|
|
+ this.tabKey=this.getFormData('customCrowd')
|
|
|
+ }else if(this.getFormData('customCrowd')=='3'){
|
|
|
+
|
|
|
+ this.tabKey='1'
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ this.spinning=false;
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ getpopulationlist(){
|
|
|
+ getAction('/kuaishou/batch/getPopulationList',{
|
|
|
+ accountId:this.accountId
|
|
|
+ }).then((res)=>{
|
|
|
+ // console.log(res)
|
|
|
+ this.loading=false;
|
|
|
+ if(res.success){
|
|
|
+ res.result.forEach((ele)=>{
|
|
|
+ ele.key=ele.orientationId
|
|
|
+ ele.id= ele.orientationId
|
|
|
+ ele.name=ele.orientationName+"("+ele.orientationId+")"
|
|
|
+ ele.accountName=this.accountInfo.title
|
|
|
+ ele.accountId=this.accountId
|
|
|
+ })
|
|
|
+ // this.retargetData=res.data;
|
|
|
+ this.retargetDataAll=[...this.retargetDataAll,...res.result];
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
},
|
|
|
|
|
|
mounted() {
|
|
|
this.accountHttp()
|
|
|
+
|
|
|
// this.$bus.$emit('remove', '/modules/BatchCreate/newGroup')
|
|
|
- let strategyNamepart=this.marketingGoalHandle(this.getFormData('marketingGoal'));
|
|
|
+ let strategyNamepart=this.campaignTypeHandle(this.getFormData('campaignType'));
|
|
|
|
|
|
|
|
|
this.strategyName ='[预设]_'+ strategyNamepart+'_' + moment().format('MM_DD_hh:mm') ;
|
|
|
this.getActionBarText()
|
|
|
+ if(this.$route){
|
|
|
+ let editRecordId=this.$route.query.id;
|
|
|
+ if(editRecordId){
|
|
|
+ this.editRecordId=editRecordId;
|
|
|
+ this.editEchoPage()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
},
|
|
|
|
|
|
filters: {
|