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
a10d50a5
Commit
a10d50a5
authored
Apr 20, 2025
by
lijin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modified
parent
fa54412e
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
87 additions
and
20 deletions
+87
-20
CampaignTaskManage.vue
src/views/campaignTask/CampaignTaskManage.vue
+87
-20
No files found.
src/views/campaignTask/CampaignTaskManage.vue
View file @
a10d50a5
...
@@ -200,15 +200,15 @@
...
@@ -200,15 +200,15 @@
<div
class=
"group-detail-title"
>
应用组中的应用列表
</div>
<div
class=
"group-detail-title"
>
应用组中的应用列表
</div>
<el-table
:data=
"appListData"
size=
"mini"
border
style=
"width: 100%"
>
<el-table
:data=
"appListData"
size=
"mini"
border
style=
"width: 100%"
>
<el-table-column
prop=
"name"
label=
"应用名称"
></el-table-column>
<el-table-column
prop=
"name"
label=
"应用名称"
></el-table-column>
<el-table-column
prop=
"appId"
label=
"
应用ID
"
></el-table-column>
<el-table-column
prop=
"appId"
label=
"
包名
"
></el-table-column>
<el-table-column
prop=
"platform"
label=
"平台"
>
<el-table-column
prop=
"platform"
label=
"平台"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
platform
===
2
?
'iOS'
:
(
scope
.
row
.
platform
===
3
?
'Android'
:
'其他'
)
}}
{{
scope
.
row
.
platform
===
2
?
'iOS'
:
(
scope
.
row
.
platform
===
3
?
'Android'
:
'其他'
)
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"
操作"
width=
"15
0"
align=
"center"
>
<el-table-column
label=
"
计划数"
width=
"20
0"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-
button
type=
"text"
size=
"small"
@
click=
"handleAppFilter(scope.row)"
>
针对此应用
</el-button
>
<el-
input-number
v-model=
"scope.row.campaignCount"
:min=
"1"
@
change=
"updateAppCampaignCount(scope.row, $event)"
size=
"mini"
></el-input-number
>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -228,11 +228,9 @@
...
@@ -228,11 +228,9 @@
{{
getLocationGroupCountries
(
scope
.
row
).
length
}}
个国家
{{
getLocationGroupCountries
(
scope
.
row
).
length
}}
个国家
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"
操作
"
width=
"200"
align=
"center"
>
<el-table-column
label=
"
计划数
"
width=
"200"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
size=
"small"
@
click=
"viewLocationGroup(scope.row)"
>
查看
</el-button>
<el-input-number
v-model=
"scope.row.campaignCount"
:min=
"1"
@
change=
"updateLocationGroupCampaignCount(scope.row, $event)"
size=
"mini"
></el-input-number>
<el-button
type=
"text"
size=
"small"
@
click=
"editLocationGroup(scope.row)"
>
修改
</el-button>
<el-button
type=
"text"
size=
"small"
@
click=
"removeLocationGroup(scope.row)"
>
移除
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -338,20 +336,20 @@
...
@@ -338,20 +336,20 @@
<el-table-column
label=
"投放国家"
min-width=
"150"
sortable
>
<el-table-column
label=
"投放国家"
min-width=
"150"
sortable
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div
class=
"table-countries-container"
>
<div
class=
"table-countries-container"
>
<template
v-if=
"scope.row.countr
ies && scope.row.countri
es.length > 0"
>
<template
v-if=
"scope.row.countr
yCodes && scope.row.countryCod
es.length > 0"
>
<el-tag
<el-tag
v-for=
"(country, index) in typeof scope.row.countr
i
es === 'string' ?
v-for=
"(country, index) in typeof scope.row.countr
yCod
es === 'string' ?
JSON.parse(scope.row.countr
ies) : scope.row.countri
es"
JSON.parse(scope.row.countr
yCodes) : scope.row.countryCod
es"
:key=
"country
.code
"
:key=
"country"
v-if=
"index
<
5
"
v-if=
"index
<
5
"
size=
"mini"
size=
"mini"
class=
"country-tag"
class=
"country-tag"
type=
"primary"
type=
"primary"
effect=
"light"
>
effect=
"light"
>
{{
country
.
code
}}
{{
country
}}
</el-tag>
</el-tag>
<span
v-if=
"(typeof scope.row.countr
i
es === 'string' ?
<span
v-if=
"(typeof scope.row.countr
yCod
es === 'string' ?
JSON.parse(scope.row.countr
ies) : scope.row.countri
es).length > 5"
JSON.parse(scope.row.countr
yCodes) : scope.row.countryCod
es).length > 5"
class=
"more-countries"
>
...
</span>
class=
"more-countries"
>
...
</span>
</
template
>
</
template
>
<span
v-else
class=
"no-countries-text"
>
无国家信息
</span>
<span
v-else
class=
"no-countries-text"
>
无国家信息
</span>
...
@@ -1143,8 +1141,8 @@ export default {
...
@@ -1143,8 +1141,8 @@ export default {
// 获取地域组数据
// 获取地域组数据
const
locationGroupRes
=
await
axios
.
get
(
process
.
env
.
PUTIN_API
+
'/location-groups'
)
const
locationGroupRes
=
await
axios
.
get
(
process
.
env
.
PUTIN_API
+
'/location-groups'
)
if
(
locationGroupRes
.
data
&&
locationGroupRes
.
data
.
code
===
200
&&
locationGroupRes
.
data
.
data
)
{
if
(
locationGroupRes
.
status
===
200
)
{
this
.
locationGroupOptions
=
locationGroupRes
.
data
.
data
this
.
locationGroupOptions
=
locationGroupRes
.
data
.
result
.
data
}
}
// 获取素材组数据
// 获取素材组数据
...
@@ -1197,7 +1195,8 @@ export default {
...
@@ -1197,7 +1195,8 @@ export default {
platform
:
app
.
pkg
.
toLowerCase
().
includes
(
'.ios'
)
?
2
:
3
,
platform
:
app
.
pkg
.
toLowerCase
().
includes
(
'.ios'
)
?
2
:
3
,
id
:
app
.
id
,
id
:
app
.
id
,
description
:
app
.
description
,
description
:
app
.
description
,
operateType
:
app
.
operateType
operateType
:
app
.
operateType
,
campaignCount
:
1
// 添加计划数字段,默认为1
}));
}));
}
else
{
}
else
{
console
.
error
(
'获取应用组应用列表失败:'
,
response
);
console
.
error
(
'获取应用组应用列表失败:'
,
response
);
...
@@ -1209,6 +1208,26 @@ export default {
...
@@ -1209,6 +1208,26 @@ export default {
}
}
},
},
// 更新应用的计划数
updateAppCampaignCount
(
app
,
value
)
{
// 验证输入值
if
(
value
<
1
)
{
this
.
$message
.
warning
(
'计划数最小为1'
);
// 重置为1
const
index
=
this
.
appListData
.
findIndex
(
item
=>
item
.
appId
===
app
.
appId
);
if
(
index
!==
-
1
)
{
this
.
appListData
[
index
].
campaignCount
=
1
;
}
return
;
}
// 更新计划数
const
index
=
this
.
appListData
.
findIndex
(
item
=>
item
.
appId
===
app
.
appId
);
if
(
index
!==
-
1
)
{
this
.
appListData
[
index
].
campaignCount
=
value
;
}
},
handleLocationGroupsChange
(
value
)
{
handleLocationGroupsChange
(
value
)
{
// 处理地域组变化后的逻辑
// 处理地域组变化后的逻辑
if
(
value
&&
value
.
length
>
0
)
{
if
(
value
&&
value
.
length
>
0
)
{
...
@@ -1220,16 +1239,64 @@ export default {
...
@@ -1220,16 +1239,64 @@ export default {
async
fetchSelectedLocationGroups
(
locationGroupIds
)
{
async
fetchSelectedLocationGroups
(
locationGroupIds
)
{
try
{
try
{
// 打印地域组选项,便于调试
console
.
log
(
'地域组选项:'
,
this
.
locationGroupOptions
);
this
.
selectedLocationGroups
=
locationGroupIds
.
map
(
id
=>
{
this
.
selectedLocationGroups
=
locationGroupIds
.
map
(
id
=>
{
const
group
=
this
.
locationGroupOptions
.
find
(
item
=>
item
.
id
===
id
);
// 确保ID为数字类型进行比较
return
group
||
{
id
:
id
,
name
:
`地域组
${
id
}
`
};
const
numId
=
Number
(
id
);
// 尝试在选项中找到对应的地域组
const
group
=
this
.
locationGroupOptions
.
find
(
item
=>
Number
(
item
.
id
)
===
numId
);
console
.
log
(
`查找地域组ID:
${
id
}
, 找到:
${
group
}
`
);
if
(
group
)
{
return
{
id
:
group
.
id
,
name
:
group
.
name
||
`地域组
${
id
}
`
,
// 确保有名称,如果没有则使用ID
campaignCount
:
1
,
countryCodes
:
group
.
countryCodes
||
[]
};
}
else
{
return
{
id
:
id
,
name
:
`地域组
${
id
}
`
,
campaignCount
:
1
,
countryCodes
:
[]
};
}
});
});
// 打印选中的地域组,便于调试
console
.
log
(
'选中的地域组:'
,
this
.
selectedLocationGroups
);
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
error
(
'获取地域组数据失败:'
,
error
);
console
.
error
(
'获取地域组数据失败:'
,
error
);
this
.
$message
.
error
(
'获取地域组数据失败'
);
this
.
$message
.
error
(
'获取地域组数据失败'
);
}
}
},
},
// 更新地域组的计划数
updateLocationGroupCampaignCount
(
group
,
value
)
{
// 验证输入值
if
(
value
<
1
)
{
this
.
$message
.
warning
(
'计划数最小为1'
);
// 重置为1
const
index
=
this
.
selectedLocationGroups
.
findIndex
(
item
=>
item
.
id
===
group
.
id
);
if
(
index
!==
-
1
)
{
this
.
selectedLocationGroups
[
index
].
campaignCount
=
1
;
}
return
;
}
// 更新计划数
const
index
=
this
.
selectedLocationGroups
.
findIndex
(
item
=>
item
.
id
===
group
.
id
);
if
(
index
!==
-
1
)
{
this
.
selectedLocationGroups
[
index
].
campaignCount
=
value
;
}
},
viewLocationGroup
(
group
)
{
viewLocationGroup
(
group
)
{
// 实现查看地域组详情逻辑
// 实现查看地域组详情逻辑
this
.
$alert
(
`地域组 "
${
group
.
name
}
" 详情`
,
'地域组详情'
,
{
this
.
$alert
(
`地域组 "
${
group
.
name
}
" 详情`
,
'地域组详情'
,
{
...
@@ -1255,7 +1322,7 @@ export default {
...
@@ -1255,7 +1322,7 @@ export default {
getLocationGroupCountries
(
group
)
{
getLocationGroupCountries
(
group
)
{
// 获取地域组国家列表
// 获取地域组国家列表
// 由于我们没有完整的API,这里返回一个模拟数据
// 由于我们没有完整的API,这里返回一个模拟数据
return
group
.
countr
i
es
||
[];
return
group
.
countr
yCod
es
||
[];
},
},
handleAppFilter
(
app
)
{
handleAppFilter
(
app
)
{
...
...
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