|
@@ -933,6 +933,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">
|
|
@@ -944,7 +963,7 @@
|
|
|
<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='5'>联盟广告</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'">
|
|
@@ -954,28 +973,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">
|
|
@@ -1067,7 +1118,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>
|
|
@@ -1079,7 +1130,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">
|
|
@@ -1091,7 +1142,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">
|
|
@@ -1198,7 +1249,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>
|
|
|
|
|
@@ -1466,6 +1518,9 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ programUnitCnt:60,
|
|
|
+ customUnitCnt:400,
|
|
|
+ customUnitCntMax:400,
|
|
|
budgetType:'1',
|
|
|
dayBudgetType:'1',
|
|
|
clickTrackUrlTip:false,
|
|
@@ -1697,6 +1752,9 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
methods: {
|
|
|
+ setImageCnt(e){
|
|
|
+ this.customUnitCntMax = Math.floor(2000/e)
|
|
|
+ },
|
|
|
platformOsChange(e){
|
|
|
//console.log(e);
|
|
|
this.deviceBrand=0;
|
|
@@ -1773,7 +1831,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,'')
|
|
|
+
|
|
|
+
|
|
|
},
|
|
|
|
|
|
//获取表单的某一个属性值
|
|
@@ -2003,7 +2076,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 : [],
|
|
@@ -2276,6 +2357,16 @@ export default {
|
|
|
|
|
|
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){
|
|
@@ -2546,6 +2637,9 @@ export default {
|
|
|
|
|
|
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({
|
|
@@ -2605,6 +2699,9 @@ export default {
|
|
|
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
|