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 @@
- 步骤4
-
-
-
\ 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"
>
-
+