From 143a92df66b4d5ebf917f77c3f2f824460045e83 Mon Sep 17 00:00:00 2001
From: rd <1344903914@qq.com>
Date: Tue, 15 Jul 2025 16:51:41 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B7=A8=E9=87=8F/b=E7=AB=99=E5=B9=B3?=
=?UTF-8?q?=E5=8F=B0=E6=B7=BB=E5=8A=A0=E5=AD=90=E8=B4=A6=E6=88=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/all/propertyMarketing.ts | 12 +-
.../components/account-table/index.vue | 2 +-
.../components/add-account-modal/index.vue | 42 +++---
.../authorized-account-modal/index.vue | 45 +++---
.../select-sub-account-modal/constants.ts | 13 +-
.../select-sub-account-modal/index.vue | 135 +++++++++++-------
.../select-sub-account-modal/style.scss | 1 +
.../put-account/common_constants.ts | 6 +
8 files changed, 159 insertions(+), 97 deletions(-)
diff --git a/src/api/all/propertyMarketing.ts b/src/api/all/propertyMarketing.ts
index 063d2ce..67d610e 100644
--- a/src/api/all/propertyMarketing.ts
+++ b/src/api/all/propertyMarketing.ts
@@ -294,7 +294,7 @@ export const getPlacementAccountProjectsTrend = (params = {}) => {
export const getPlacementGuide = (params: {}) => {
return Http.get(`/v1/placement-account-projects/getGuideList`, params);
};
-//查询投放指南历史
+// 查询投放指南历史
export const getPlacementGuideHistory = (params: {}) => {
return Http.get(`/v1/placement-account-projects/getGuideListHistory`, params);
};
@@ -312,7 +312,7 @@ export const getPlacementGuideDetail = (id: string) => {
return Http.get(`/v1/placement-account-projects/historylog/${id}`);
};
-//删除记录
+// 删除记录
export const deleteHistorylog = (id: string) => {
return Http.delete(`/v1/placement-account-projects/historylog/${id}`);
};
@@ -332,4 +332,12 @@ export const postPlacementAccountsSync = (id: string) => {
return Http.post(`/v1/placement-accounts/${id}/sync-data`);
};
+// 投放账号-子账号分页
+export const postSubAccount = (params = {}) => {
+ return Http.post('/v1/placement-accounts/get-subaccount', params);
+};
+// 投放账号-添加子账号
+export const postAddSubAccount = (params = {}) => {
+ return Http.post('/v1/placement-accounts/subaccount', params);
+};
diff --git a/src/views/property-marketing/put-account/account-manage/components/account-table/index.vue b/src/views/property-marketing/put-account/account-manage/components/account-table/index.vue
index 2548668..1fcce8a 100644
--- a/src/views/property-marketing/put-account/account-manage/components/account-table/index.vue
+++ b/src/views/property-marketing/put-account/account-manage/components/account-table/index.vue
@@ -121,7 +121,7 @@ const openDelete = (item) => {
};
const handleReauthorize = (item) => {
- authorizedAccountModalRef.value?.open(item.id, item.last_synced_at);
+ authorizedAccountModalRef.value?.open({ accountId: item.id, last_synced_at: item.last_synced_at });
};
const handlePause = (item) => {
diff --git a/src/views/property-marketing/put-account/account-manage/components/add-account-modal/index.vue b/src/views/property-marketing/put-account/account-manage/components/add-account-modal/index.vue
index 01fc429..ed5de94 100644
--- a/src/views/property-marketing/put-account/account-manage/components/add-account-modal/index.vue
+++ b/src/views/property-marketing/put-account/account-manage/components/add-account-modal/index.vue
@@ -148,7 +148,7 @@ import { ref, defineEmits } from 'vue';
import AuthorizedAccountModal from '../authorized-account-modal';
// import ImportPromptModal from '../import-prompt-modal';
import StatusBox from '../status-box';
-import { PLATFORM_LIST } from '@/views/property-marketing/put-account/common_constants';
+import { PLATFORM_LIST, ENUM_PLATFORM } from '@/views/property-marketing/put-account/common_constants';
import {
postPlacementAccounts,
@@ -290,6 +290,27 @@ const handleBatchImport = async () => {
// importPromptModalRef.value.open();
};
+const handleAdd = async () => {
+ // 聚光无子账号
+ if (form.value.platform === ENUM_PLATFORM.jg) {
+ const { code, data } = await postPlacementAccounts(form.value);
+ if (code === 200) {
+ update();
+ authorizedAccountModalRef.value.open({ accountId: data?.id });
+ }
+ } else {
+ authorizedAccountModalRef.value.open({ form: form.value });
+ }
+};
+const handleEdit = async () => {
+ const { code } = await putPlacementAccounts({ id: id.value, ...form.value });
+ if (code === 200) {
+ isEdit.value && AMessage.success('修改成功');
+ update();
+ onClose();
+ }
+};
+
async function onSubmit() {
if (isBatchImport.value) {
handleBatchImport();
@@ -298,27 +319,11 @@ async function onSubmit() {
formRef.value.validate(async (errors) => {
if (!errors) {
- const _fn = id.value ? putPlacementAccounts : postPlacementAccounts;
- const _params = id.value ? { id: id.value, ...form.value } : form.value;
- const { code, data } = await _fn(_params);
- if (code === 200) {
- isEdit.value && AMessage.success('修改成功');
- update();
-
- if (isEdit.value) {
- onClose();
- } else {
- handleSuccess(data?.id);
- }
- }
+ isEdit.value ? handleEdit() : handleAdd();
}
});
}
-const handleSuccess = (id) => {
- authorizedAccountModalRef.value.open(id);
-};
-
const handleDownloadTemplate = async () => {
const { code, data } = await getPlacementAccountsTemplateUrl();
if (code === 200) {
@@ -326,6 +331,7 @@ const handleDownloadTemplate = async () => {
}
};
+provide('closeAddAccountModal', onClose);
// 对外暴露打开弹窗方法
defineExpose({ open });
diff --git a/src/views/property-marketing/put-account/account-manage/components/authorized-account-modal/index.vue b/src/views/property-marketing/put-account/account-manage/components/authorized-account-modal/index.vue
index 15fb645..572636b 100644
--- a/src/views/property-marketing/put-account/account-manage/components/authorized-account-modal/index.vue
+++ b/src/views/property-marketing/put-account/account-manage/components/authorized-account-modal/index.vue
@@ -60,13 +60,14 @@
-
+