From 697c23ecf04362a82b79930133118d31bfc348c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E5=BF=97=E5=86=9B?= <543024265@qq.com> Date: Mon, 30 Jun 2025 11:36:11 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(property-marketing):=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=8A=A5=E8=A1=A8=E9=A1=B5=E9=9D=A2=E5=B8=83=E5=B1=80?= =?UTF-8?q?=E5=92=8C=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重新设计了业务分析报告和竞品分析报告的页面布局 - 添加了更多筛选条件和排序功能- 优化了表格列的展示内容和样式 - 更新了图表组件,支持更多图表类型 - 调整了路由模块中的报表名称 --- .../routes/modules/propertyMarketing.ts | 4 +- .../businessAnalysisReport.vue | 59 ++++++++---- .../competitiveProductAnalysisReport.vue | 96 ++++++++++++++----- .../components/echarts-item/index.vue | 22 +++-- .../put-account/account-dashboard/index.vue | 87 ++++++++++++++++- 5 files changed, 211 insertions(+), 57 deletions(-) diff --git a/src/router/routes/modules/propertyMarketing.ts b/src/router/routes/modules/propertyMarketing.ts index 8a9035d..f85feac 100644 --- a/src/router/routes/modules/propertyMarketing.ts +++ b/src/router/routes/modules/propertyMarketing.ts @@ -151,7 +151,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [ path: 'businessAnalysisReport', name: 'IntelligentSolutionBusinessAnalysisReport', meta: { - locale: '业务分析报告', + locale: '业务洞察报告', requiresAuth: true, roles: ['*'], }, @@ -161,7 +161,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [ path: 'competitiveProductAnalysisReport', name: 'IntelligentSolutionCompetitiveProductAnalysisReport', meta: { - locale: '竟品分析报告', + locale: '竟品对比报告', requiresAuth: true, roles: ['*'], }, diff --git a/src/views/property-marketing/intelligent-solution/businessAnalysisReport.vue b/src/views/property-marketing/intelligent-solution/businessAnalysisReport.vue index 56011c2..5b4101c 100644 --- a/src/views/property-marketing/intelligent-solution/businessAnalysisReport.vue +++ b/src/views/property-marketing/intelligent-solution/businessAnalysisReport.vue @@ -2,19 +2,17 @@ - 业务分析报告 - - - + 业务洞察报告 - + + + - + - + @@ -57,6 +62,7 @@ - + diff --git a/src/views/property-marketing/put-account/account-dashboard/components/echarts-item/index.vue b/src/views/property-marketing/put-account/account-dashboard/components/echarts-item/index.vue index fe4a1b4..2632bde 100644 --- a/src/views/property-marketing/put-account/account-dashboard/components/echarts-item/index.vue +++ b/src/views/property-marketing/put-account/account-dashboard/components/echarts-item/index.vue @@ -10,12 +10,12 @@ -
+
- 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 9aaebff..887a472 100644 --- a/src/views/property-marketing/put-account/account-dashboard/index.vue +++ b/src/views/property-marketing/put-account/account-dashboard/index.vue @@ -13,7 +13,7 @@ - 项目名称 + 账户名称 Beijing Shanghai @@ -95,6 +95,89 @@ > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -155,8 +238,6 @@ const xhlEcharts = reactive({ }, ], }); - - diff --git a/src/components/custom-table-column-modal/style.scss b/src/components/custom-table-column-modal/style.scss new file mode 100644 index 0000000..a18d7a7 --- /dev/null +++ b/src/components/custom-table-column-modal/style.scss @@ -0,0 +1,99 @@ +.custom-table-column-modal { + .arco-modal-body { + .modal-body { + height: 504px; + border-radius: 8px; + border: 1px solid var(--BG-300, #e6e6e8); + display: flex; + flex-direction: row; + .left { + flex: 1; + padding: 20px; + border-right: 1px solid #eee; + overflow-y: auto; + .group-item { + .title-row { + border-radius: 4px; + background: var(--BG-100, #f7f8fa); + display: flex; + height: 44px; + padding: 0px 12px; + align-items: center; + margin-bottom: 16px; + .text { + color: var(--Text-1, #211f24); + font-family: 'Alibaba PuHuiTi'; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; /* 150% */ + } + } + .fields { + width: 100%; + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 16px; + } + &:not(:last-child) { + margin-bottom: 24px; + } + } + } + .right { + width: 280px; + padding: 16px 12px; + display: flex; + flex-direction: column; + .checked-title { + color: var(--Text-1, #211f24); + font-family: 'Alibaba PuHuiTi'; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; + .count { + font-weight: 500; + } + } + .checked-list { + flex: 1; + overflow-y: auto; + .checked-item { + cursor: move; + border-radius: 4px; + background: var(--BG-100, #f7f8fa); + display: flex; + height: 32px; + padding: 0px 12px; + align-items: center; + .text { + color: var(--Text-1, #211f24); + font-family: 'Alibaba PuHuiTi'; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; /* 157.143% */ + } + &:not(:last-child) { + margin-bottom: 12px; + } + } + .draggable-list { + min-height: 40px; + } + } + } + } + } + .arco-modal-footer { + .cancel-btn { + border-radius: 4px; + border: 1px solid var(--BG-500, #b1b2b5); + background: var(--BG-white, #fff); + &:hover { + border: 1px solid var(--BG-500, #b1b2b5); + } + } + } +} diff --git a/src/components/custom-table-column-modal/test.vue b/src/components/custom-table-column-modal/test.vue new file mode 100644 index 0000000..7fda6df --- /dev/null +++ b/src/components/custom-table-column-modal/test.vue @@ -0,0 +1,389 @@ + + + + + diff --git a/src/styles/components/index.scss b/src/styles/components/index.scss index 4655cb9..39ccb7a 100644 --- a/src/styles/components/index.scss +++ b/src/styles/components/index.scss @@ -2,4 +2,5 @@ @import './table.scss'; @import './checkbox.scss'; @import './pagination.scss'; -@import './tabs.scss'; \ No newline at end of file +@import './tabs.scss'; +@import './modal.scss'; \ No newline at end of file diff --git a/src/styles/components/modal.scss b/src/styles/components/modal.scss new file mode 100644 index 0000000..aee1303 --- /dev/null +++ b/src/styles/components/modal.scss @@ -0,0 +1,23 @@ +.arco-modal { + .arco-modal-header { + border-bottom: 1px solid var(--Border-1, #d7d7d9); + height: 56px; + padding: 0 20px; + .arco-modal-title { + justify-content: flex-start; + } + } + + .arco-modal-body { + padding: 24px 20px; + } + + .arco-modal-footer { + display: flex; + height: 64px; + padding: 0px 20px; + justify-content: flex-end; + align-items: center; + border-top: 1px solid var(--Border-1, #d7d7d9); + } +} diff --git a/src/views/property-marketing/component.scss b/src/views/property-marketing/component.scss index 6595010..356ee53 100644 --- a/src/views/property-marketing/component.scss +++ b/src/views/property-marketing/component.scss @@ -20,17 +20,8 @@ border: 1px solid var(--BG-500, #b1b2b5); } } - .arco-modal-header { - border-bottom: 1px solid var(--Border-1, #d7d7d9); - height: 56px; - padding: 0 20px; - .arco-modal-title { - justify-content: flex-start; - } - } .arco-modal-body { - padding: 24px 20px; .arco-form-item { margin-bottom: 16px; &:last-child { @@ -46,13 +37,4 @@ } } } - - .arco-modal-footer { - display: flex; - height: 64px; - padding: 0px 20px; - justify-content: flex-end; - align-items: center; - border-top: 1px solid var(--Border-1, #d7d7d9); - } } diff --git a/src/views/property-marketing/media-account/account-dashboard/components/account-table/index.vue b/src/views/property-marketing/media-account/account-dashboard/components/account-table/index.vue index 00a60a2..746dcb1 100644 --- a/src/views/property-marketing/media-account/account-dashboard/components/account-table/index.vue +++ b/src/views/property-marketing/media-account/account-dashboard/components/account-table/index.vue @@ -12,7 +12,7 @@ - + @@ -106,14 +106,18 @@ + +