|
@@ -70,10 +70,72 @@
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
<a-form-item>
|
|
|
- <a-input v-decorator="['campaignName',{ rules: [{ required: true, message: '请填写计划的命名规则' }] }]" allow-clear />
|
|
|
+ <a-input v-decorator="['campaignName',{ rules: [{ required: true, message: '请填写计划的命名规则' }] }]" allow-clear id="campaignName"/>
|
|
|
</a-form-item>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <!-- <div class="row-item">
|
|
|
+ <div class="hint-item"> </div>
|
|
|
+ <div class="label-item">
|
|
|
+ <div class="text-item"></div>
|
|
|
+ </div>
|
|
|
+ <div class="input-item">
|
|
|
+ <a-form-item>
|
|
|
+ <a-tag color="#2db7f5" @click="getChangeAll('定向包', 'form', 'campaignName')"
|
|
|
+ >+定向包</a-tag
|
|
|
+ >
|
|
|
+ <a-tag color="#2db7f5" @click="getChangeAll('应用包名', 'form', 'campaignName')"
|
|
|
+ >+应用包名</a-tag
|
|
|
+ >
|
|
|
+ <a-tag color="#2db7f5" @click="getChangeAll('自定义', 'form', 'campaignName')"
|
|
|
+ >+自定义</a-tag
|
|
|
+ >
|
|
|
+ </a-form-item>
|
|
|
+ </div>
|
|
|
+ </div> -->
|
|
|
+
|
|
|
+ <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">
|
|
|
+ <a-form-item>
|
|
|
+ <a-radio-group v-model="budgetType">
|
|
|
+ <a-radio-button value="1">不限</a-radio-button>
|
|
|
+ <a-radio-button value="2">统一预算</a-radio-button>
|
|
|
+ </a-radio-group>
|
|
|
+ </a-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="row-item" v-if="budgetType == '2'">
|
|
|
+ <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
|
|
|
+ v-decorator="[
|
|
|
+ 'campaignDayBudget',
|
|
|
+ {
|
|
|
+ rules: [{ required: true, message: '不小于500, 不超过100000000,仅支持输入自然数' }],
|
|
|
+ },
|
|
|
+ ]"
|
|
|
+ :min="500"
|
|
|
+ :precision="0"
|
|
|
+ :max="100000000"
|
|
|
+ style="width: 100%"
|
|
|
+ placeholder="不小于500, 不超过100000000,仅支持输入自然数"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
<div class="row-item">
|
|
|
<div class="hint-item"> </div>
|
|
|
<div class="label-item">
|
|
@@ -82,10 +144,76 @@
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
<a-form-item>
|
|
|
- <a-input v-decorator="['groupName',{ rules: [{ required: true, message: '请填写组的命名规则' }] }]" allow-clear />
|
|
|
+ <a-input v-decorator="['groupName',{ rules: [{ required: true, message: '请填写组的命名规则' }] }]" allow-clear id="groupName"/>
|
|
|
+ </a-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="row-item">
|
|
|
+ <div class="hint-item"> </div>
|
|
|
+ <div class="label-item">
|
|
|
+ <div class="text-item"></div>
|
|
|
+ </div>
|
|
|
+ <div class="input-item">
|
|
|
+ <a-form-item>
|
|
|
+ <!-- <a-tag color="#2db7f5" @click="getChangeAll('定向包', 'form', 'groupName')"
|
|
|
+ >+定向包</a-tag
|
|
|
+ > -->
|
|
|
+ <!-- <a-tag color="#2db7f5" @click="getChangeAll('日期', 'form', 'groupName')">+日期</a-tag>
|
|
|
+ <a-tag color="#2db7f5" @click="getChangeAll('标号', 'form', 'groupName')">+标号</a-tag> -->
|
|
|
+ <!-- <a-tag color="#2db7f5" @click="getChangeAll('应用包名', 'form', 'groupName')"
|
|
|
+ >+应用包名</a-tag
|
|
|
+ > -->
|
|
|
+ <a-tag color="#2db7f5" @click="getChangeAll('创意制作方式', 'form', 'groupName')"
|
|
|
+ >+创意制作方式</a-tag
|
|
|
+ >
|
|
|
+ <a-tag color="#2db7f5" @click="getChangeAll('广告位置', 'form', 'groupName')"
|
|
|
+ >+广告位置</a-tag
|
|
|
+ >
|
|
|
+ <a-tag color="#2db7f5" @click="getChangeAll('自定义', 'form', 'groupName')"
|
|
|
+ >+自定义</a-tag
|
|
|
+ >
|
|
|
</a-form-item>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <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">
|
|
|
+ <a-form-item>
|
|
|
+ <a-radio-group v-model="dayBudgetType">
|
|
|
+ <a-radio-button value="1">不限</a-radio-button>
|
|
|
+ <a-radio-button value="2">统一预算</a-radio-button>
|
|
|
+ </a-radio-group>
|
|
|
+ </a-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="row-item" v-if="dayBudgetType=='2'">
|
|
|
+ <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
|
|
|
+ v-decorator="[
|
|
|
+ 'unitDayBudget',
|
|
|
+ {
|
|
|
+ rules: [{ required: true, message: '不小于500, 不超过100000000,仅支持输入自然数' }],
|
|
|
+ },
|
|
|
+ ]"
|
|
|
+ style="width: 100%"
|
|
|
+ placeholder="不小于500, 不超过100000000,仅支持输入自然数"
|
|
|
+ :min="500"
|
|
|
+ :precision="0"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
|
|
|
</div>
|
|
|
<div class="moduler">
|
|
@@ -220,16 +348,16 @@
|
|
|
</div>
|
|
|
<div class="moduler">
|
|
|
<div class="moduler-title">用户定向
|
|
|
- <div style="margin-left:30px;position:relative;top:-2px">
|
|
|
+ <!-- <div style="margin-left:30px;position:relative;top:-2px">
|
|
|
<a-radio-group v-model="useDirectional" @change="useDirectionalChange">
|
|
|
<a-radio :value="1">
|
|
|
不使用定向
|
|
|
</a-radio>
|
|
|
- <!-- <a-radio :value="0">
|
|
|
+ <a-radio :value="0">
|
|
|
使用定向包
|
|
|
- </a-radio> -->
|
|
|
+ </a-radio>
|
|
|
</a-radio-group>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
</div>
|
|
|
<div class="ad-range" v-if="useDirectional==1">
|
|
|
<div class="row-item">
|
|
@@ -284,7 +412,7 @@
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
<a-form-item>
|
|
|
- <radioCheck :checkArr='ageArr' @getSonValue='getAgeSelect' />
|
|
|
+ <radioCheck v-model="agesRange" :options="ageArr" @change='getAgeSelect' />
|
|
|
</a-form-item>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -303,12 +431,12 @@
|
|
|
</a-radio-group>
|
|
|
</a-form-item>
|
|
|
|
|
|
- <!-- <div style="margin-top:24px" v-if="getFormData('platformOs')!=0">
|
|
|
+ <div style="margin-top:24px" v-if="getFormData('platformOs')!=0">
|
|
|
<div v-if="getFormData('platformOs')==1">
|
|
|
<a-form-item>
|
|
|
<a-radio-group v-decorator="['androidOsv',{initialValue: 3,}]">
|
|
|
<a-radio :value="3">不限</a-radio>
|
|
|
- <a-radio :value="4">4X+</a-radio>
|
|
|
+ <a-radio :value="4">4x+</a-radio>
|
|
|
<a-radio :value="5">5x+</a-radio>
|
|
|
<a-radio :value="6">6x+</a-radio>
|
|
|
<a-radio :value="7">7x+</a-radio>
|
|
@@ -319,7 +447,7 @@
|
|
|
<a-form-item>
|
|
|
<a-radio-group v-decorator="['iosOsv',{initialValue: 6,}]">
|
|
|
<a-radio :value="6">不限</a-radio>
|
|
|
- <a-radio :value="7">7X+</a-radio>
|
|
|
+ <a-radio :value="7">7x+</a-radio>
|
|
|
<a-radio :value="8">8x+</a-radio>
|
|
|
<a-radio :value="9">9x+</a-radio>
|
|
|
<a-radio :value="10">10x+</a-radio>
|
|
@@ -327,10 +455,10 @@
|
|
|
</a-form-item>
|
|
|
</div>
|
|
|
|
|
|
- </div> -->
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!-- <div class="row-item" v-if="getFormData('platformOs')!=2">
|
|
|
+ <div class="row-item" v-if="getFormData('platformOs')!=2">
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
|
<div class="text-item">设备品牌</div>
|
|
@@ -349,6 +477,7 @@
|
|
|
<div class="inventory-tags-lists-name"><strong>品牌名称</strong></div>
|
|
|
</div>
|
|
|
<div class="inventory-tags-lists-container" >
|
|
|
+ <a-form-item>
|
|
|
<a-checkbox-group
|
|
|
v-decorator="['deviceBrand', { rules: [{ required: true, message: '请选择设备品牌' }] }]"
|
|
|
>
|
|
@@ -364,11 +493,55 @@
|
|
|
<a-checkbox :value="10" style="margin-bottom: 8px">其他</a-checkbox>
|
|
|
<a-checkbox :value="11" v-if="getFormData('platformOs') == 0" style="margin-bottom: 8px">苹果</a-checkbox>
|
|
|
</a-checkbox-group>
|
|
|
+ </a-form-item>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
- </div> -->
|
|
|
+ </div>
|
|
|
+ <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">
|
|
|
+ <a-form-item>
|
|
|
+ <a-radio-group v-model="devicePrice">
|
|
|
+ <a-radio-button :value="0">不限</a-radio-button>
|
|
|
+ <a-radio-button :value="1">选择价格</a-radio-button>
|
|
|
+ </a-radio-group>
|
|
|
+ </a-form-item>
|
|
|
+ <div style="width: 400px; margin-top: 24px;" class="inventoryTypes" v-if="devicePrice==1">
|
|
|
+ <div class="inventory-tags-lists-header" style="padding-left:15px">
|
|
|
+
|
|
|
+ <div class="inventory-tags-lists-name"><strong>价格区间</strong></div>
|
|
|
+ </div>
|
|
|
+ <div class="inventory-tags-lists-container" >
|
|
|
+ <a-form-item>
|
|
|
+ <a-checkbox-group
|
|
|
+ v-decorator="['devicePrice', { rules: [{ required: true, message: '请选择设备价格' }] }]"
|
|
|
+ style="width: 120%"
|
|
|
+ >
|
|
|
+ <a-checkbox :value="1" style="margin-bottom: 8px">1500以下</a-checkbox>
|
|
|
+ <a-checkbox :value="2" style="margin-bottom: 8px">1501~2000</a-checkbox>
|
|
|
+ <a-checkbox :value="3" style="margin-bottom: 8px">2001~2500</a-checkbox>
|
|
|
+ <a-checkbox :value="4" style="margin-bottom: 8px">2501~3000</a-checkbox>
|
|
|
+ <a-checkbox :value="5" style="margin-left: 0; margin-bottom: 8px">3001~3500</a-checkbox>
|
|
|
+ <a-checkbox :value="6" style="margin-bottom: 8px">3501~4000</a-checkbox>
|
|
|
+ <a-checkbox :value="7" style="margin-bottom: 8px">4001~4500</a-checkbox>
|
|
|
+ <a-checkbox :value="8" style="margin-bottom: 8px">4501~5000</a-checkbox>
|
|
|
+ <a-checkbox :value="9" style="margin-left: 0; margin-bottom: 8px">5001~5500</a-checkbox>
|
|
|
+ <a-checkbox :value="10" style="margin-bottom: 8px">5500以上</a-checkbox>
|
|
|
+ </a-checkbox-group>
|
|
|
+ </a-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
<div class="row-item">
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
@@ -758,6 +931,25 @@
|
|
|
<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>
|
|
|
+ <div class="input-item">
|
|
|
+ <a-form-item>
|
|
|
+ <a-radio-group v-decorator="['openProgramCreate', { initialValue:2 }]" @change="adposition=1;checkedList=[];checkAll=false">
|
|
|
+ <a-radio-button :value='2'>不限</a-radio-button>
|
|
|
+ <a-radio-button :value="0">自定义</a-radio-button>
|
|
|
+ <a-radio-button :value="1">程序化</a-radio-button>
|
|
|
+ </a-radio-group>
|
|
|
+ </a-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<div class="row-item">
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
@@ -768,7 +960,8 @@
|
|
|
<a-form-item>
|
|
|
<a-radio-group v-model="adposition" @change="adpositionChange">
|
|
|
<a-radio-button :value='1'>优选广告位</a-radio-button>
|
|
|
- <a-radio-button value="inventoryTypes">按媒体指定位置</a-radio-button>
|
|
|
+ <a-radio-button value="inventoryTypes">按媒体指定位置</a-radio-button>
|
|
|
+ <a-radio-button :value='5' :disabled="getData('openProgramCreate')==1">联盟广告</a-radio-button>
|
|
|
</a-radio-group>
|
|
|
</a-form-item>
|
|
|
<div style="width: 400px; margin-top: 24px;" class="inventoryTypes" v-show="adposition=='inventoryTypes'">
|
|
@@ -778,28 +971,60 @@
|
|
|
<div class="inventory-tags-lists-name"><strong>APP名称</strong></div>
|
|
|
</div>
|
|
|
<div class="inventory-tags-lists-container">
|
|
|
- <a-checkbox-group v-model="checkedList" :options="plainOptions" @change="onChange" />
|
|
|
+ <a-checkbox-group v-model="checkedList" @change="onChange" >
|
|
|
+
|
|
|
+ <a-checkbox :value="item.value" v-for="(item,index) in plainOptions" :key="index" :disabled="item.value==3&&getData('openProgramCreate')==1">
|
|
|
+ {{item.label}}
|
|
|
+ </a-checkbox>
|
|
|
+
|
|
|
+ </a-checkbox-group>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="row-item">
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <div class="row-item" v-if="getData('openProgramCreate')!=1">
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
|
- <div class="text-item">创意制作方式</div>
|
|
|
+ <div class="text-item">自定义组上限</div>
|
|
|
<div class="required-item"></div>
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
<a-form-item>
|
|
|
- <a-radio-group v-decorator="['openProgramCreate', { initialValue:2 }]">
|
|
|
- <a-radio-button :value='2'>不限</a-radio-button>
|
|
|
- <a-radio-button :value="0">自定义</a-radio-button>
|
|
|
- <a-radio-button :value="1">程序化</a-radio-button>
|
|
|
- </a-radio-group>
|
|
|
+ <a-input-number
|
|
|
+ v-model="customUnitCnt"
|
|
|
+ style="width: 100%"
|
|
|
+ placeholder="仅支持输入自然数"
|
|
|
+ :max="customUnitCntMax"
|
|
|
+ :precision="0"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ <div class="row-item" v-if="getData('openProgramCreate')!=0">
|
|
|
+ <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
|
|
|
+ v-model="programUnitCnt"
|
|
|
+ style="width: 100%"
|
|
|
+ placeholder="仅支持输入自然数"
|
|
|
+ :max="60"
|
|
|
+ :precision="0"
|
|
|
+ />
|
|
|
</a-form-item>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
<div class="row-item">
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
@@ -891,7 +1116,7 @@
|
|
|
<div class="row-item" v-if="getFormData('generalTrack')==1">
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
|
- <div class="text-item">点击监测链接</div>
|
|
|
+ <div class="text-item">第三方点击监测链接</div>
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
<a-form-item>
|
|
@@ -903,7 +1128,7 @@
|
|
|
<div class="row-item" v-if="getFormData('generalTrack')==1">
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
|
- <div class="text-item">开始播放监测链接</div>
|
|
|
+ <div class="text-item">第三方开始播放监测链接</div>
|
|
|
<!-- <div class="required-item"></div> -->
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
@@ -915,7 +1140,7 @@
|
|
|
<div class="row-item" v-if="whiteList.actionbar_click_url_switch==1&&getFormData('generalTrack')==1">
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
|
- <div class="text-item">点击按钮监测链接</div>
|
|
|
+ <div class="text-item">第三方actionBar监测链接</div>
|
|
|
<!-- <div class="required-item"></div> -->
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
@@ -1022,7 +1247,8 @@
|
|
|
:max="15"
|
|
|
:step="1"
|
|
|
:min='1'
|
|
|
- v-decorator="['imageCnt',{ initialValue:1, rules: [{ required: true, message: '请填写关联封面数' }] } ]"
|
|
|
+ v-decorator="['imageCnt',{ initialValue:5, rules: [{ required: true, message: '请填写关联封面数' }] } ]"
|
|
|
+ @change="setImageCnt"
|
|
|
/>
|
|
|
</a-form-item>
|
|
|
|
|
@@ -1165,7 +1391,8 @@ import { TreeSelect } from 'ant-design-vue';
|
|
|
import qs from 'qs'
|
|
|
const SHOW_PARENT = TreeSelect.SHOW_PARENT;
|
|
|
// import selectCheckAll from './toutiaoTime'
|
|
|
-import radioCheck from './components/radioCheck';
|
|
|
+// import radioCheck from './components/radioCheck';
|
|
|
+import radioCheck from '@/components/formComponents/checkBoxGroup'
|
|
|
import linkMultiSelect from './components/linkMultiSelect'
|
|
|
import singleLayersSelecte from './components/singleLayerSelecte'
|
|
|
import scheduleTime from '@/components/formComponents/toutiaoTime'
|
|
@@ -1180,35 +1407,30 @@ for (let i = 0; i < 7*24; i++) {
|
|
|
|
|
|
let ageArr=[
|
|
|
{
|
|
|
- value:'',
|
|
|
- title:'不限',
|
|
|
- checked:false,
|
|
|
+ value:1,
|
|
|
+ label:'不限',
|
|
|
|
|
|
},
|
|
|
{
|
|
|
value:18,
|
|
|
- title:' 18-23岁',
|
|
|
- checked:false,
|
|
|
+ label:' 18-23岁'
|
|
|
},
|
|
|
{
|
|
|
value:24,
|
|
|
- title:'24-30岁',
|
|
|
- checked:false,
|
|
|
+ label:'24-30岁',
|
|
|
},
|
|
|
{
|
|
|
value:31,
|
|
|
- title:'31-40岁',
|
|
|
- checked:false,
|
|
|
+ label:'31-40岁',
|
|
|
},
|
|
|
{
|
|
|
value:41,
|
|
|
- title:'41-49岁',
|
|
|
- checked:false,
|
|
|
+ label:'41-49岁',
|
|
|
},
|
|
|
{
|
|
|
value:50,
|
|
|
- title:'50岁+',
|
|
|
- checked:false,
|
|
|
+ label:'50岁+',
|
|
|
+
|
|
|
},
|
|
|
]
|
|
|
|
|
@@ -1279,10 +1501,7 @@ const plainOptions = [
|
|
|
value: 3,
|
|
|
label: '视频播放页广告'
|
|
|
},
|
|
|
- {
|
|
|
- value: 5,
|
|
|
- label: '联盟广告'
|
|
|
- },
|
|
|
+
|
|
|
];
|
|
|
|
|
|
export default {
|
|
@@ -1297,8 +1516,14 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ programUnitCnt:60,
|
|
|
+ customUnitCnt:400,
|
|
|
+ customUnitCntMax:400,
|
|
|
+ budgetType:'1',
|
|
|
+ dayBudgetType:'1',
|
|
|
clickTrackUrlTip:false,
|
|
|
- // deviceBrand:0,
|
|
|
+ deviceBrand:0,
|
|
|
+ devicePrice:0,
|
|
|
tongbuLoading:false,
|
|
|
refreshPopulationLoading:false,
|
|
|
noAreaBreak:false,
|
|
@@ -1371,7 +1596,7 @@ export default {
|
|
|
regionValue:'NONE',
|
|
|
ageArr,//受众年龄
|
|
|
region:[],
|
|
|
- agesRange:[],
|
|
|
+ agesRange:[1],
|
|
|
regionCityListUrl:'/kuaishou/batch/getRegion',
|
|
|
regionCountyListUrl:'/kuaishou/batch/getRegion',
|
|
|
|
|
@@ -1525,9 +1750,12 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
methods: {
|
|
|
+ setImageCnt(e){
|
|
|
+ this.customUnitCntMax = Math.floor(2000/e)
|
|
|
+ },
|
|
|
platformOsChange(e){
|
|
|
//console.log(e);
|
|
|
- // this.deviceBrand=0;
|
|
|
+ this.deviceBrand=0;
|
|
|
this.sysType=e.target.value;
|
|
|
this.sysTypeChange(e)
|
|
|
},
|
|
@@ -1601,7 +1829,22 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
descriptionchange(e){
|
|
|
- this.description=e.target.value
|
|
|
+ if(this.getData('description')){
|
|
|
+ this.$nextTick(()=>{
|
|
|
+ this.form.setFieldsValue({
|
|
|
+ description: this.getData('description').replace(/\s/g,'')
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ this.$nextTick(()=>{
|
|
|
+ this.form.setFieldsValue({
|
|
|
+ description: undefined
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.description=e.target.value.replace(/\s/g,'')
|
|
|
+
|
|
|
+
|
|
|
},
|
|
|
|
|
|
//获取表单的某一个属性值
|
|
@@ -1831,7 +2074,15 @@ export default {
|
|
|
onCheckAllChange(e) {
|
|
|
let valueOption = [];
|
|
|
this.plainOptions.forEach((item) => {
|
|
|
- valueOption.push(item.value)
|
|
|
+ if(this.getData('openProgramCreate')==1){
|
|
|
+ if(item.value!=3){
|
|
|
+ valueOption.push(item.value)
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+ valueOption.push(item.value)
|
|
|
+ }
|
|
|
+
|
|
|
})
|
|
|
Object.assign(this, {
|
|
|
checkedList: e.target.checked ? valueOption : [],
|
|
@@ -1899,13 +2150,21 @@ export default {
|
|
|
this.region=val;
|
|
|
},
|
|
|
//获取选中的年龄段
|
|
|
- getAgeSelect(val){
|
|
|
- // //console.log(val)
|
|
|
- if(val.length==1&&val[0]==""){
|
|
|
- this.agesRange=[]
|
|
|
- }else{
|
|
|
- this.agesRange=val;
|
|
|
+ getAgeSelect(data){
|
|
|
+
|
|
|
+ if (data.length > 1 && data.findIndex((item) => item == 1) == 0) {
|
|
|
+ data.splice(data.findIndex((item) => item == 1),1)
|
|
|
+ } else if (data.length > 1 && data.findIndex((item) => item == 1) == data.length - 1) {
|
|
|
+ data.splice(0, data.length - 1)
|
|
|
+ } else if (data.length == 0) {
|
|
|
+ data.push(1)
|
|
|
}
|
|
|
+ // //console.log(val)
|
|
|
+ // if(val.length==1&&val[0]==""){
|
|
|
+ // this.agesRange=[]
|
|
|
+ // }else{
|
|
|
+ // this.agesRange=val;
|
|
|
+ // }
|
|
|
|
|
|
},
|
|
|
//获取智能放量定向的值
|
|
@@ -2004,7 +2263,8 @@ export default {
|
|
|
|
|
|
this.form.validateFields((err, values) => {
|
|
|
//console.log(values)
|
|
|
- if (!err) {
|
|
|
+ if (!err) {
|
|
|
+ console.log(values)
|
|
|
this.goNextloading=true;
|
|
|
if(this.district!='NONE'){
|
|
|
values.district=this.district
|
|
@@ -2036,7 +2296,7 @@ export default {
|
|
|
// }
|
|
|
values.appIdArray=values.appId instanceof Array?JSON.stringify(values.appId):JSON.stringify([values.appId])
|
|
|
values.appId=undefined;
|
|
|
- values.agesRange=JSON.stringify(this.agesRange)
|
|
|
+ values.agesRange=this.agesRange[0]==1?JSON.stringify([]):JSON.stringify(this.agesRange)
|
|
|
values.region=JSON.stringify(this.region);
|
|
|
|
|
|
values.convertId=this.convertId==''?undefined:this.convertId;
|
|
@@ -2083,10 +2343,8 @@ export default {
|
|
|
values.creativeCategory=undefined
|
|
|
}
|
|
|
|
|
|
- // if(this.deviceBrand==0){
|
|
|
-
|
|
|
- // }
|
|
|
- // values.deviceBrand=this.deviceBrand==0?'[0]':JSON.stringify(values.deviceBrand)
|
|
|
+ values.deviceBrand=this.deviceBrand==0?'[]':JSON.stringify(values.deviceBrand)
|
|
|
+ values.devicePrice=this.devicePrice==0?'[]':JSON.stringify(values.devicePrice)
|
|
|
values.accountId = this.accountId
|
|
|
|
|
|
values.creativeTag=values.creativeTag?JSON.stringify(values.creativeTag):undefined
|
|
@@ -2095,6 +2353,18 @@ export default {
|
|
|
values.noGenderBreak=this.noGenderBreak?1:0
|
|
|
values.noAgeBreak=this.noAgeBreak?1:0
|
|
|
|
|
|
+ values.campaignDayBudget = this.budgetType =='1'?0: values.campaignDayBudget*1000
|
|
|
+ values.unitDayBudget = this.dayBudgetType =='1'?0: values.unitDayBudget*1000
|
|
|
+ if(this.getData('openProgramCreate')==0){
|
|
|
+ values.customUnitCnt = this.customUnitCnt
|
|
|
+ }else if(this.getData('openProgramCreate')==1){
|
|
|
+ values.programUnitCnt = this.programUnitCnt
|
|
|
+ }else{
|
|
|
+ values.customUnitCnt = this.customUnitCnt
|
|
|
+ values.programUnitCnt = this.programUnitCnt
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//console.log('Received values of form: ', values)
|
|
|
let url=''
|
|
|
if(this.editRecordId){
|
|
@@ -2278,6 +2548,8 @@ export default {
|
|
|
this.actionBarTextList = res.result
|
|
|
}
|
|
|
})
|
|
|
+
|
|
|
+
|
|
|
},
|
|
|
|
|
|
// 获取创意分类创意标签白名单
|
|
@@ -2353,10 +2625,20 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // if(res.result.deviceBrand){
|
|
|
+
|
|
|
|
|
|
- // this.deviceBrand=res.result.deviceBrand.indexOf(0)>-1?0:1;
|
|
|
- // }
|
|
|
+ this.deviceBrand=res.result.deviceBrand?JSON.parse(res.result.deviceBrand).length>0?1:0:0;
|
|
|
+
|
|
|
+
|
|
|
+ this.devicePrice=res.result.devicePrice?JSON.parse(res.result.devicePrice).length>0?1:0:0
|
|
|
+
|
|
|
+
|
|
|
+ this.budgetType = res.result.campaignDayBudget?res.result.campaignDayBudget>0?'2':'1':'1'
|
|
|
+ this.dayBudgetType = res.result.unitDayBudget?res.result.unitDayBudget>0?'2':'1':'1'
|
|
|
+ this.customUnitCnt = res.result.customUnitCnt
|
|
|
+ this.programUnitCnt = res.result.programUnitCnt
|
|
|
+ this.customUnitCntMax = Math.floor(2000/res.result.imageCnt)
|
|
|
+
|
|
|
setTimeout(()=>{
|
|
|
this.form.setFieldsValue({
|
|
|
...res.result,
|
|
@@ -2365,9 +2647,21 @@ export default {
|
|
|
isOpen:res.result.isOpen?res.result.isOpen:0,
|
|
|
cpaBid:res.result.cpaBid/1000,
|
|
|
appId:res.singleAppid?JSON.parse(res.result.appIdArray)[0]:JSON.parse(res.result.appIdArray),
|
|
|
- // deviceBrand:res.result.deviceBrand?JSON.parse(res.result.deviceBrand):[],
|
|
|
+ deviceBrand:res.result.deviceBrand?JSON.parse(res.result.deviceBrand):[],
|
|
|
+ devicePrice:res.result.devicePrice?JSON.parse(res.result.devicePrice):[],
|
|
|
+
|
|
|
+ campaignDayBudget:res.result.campaignDayBudget?res.result.campaignDayBudget/1000:null,
|
|
|
+ unitDayBudget:res.result.unitDayBudget?res.result.unitDayBudget/1000:null
|
|
|
+
|
|
|
})
|
|
|
},0)
|
|
|
+ setTimeout(()=>{
|
|
|
+ this.form.setFieldsValue({
|
|
|
+ androidOsv:res.result.androidOsv?res.result.androidOsv:3,
|
|
|
+ iosOsv:res.result.iosOsv?res.result.iosOsv:6,
|
|
|
+ })
|
|
|
+
|
|
|
+ },100)
|
|
|
if((res.result.ocpxActionType == 180 || res.result.ocpxActionType == 53) && this.groupTypeData.deepConversionTypes&&this.groupTypeData.deepConversionTypes.length > 0){
|
|
|
// //console.log(1)
|
|
|
setTimeout(()=>{
|
|
@@ -2390,19 +2684,22 @@ export default {
|
|
|
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;
|
|
|
- }
|
|
|
- })
|
|
|
- });
|
|
|
- }
|
|
|
+ this.agesRange=res.result.agesRange?JSON.parse(res.result.agesRange).length>0?JSON.parse(res.result.agesRange):[1]:[1]
|
|
|
+ // 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 if(sceneId.length==1&&sceneId[0]==5){
|
|
|
+ this.adposition=5
|
|
|
+
|
|
|
}else{
|
|
|
this.adposition='inventoryTypes';
|
|
|
this.checkedList=sceneId
|
|
@@ -2489,7 +2786,52 @@ export default {
|
|
|
clickTrackUrlBlur(){
|
|
|
// //console.log('blur')
|
|
|
this.clickTrackUrlTip=false;
|
|
|
- }
|
|
|
+ },
|
|
|
+ getChangeAll(type, form, field) {
|
|
|
+ var node = document.getElementById(field)
|
|
|
+ var v = '-{{' + type + '}}-'
|
|
|
+ if (document.selection) {
|
|
|
+ //IE
|
|
|
+ node.focus()
|
|
|
+ var sel = document.selection.createRange()
|
|
|
+ sel.text = v
|
|
|
+ sel.select()
|
|
|
+ if (field == 'campaignName') {
|
|
|
+ this[form].setFieldsValue({ campaignName: sel.text })
|
|
|
+ } else if (field == 'groupName') {
|
|
|
+ this[form].setFieldsValue({ groupName: sel.text })
|
|
|
+ }
|
|
|
+ } else if (node.selectionStart || node.selectionStart == '0') {
|
|
|
+ //MOZILLA/GOOGLE
|
|
|
+ var startPos = node.selectionStart
|
|
|
+ var endPos = node.selectionEnd
|
|
|
+ var restoreTop = node.scrollTop
|
|
|
+ node.value = node.value.substring(0, startPos) + v + node.value.substring(endPos, node.value.length)
|
|
|
+ if (restoreTop > 0) {
|
|
|
+ node.scrollTop = restoreTop
|
|
|
+ }
|
|
|
+ if (field == 'campaignName') {
|
|
|
+ this[form].setFieldsValue({ campaignName: node.value })
|
|
|
+ } else if (field == 'groupName') {
|
|
|
+ this[form].setFieldsValue({ groupName: node.value })
|
|
|
+ }
|
|
|
+ node.focus()
|
|
|
+ node.selectionStart = startPos + v.length
|
|
|
+ node.selectionEnd = startPos + v.length
|
|
|
+ // this.campaignName = node.value
|
|
|
+ } else {
|
|
|
+ //OTHER
|
|
|
+ node.value += v
|
|
|
+ // console.log(node.value)
|
|
|
+ if (field == 'campaignName') {
|
|
|
+ this[form].setFieldsValue({ campaignName: node.value })
|
|
|
+ } else if (field == 'groupName') {
|
|
|
+ this[form].setFieldsValue({ groupName: node.value })
|
|
|
+ }
|
|
|
+ node.focus()
|
|
|
+ // this.campaignName = node.value
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
created() {
|
|
|
if(this.$route){
|