From 9febe149973809afe6fd7d88ad16679fe2fac12c Mon Sep 17 00:00:00 2001 From: rd <1344903914@qq.com> Date: Mon, 21 Jul 2025 12:01:32 +0800 Subject: [PATCH 01/17] =?UTF-8?q?feat:=20=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/svg/icon-projectManagement.svg | 3 + src/hooks/useTableSelectionWithPagination.ts | 4 + .../routes/modules/propertyMarketing.ts | 27 ++++ src/stores/modules/side-bar/constants.ts | 7 + src/utils/tools.ts | 2 +- .../components/filter-block/index.vue | 70 +++++++++ .../components/filter-block/style.scss | 23 +++ .../components/project-table/constants.ts | 45 ++++++ .../components/project-table/index.vue | 88 +++++++++++ .../components/project-table/style.scss | 10 ++ .../project-manage/project-list/constants.ts | 5 + .../project-manage/project-list/index.vue | 138 ++++++++++++++++++ .../project-manage/project-list/style.scss | 39 +++++ .../put-account/account-manage/index.vue | 14 +- 14 files changed, 467 insertions(+), 8 deletions(-) create mode 100644 src/assets/svg/icon-projectManagement.svg create mode 100644 src/views/property-marketing/project-manage/project-list/components/filter-block/index.vue create mode 100644 src/views/property-marketing/project-manage/project-list/components/filter-block/style.scss create mode 100644 src/views/property-marketing/project-manage/project-list/components/project-table/constants.ts create mode 100644 src/views/property-marketing/project-manage/project-list/components/project-table/index.vue create mode 100644 src/views/property-marketing/project-manage/project-list/components/project-table/style.scss create mode 100644 src/views/property-marketing/project-manage/project-list/constants.ts create mode 100644 src/views/property-marketing/project-manage/project-list/index.vue create mode 100644 src/views/property-marketing/project-manage/project-list/style.scss diff --git a/src/assets/svg/icon-projectManagement.svg b/src/assets/svg/icon-projectManagement.svg new file mode 100644 index 0000000..8266f40 --- /dev/null +++ b/src/assets/svg/icon-projectManagement.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/hooks/useTableSelectionWithPagination.ts b/src/hooks/useTableSelectionWithPagination.ts index ac13d17..32b9e52 100644 --- a/src/hooks/useTableSelectionWithPagination.ts +++ b/src/hooks/useTableSelectionWithPagination.ts @@ -67,6 +67,9 @@ export function useTableSelectionWithPagination(options: UseTableSelectionWithPa pageInfo.value.page = 1; options.onPageSizeChange?.(size); }; + const resetPageInfo = () => { + pageInfo.value = cloneDeep(DEFAULT_PAGE_INFO) + } const rowSelection = computed(() => ({ type: 'checkbox', @@ -83,5 +86,6 @@ export function useTableSelectionWithPagination(options: UseTableSelectionWithPa rowSelection, handleSelect, handleSelectAll, + resetPageInfo }; } diff --git a/src/router/routes/modules/propertyMarketing.ts b/src/router/routes/modules/propertyMarketing.ts index 58e5ed4..c4ddff2 100644 --- a/src/router/routes/modules/propertyMarketing.ts +++ b/src/router/routes/modules/propertyMarketing.ts @@ -9,6 +9,7 @@ import IconRepository from '@/assets/svg/icon-repository.svg'; import IconMediaAccount from '@/assets/svg/icon-mediaAccount.svg'; import IconPutAccount from '@/assets/svg/icon-putAccount.svg'; import IconIntelligentSolution from '@/assets/svg/icon-intelligentSolution.svg'; +import IconProjectManagement from '@/assets/svg/icon-projectManagement.svg'; const COMPONENTS: AppRouteRecordRaw[] = [ { @@ -195,6 +196,32 @@ const COMPONENTS: AppRouteRecordRaw[] = [ }, ], }, + { + path: '/project-manage', + name: 'ProjectManagement', + redirect: 'project-manage/project-list', + meta: { + locale: '项目管理', + icon: IconProjectManagement, + requiresAuth: true, + requireLogin: true, + roles: ['*'], + id: MENU_GROUP_IDS.PROPERTY_ID, + }, + children: [ + { + path: 'project-list', + name: 'ProjectList', + meta: { + locale: '项目列表', + requiresAuth: true, + requireLogin: true, + roles: ['*'], + }, + component: () => import('@/views/property-marketing/project-manage/project-list'), + }, + ], + }, ]; export default COMPONENTS; diff --git a/src/stores/modules/side-bar/constants.ts b/src/stores/modules/side-bar/constants.ts index 30c732f..cacd25c 100644 --- a/src/stores/modules/side-bar/constants.ts +++ b/src/stores/modules/side-bar/constants.ts @@ -85,6 +85,13 @@ export const MENU_LIST = [ 'IntelligentSolutionCompetitiveProductAnalysisReport', ], }, + { + name: '项目管理', + routeName: 'ProjectList', + includeRouteNames: [ + 'ProjectList', + ], + }, ], }, ]; diff --git a/src/utils/tools.ts b/src/utils/tools.ts index e2093fc..ed82cb7 100644 --- a/src/utils/tools.ts +++ b/src/utils/tools.ts @@ -85,7 +85,7 @@ export function formatTableField(fieldItem: any, rowValue: any, showExactValue = return `${fieldItem.prefix || ''}${value}${fieldItem.suffix || ''}`; } -export function exactFormatTime(val: number, curYearFmt = 'MM-DD HH:mm', otherYearFmt = 'YYYY-MM-DD HH:mm') { +export function exactFormatTime(val: number, curYearFmt = 'MM-DD HH:mm:ss', otherYearFmt = 'YYYY-MM-DD HH:mm:ss') { if (!val) return '-'; const year = dayjs(val * 1000).year(); const currYear = dayjs().year(); diff --git a/src/views/property-marketing/project-manage/project-list/components/filter-block/index.vue b/src/views/property-marketing/project-manage/project-list/components/filter-block/index.vue new file mode 100644 index 0000000..b22abea --- /dev/null +++ b/src/views/property-marketing/project-manage/project-list/components/filter-block/index.vue @@ -0,0 +1,70 @@ + + + + + + + diff --git a/src/views/property-marketing/project-manage/project-list/components/filter-block/style.scss b/src/views/property-marketing/project-manage/project-list/components/filter-block/style.scss new file mode 100644 index 0000000..48e2115 --- /dev/null +++ b/src/views/property-marketing/project-manage/project-list/components/filter-block/style.scss @@ -0,0 +1,23 @@ +.container { + .filter-row { + .filter-row-item { + &:not(:last-child) { + margin-right: 24px; + } + .label { + margin-right: 8px; + color: #211f24; + font-family: $font-family-regular; + font-size: 14px; + font-style: normal; + font-weight: 400; + flex-shrink: 0; + line-height: 22px; /* 157.143% */ + } + :deep(.arco-space-item) { + width: 100%; + } + } + } + +} diff --git a/src/views/property-marketing/project-manage/project-list/components/project-table/constants.ts b/src/views/property-marketing/project-manage/project-list/components/project-table/constants.ts new file mode 100644 index 0000000..ae9a58f --- /dev/null +++ b/src/views/property-marketing/project-manage/project-list/components/project-table/constants.ts @@ -0,0 +1,45 @@ +/* + * @Author: RenXiaoDong + * @Date: 2025-06-28 10:33:06 + */ +export const TABLE_COLUMNS = [ + { + title: '项目名称', + dataIndex: 'name', + width: 240, + fixed: 'left', + }, + { + title: '项目预算', + dataIndex: 'key1', + width: 180, + }, + { + title: '关联平台账号', + dataIndex: 'key2', + width: 180, + }, + { + title: '关联渠道账户', + dataIndex: 'key3', + width: 180, + }, + { + title: '关联内容稿件', + dataIndex: 'key4', + width: 180, + }, + { + title: '创建时间', + dataIndex: 'create_at', + width: 180, + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, + { + title: '操作', + dataIndex: 'operation', + width: 100, + }, +]; diff --git a/src/views/property-marketing/project-manage/project-list/components/project-table/index.vue b/src/views/property-marketing/project-manage/project-list/components/project-table/index.vue new file mode 100644 index 0000000..dc8e325 --- /dev/null +++ b/src/views/property-marketing/project-manage/project-list/components/project-table/index.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/views/property-marketing/project-manage/project-list/components/project-table/style.scss b/src/views/property-marketing/project-manage/project-list/components/project-table/style.scss new file mode 100644 index 0000000..38fb392 --- /dev/null +++ b/src/views/property-marketing/project-manage/project-list/components/project-table/style.scss @@ -0,0 +1,10 @@ +.project-table { + .cts { + color: var(--Text-1, #211f24); + font-family: $font-family-medium; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; + } +} diff --git a/src/views/property-marketing/project-manage/project-list/constants.ts b/src/views/property-marketing/project-manage/project-list/constants.ts new file mode 100644 index 0000000..7f13ca2 --- /dev/null +++ b/src/views/property-marketing/project-manage/project-list/constants.ts @@ -0,0 +1,5 @@ +export const INITIAL_QUERY = { + search: '', + column: '', + order: '', +}; diff --git a/src/views/property-marketing/project-manage/project-list/index.vue b/src/views/property-marketing/project-manage/project-list/index.vue new file mode 100644 index 0000000..88ddc92 --- /dev/null +++ b/src/views/property-marketing/project-manage/project-list/index.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/src/views/property-marketing/project-manage/project-list/style.scss b/src/views/property-marketing/project-manage/project-list/style.scss new file mode 100644 index 0000000..dda7199 --- /dev/null +++ b/src/views/property-marketing/project-manage/project-list/style.scss @@ -0,0 +1,39 @@ +.project-list-wrap { + height: 100%; + display: flex; + flex-direction: column; + :deep(.search-btn) { + border-radius: 4px; + border: 1px solid var(--Brand-Brand-6, #6d4cfe); + color: #6d4cfe; + } + :deep(.reset-btn) { + border-radius: 4px; + border: 1px solid var(--BG-500, #b1b2b5); + background: var(--BG-white, #fff); + } + .filter-wrap { + .top { + .title { + font-family: $font-family-medium; + font-style: normal; + } + :deep(.arco-btn) { + .arco-btn-icon { + line-height: 16px; + } + } + } + } + .table-wrap { + display: flex; + flex-direction: column; + .pagination-box { + display: flex; + width: 100%; + padding: 16px 24px; + justify-content: flex-end; + align-items: center; + } + } +} diff --git a/src/views/property-marketing/put-account/account-manage/index.vue b/src/views/property-marketing/put-account/account-manage/index.vue index 3279b16..aa50bcd 100644 --- a/src/views/property-marketing/put-account/account-manage/index.vue +++ b/src/views/property-marketing/put-account/account-manage/index.vue @@ -79,7 +79,7 @@ show-page-size :page-size-options="[8, 16, 20, 32, 64]" :current="pageInfo.page" - :page-size="pageInfo.pageSize" + :page-size="pageInfo.page_size" @change="onPageChange" @page-size-change="onPageSizeChange" /> @@ -114,7 +114,7 @@ const deleteAccountRef = ref(null); const pageInfo = ref({ page: 1, - pageSize: 20, + page_size: 20, total: 0, }); const query = ref(cloneDeep(INITIAL_QUERY)); @@ -174,10 +174,10 @@ const getHealthData = async () => { } }; const getAccountData = async () => { - const { page, pageSize } = pageInfo.value; + const { page, page_size } = pageInfo.value; const { code, data, total } = await getPlacementAccounts({ page, - page_size: pageSize, + page_size, ...query.value, }); if (code === 200) { @@ -190,11 +190,11 @@ const reload = () => { getData(); }; const handleSearch = () => { - getData(); + reload(); }; const handleReset = () => { pageInfo.value.page = 1; - pageInfo.value.pageSize = 20; + pageInfo.value.page_size = 20; pageInfo.value.total = 0; selectedItems.value = []; query.value = cloneDeep(INITIAL_QUERY); @@ -206,7 +206,7 @@ const onPageChange = (current) => { getData(); }; const onPageSizeChange = (pageSize) => { - pageInfo.value.pageSize = pageSize; + pageInfo.value.page_size = pageSize; reload(); }; From 110ad79e7d0499559e21b0a2ac91ea4e36ec4262 Mon Sep 17 00:00:00 2001 From: rd <1344903914@qq.com> Date: Mon, 21 Jul 2025 18:19:13 +0800 Subject: [PATCH 02/17] =?UTF-8?q?perf:=20=E7=8A=B6=E6=80=81=E6=9E=9A?= =?UTF-8?q?=E4=B8=BE=E5=80=BC=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../put-account/components/status-select/constants.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/property-marketing/put-account/components/status-select/constants.ts b/src/views/property-marketing/put-account/components/status-select/constants.ts index 4713f42..7049295 100644 --- a/src/views/property-marketing/put-account/components/status-select/constants.ts +++ b/src/views/property-marketing/put-account/components/status-select/constants.ts @@ -5,8 +5,8 @@ export enum EnumStatus { UNAUTHORIZED = 0, NORMAL = 1, - ABNORMAL = 2, - PAUSE = 3, + ABNORMAL = 3, + PAUSE = 2, ABNORMAL_LOGIN = 4, ABNORMAL_REQUEST = 5, ABNORMAL_FREEZE = 6, From 55174e4258e85c5998763f88ff253557561691ea Mon Sep 17 00:00:00 2001 From: rd <1344903914@qq.com> Date: Tue, 22 Jul 2025 11:28:39 +0800 Subject: [PATCH 03/17] =?UTF-8?q?feat:=20=E7=BB=9F=E4=B8=80button4?= =?UTF-8?q?=E7=A7=8D=E6=A0=B7=E5=BC=8F=EF=BC=9Aprimary/outline/text/defaul?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_base/exit-account-modal/index.vue | 11 ++- src/components/_base/navbar/index.vue | 2 +- src/styles/components/button.scss | 67 +++++++++++++++++++ src/styles/components/index.scss | 3 +- src/views/components/login/index.vue | 7 +- .../brands/brand-materials/index.vue | 4 +- .../brands/brand-materials/style.scss | 12 ---- .../businessAnalysisReport.vue | 4 +- .../competitiveProductAnalysisReport.vue | 4 +- .../components/account-table/index.vue | 8 +-- .../components/filter-block/index.vue | 4 +- .../account-dashboard/style.scss | 10 --- .../components/note-table/index.vue | 4 +- .../media-account/account-detail/style.scss | 10 --- .../components/account-table/index.vue | 8 +-- .../components/filter-block/index.vue | 4 +- .../media-account/account-manage/index.vue | 6 +- .../media-account/account-manage/style.scss | 10 --- .../components/add-project-modal/index.vue | 32 +++++++++ .../components/add-project-modal/style.scss | 3 + .../components/filter-block/index.vue | 6 +- .../components/filter-block/style.scss | 2 +- .../components/project-table/constants.ts | 1 + .../components/project-table/index.vue | 2 +- .../project-manage/project-list/index.vue | 3 + .../project-manage/project-list/style.scss | 10 --- .../put-account/account-dashboard/index.vue | 4 +- .../components/board-table/index.vue | 6 +- .../components/filter-block/index.vue | 4 +- .../components/plan-table/index.vue | 6 +- .../put-account/account-data/index.vue | 2 +- .../put-account/account-data/style.scss | 10 --- .../components/account-table/index.vue | 7 +- .../components/filter-block/index.vue | 4 +- .../put-account/account-manage/index.vue | 2 +- .../put-account/account-manage/style.scss | 10 --- .../components/table-data/listSearchForm.vue | 4 +- 37 files changed, 164 insertions(+), 132 deletions(-) create mode 100644 src/styles/components/button.scss create mode 100644 src/views/property-marketing/project-manage/project-list/components/add-project-modal/index.vue create mode 100644 src/views/property-marketing/project-manage/project-list/components/add-project-modal/style.scss diff --git a/src/components/_base/exit-account-modal/index.vue b/src/components/_base/exit-account-modal/index.vue index 32a8380..b100121 100644 --- a/src/components/_base/exit-account-modal/index.vue +++ b/src/components/_base/exit-account-modal/index.vue @@ -17,7 +17,7 @@

退出登录后,你将无法收到该账号的通知

- 返回 + 返回 退出登录 @@ -83,15 +83,12 @@ defineExpose({ open }); } .cancel-btn { border-radius: 4px; - border: 1px solid var(--BG-500, #b1b2b5); - &:hover { - border: 1px solid var(--BG-500, #b1b2b5); - } } .danger-btn { - border-radius: 4px; background: var(--Functional-Danger-6, #f64b31) !important; - border: none !important; + &:hover { + background: var(--Functional-Danger-6, #f64b31) !important; + } } } } diff --git a/src/components/_base/navbar/index.vue b/src/components/_base/navbar/index.vue index 0fc5d65..cacc3f6 100644 --- a/src/components/_base/navbar/index.vue +++ b/src/components/_base/navbar/index.vue @@ -63,7 +63,7 @@ const onEnterpriseItemClick = async (item) => { diff --git a/src/views/property-marketing/media-account/account-dashboard/components/filter-block/index.vue b/src/views/property-marketing/media-account/account-dashboard/components/filter-block/index.vue index d7a2089..4a452eb 100644 --- a/src/views/property-marketing/media-account/account-dashboard/components/filter-block/index.vue +++ b/src/views/property-marketing/media-account/account-dashboard/components/filter-block/index.vue @@ -47,13 +47,13 @@
- + - + diff --git a/src/views/property-marketing/media-account/account-dashboard/style.scss b/src/views/property-marketing/media-account/account-dashboard/style.scss index 050075c..16fd193 100644 --- a/src/views/property-marketing/media-account/account-dashboard/style.scss +++ b/src/views/property-marketing/media-account/account-dashboard/style.scss @@ -2,16 +2,6 @@ height: 100%; display: flex; flex-direction: column; - :deep(.search-btn) { - border-radius: 4px; - border: 1px solid var(--Brand-Brand-6, #6d4cfe); - color: #6d4cfe; - } - :deep(.reset-btn) { - border-radius: 4px; - border: 1px solid var(--BG-500, #b1b2b5); - background: var(--BG-white, #fff); - } .filter-wrap { border-radius: 8px; border: 1px solid #e6e6e8; diff --git a/src/views/property-marketing/media-account/account-detail/components/note-table/index.vue b/src/views/property-marketing/media-account/account-detail/components/note-table/index.vue index 97ac577..3ee11e6 100644 --- a/src/views/property-marketing/media-account/account-detail/components/note-table/index.vue +++ b/src/views/property-marketing/media-account/account-detail/components/note-table/index.vue @@ -36,13 +36,13 @@ /> - + - + diff --git a/src/views/property-marketing/media-account/account-detail/style.scss b/src/views/property-marketing/media-account/account-detail/style.scss index 8b5ad4b..40d5a29 100644 --- a/src/views/property-marketing/media-account/account-detail/style.scss +++ b/src/views/property-marketing/media-account/account-detail/style.scss @@ -19,16 +19,6 @@ padding: 10px 0; align-items: center; } - :deep(.search-btn) { - border-radius: 4px; - border: 1px solid var(--Brand-Brand-6, #6d4cfe); - color: #6d4cfe; - } - :deep(.reset-btn) { - border-radius: 4px; - border: 1px solid var(--BG-500, #b1b2b5); - background: var(--BG-white, #fff); - } .table-wrap { width: 100%; diff --git a/src/views/property-marketing/media-account/account-manage/components/account-table/index.vue b/src/views/property-marketing/media-account/account-manage/components/account-table/index.vue index 2c82938..fbf87c4 100644 --- a/src/views/property-marketing/media-account/account-manage/components/account-table/index.vue +++ b/src/views/property-marketing/media-account/account-manage/components/account-table/index.vue @@ -76,7 +76,7 @@
- + - + @@ -101,8 +101,8 @@ 更新数据失败
- 取消 - 重新更新 + 取消 + 重新更新
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 0734e15..27df722 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 @@ -59,13 +59,13 @@ - + - + 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 6448c07..70fcb8d 100644 --- a/src/views/property-marketing/media-account/account-manage/index.vue +++ b/src/views/property-marketing/media-account/account-manage/index.vue @@ -8,19 +8,19 @@

账号管理

- + - + - + diff --git a/src/views/property-marketing/media-account/account-manage/style.scss b/src/views/property-marketing/media-account/account-manage/style.scss index e064951..21bd7de 100644 --- a/src/views/property-marketing/media-account/account-manage/style.scss +++ b/src/views/property-marketing/media-account/account-manage/style.scss @@ -2,16 +2,6 @@ height: 100%; display: flex; flex-direction: column; - :deep(.search-btn) { - border-radius: 4px; - border: 1px solid var(--Brand-Brand-6, #6d4cfe); - color: #6d4cfe; - } - :deep(.reset-btn) { - border-radius: 4px; - border: 1px solid var(--BG-500, #b1b2b5); - background: var(--BG-white, #fff); - } .filter-wrap { .top { .title { diff --git a/src/views/property-marketing/project-manage/project-list/components/add-project-modal/index.vue b/src/views/property-marketing/project-manage/project-list/components/add-project-modal/index.vue new file mode 100644 index 0000000..86740d4 --- /dev/null +++ b/src/views/property-marketing/project-manage/project-list/components/add-project-modal/index.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/views/property-marketing/project-manage/project-list/components/add-project-modal/style.scss b/src/views/property-marketing/project-manage/project-list/components/add-project-modal/style.scss new file mode 100644 index 0000000..c6e2143 --- /dev/null +++ b/src/views/property-marketing/project-manage/project-list/components/add-project-modal/style.scss @@ -0,0 +1,3 @@ +.add-project-modal { + +} \ No newline at end of file diff --git a/src/views/property-marketing/project-manage/project-list/components/filter-block/index.vue b/src/views/property-marketing/project-manage/project-list/components/filter-block/index.vue index b22abea..bb52cbe 100644 --- a/src/views/property-marketing/project-manage/project-list/components/filter-block/index.vue +++ b/src/views/property-marketing/project-manage/project-list/components/filter-block/index.vue @@ -4,7 +4,7 @@ * @Date: 2025-06-25 14:02:40 --> @@ -46,6 +48,7 @@ import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPa import FilterBlock from './components/filter-block'; import ProjectTable from './components/project-table'; +import AddProjectModal from './components/add-project-modal'; import icon1 from '@/assets/img/media-account/icon-add.png'; diff --git a/src/views/property-marketing/project-manage/project-list/style.scss b/src/views/property-marketing/project-manage/project-list/style.scss index dda7199..09ee598 100644 --- a/src/views/property-marketing/project-manage/project-list/style.scss +++ b/src/views/property-marketing/project-manage/project-list/style.scss @@ -2,16 +2,6 @@ height: 100%; display: flex; flex-direction: column; - :deep(.search-btn) { - border-radius: 4px; - border: 1px solid var(--Brand-Brand-6, #6d4cfe); - color: #6d4cfe; - } - :deep(.reset-btn) { - border-radius: 4px; - border: 1px solid var(--BG-500, #b1b2b5); - background: var(--BG-white, #fff); - } .filter-wrap { .top { .title { diff --git a/src/views/property-marketing/put-account/account-dashboard/index.vue b/src/views/property-marketing/put-account/account-dashboard/index.vue index dee8513..9a5fa7f 100644 --- a/src/views/property-marketing/put-account/account-dashboard/index.vue +++ b/src/views/property-marketing/put-account/account-dashboard/index.vue @@ -43,13 +43,13 @@
- + - + diff --git a/src/views/property-marketing/put-account/account-data/components/board-table/index.vue b/src/views/property-marketing/put-account/account-data/components/board-table/index.vue index b60414d..a7ba0a1 100644 --- a/src/views/property-marketing/put-account/account-data/components/board-table/index.vue +++ b/src/views/property-marketing/put-account/account-data/components/board-table/index.vue @@ -16,11 +16,11 @@
- + - + @@ -106,7 +106,7 @@
\ 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" >