Commit 9b91b1e4 authored by huangzhenglong's avatar huangzhenglong

feat: 处理接入tiktok广告相关逻辑

parent 61762daf
......@@ -903,6 +903,15 @@ export default {
target_roas: this.form.target_roas,
}
// 根据模板类型传递不同的字段
if (this.form.templateType === 1) {
// 使用现有模板
taskData.campaignTemplateId = this.form.campaignTemplateId;
} else {
// 使用临时模板
taskData.tempTemplateName = this.form.tempTemplateName;
}
// 将应用列表数据转换为接口所需格式
taskData.apps = this.appListData.map(app => ({
pkg: app.appId,
......@@ -1031,6 +1040,9 @@ export default {
return
}
// 确保模板ID被设置到form中
this.form.campaignTemplateId = templateId
try {
const response = await getCampaignTemplateById(templateId)
console.log('模板详情响应:', response)
......
......@@ -67,6 +67,13 @@
v-loading="loading">
<el-table-column prop="id" label="ID" width="80"></el-table-column>
<el-table-column prop="name" label="模板名称" width="250"></el-table-column>
<el-table-column label="平台" width="120" align="center">
<template slot-scope="scope">
<el-tag :type="getPlatformTagType(scope.row.platform)">
{{ getPlatformName(scope.row.platform) }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="daily_budget" label="日预算($)" width="120">
<template slot-scope="scope">
{{ scope.row.daily_budget }}
......@@ -166,6 +173,14 @@
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="平台" prop="platform">
<el-select v-model="form.platform" placeholder="请选择平台" @change="handlePlatformChange">
<el-option label="Google" :value="1"></el-option>
<el-option label="TikTok" :value="2"></el-option>
<el-option label="Facebook" :value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item label="广告系列类型" prop="campaign_type">
<el-select v-model="form.campaign_type" placeholder="请选择">
<el-option label="应用安装" :value="1"></el-option>
......@@ -262,6 +277,7 @@ export default {
dialogTitle: '',
form: {
name: '',
platform: 1,
campaign_type: 1,
appStore: 3,
daily_budget: 0,
......@@ -277,6 +293,9 @@ export default {
name: [
{ required: true, message: '请输入模板名称', trigger: 'blur' }
],
platform: [
{ required: true, message: '请选择平台', trigger: 'change' }
],
campaign_type: [
{ required: true, message: '请选择广告系列类型', trigger: 'change' }
],
......@@ -284,7 +303,17 @@ export default {
{ required: true, message: '请选择移动应用平台', trigger: 'change' }
],
daily_budget: [
{ required: true, message: '请输入日预算', trigger: 'blur' }
{ required: true, message: '请输入日预算', trigger: 'blur' },
{
validator: (rule, value, callback) => {
if (this.form.platform === 2 && value < 50) {
callback(new Error('TikTok平台日预算必须大于等于50'))
} else {
callback()
}
},
trigger: 'blur'
}
],
bidding_type: [
{ required: true, message: '请选择转化目标', trigger: 'change' }
......@@ -362,6 +391,34 @@ export default {
return this.groupNameMaps.description.get(id) || id
},
// 根据平台类型获取标签类型
getPlatformTagType(type) {
switch (type) {
case 1:
return 'success'
case 2:
return 'warning'
case 3:
return 'info'
default:
return 'default'
}
},
// 根据平台类型获取平台名称
getPlatformName(type) {
switch (type) {
case 1:
return 'Google'
case 2:
return 'TikTok'
case 3:
return 'Facebook'
default:
return '未知'
}
},
handleSizeChange(val) {
this.pageSize = val
this.currentPage = 1
......@@ -377,6 +434,7 @@ export default {
this.dialogTitle = '新增模板'
this.form = {
name: '',
platform: 1,
campaign_type: 1,
appStore: 3,
daily_budget: 0,
......@@ -474,6 +532,14 @@ export default {
},
handleDescriptionGroupChange() {
this.fetchData()
},
// 平台变化时重新验证日预算
handlePlatformChange() {
// 当平台改变时,重新验证日预算字段
this.$nextTick(() => {
this.$refs.form.validateField('daily_budget')
})
}
}
}
......
......@@ -52,7 +52,13 @@
<el-table-column prop="id" label="ID" width="60" align="center" />
<el-table-column prop="username" label="账号名称" align="center" />
<el-table-column prop="email" label="账号邮箱" align="center" />
<!-- <el-table-column prop="platformName" label="平台" align="center" />-->
<el-table-column label="平台" align="center">
<template slot-scope="scope">
<el-tag :type="getPlatformTagType(scope.row.type)">
{{ getPlatformName(scope.row.type) }}
</el-tag>
</template>
</el-table-column>
<!-- <el-table-column label="授权状态" align="center">-->
<!-- <template slot-scope="scope">-->
<!-- <el-tag :type="scope.row.status === 1 ? 'success' : 'danger'">-->
......@@ -208,6 +214,34 @@ export default {
// 取消删除
})
},
// 根据平台类型获取标签类型
getPlatformTagType(type) {
switch (type) {
case 1:
return 'success'
case 2:
return 'warning'
case 3:
return 'info'
default:
return 'default'
}
},
// 根据平台类型获取平台名称
getPlatformName(type) {
switch (type) {
case 1:
return 'Google'
case 2:
return 'TikTok'
case 3:
return 'Facebook'
default:
return '未知'
}
}
}
}
</script>
......
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