From fcb0f111c0b1c2936186d916498054e3296ff920 Mon Sep 17 00:00:00 2001 From: rd <1344903914@qq.com> Date: Tue, 22 Jul 2025 17:06:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=B3=E8=81=94=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E7=A8=BF=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/all/propertyMarketing.ts | 7 +- .../components/add-project-modal/stepFour.vue | 270 +++++++++++++++++- .../add-project-modal/stepThree.vue | 4 +- .../components/add-project-modal/stepTwo.vue | 2 +- 4 files changed, 270 insertions(+), 13 deletions(-) diff --git a/src/api/all/propertyMarketing.ts b/src/api/all/propertyMarketing.ts index d309855..5d3f115 100644 --- a/src/api/all/propertyMarketing.ts +++ b/src/api/all/propertyMarketing.ts @@ -365,4 +365,9 @@ export const getMediaAccountSyncStatus = (params = {}) => { // 媒体账号-移除同步状态 export const deleteSyncStatus = (id: string) => { return Http.delete(`/v1/media-accounts/${id}/sync-status`); -}; \ No newline at end of file +}; + +// 内容稿件-列表 +export const getWorksList = (params = {}) => { + return Http.get('/v1/works/list', params); +}; diff --git a/src/views/property-marketing/project-manage/project-list/components/add-project-modal/stepFour.vue b/src/views/property-marketing/project-manage/project-list/components/add-project-modal/stepFour.vue index d32555d..fa6c846 100644 --- a/src/views/property-marketing/project-manage/project-list/components/add-project-modal/stepFour.vue +++ b/src/views/property-marketing/project-manage/project-list/components/add-project-modal/stepFour.vue @@ -1,12 +1,264 @@ - - \ No newline at end of file + +const query = ref({ + uid: '', + uploader_id: '', + title: '', +}); +const uploaders = ref([]); +const allData = ref([]); + +const updateFormQuery = () => { + emit('update:formQuery', { + ...props.formQuery, + work_ids: selectedRowKeys.value, + }); +}; +const handleSearch = () => { + const { uid, title, uploader_id } = query.value; + dataSource.value = allData.value.filter((item) => { + const uinMatch = uid === '' ? true : item.uid.includes(uid); + const titleMatch = title === '' ? true : item.title === title; + const operatorIdMatch = uploader_id === '' ? true : item.uploader?.id === uploader_id; + return uinMatch && titleMatch && operatorIdMatch; + }); +}; + +// const getOperators = async () => { +// const { code, data } = await getPlacementAccountOperators(); +// if (code === 200) { +// uploaders.value = data; +// } +// }; +const getTableData = async () => { + const { code, data } = await getWorksList(); + if (code === 200) { + allData.value = data ?? []; + dataSource.value = data ?? []; + uploaders.value = data.map( v => ({ + id: v.uploader?.id, + name: v.uploader?.name, + })) + initSelect(); + } +}; +const initSelect = () => { + if (props.formQuery.work_ids?.length) { + selectedRowKeys.value = props.formQuery.work_ids; + selectedRows.value = dataSource.value.filter((v) => selectedRowKeys.value.includes(v.id)); + } +}; + +const onClearSelect = () => { + selectedRowKeys.value = []; + selectedRows.value = []; + updateFormQuery(); +}; + +const onDelete = (item) => { + const { id } = item; + selectedRowKeys.value = selectedRowKeys.value.filter((v) => v !== id); + selectedRows.value = selectedRows.value.filter((v) => v.id !== id); + updateFormQuery(); +}; + +onMounted(() => { + // getOperators(); + getTableData(); +}); + + + diff --git a/src/views/property-marketing/project-manage/project-list/components/add-project-modal/stepThree.vue b/src/views/property-marketing/project-manage/project-list/components/add-project-modal/stepThree.vue index 776e8db..37b86e5 100644 --- a/src/views/property-marketing/project-manage/project-list/components/add-project-modal/stepThree.vue +++ b/src/views/property-marketing/project-manage/project-list/components/add-project-modal/stepThree.vue @@ -58,7 +58,7 @@ @select-all="handleSelectAll" > - + diff --git a/src/views/property-marketing/project-manage/project-list/components/add-project-modal/stepTwo.vue b/src/views/property-marketing/project-manage/project-list/components/add-project-modal/stepTwo.vue index 84b2d06..cc171e1 100644 --- a/src/views/property-marketing/project-manage/project-list/components/add-project-modal/stepTwo.vue +++ b/src/views/property-marketing/project-manage/project-list/components/add-project-modal/stepTwo.vue @@ -58,7 +58,7 @@ @select-all="handleSelectAll" >