|
@@ -26,8 +26,9 @@
|
|
class="common-input"
|
|
class="common-input"
|
|
v-model="configForm.dpLinkStartIndex"
|
|
v-model="configForm.dpLinkStartIndex"
|
|
:disabled="modalTitle === 'edit'"
|
|
:disabled="modalTitle === 'edit'"
|
|
- :min="0"
|
|
|
|
|
|
+ :min="1"
|
|
placeholder="请输入"
|
|
placeholder="请输入"
|
|
|
|
+ @change="handleDplinkStart"
|
|
/>
|
|
/>
|
|
<span>~</span>
|
|
<span>~</span>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
@@ -38,6 +39,7 @@
|
|
:disabled="modalTitle === 'edit'"
|
|
:disabled="modalTitle === 'edit'"
|
|
:min="getEndIndex"
|
|
:min="getEndIndex"
|
|
placeholder="请输入"
|
|
placeholder="请输入"
|
|
|
|
+ @change="handleDplinkEnd"
|
|
/>
|
|
/>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
<a-form-model-item label="预算方式">
|
|
<a-form-model-item label="预算方式">
|
|
@@ -140,46 +142,42 @@
|
|
<a-radio-button value="EXTERNAL_URL">落地页</a-radio-button>
|
|
<a-radio-button value="EXTERNAL_URL">落地页</a-radio-button>
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
- <div v-if="configForm.adDownloadType === 'EXTERNAL_URL'">
|
|
|
|
- <a-form-model-item label="落地页链接" prop="adExternalUrl">
|
|
|
|
- <a-input
|
|
|
|
- class="common-input-long"
|
|
|
|
- :disabled="modalTitle === 'edit'"
|
|
|
|
- v-model="configForm.adExternalUrl"
|
|
|
|
- placeholder="请输入落地页链接"
|
|
|
|
- allow-clear
|
|
|
|
- />
|
|
|
|
- </a-form-model-item>
|
|
|
|
- <a-form-model-item label="直达链接内容">
|
|
|
|
- <a-input
|
|
|
|
- class="common-input-long"
|
|
|
|
- v-model="configForm.adOpenUrl"
|
|
|
|
- placeholder="请输入直达链接内容"
|
|
|
|
- allow-clear
|
|
|
|
- />
|
|
|
|
- </a-form-model-item>
|
|
|
|
- </div>
|
|
|
|
- <div v-if="configForm.adDownloadType === 'DOWNLOAD_URL'">
|
|
|
|
- <a-form-model-item label="下载链接" prop="adDownloadUrl">
|
|
|
|
- <a-input
|
|
|
|
- class="common-input-long"
|
|
|
|
- :disabled="modalTitle === 'edit'"
|
|
|
|
- v-model="configForm.adDownloadUrl"
|
|
|
|
- placeholder="请输入下载链接"
|
|
|
|
- allow-clear
|
|
|
|
- @change="handleDownloadLink"
|
|
|
|
- />
|
|
|
|
- </a-form-model-item>
|
|
|
|
- <a-form-model-item label="应用包名" prop="adPackage">
|
|
|
|
- <a-input
|
|
|
|
- class="common-input-long"
|
|
|
|
- :disabled="modalTitle === 'edit'"
|
|
|
|
- v-model="configForm.adPackage"
|
|
|
|
- placeholder="请输入应用包名"
|
|
|
|
- allow-clear
|
|
|
|
- />
|
|
|
|
- </a-form-model-item>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <a-form-model-item v-if="configForm.adDownloadType === 'EXTERNAL_URL'" label="落地页链接" prop="adExternalUrl">
|
|
|
|
+ <a-input
|
|
|
|
+ class="common-input-long"
|
|
|
|
+ :disabled="modalTitle === 'edit'"
|
|
|
|
+ v-model="configForm.adExternalUrl"
|
|
|
|
+ placeholder="请输入落地页链接"
|
|
|
|
+ allow-clear
|
|
|
|
+ />
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item v-if="configForm.adDownloadType === 'EXTERNAL_URL'" label="直达链接内容">
|
|
|
|
+ <a-input
|
|
|
|
+ class="common-input-long"
|
|
|
|
+ v-model="configForm.adOpenUrl"
|
|
|
|
+ placeholder="请输入直达链接内容"
|
|
|
|
+ allow-clear
|
|
|
|
+ />
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item v-if="configForm.adDownloadType === 'DOWNLOAD_URL'" label="下载链接" prop="adDownloadUrl">
|
|
|
|
+ <a-input
|
|
|
|
+ class="common-input-long"
|
|
|
|
+ :disabled="modalTitle === 'edit'"
|
|
|
|
+ v-model="configForm.adDownloadUrl"
|
|
|
|
+ placeholder="请输入下载链接"
|
|
|
|
+ allow-clear
|
|
|
|
+ @change="handleDownloadLink"
|
|
|
|
+ />
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item v-if="configForm.adDownloadType === 'DOWNLOAD_URL'" label="应用包名" prop="adPackage">
|
|
|
|
+ <a-input
|
|
|
|
+ class="common-input-long"
|
|
|
|
+ :disabled="modalTitle === 'edit'"
|
|
|
|
+ v-model="configForm.adPackage"
|
|
|
|
+ placeholder="请输入应用包名"
|
|
|
|
+ allow-clear
|
|
|
|
+ />
|
|
|
|
+ </a-form-model-item>
|
|
</div>
|
|
</div>
|
|
<div class="separate-module-con">
|
|
<div class="separate-module-con">
|
|
<p class="rock-title">优化目标</p>
|
|
<p class="rock-title">优化目标</p>
|
|
@@ -261,7 +259,7 @@
|
|
<a-radio-group v-model="configForm.adDistrict" button-style="solid">
|
|
<a-radio-group v-model="configForm.adDistrict" button-style="solid">
|
|
<a-radio-button value="NONE">不限</a-radio-button>
|
|
<a-radio-button value="NONE">不限</a-radio-button>
|
|
<a-radio-button value="CITY">按省市</a-radio-button>
|
|
<a-radio-button value="CITY">按省市</a-radio-button>
|
|
- <a-radio-button value="COUNTY">按区县</a-radio-button>
|
|
|
|
|
|
+ <a-radio-button value="COUNTY" disabled>按区县</a-radio-button>
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
<div v-if="configForm.adDistrict === 'CITY'" class="adver-position-radio selected-city-arr">
|
|
<div v-if="configForm.adDistrict === 'CITY'" class="adver-position-radio selected-city-arr">
|
|
@@ -355,14 +353,7 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<a-form-model-item label="网络">
|
|
<a-form-model-item label="网络">
|
|
- <a-radio-group v-model="configForm.adAc" button-style="solid">
|
|
|
|
- <a-radio-button value="NONE">不限</a-radio-button>
|
|
|
|
- <a-radio-button value="WIFI">Wi-Fi</a-radio-button>
|
|
|
|
- <a-radio-button value="2G">2G</a-radio-button>
|
|
|
|
- <a-radio-button value="3G">3G</a-radio-button>
|
|
|
|
- <a-radio-button value="4G">4G</a-radio-button>
|
|
|
|
- </a-radio-group>
|
|
|
|
- <!-- <radio-check v-model="configForm.adSelectAge" :options="adAcList" @change="getAgeSelect"></radio-check> -->
|
|
|
|
|
|
+ <radio-check v-model="configForm.adSelectAc" :options="adAcList" @change="getAgeSelect"></radio-check>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
<a-form-model-item label="已安装用户">
|
|
<a-form-model-item label="已安装用户">
|
|
<a-radio-group v-model="configForm.adHideIfExists" button-style="solid">
|
|
<a-radio-group v-model="configForm.adHideIfExists" button-style="solid">
|
|
@@ -519,7 +510,7 @@
|
|
<a-radio-group v-model="configForm.adBidCreateType" button-style="solid" @change="handleBiddingMethod">
|
|
<a-radio-group v-model="configForm.adBidCreateType" button-style="solid" @change="handleBiddingMethod">
|
|
<a-radio-button value="FIX">固定出价</a-radio-button>
|
|
<a-radio-button value="FIX">固定出价</a-radio-button>
|
|
<a-radio-button value="RAND">随机出价</a-radio-button>
|
|
<a-radio-button value="RAND">随机出价</a-radio-button>
|
|
- <a-radio-button value="STEP">阶段出价</a-radio-button>
|
|
|
|
|
|
+ <a-radio-button value="STEP">阶梯出价</a-radio-button>
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
<a-form-model-item v-if="configForm.adBidCreateType === 'FIX'" label="目标转化出价" :prop="configForm.launchTarget === 'OCPM' ? 'adCpaBid' : ''">
|
|
<a-form-model-item v-if="configForm.adBidCreateType === 'FIX'" label="目标转化出价" :prop="configForm.launchTarget === 'OCPM' ? 'adCpaBid' : ''">
|
|
@@ -551,7 +542,7 @@
|
|
:min="0.1"
|
|
:min="0.1"
|
|
:max="10000"
|
|
:max="10000"
|
|
placeholder="请输入"
|
|
placeholder="请输入"
|
|
- />
|
|
|
|
|
|
+ /> 元
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</div>
|
|
</div>
|
|
<div v-if="configForm.adBidCreateType === 'STEP'">
|
|
<div v-if="configForm.adBidCreateType === 'STEP'">
|
|
@@ -572,13 +563,14 @@
|
|
:min="0.1"
|
|
:min="0.1"
|
|
:max="10000"
|
|
:max="10000"
|
|
placeholder="请输入"
|
|
placeholder="请输入"
|
|
- />
|
|
|
|
|
|
+ /> 元
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
<a-form-model-item label="浮动间隔" prop="adStepBid">
|
|
<a-form-model-item label="浮动间隔" prop="adStepBid">
|
|
<a-input-number
|
|
<a-input-number
|
|
class="common-input"
|
|
class="common-input"
|
|
v-model="configForm.adStepBid"
|
|
v-model="configForm.adStepBid"
|
|
placeholder="请输入"
|
|
placeholder="请输入"
|
|
|
|
+ @blur="handleFloatingInterval"
|
|
/> 元
|
|
/> 元
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</div>
|
|
</div>
|
|
@@ -811,7 +803,8 @@ export default {
|
|
};
|
|
};
|
|
let adMinBidValidator = (rule, value, callback) => {
|
|
let adMinBidValidator = (rule, value, callback) => {
|
|
const finallyResult = Number(this.configForm.adMaxBid);
|
|
const finallyResult = Number(this.configForm.adMaxBid);
|
|
- if (finallyResult !== '' && value && Number(value) < finallyResult) {
|
|
|
|
|
|
+ if (finallyResult && value && Number(value) < finallyResult) {
|
|
|
|
+ this.$refs['ruleForm'].clearValidate(['adMaxBid']);
|
|
callback();
|
|
callback();
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
@@ -820,7 +813,8 @@ export default {
|
|
};
|
|
};
|
|
let adMaxBidValidator = (rule, value, callback) => {
|
|
let adMaxBidValidator = (rule, value, callback) => {
|
|
const finallyResult = Number(this.configForm.adMinBid);
|
|
const finallyResult = Number(this.configForm.adMinBid);
|
|
- if (finallyResult !== '' && value && Number(value) > finallyResult) {
|
|
|
|
|
|
+ if (finallyResult && value && Number(value) > finallyResult) {
|
|
|
|
+ this.$refs['ruleForm'].clearValidate(['adMinBid']);
|
|
callback();
|
|
callback();
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
@@ -829,8 +823,30 @@ export default {
|
|
};
|
|
};
|
|
return {
|
|
return {
|
|
directionalData: [],
|
|
directionalData: [],
|
|
|
|
+ platformLoadingType: '',
|
|
selectPackageTabs: '1',
|
|
selectPackageTabs: '1',
|
|
- adAcList: [],
|
|
|
|
|
|
+ adAcList: [
|
|
|
|
+ {
|
|
|
|
+ value: 'NONE',
|
|
|
|
+ label: '不限'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: 'WIFI',
|
|
|
|
+ label: 'WI-FI'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: '2G',
|
|
|
|
+ label: '2G'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: '3G',
|
|
|
|
+ label: '3G'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: '4G',
|
|
|
|
+ label: '4G'
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
adHideIfConvertedDataOption: [ // 过滤已转化用户option
|
|
adHideIfConvertedDataOption: [ // 过滤已转化用户option
|
|
{
|
|
{
|
|
id: 'NO_EXCLUDE',
|
|
id: 'NO_EXCLUDE',
|
|
@@ -869,7 +885,7 @@ export default {
|
|
regionCityListUrl: 'ctop/bytedanceAreaInfo/list',
|
|
regionCityListUrl: 'ctop/bytedanceAreaInfo/list',
|
|
defaultAdBudget: '',
|
|
defaultAdBudget: '',
|
|
adBudgetShowTitle: false,
|
|
adBudgetShowTitle: false,
|
|
- adBudgetNum: 0,
|
|
|
|
|
|
+ adBudgetNum: 1,
|
|
campaignStatus: false,
|
|
campaignStatus: false,
|
|
detailData: {},
|
|
detailData: {},
|
|
modalTitle: '',
|
|
modalTitle: '',
|
|
@@ -1006,15 +1022,15 @@ export default {
|
|
adDownloadUrl: '', // 下载链接
|
|
adDownloadUrl: '', // 下载链接
|
|
accountBudget: 0, // 账户日预算
|
|
accountBudget: 0, // 账户日预算
|
|
accountId: undefined, // 账户
|
|
accountId: undefined, // 账户
|
|
- dpLinkStartIndex: 0,
|
|
|
|
- dpLinkEndIndex: 0,
|
|
|
|
|
|
+ dpLinkStartIndex: 1,
|
|
|
|
+ dpLinkEndIndex: 2,
|
|
accountBudgetMode: '1', // 预算方式
|
|
accountBudgetMode: '1', // 预算方式
|
|
campaignLandingType: 'APP', // 推广目标
|
|
campaignLandingType: 'APP', // 推广目标
|
|
advertisingType: '1', // 广告类型
|
|
advertisingType: '1', // 广告类型
|
|
campaignName: '', // 广告组名称
|
|
campaignName: '', // 广告组名称
|
|
adName: '', // 广告计划名称
|
|
adName: '', // 广告计划名称
|
|
- campaignCnt: 0, // 广告组计划数量
|
|
|
|
- campaignAdCnt: 0, // 广告计划数量
|
|
|
|
|
|
+ campaignCnt: 1, // 广告组计划数量
|
|
|
|
+ campaignAdCnt: 1, // 广告计划数量
|
|
launchTarget: 'OCPM', // 投放目标
|
|
launchTarget: 'OCPM', // 投放目标
|
|
adDownloadType: 'EXTERNAL_URL', // 下载方式
|
|
adDownloadType: 'EXTERNAL_URL', // 下载方式
|
|
adExternalUrl: '', // 落地页链接
|
|
adExternalUrl: '', // 落地页链接
|
|
@@ -1032,20 +1048,21 @@ export default {
|
|
customPerson: 'NONE', // 定向-自定义
|
|
customPerson: 'NONE', // 定向-自定义
|
|
adSuperiorPopularityType: 'NONE', // 定向-媒体定向
|
|
adSuperiorPopularityType: 'NONE', // 定向-媒体定向
|
|
adPlatform: 'NONE', // 定向-平台
|
|
adPlatform: 'NONE', // 定向-平台
|
|
- adAc: 'NONE', // 定向-网络
|
|
|
|
|
|
+ adSelectAc: ['NONE'],
|
|
|
|
+ adAc: '', // 定向-网络
|
|
adHideIfExists: '0', // 定向-已安装用户
|
|
adHideIfExists: '0', // 定向-已安装用户
|
|
adHideIfConverted: 'NO_EXCLUDE', // 定向-已转化用户
|
|
adHideIfConverted: 'NO_EXCLUDE', // 定向-已转化用户
|
|
adAutoExtendEnabled: '0', // 定向-智能播放
|
|
adAutoExtendEnabled: '0', // 定向-智能播放
|
|
adAndroidVersion: 'NONE', // 定向-安卓版本
|
|
adAndroidVersion: 'NONE', // 定向-安卓版本
|
|
androidChangeValue: '', // 安卓版本-自定义
|
|
androidChangeValue: '', // 安卓版本-自定义
|
|
adSmartBidType: 'SMART_BID_CUSTOM', // 投放场景
|
|
adSmartBidType: 'SMART_BID_CUSTOM', // 投放场景
|
|
- adBudget: 0, // 预算
|
|
|
|
|
|
+ adBudget: 1, // 预算
|
|
adScheduleType: 'SCHEDULE_FROM_NOW', // 投放时间
|
|
adScheduleType: 'SCHEDULE_FROM_NOW', // 投放时间
|
|
launchDateRange: [], // 设置开始和结束时间
|
|
launchDateRange: [], // 设置开始和结束时间
|
|
launchTimeInterval: 'buxian', // 投放时段
|
|
launchTimeInterval: 'buxian', // 投放时段
|
|
scheduleTimeData: str, // 指定时段选择
|
|
scheduleTimeData: str, // 指定时段选择
|
|
adPricing: 'PRICING_OCPM', // 付费方式
|
|
adPricing: 'PRICING_OCPM', // 付费方式
|
|
- adCpaBid: 0, // 目标转化出价
|
|
|
|
|
|
+ adCpaBid: 0.1, // 目标转化出价
|
|
creativeActionTrackUrl: '', // 监测地址
|
|
creativeActionTrackUrl: '', // 监测地址
|
|
creativeMaterialMode: 'STATIC_ASSEMBLE', // 创意方式
|
|
creativeMaterialMode: 'STATIC_ASSEMBLE', // 创意方式
|
|
creativeImageMode: 'CREATIVE_IMAGE_MODE_VIDEO_VERTICAL', // 创意内容
|
|
creativeImageMode: 'CREATIVE_IMAGE_MODE_VIDEO_VERTICAL', // 创意内容
|
|
@@ -1069,7 +1086,7 @@ export default {
|
|
return this.configForm.accountId ? '请选择已有定向包名称' : '请选择广告账户';
|
|
return this.configForm.accountId ? '请选择已有定向包名称' : '请选择广告账户';
|
|
},
|
|
},
|
|
getEndIndex() {
|
|
getEndIndex() {
|
|
- return Number(this.configForm.dpLinkStartIndex);
|
|
|
|
|
|
+ return Number(this.configForm.dpLinkStartIndex) + 1;
|
|
},
|
|
},
|
|
getSource() {
|
|
getSource() {
|
|
if (this.configForm.campaignLandingType !== 'APP' || (this.configForm.campaignLandingType === 'APP' && this.configForm.adDownloadType === 'EXTERNAL_URL')) {
|
|
if (this.configForm.campaignLandingType !== 'APP' || (this.configForm.campaignLandingType === 'APP' && this.configForm.adDownloadType === 'EXTERNAL_URL')) {
|
|
@@ -1115,6 +1132,11 @@ export default {
|
|
this.handleGetOptimizationObjective(paramsData);
|
|
this.handleGetOptimizationObjective(paramsData);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ platformLoadingType(newVal, oldVal) {
|
|
|
|
+ if (newVal && this.configForm.accountId) {
|
|
|
|
+ this.handleGetAdAudiencePackage();
|
|
|
|
+ }
|
|
|
|
+ },
|
|
NewAountId(newVal, oldVal) {
|
|
NewAountId(newVal, oldVal) {
|
|
if (newVal && this.configForm.adPackage) {
|
|
if (newVal && this.configForm.adPackage) {
|
|
const paramsData = {
|
|
const paramsData = {
|
|
@@ -1129,10 +1151,12 @@ export default {
|
|
};
|
|
};
|
|
this.handleGetOptimizationObjective(paramsData);
|
|
this.handleGetOptimizationObjective(paramsData);
|
|
}
|
|
}
|
|
|
|
+ if (newVal && this.platformLoadingType) {
|
|
|
|
+ this.handleGetAdAudiencePackage();
|
|
|
|
+ }
|
|
if (newVal) {
|
|
if (newVal) {
|
|
this.handleGetCreativeClassification();
|
|
this.handleGetCreativeClassification();
|
|
this.handleGetAdvertiserStrategy();
|
|
this.handleGetAdvertiserStrategy();
|
|
- this.handleGetAdAudiencePackage();
|
|
|
|
this.handleDirectionalList();
|
|
this.handleDirectionalList();
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
@@ -1156,6 +1180,15 @@ export default {
|
|
methods: {
|
|
methods: {
|
|
...mapGetters(['nickname', 'avatar', 'userInfo']),
|
|
...mapGetters(['nickname', 'avatar', 'userInfo']),
|
|
moment,
|
|
moment,
|
|
|
|
+ handleDplinkStart(e) {
|
|
|
|
+ this.configForm.dpLinkStartIndex = Math.round(e);
|
|
|
|
+ },
|
|
|
|
+ handleDplinkEnd(e) {
|
|
|
|
+ this.configForm.dpLinkEndIndex = Math.round(e);
|
|
|
|
+ },
|
|
|
|
+ handleFloatingInterval(e) {
|
|
|
|
+ this.configForm.adStepBid = Number(Number(e.target.value).toFixed(2));
|
|
|
|
+ },
|
|
handleDirectionalList() {
|
|
handleDirectionalList() {
|
|
const paramsData = {
|
|
const paramsData = {
|
|
accountId: this.configForm.accountId
|
|
accountId: this.configForm.accountId
|
|
@@ -1198,12 +1231,23 @@ export default {
|
|
this.configForm.adRetargetingTagsExclude = list && list.join(',');
|
|
this.configForm.adRetargetingTagsExclude = list && list.join(',');
|
|
},
|
|
},
|
|
handleDirectionalLogic(e) {
|
|
handleDirectionalLogic(e) {
|
|
- console.log(e.target.value, 'e--e--e--e--e--e--e--e');
|
|
|
|
const selectValue = e.target.value;
|
|
const selectValue = e.target.value;
|
|
|
|
+ this.handleDirectionalList();
|
|
|
|
+ if (selectValue === '1') {
|
|
|
|
+ this.$refs.exclude.aloneInput = '';
|
|
|
|
+ }
|
|
|
|
+ else if (selectValue === '2') {
|
|
|
|
+ this.$refs.direct.aloneInput = '';
|
|
|
|
+ }
|
|
|
|
+ else if (selectValue === '3') {
|
|
|
|
+ this.$refs.direct.aloneInput = '';
|
|
|
|
+ this.$refs.exclude.aloneInput = '';
|
|
|
|
+ }
|
|
},
|
|
},
|
|
handleGetAdAudiencePackage() {
|
|
handleGetAdAudiencePackage() {
|
|
const params = {
|
|
const params = {
|
|
- accountId: this.configForm.accountId
|
|
|
|
|
|
+ accountId: this.configForm.accountId,
|
|
|
|
+ landingType: this.configForm.adDownloadType === 'DOWNLOAD_URL' ? this.platformLoadingType : 'EXTERNAL'
|
|
};
|
|
};
|
|
getAction(urlAcount + '/bytedance-api/advertiser/aiBytedanceAdvertiserStrategy/getAdAudiencePackage', params)
|
|
getAction(urlAcount + '/bytedance-api/advertiser/aiBytedanceAdvertiserStrategy/getAdAudiencePackage', params)
|
|
.then(result => {
|
|
.then(result => {
|
|
@@ -1224,10 +1268,10 @@ export default {
|
|
defaultData.forEach(item => {
|
|
defaultData.forEach(item => {
|
|
item.replaceSex = item.audience.gender === 'NONE' ? '不限' : item.audience.gender === 'GENDER_FEMALE' ? '女' : '男';
|
|
item.replaceSex = item.audience.gender === 'NONE' ? '不限' : item.audience.gender === 'GENDER_FEMALE' ? '女' : '男';
|
|
item.replaceEnabled = item.audience.auto_extend_enabled === 1 ? '开启' : '不开启';
|
|
item.replaceEnabled = item.audience.auto_extend_enabled === 1 ? '开启' : '不开启';
|
|
- item.replacePlate = item.audience.platform.length ? item.audience.platform.join(',') : '暂无';
|
|
|
|
- item.replaceCitys = item.audience.cityNames.length ? item.audience.cityNames.join(',') : '暂无';
|
|
|
|
|
|
+ item.replacePlate = item.audience.platform && item.audience.platform.length ? item.audience.platform.join(',') : '暂无';
|
|
|
|
+ item.replaceCitys = item.audience.cityNames && item.audience.cityNames.length ? item.audience.cityNames.join(',') : '暂无';
|
|
this.ageArr.forEach(val => {
|
|
this.ageArr.forEach(val => {
|
|
- if (item.audience.age && item.audience.age.includes(val.value)) {
|
|
|
|
|
|
+ if (item.audience.age && item.audience.age.length && item.audience.age.includes(val.value)) {
|
|
ageUpdateList.push(val.label);
|
|
ageUpdateList.push(val.label);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
@@ -1347,13 +1391,16 @@ export default {
|
|
},
|
|
},
|
|
handleGetPackage() {
|
|
handleGetPackage() {
|
|
const params = {
|
|
const params = {
|
|
- urlPath: this.configForm.adDownloadUrl,
|
|
|
|
- downloadType: 'android'
|
|
|
|
|
|
+ urlPath: this.configForm.adDownloadUrl
|
|
};
|
|
};
|
|
getAction(urlAcount + '/bytedance-api/advertiser/aiBytedanceAdvertiserStrategy/getPackageNameByUrl', params)
|
|
getAction(urlAcount + '/bytedance-api/advertiser/aiBytedanceAdvertiserStrategy/getPackageNameByUrl', params)
|
|
.then(result => {
|
|
.then(result => {
|
|
if (result.code === 0) {
|
|
if (result.code === 0) {
|
|
this.configForm.adPackage = result.result.package || '';
|
|
this.configForm.adPackage = result.result.package || '';
|
|
|
|
+ this.platformLoadingType = result.result.platform || '';
|
|
|
|
+ // if (result.result.platform === '') {
|
|
|
|
+
|
|
|
|
+ // }
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
this.$message.error(result.message);
|
|
this.$message.error(result.message);
|
|
@@ -1395,18 +1442,21 @@ export default {
|
|
},
|
|
},
|
|
handleAdDownLoadType(e) {
|
|
handleAdDownLoadType(e) {
|
|
this.optimizationOption = [];
|
|
this.optimizationOption = [];
|
|
|
|
+ this.$refs['ruleForm'].clearValidate(['adDownloadUrl']);
|
|
|
|
+ this.$refs['ruleForm'].clearValidate(['adExternalUrl']);
|
|
|
|
+ this.$refs['ruleForm'].clearValidate(['adPackage']);
|
|
if (e.target.value === 'DOWNLOAD_URL') {
|
|
if (e.target.value === 'DOWNLOAD_URL') {
|
|
this.configForm.adExternalUrl = undefined;
|
|
this.configForm.adExternalUrl = undefined;
|
|
this.configForm.adOpenUrl = undefined;
|
|
this.configForm.adOpenUrl = undefined;
|
|
this.configForm.adConvertId = undefined;
|
|
this.configForm.adConvertId = undefined;
|
|
- this.$refs['ruleForm'].clearValidate(['adExternalUrl']);
|
|
|
|
}
|
|
}
|
|
else if (e.target.value === 'EXTERNAL_URL') {
|
|
else if (e.target.value === 'EXTERNAL_URL') {
|
|
|
|
+ console.log(this.configForm.adDownloadUrl, this.configForm.adPackage, '[][][][][][][]]][]][][]]][]');
|
|
|
|
+ this.configForm.adExternalUrl = undefined;
|
|
this.configForm.adDownloadUrl = undefined;
|
|
this.configForm.adDownloadUrl = undefined;
|
|
this.configForm.adPackage = undefined;
|
|
this.configForm.adPackage = undefined;
|
|
this.configForm.adConvertId = undefined;
|
|
this.configForm.adConvertId = undefined;
|
|
- this.$refs['ruleForm'].clearValidate(['adDownloadUrl']);
|
|
|
|
- this.$refs['ruleForm'].clearValidate(['adPackage']);
|
|
|
|
|
|
+ this.configForm.adOpenUrl = undefined;
|
|
}
|
|
}
|
|
},
|
|
},
|
|
handleCampaignCnt(e) {
|
|
handleCampaignCnt(e) {
|
|
@@ -1519,6 +1569,7 @@ export default {
|
|
this.configForm.adGender = detailData.adGender || 'NONE';
|
|
this.configForm.adGender = detailData.adGender || 'NONE';
|
|
this.configForm.adLocationType = detailData.adLocationType;
|
|
this.configForm.adLocationType = detailData.adLocationType;
|
|
this.configForm.adSelectAge = detailData.adAge.split(',');
|
|
this.configForm.adSelectAge = detailData.adAge.split(',');
|
|
|
|
+ this.configForm.adSelectAc = detailData.adAc.split(',');
|
|
this.configForm.adSuperiorPopularityType = detailData.adSuperiorPopularityType;
|
|
this.configForm.adSuperiorPopularityType = detailData.adSuperiorPopularityType;
|
|
this.configForm.adPlatform = detailData.adPlatform;
|
|
this.configForm.adPlatform = detailData.adPlatform;
|
|
this.configForm.adAc = detailData.adAc;
|
|
this.configForm.adAc = detailData.adAc;
|
|
@@ -1883,6 +1934,10 @@ export default {
|
|
this.$message.error('请选择投放时间');
|
|
this.$message.error('请选择投放时间');
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ if (this.configForm.launchTimeInterval === 'a' && this.configForm.scheduleTimeData === str) {
|
|
|
|
+ this.$message.error('请选择投放时段');
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
if (!this.urlResult) {
|
|
if (!this.urlResult) {
|
|
this.$message.error('请上传图片');
|
|
this.$message.error('请上传图片');
|
|
return;
|
|
return;
|
|
@@ -1898,6 +1953,14 @@ export default {
|
|
if (this.campaignStatus) {
|
|
if (this.campaignStatus) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ if (this.configForm.adBudget < this.configForm.adCpaBid) {
|
|
|
|
+ this.isAdCpaBidBlur = true;
|
|
|
|
+ this.adCpaBidBlurTxt = '出价不能大于预算';
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ this.isAdCpaBidBlur = false;
|
|
|
|
+ }
|
|
if (paramsFormData.adverPosition === 'a') {
|
|
if (paramsFormData.adverPosition === 'a') {
|
|
paramsFormData.creativeSmartInventory = 1;
|
|
paramsFormData.creativeSmartInventory = 1;
|
|
}
|
|
}
|
|
@@ -1935,6 +1998,7 @@ export default {
|
|
}
|
|
}
|
|
paramsFormData.adCity = paramsFormData.adSelectCity.join(',');
|
|
paramsFormData.adCity = paramsFormData.adSelectCity.join(',');
|
|
paramsFormData.adAge = paramsFormData.adSelectAge.join(',');
|
|
paramsFormData.adAge = paramsFormData.adSelectAge.join(',');
|
|
|
|
+ paramsFormData.adAc = paramsFormData.adSelectAc.join(',');
|
|
paramsFormData.productSellingPoints = this.configForm.defaultFormList && this.configForm.defaultFormList.map(item => item.value);
|
|
paramsFormData.productSellingPoints = this.configForm.defaultFormList && this.configForm.defaultFormList.map(item => item.value);
|
|
paramsFormData.creativeThirdIndustryId = paramsFormData.creativeThirdIndustryIds[2];
|
|
paramsFormData.creativeThirdIndustryId = paramsFormData.creativeThirdIndustryIds[2];
|
|
paramsFormData.creativeProductImageCode = this.md5Result;
|
|
paramsFormData.creativeProductImageCode = this.md5Result;
|