Commit 68828893 authored by lijin's avatar lijin

modified

parent 2b6a7ea2
...@@ -44,7 +44,7 @@ export default { ...@@ -44,7 +44,7 @@ export default {
data() { data() {
return { return {
languages: [ languages: [
{ code: 'en', name: '英语', selected: false }, { code: 'en', name: '英语', selected: true },
{ code: 'es', name: '西班牙语', selected: false }, { code: 'es', name: '西班牙语', selected: false },
{ code: 'fr', name: '法语', selected: false }, { code: 'fr', name: '法语', selected: false },
{ code: 'de', name: '德语', selected: false }, { code: 'de', name: '德语', selected: false },
...@@ -62,16 +62,20 @@ export default { ...@@ -62,16 +62,20 @@ export default {
return this.languages.filter(lang => lang.selected); return this.languages.filter(lang => lang.selected);
}, },
}, },
created() {
this.$emit('input', this.selectedLanguages);
},
methods: { methods: {
handleLanguageChange(code) { handleLanguageChange(code) {
this.$emit('input', this.selectedLanguages.map(lang => lang.code)); this.$emit('input', this.selectedLanguages);
}, },
removeLanguage(code) { removeLanguage(code) {
const lang = this.languages.find(l => l.code === code); const lang = this.languages.find(l => l.code === code);
if (lang) { if (lang) {
lang.selected = false; lang.selected = false;
} }
this.$emit('input', this.selectedLanguages.map(lang => lang.code)); this.$emit('input', this.selectedLanguages);
}, },
}, },
}; };
......
<template>
3<template>
<div class="app-container"> <div class="app-container">
<!-- 创建投放时 格式化你的表单 --> <!-- 创建投放时 格式化你的表单 -->
<el-row> <el-row>
...@@ -449,52 +450,12 @@ ...@@ -449,52 +450,12 @@
</template> </template>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!-- 按媒体 -->
<el-form-item
v-if="makeCreative.putinInventoryType === 'inventoryType'"
>
<el-select
v-model="makeCreative.putinInventory"
multiple
placeholder="请选择媒体"
style="margin-left: 27px"
@change="change_putinInventory"
>
<el-option
v-for="item in globalEnums.putinMediaLocation"
:key="item.value"
:label="item.name"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<!-- 按场景 -->
<el-form-item
v-if="makeCreative.putinInventoryType === 'sceneInventory'"
>
<el-select
v-model="makeCreative.putinInventory"
placeholder="请选择场景"
style="margin-left: 27px"
>
<el-option
v-for="item in globalEnums.sceneInventory"
:key="item.value"
:label="item.name"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-form> </el-form>
</div> </div>
</div> </div>
<!-- 投放目标 --> <!-- 投放目标 -->
<div class="drawer-item"> <div class="drawer-item border-bottom">
<div class="drawer-item-title">广告系列名称</div> <div class="drawer-item-title">广告系列名称</div>
<div class="drawer-item-con"> <div class="drawer-item-con">
<el-input <el-input
...@@ -504,8 +465,8 @@ ...@@ -504,8 +465,8 @@
</div> </div>
</div> </div>
<!-- 预算和出价 -->
<div class="drawer-item" style="padding-bottom: 20px"> <div class="drawer-item border-bottom" style="padding-bottom: 20px">
<div class="drawer-item-title">地理位置</div> <div class="drawer-item-title">地理位置</div>
<div class="drawer-item-con"> <div class="drawer-item-con">
<CountrySelector v-model="countries" /> <CountrySelector v-model="countries" />
...@@ -515,296 +476,72 @@ ...@@ -515,296 +476,72 @@
<div class="drawer-item-con"> <div class="drawer-item-con">
<LanguageSelector v-model="languages" /> <LanguageSelector v-model="languages" />
</div> </div>
<div class="drawer-item-title">开始日期和结束日期</div>
<div class="drawer-item-con">
<el-form ref="form">
<el-form-item label="开始日期">
<el-date-picker
v-model="startDate"
align="right"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="结束日期">
<el-date-picker
v-model="endDate"
align="right"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-form>
</div>
</div> </div>
<!-- 用户定向 --> <!-- 预算和出价 -->
<div class="drawer-item border-bottom"> <div class="drawer-item border-bottom">
<div class="drawer-item-title">用户定向</div> <div class="drawer-item-title">预算</div>
<el-tabs v-model="activeName" @tab-click="handleTabClick"> <el-form ref="form">
<!-- 新建定向包 --> <el-form-item label="广告预算" prop="budget">
<el-tab-pane label="新建定向" name="first">
<div class="drawer-item-con"> <el-input
<el-form ref="form"> v-model="dailyBudget"
<!-- 城市 --> placeholder="请输入广告预算"
<el-form-item label="城市"> @blur="formatBudget"
<el-select style="width: 30%"
v-model="orientation.allowCity"
placeholder="选择城市"
style="width: 500px"
>
<el-option
v-for="(item, index) in globalEnums.city"
:key="index"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<!-- 性别 单选 -->
<el-form-item label="性别">
<el-radio-group v-model="orientation.allowGender">
<template v-for="item of globalEnums.gender">
<el-radio-button
:key="item.value"
:label="item.value"
:value="item.value"
>{{ item.name }}</el-radio-button
>
</template>
</el-radio-group>
</el-form-item>
<!-- 年龄 --><!-- 多选 -->
<el-form-item label="年龄">
<el-checkbox-group
v-model="arrays.allowAge"
@change="handleAgeDire"
>
<el-checkbox-button
v-for="item in globalEnums.age"
:label="item.value"
:key="item.value"
>{{ item.name }}</el-checkbox-button
>
</el-checkbox-group>
</el-form-item>
<!-- 自定义人群 --><!-- 单选 -->
<el-form-item label="自定义人群">
<el-radio-group v-model="crowdValue" @change="testRadio">
<template v-for="item of crowd">
<el-radio-button
:key="item.type"
:label="item.label"
:value="item.label"
>{{ item.label }}</el-radio-button
>
</template>
</el-radio-group>
</el-form-item>
<!-- 定向逻辑 --><!-- 单选 -->
<el-form-item v-if="logicShow" label="定向逻辑">
<el-radio-group
v-model="allowDirect"
@change="testChange"
>
<template v-for="item of globalEnums.directLogic">
<el-radio-button
:key="item.value"
:label="item.value"
:value="item.value"
>{{ item.name }}</el-radio-button
>
</template>
</el-radio-group>
<!-- 定向 -->
<div v-if="allowDirect == 'retargetingTagsInclude'">
<el-select
v-model="custom_audienc_id"
multiple
placeholder="请选择"
@change="selectAudience"
>
<el-option
v-for="(item, index) in custom_audienc"
:key="index"
:label="item.name + item.custom_audience_id"
:value="item.custom_audience_id"
>
</el-option>
</el-select>
</div>
<!-- 排除 -->
<div v-if="allowDirect == 'retargetingTagsExclude'">
<el-select
v-model="custom_audienc_id"
multiple
placeholder="请选择"
@change="selectAudience2"
>
<el-option
v-for="(item, index) in custom_audienc"
:key="index"
:label="item.name + item.custom_audience_id"
:value="item.custom_audience_id"
>
</el-option>
</el-select>
</div>
<!-- 同时定向排除 -->
<div v-if="allowDirect == 'Both'">
<el-radio-group v-model="childTagsChecked">
<template v-for="item of childTags">
<el-radio-button
:key="item.type"
:label="item.label"
:value="item.label"
>{{ item.label }}</el-radio-button
>
</template>
</el-radio-group>
<div v-if="childTagsChecked == '定向'">
<el-select
v-model="together_id1"
multiple
placeholder="请选择"
@change="togetherChange1"
>
<el-option
v-for="(item, index) in custom_audienc"
:key="index"
:label="item.name + item.custom_audience_id"
:value="item.custom_audience_id"
>
</el-option>
</el-select>
</div>
<div v-if="childTagsChecked == '排除'">
<el-select
v-model="together_id2"
multiple
placeholder="请选择"
@change="togetherChange2"
>
<el-option
v-for="(item, index) in custom_audienc"
:key="index"
:label="item.name + item.custom_audience_id"
:value="item.custom_audience_id"
>
</el-option>
</el-select>
</div>
</div>
</el-form-item>
<!-- 行为兴趣 --><!-- 单选 -->
<el-form-item label="行为兴趣">
<el-radio-group v-model="orientation.interestActionMode">
<template
v-for="item of globalEnums.interestActionMode"
>
<el-radio-button
:key="item.value"
:label="item.value"
:value="item.value"
>
{{ item.name }}
</el-radio-button>
</template>
</el-radio-group>
</el-form-item>
<!-- 网络 --><!-- 多选 -->
<el-form-item label="网络">
<el-checkbox-group
v-model="arrays.allowNetwork"
@change="handleNetDire"
>
<el-checkbox-button
v-for="item in globalEnums.network"
:label="item.value"
:key="item.value"
>{{ item.name }}</el-checkbox-button
>
</el-checkbox-group>
</el-form-item>
<!-- 运营商 --><!-- 多选 -->
<el-form-item label="运营商">
<el-checkbox-group
v-model="arrays.allowCarrier"
@change="handleCarrierDire"
>
<el-checkbox-button
v-for="item in globalEnums.carrier"
:label="item.value"
:key="item.value"
>{{ item.name }}</el-checkbox-button
>
</el-checkbox-group>
</el-form-item>
</el-form>
</div>
</el-tab-pane>
<!-- 选择已有定向包 -->
<el-tab-pane label="选择已有定向包" name="second">
<el-select
v-model="orientation.id"
filterable
clearable
placeholder="选择定向包"
style="width: 500px"
@focus="selectPkg"
> >
<el-option <template slot="prepend">$</template>
v-for="(item, index) in directPkg" </el-input>
:key="index" </el-form-item>
:label="item.name" </el-form>
:value="item.id"
>
</el-option>
</el-select>
</el-tab-pane>
</el-tabs>
</div> </div>
<!-- 创意分类 --> <!-- 出价 -->
<div class="drawer-item border-bottom"> <div class="drawer-item border-bottom">
<div class="drawer-item-title">创意分类</div> <div class="drawer-item-title">出价</div>
<div class="drawer-item-con"> <div class="drawer-item-con">
<el-form ref="form"> <el-form ref="form">
<el-form-item label="创意分类多选"> <el-select
<el-cascader v-model="zhuanhuamubiao"
v-model="creativeCategoryDefault" placeholder=""
:props="{ multiple: true }" default-first-option
:options="creativeCategoryList" style="width: 200px"
@change="handleMultipleChange" >
style="width: 400px" <el-option
></el-cascader> v-for="item in [{'name': '安装量', 'value': 1, 'disabled': false}, {'name': '应用内操作次数', 'value': 2, 'disabled': true}, {'name': '应用内操作价值', 'value': 3, 'disabled': false}]"
<span>已选 {{ creativeCategoryDefault.length }}</span> :key="item.value"
</el-form-item> :label="item.name"
:value="item.value"
<el-form-item label="创意标签"> :disabled="item.disabled"
<el-input
class="input-new-tag"
v-model="inputValue"
ref="saveTagInput"
@keyup.enter.native="handleInputConfirm"
@blur="handleInputConfirm"
style="width: 450px"
> >
<template slot="append">添加(回车)</template> </el-option>
</el-input> </el-select>
<div class="checkedText">
<div class="checkedText-title">
<span style="margin-left: 10px"
>已选 {{ arrays.creativeTags.length }}</span
>
<span style="float: right; margin-right: 10px">
<a href="javascript:;" @click="removeAllCreative"
>清空</a
>
</span>
</div>
<div style="padding: 10px">
<el-tag
:key="tag"
v-for="tag in arrays.creativeTags"
closable
:disable-transitions="false"
@close="handleClose_creative(tag)"
>
{{ tag }}
</el-tag>
</div>
</div>
</el-form-item>
</el-form> </el-form>
</div> </div>
</div> </div>
...@@ -1344,6 +1081,7 @@ export default { ...@@ -1344,6 +1081,7 @@ export default {
size: 10, size: 10,
page: 1, page: 1,
}, // 分页信息 }, // 分页信息
loading: false, loading: false,
tryItOut: 0, //试玩搭配,默认不启用 tryItOut: 0, //试玩搭配,默认不启用
tryMaterialList: [], //试玩素材列表 tryMaterialList: [], //试玩素材列表
...@@ -1373,6 +1111,10 @@ export default { ...@@ -1373,6 +1111,10 @@ export default {
], ],
countries: [], countries: [],
languages: [], languages: [],
startDate: '',
endDate: '',
dailyBudget: '1.00',
zhuanhuamubiao: '',
crowdValue: "不限", // 自定义人群的值 crowdValue: "不限", // 自定义人群的值
crowdAdvertiserId: "", crowdAdvertiserId: "",
/* 测试假数据 使用 */ /* 测试假数据 使用 */
...@@ -1387,7 +1129,6 @@ export default { ...@@ -1387,7 +1129,6 @@ export default {
ifDoublePrice: false, ifDoublePrice: false,
bid_type: "only", bid_type: "only",
uploadAction: "http://api.putin.zhangxindiet.com/v1/oe/upload", uploadAction: "http://api.putin.zhangxindiet.com/v1/oe/upload",
queryDate: [], // 默认日期
dateOptions: dateOptions, dateOptions: dateOptions,
materialGroupDesc: "", materialGroupDesc: "",
callActionList: [], //行动号召列表 callActionList: [], //行动号召列表
...@@ -1424,8 +1165,7 @@ export default { ...@@ -1424,8 +1165,7 @@ export default {
planBudgetMode: "BUDGET_MODE_DAY", planBudgetMode: "BUDGET_MODE_DAY",
planBudget: "", planBudget: "",
scheduleType: "SCHEDULE_START_END", // 投放时间 scheduleType: "SCHEDULE_START_END", // 投放时间
startTime: "",
endTime: "",
scheduleTime: "", // 选择时段 scheduleTime: "", // 选择时段
pricing: "PRICING_OCPM", pricing: "PRICING_OCPM",
cpaBid: "", cpaBid: "",
...@@ -1581,9 +1321,8 @@ export default { ...@@ -1581,9 +1321,8 @@ export default {
}, },
}, },
created() { created() {
let startTime = moment().subtract(7, "days").format("YYYY-MM-DD HH:MM"); this.startDate = moment().subtract(0, "days").format("YYYY-MM-DD");
let endTime = moment().format("YYYY-MM-DD HH:MM");
this.queryDate = [startTime, endTime]; // 近一周默认日期
// [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)], // [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)],
...@@ -1687,8 +1426,7 @@ export default { ...@@ -1687,8 +1426,7 @@ export default {
planBudgetMode: "", planBudgetMode: "",
planBudget: "", planBudget: "",
scheduleType: "SCHEDULE_FROM_NOW", // 投放时间 scheduleType: "SCHEDULE_FROM_NOW", // 投放时间
startTime: "",
endTime: "",
scheduleTime: "", // 选择时段 scheduleTime: "", // 选择时段
pricing: "PRICING_OCPM", pricing: "PRICING_OCPM",
cpaBid: "", cpaBid: "",
...@@ -2049,8 +1787,7 @@ export default { ...@@ -2049,8 +1787,7 @@ export default {
this.makeCreative.productSellingPoints = JSON.stringify( this.makeCreative.productSellingPoints = JSON.stringify(
this.arrays.productSellingPoints this.arrays.productSellingPoints
); );
this.putinBaseInfo.startTime = this.queryDate[0];
this.putinBaseInfo.endTime = this.queryDate[1];
if (this.makeCreative.putinInventory instanceof Array) { if (this.makeCreative.putinInventory instanceof Array) {
this.makeCreative.putinInventory = this.makeCreative.putinInventory.join(); this.makeCreative.putinInventory = this.makeCreative.putinInventory.join();
...@@ -2828,6 +2565,22 @@ export default { ...@@ -2828,6 +2565,22 @@ export default {
test() { test() {
console.log(222, this.putinBaseInfo.deepBidType); console.log(222, this.putinBaseInfo.deepBidType);
}, },
validateBudget(rule, value, callback) {
alert(rule, value)
if (value === '') {
callback(new Error('必填'));
} else if (isNaN(Number(value))) {
callback(new Error('请输入有效数字'));
} else {
callback();
}
},
formatBudget() {
if (this.dailyBudget !== '' && !isNaN(Number(this.dailyBudget))) {
this.dailyBudget = Number(this.dailyBudget).toFixed(2);
}
}
}, },
}; };
</script> </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