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" >