Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
Z
zxn-adputin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lijin
zxn-adputin
Commits
68828893
Commit
68828893
authored
Dec 17, 2024
by
lijin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modified
parent
2b6a7ea2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
93 additions
and
336 deletions
+93
-336
LanguageSelector.vue
...views/createDelivery/childComponents/LanguageSelector.vue
+7
-3
index.vue
src/views/createDelivery/index.vue
+86
-333
No files found.
src/views/createDelivery/childComponents/LanguageSelector.vue
View file @
68828893
...
@@ -44,7 +44,7 @@ export default {
...
@@ -44,7 +44,7 @@ export default {
data
()
{
data
()
{
return
{
return
{
languages
:
[
languages
:
[
{
code
:
'en'
,
name
:
'英语'
,
selected
:
fals
e
},
{
code
:
'en'
,
name
:
'英语'
,
selected
:
tru
e
},
{
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
);
},
},
},
},
};
};
...
...
src/views/createDelivery/index.vue
View file @
68828893
<
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
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment