|
@@ -40,7 +40,8 @@ const targetRuleDialogVisible = ref(false);
|
|
|
//const adGroupId = ref('')
|
|
|
//const campaignId = ref('')
|
|
|
const selectedTargetedRow = ref(null);
|
|
|
-const KeyWordLength = ref(0);
|
|
|
+const targetLength = ref(0);
|
|
|
+let selectedGroups = [];
|
|
|
|
|
|
// 筛选条件
|
|
|
const searchAdCampaign = ref('');
|
|
@@ -146,17 +147,8 @@ async function fetchAdCampaign() {
|
|
|
limit: pageSize.value,
|
|
|
});
|
|
|
gridOptions.data = resp.data;
|
|
|
- console.log('=>(adActivityDialog.vue:131) gridOptions.data', gridOptions.data);
|
|
|
total.value = resp.total;
|
|
|
currentPage.value = resp.page;
|
|
|
- // 恢复勾选状态
|
|
|
- // nextTick(() => {
|
|
|
- // gridOptions.data.forEach(item => {
|
|
|
- // const isSelected = selectedAds.value.some(ad => ad.campaignId === item.campaignId);
|
|
|
- // // 如果在 selectedAds 中,则勾选
|
|
|
- // xGridOne.value.setCheckboxRow(item, isSelected);
|
|
|
- // });
|
|
|
- // });
|
|
|
} catch (error) {
|
|
|
ElMessage.error('请求广告活动数据失败');
|
|
|
} finally {
|
|
@@ -173,19 +165,19 @@ const handleGridChange = (event) => {
|
|
|
};
|
|
|
|
|
|
function handelSelect({ records }) {
|
|
|
- console.log('=>(adActivityDialog.vue:147) records', records);
|
|
|
selectedAds.value = [
|
|
|
...selectedAds.value.filter(ad => ad.page !== currentPage.value),
|
|
|
...records.map(ad => ({ ...ad, page: currentPage.value }))
|
|
|
];
|
|
|
- console.log('=>(adActivityDialog.vue:148) selectedAds.value', selectedAds.value);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
function handleSelectionChange({ records }) {
|
|
|
+ selectedGroups = selectedGroups.filter(group => {
|
|
|
+ return records.some(record => record.adGroupId === group.adGroupId);
|
|
|
+ });
|
|
|
+
|
|
|
let updatedRecords = [];
|
|
|
const parentCampaignMap = new Map();
|
|
|
- records.isSelected = false;
|
|
|
records.forEach(record => {
|
|
|
if (record.adGroupId) {
|
|
|
// 这是一个广告组(子节点)
|
|
@@ -214,9 +206,9 @@ function handleSelectionChange({ records }) {
|
|
|
|
|
|
// 更新选中的广告
|
|
|
selectedAds.value = [
|
|
|
- ...updatedRecords.map(ad => ({ ...ad, page: currentPage.value }))
|
|
|
+ ...updatedRecords.map(ad => ({ ...ad, page: currentPage.value })),
|
|
|
];
|
|
|
- console.log("=>(adActivityDialog.vue:217) selectedAds.value", selectedAds.value);
|
|
|
+ console.log("=>(adActivityDialog.vue:209) selectedAds.value", selectedAds.value);
|
|
|
|
|
|
}
|
|
|
|
|
@@ -237,12 +229,16 @@ function handleSelectTarget(row) {
|
|
|
targetRuleDialogVisible.value = true;
|
|
|
}
|
|
|
|
|
|
-let selectedGroups = [];
|
|
|
|
|
|
-function handleConfirm(campaignKeywordInfo) {
|
|
|
- selectedTargetedRow.value.keywordInfo = campaignKeywordInfo;
|
|
|
+function handleConfirm({ campaignInfo, targetType }) {
|
|
|
+ if (targetType === 'keyword'){
|
|
|
+ selectedTargetedRow.value.keywordInfo = campaignInfo;
|
|
|
+ targetLength.value = selectedTargetedRow.value.keywordInfo.length;
|
|
|
+ }else if (targetType ==='target'){
|
|
|
+ selectedTargetedRow.value.campaignTargetInfo = campaignInfo;
|
|
|
+ targetLength.value = selectedTargetedRow.value.campaignTargetInfo.length;
|
|
|
+ }
|
|
|
selectedTargetedRow.value.isSelected = true;
|
|
|
- KeyWordLength.value = selectedTargetedRow.value.keywordInfo.length;
|
|
|
// 更新子节点状态
|
|
|
const parent = gridOptions.data.find(ad =>
|
|
|
ad.campaignGroupInfo && ad.campaignGroupInfo.some(group => group.adGroupId === selectedTargetedRow.value.adGroupId)
|
|
@@ -254,8 +250,6 @@ function handleConfirm(campaignKeywordInfo) {
|
|
|
group.isSelected = true; // 更新子节点的 isSelected 状态
|
|
|
xGridOne.value.toggleCheckboxRow(group);
|
|
|
selectedGroups.push(group);
|
|
|
- console.log("=>(adActivityDialog.vue:322) selectedGroups", selectedGroups);
|
|
|
- // 将 group 作为 records 数组传递
|
|
|
handleSelectionChange({ records: selectedGroups });
|
|
|
}
|
|
|
}
|
|
@@ -284,7 +278,7 @@ function cancel() {
|
|
|
dialogVisible.value = false;
|
|
|
}
|
|
|
|
|
|
-//TODO: 确认按钮
|
|
|
+//TODO: 确认按钮-商品
|
|
|
async function confirm() {
|
|
|
const campaignItems = selectedAds.value.map(ad => ({
|
|
|
campaignId: ad.campaignId,
|
|
@@ -294,9 +288,13 @@ async function confirm() {
|
|
|
const campaignTargetInfo = [
|
|
|
{ targetId: '492707808377423', adGroup_id: '448117369011017', bid: 0.45 },
|
|
|
];
|
|
|
- const campaignKeywordInfo = [
|
|
|
- { keywordId: '416969576305724', adGroup_id: '393554556566271', bid: 0.04 },
|
|
|
- ];
|
|
|
+ console.log("=>(adActivityDialog.vue:291) selectedTargetedRow.value", selectedTargetedRow.value);
|
|
|
+
|
|
|
+ const campaignInfo = selectedTargetedRow.value.keywordInfo.map(keyword => ({
|
|
|
+ keywordId: keyword.keywordId,
|
|
|
+ adGroup_id: keyword.adGroup_id,
|
|
|
+ bid: keyword.bid
|
|
|
+ }));
|
|
|
|
|
|
const requestData = {
|
|
|
profileId: profile.value.profile_id,
|
|
@@ -304,9 +302,9 @@ async function confirm() {
|
|
|
campaignItems,
|
|
|
adGroupInfo,
|
|
|
campaignTargetInfo,
|
|
|
- campaignKeywordInfo
|
|
|
+ campaignInfo
|
|
|
};
|
|
|
- //console.log('requestData', requestData);
|
|
|
+ console.log('requestData', requestData);
|
|
|
}
|
|
|
|
|
|
// 获取广告组下拉框
|
|
@@ -483,7 +481,7 @@ onMounted(() => {
|
|
|
class="btn-link"
|
|
|
link
|
|
|
@click="handleSelectTarget(row)">
|
|
|
- 共{{ KeyWordLength }}个定向规则
|
|
|
+ 共{{ targetLength }}个定向规则
|
|
|
</el-button>
|
|
|
</span>
|
|
|
</template>
|