From 62f900180ab64493c2bdd936d9bbdee503ecb82a Mon Sep 17 00:00:00 2001 From: rd <> Date: Fri, 27 Jun 2025 16:36:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B4=A6=E6=88=B7=E6=8E=88=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/all/propertyMarketing.ts | 15 +- .../img/media-account/icon-feedback-fail.png | Bin 0 -> 4986 bytes .../media-account/icon-feedback-success.png | Bin 0 -> 5159 bytes src/assets/img/media-account/icon-warn-2.png | Bin 0 -> 490 bytes .../components/account-table/index.vue | 76 +++++++-- .../account-table/pause-account-patch.vue | 54 +++++++ .../components/account-table/style.scss | 41 ++--- .../components/add-account-modal/index.vue | 46 ++++-- .../authorized-account-modal/index.vue | 152 ++++++++++++++++++ .../authorized-account-modal/style.scss | 49 ++++++ .../components/batch-group-modal/index.vue | 33 ++-- .../components/batch-tag-modal/index.vue | 53 +++--- .../components/filter-block/index.vue | 30 ++-- .../components/qrCode-modal/index.vue | 46 ------ .../components/qrCode-modal/style.scss | 19 --- .../components/status-box/index.vue | 96 +++++++++++ .../media-account/account-manage/constants.ts | 39 ++++- .../media-account/account-manage/index.vue | 39 +++-- 18 files changed, 608 insertions(+), 180 deletions(-) create mode 100644 src/assets/img/media-account/icon-feedback-fail.png create mode 100644 src/assets/img/media-account/icon-feedback-success.png create mode 100644 src/assets/img/media-account/icon-warn-2.png create mode 100644 src/views/property-marketing/media-account/account-manage/components/account-table/pause-account-patch.vue create mode 100644 src/views/property-marketing/media-account/account-manage/components/authorized-account-modal/index.vue create mode 100644 src/views/property-marketing/media-account/account-manage/components/authorized-account-modal/style.scss delete mode 100644 src/views/property-marketing/media-account/account-manage/components/qrCode-modal/index.vue delete mode 100644 src/views/property-marketing/media-account/account-manage/components/qrCode-modal/style.scss create mode 100644 src/views/property-marketing/media-account/account-manage/components/status-box/index.vue diff --git a/src/api/all/propertyMarketing.ts b/src/api/all/propertyMarketing.ts index fe8d6cd..41ca7ca 100644 --- a/src/api/all/propertyMarketing.ts +++ b/src/api/all/propertyMarketing.ts @@ -35,8 +35,9 @@ export const getMediaAccountsDetail = (id: string) => { }; // 媒体账号-修改 -export const putMediaAccounts = (id: string) => { - return Http.put(`/v1/media-accounts/${id}`); +export const putMediaAccounts = (params = {}) => { + const { id, ...rest } = params as { id: string; [key: string]: any }; + return Http.put(`/v1/media-accounts/${id}`, rest); }; // 媒体账号-删除 @@ -105,3 +106,13 @@ export const batchPutTag = (params = {}) => { export const batchPutGroup = (params = {}) => { return Http.put(`/v1/media-accounts/batch-group`, params); }; + +// 媒体账号-暂停爬取 +export const pausePatchAccount = (id: string) => { + return Http.patch(`/v1/media-accounts/${id}/pause`); +}; + +// 媒体账号-开始爬取 +export const startPatchAccount = (id: string) => { + return Http.patch(`/v1/media-accounts/${id}/start`); +}; diff --git a/src/assets/img/media-account/icon-feedback-fail.png b/src/assets/img/media-account/icon-feedback-fail.png new file mode 100644 index 0000000000000000000000000000000000000000..75003e9d1ee2d87ff36e1575c75b748d745ba750 GIT binary patch literal 4986 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 literal 0 HcmV?d00001 diff --git a/src/assets/img/media-account/icon-feedback-success.png b/src/assets/img/media-account/icon-feedback-success.png new file mode 100644 index 0000000000000000000000000000000000000000..38e859fe78127cfdc95e2f52bff1a85613d5821a GIT binary patch literal 5159 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 V>gZ+jZ7Ki&002ovPDHLkV1gGf%RT@A literal 0 HcmV?d00001 diff --git a/src/assets/img/media-account/icon-warn-2.png b/src/assets/img/media-account/icon-warn-2.png new file mode 100644 index 0000000000000000000000000000000000000000..e80a01c0cb101ed8084995cd741f781640da3bdf GIT binary patch literal 490 zcmVNkRo=HC@9}+aw$&nDyr&oi8^i-BA^FkxHQW9u@%{v$M(;Xh) zF!O~P`a#^)B-q-uai1&F5aA?zUkRv`w2>WFLg2TE3V6r})~zHVK;$AT7%xcy#ta!D zz{x^;&r631uSkzqn7U4A#8S?`wwokrgcJ~SJ1P*%qSB)~mP7*_h-#9(Xz)OAlcRrS zcZtc^m)4QYgYwk9U7z1tmCKslVhTho7|{PM_sQ+!NC(|ZASNV4L${JhwR=HYvz!(3 gaA@piksN=NFV{{ item.name }}

状态 -
- {{ STATUS_LIST.find((v) => v.value === item.status)?.label ?? '-' }} -
+
平台 @@ -37,31 +35,62 @@
标签
-
+ +
+ {{ `+${item.tags.length - 2}` }} +
+
+ +
{{ tag.name }}
- + - - - + + + + + + +
+ diff --git a/src/views/property-marketing/media-account/account-manage/components/authorized-account-modal/style.scss b/src/views/property-marketing/media-account/account-manage/components/authorized-account-modal/style.scss new file mode 100644 index 0000000..8fd370a --- /dev/null +++ b/src/views/property-marketing/media-account/account-manage/components/authorized-account-modal/style.scss @@ -0,0 +1,49 @@ +@import '@/views/property-marketing/component.scss'; + +.qrCode-modal { + border-radius: 8px; + .img-box { + position: relative; + .mask { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: 0.8; + background: #000; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + color: #fff; + .s1 { + color: var(--BG-White, #fff); + text-align: center; + font-family: 'Alibaba PuHuiTi'; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; + } + } + } + .s2 { + color: var(--Text-1, #211f24); + font-family: 'Alibaba PuHuiTi'; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; + } + .red-text { + overflow: hidden; + color: var(--Functional-Red-6, #f64b31); + text-overflow: ellipsis; + font-family: 'Alibaba PuHuiTi'; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; + } +} diff --git a/src/views/property-marketing/media-account/account-manage/components/batch-group-modal/index.vue b/src/views/property-marketing/media-account/account-manage/components/batch-group-modal/index.vue index 21f7de8..d1bfc55 100644 --- a/src/views/property-marketing/media-account/account-manage/components/batch-group-modal/index.vue +++ b/src/views/property-marketing/media-account/account-manage/components/batch-group-modal/index.vue @@ -75,14 +75,13 @@ const form = reactive({ group_id: null, }); -const accounts = ref([]); // [{id, name}] const accountGroupList = ref([]); // [{id, name, group_id: null}] +const isAllEdit = computed(() => editType.value === 'all'); const open = (accountList = []) => { editType.value = 'all'; groupOptions.value = []; form.group_id = null; - accounts.value = accountList; accountGroupList.value = accountList.map((acc) => ({ ...acc, group_id: null, @@ -114,21 +113,31 @@ const getTags = async () => { const onClose = () => { visible.value = false; - form.tag_ids = []; + form.group_id = null; }; const onSubmit = async () => { + if (isAllEdit.value) { + if (form.group_id === null) { + AMessage.error('请选择分组'); + return; + } + } else { + if (accountGroupList.value.some((item) => item.group_id === null)) { + AMessage.error('请选择分组'); + return; + } + } + + const media_accounts = accountGroupList.value.map((item) => ({ + id: item.id, + group_id: isAllEdit.value ? form.group_id : item.group_id, + })); + // 这里处理批量标签的提交逻辑 - const _params = - editType.value === 'all' - ? { id: -1, group_id: form.group_id } - : accountGroupList.value.map((item) => ({ - id: item.id, - group_id: item.group_id, - })); - const { code } = await batchPutGroup({ media_accounts: _params }); + const { code } = await batchPutGroup({ media_accounts }); if (code === 200) { - AMessage.success('批量分组成功'); + AMessage.success('设置分组成功'); emits('update'); visible.value = false; } diff --git a/src/views/property-marketing/media-account/account-manage/components/batch-tag-modal/index.vue b/src/views/property-marketing/media-account/account-manage/components/batch-tag-modal/index.vue index 99cfceb..7946ecd 100644 --- a/src/views/property-marketing/media-account/account-manage/components/batch-tag-modal/index.vue +++ b/src/views/property-marketing/media-account/account-manage/components/batch-tag-modal/index.vue @@ -31,7 +31,7 @@ @@ -90,18 +90,17 @@ const tagOptions = ref([]); const formRef = ref(); const editType = ref('all'); const form = reactive({ - tag_ids: [], + tags: [], }); -const accounts = ref([]); // [{id, name}] const accountTagList = ref([]); // [{id, name, tags: []}] +const isAllEdit = computed(() => editType.value === 'all'); // 打开弹窗时请求标签数据 const open = (accountList = []) => { editType.value = 'all'; tagOptions.value = []; - form.tag_ids = []; - accounts.value = accountList; + form.tags = []; accountTagList.value = accountList.map((acc) => ({ ...acc, tags: [], @@ -114,19 +113,19 @@ const open = (accountList = []) => { const getTags = async () => { tagOptions.value = [ { - label: '测试', - value: '1', + label: '测试1', + value: '测试1', }, { - label: 'ceshi2', - value: 2, + label: '测试2', + value: '测试2', }, ]; const { code, data } = await fetchAccountTags(); if (code === 200) { tagOptions.value = data.map((item) => ({ label: item.name, - value: item.id, + value: item.name, })); } }; @@ -138,26 +137,36 @@ const handleCreateTag = (inputValue, idx) => { if (typeof idx === 'number') { accountTagList.value[idx].tags.push(inputValue); } else { - form.tag_ids.push(inputValue); + form.tags.push(inputValue); } }; const onClose = () => { visible.value = false; - form.tag_ids = []; + form.tags = []; }; const onSubmit = async () => { - const _params = - editType.value === 'all' - ? { tag_ids: form.tag_ids } - : accountTagList.value.map((item) => ({ - id: item.id, - tag_ids: item.tags, - })); - const { code } = await batchPutTag({ media_accounts: _params }); + if (isAllEdit.value) { + if (form.tags.length === 0) { + AMessage.error('请输入标签'); + return; + } + } else { + if (accountTagList.value.some((item) => item.tags.length === 0)) { + AMessage.error('请输入标签'); + return; + } + } + + const media_accounts = accountTagList.value.map((item) => ({ + id: item.id, + tags: isAllEdit.value ? form.tags : item.tags, + })); + console.log({ media_accounts }); + const { code } = await batchPutTag({ media_accounts }); if (code === 200) { - AMessage.success('批量标签成功'); + AMessage.success('设置标签成功'); emits('update'); visible.value = false; } diff --git a/src/views/property-marketing/media-account/account-manage/components/filter-block/index.vue b/src/views/property-marketing/media-account/account-manage/components/filter-block/index.vue index 87d4a77..cec8c08 100644 --- a/src/views/property-marketing/media-account/account-manage/components/filter-block/index.vue +++ b/src/views/property-marketing/media-account/account-manage/components/filter-block/index.vue @@ -1,3 +1,4 @@ + - - - - - diff --git a/src/views/property-marketing/media-account/account-manage/components/qrCode-modal/style.scss b/src/views/property-marketing/media-account/account-manage/components/qrCode-modal/style.scss deleted file mode 100644 index 8c1aba1..0000000 --- a/src/views/property-marketing/media-account/account-manage/components/qrCode-modal/style.scss +++ /dev/null @@ -1,19 +0,0 @@ -.qrCode-modal { - border-radius: 8px; - - .arco-modal-header { - border-bottom: none; - height: 56px; - padding: 22px 24px 16px 24px; - .arco-modal-title { - justify-content: flex-start; - } - } - .arco-modal-body { - padding: 20px 24px 20px; - } - .arco-modal-footer { - border-top: none; - padding: 0; - } -} diff --git a/src/views/property-marketing/media-account/account-manage/components/status-box/index.vue b/src/views/property-marketing/media-account/account-manage/components/status-box/index.vue new file mode 100644 index 0000000..9a94451 --- /dev/null +++ b/src/views/property-marketing/media-account/account-manage/components/status-box/index.vue @@ -0,0 +1,96 @@ + + + + + + diff --git a/src/views/property-marketing/media-account/account-manage/constants.ts b/src/views/property-marketing/media-account/account-manage/constants.ts index 39ae6fd..967b937 100644 --- a/src/views/property-marketing/media-account/account-manage/constants.ts +++ b/src/views/property-marketing/media-account/account-manage/constants.ts @@ -22,17 +22,46 @@ export const PLATFORM_LIST = [ }, ]; +export enum EnumStatus { + NORMAL = 1, + PAUSE = 3, + UNAUTHORIZED = 0, + ABNORMAL = 2, + ABNORMAL_LOGIN = 4, + ABNORMAL_REQUEST = 5, + ABNORMAL_FREEZE = 6, +} + export const STATUS_LIST = [ { - label: '未授权', - value: 0, + label: '正常', + value: EnumStatus.NORMAL, }, { - label: '正常', - value: 1, + label: '暂停同步', + value: EnumStatus.PAUSE, + }, + { + label: '未授权', + value: EnumStatus.UNAUTHORIZED, }, { label: '异常', - value: 2, + value: EnumStatus.ABNORMAL, + }, + { + label: '异常', + value: EnumStatus.ABNORMAL_LOGIN, + tooltip: '登录状态失效,需重新扫码授权', + }, + { + label: '异常', + value: EnumStatus.ABNORMAL_REQUEST, + tooltip: '请求过于频繁,需等待24小时后重试', + }, + { + label: '异常', + value: EnumStatus.ABNORMAL_FREEZE, + tooltip: '账号被冻结/封禁', }, ]; diff --git a/src/views/property-marketing/media-account/account-manage/index.vue b/src/views/property-marketing/media-account/account-manage/index.vue index bc6fe2f..fbf32f3 100644 --- a/src/views/property-marketing/media-account/account-manage/index.vue +++ b/src/views/property-marketing/media-account/account-manage/index.vue @@ -28,7 +28,7 @@ - +
- + @@ -84,6 +84,7 @@ :selectedItems="selectedItems" @selectionChange="handleSelectionChange" @delete="handleDelete" + @openEdit="handleOpenEdit" />
{ }); const getData = async () => { + console.log('getData'); // const { page, pageSize } = pageInfo; // const { code, data, total } = await getMediaAccounts({ // page, @@ -176,7 +178,7 @@ const getData = async () => { name: '全球', account_id: 1, mobile: 1777777, - status: 1, + status: 3, platform: 0, operator: { name: '小周', @@ -191,6 +193,15 @@ const getData = async () => { { name: '标签2', }, + { + name: '标签3', + }, + { + name: '标签4', + }, + { + name: '标签5', + }, ], }, { @@ -198,7 +209,7 @@ const getData = async () => { name: '全球2', account_id: 1, mobile: 1777777, - status: 1, + status: 4, platform: 0, operator: { name: '小周', @@ -217,13 +228,16 @@ const getData = async () => { }, ]; }; -const handleSearch = (newQuery) => { - query.value = { ...newQuery }; +const reload = () => { + pageInfo.page = 1; + getData(); +}; +const handleSearch = () => { getData(); }; const handleReset = () => { query.value = cloneDeep(INITIAL_QUERY); - getData(); + reload(); }; const onPageChange = (current) => { @@ -232,8 +246,7 @@ const onPageChange = (current) => { }; const onPageSizeChange = (pageSize) => { pageInfo.pageSize = pageSize; - pageInfo.page = 1; - getData(); + reload(); }; const handleOpenGroupModal = () => { @@ -262,12 +275,12 @@ const handleChangeAll = (val) => { }; const handleBatchDelete = () => { const ids = selectedItems.value.map((item) => item.id); - const names = selectedItems.value.map((item) => `“${item.name}”`).join(','); + const names = selectedItems.value.map((item) => `"${item.name}"`).join(','); deleteAccountRef.value?.open({ id: ids, name: names }); }; const handleDelete = (item) => { const { id, name } = item; - deleteAccountRef.value?.open({ id, name: `“${name}”` }); + deleteAccountRef.value?.open({ id, name: `"${name}"` }); }; const handleCloseTip = () => { selectedItems.value = []; @@ -279,6 +292,10 @@ const handleBatchTag = () => { const handleBatchGroup = () => { batchGroupModalRef.value?.open(selectedItems.value); }; +const handleOpenAbnormalAccount = () => { + query.value.status = 2; + reload(); +};