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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 已选({{ `${checkLength}` }})
+
+ 长按可拖动调整展示排序
+
+
+
+
+
+
+
{{ checkColumn.label }}
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
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 @@
+
+