From 992f0bd2f06d237c703c9f95872533b04337c7eb Mon Sep 17 00:00:00 2001 From: lrl <252048765@qq.com> Date: Wed, 23 Jul 2025 10:51:13 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=E5=95=86?= =?UTF-8?q?=E5=9C=BA=E9=A6=96=E9=A1=B5=E5=92=8C=E7=BB=9F=E8=AE=A1=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新等组件 - 优化 Work增 AnalysisOverview、AnalysisOverviewIconbenchQuickDataShow 组件的使用 - 更新图标使用方式,移除自定义 SVG 图标 -提升页面视觉效果 调整布局和样式, --- apps/web-antd/src/adapter/component/index.ts | 2 +- apps/web-ele/src/adapter/component/index.ts | 8 - apps/web-ele/src/utils/constants.ts | 10 + .../home/components/analysis-chart-card.vue | 25 +++ .../components/analysis-overview-icon.vue | 100 ++++++++++ .../home/components/analysis-overview.vue | 174 ++++++++++++++++++ .../components/analysis-trade-overview.vue | 87 +++++++++ .../src/views/mall/home/components/data.ts | 39 ++++ .../home/components/member-funnel-card.vue | 2 +- .../mall/home/components/trade-trend-card.vue | 3 +- .../components}/workbench-quick-data-show.vue | 30 +-- apps/web-ele/src/views/mall/home/data.ts | 6 - apps/web-ele/src/views/mall/home/index.vue | 28 +-- .../product/spu/components/delivery-form.vue | 22 +-- .../mall/product/spu/components/info-form.vue | 34 ++-- .../src/views/mall/product/spu/data.ts | 4 +- .../views/mall/statistics/member/index.vue | 38 ++-- .../product/components/product-summary.vue | 88 +++++---- .../views/mall/statistics/product/index.vue | 8 +- .../components/trade-transaction-card.vue | 111 +++++++---- .../src/views/mall/statistics/trade/index.vue | 46 +++-- .../trade/afterSale/modules/disagree-form.vue | 6 +- .../mall/trade/delivery/pickUpOrder/data.ts | 6 +- .../mall/trade/delivery/pickUpStore/data.ts | 7 +- .../trade/order/modules/delevery-form.vue | 6 +- .../order/modules/update-address-form.vue | 8 +- apps/web-ele/src/views/member/user/data.ts | 22 ++- .../analysis/analysis-chart-card.vue | 5 +- .../dashboard/analysis/analysis-overview.vue | 116 +----------- .../common-ui/src/ui/dashboard/typing.ts | 16 +- .../src/ui/dashboard/workbench/index.ts | 1 - packages/icons/src/svg/icons/eye.svg | 33 ---- packages/icons/src/svg/index.ts | 2 - 33 files changed, 726 insertions(+), 367 deletions(-) create mode 100644 apps/web-ele/src/views/mall/home/components/analysis-chart-card.vue create mode 100644 apps/web-ele/src/views/mall/home/components/analysis-overview-icon.vue create mode 100644 apps/web-ele/src/views/mall/home/components/analysis-overview.vue create mode 100644 apps/web-ele/src/views/mall/home/components/analysis-trade-overview.vue create mode 100644 apps/web-ele/src/views/mall/home/components/data.ts rename {packages/effects/common-ui/src/ui/dashboard/workbench => apps/web-ele/src/views/mall/home/components}/workbench-quick-data-show.vue (70%) delete mode 100644 apps/web-ele/src/views/mall/home/data.ts delete mode 100644 packages/icons/src/svg/icons/eye.svg diff --git a/apps/web-antd/src/adapter/component/index.ts b/apps/web-antd/src/adapter/component/index.ts index 20787d54c..f1ab1016d 100644 --- a/apps/web-antd/src/adapter/component/index.ts +++ b/apps/web-antd/src/adapter/component/index.ts @@ -156,7 +156,7 @@ async function initComponentAdapter() { 'select', { component: TreeSelect, - props: { label: 'label', value: 'value', children: 'children' }, + fieldNames: { label: 'label', value: 'value', children: 'children' }, loadingSlot: 'suffixIcon', modelPropName: 'value', optionsPropName: 'treeData', diff --git a/apps/web-ele/src/adapter/component/index.ts b/apps/web-ele/src/adapter/component/index.ts index 03845253a..7a5d9f074 100644 --- a/apps/web-ele/src/adapter/component/index.ts +++ b/apps/web-ele/src/adapter/component/index.ts @@ -212,13 +212,6 @@ async function initComponentAdapter() { 'select', { component: ElCascader, - props: { - props: { - label: 'label', - value: 'value', - children: 'children', - }, - }, }, ), ApiTreeSelect: withDefaultPlaceholder( @@ -229,7 +222,6 @@ async function initComponentAdapter() { 'select', { component: ElTreeSelect, - props: { label: 'label', children: 'children' }, nodeKey: 'value', loadingSlot: 'loading', optionsPropName: 'data', diff --git a/apps/web-ele/src/utils/constants.ts b/apps/web-ele/src/utils/constants.ts index 78da9f947..9b684696b 100644 --- a/apps/web-ele/src/utils/constants.ts +++ b/apps/web-ele/src/utils/constants.ts @@ -201,6 +201,16 @@ export const PayOrderStatusEnum = { }; // ========== MALL - 商品模块 ========== +/** + * 商品 首页 日期类型 + */ +export enum TimeRangeTypeEnum { + DAY30 = 1, + MONTH = 30, + WEEK = 7, + YEAR = 365, +} + /** * 商品 SPU 状态 */ diff --git a/apps/web-ele/src/views/mall/home/components/analysis-chart-card.vue b/apps/web-ele/src/views/mall/home/components/analysis-chart-card.vue new file mode 100644 index 000000000..807b6bad0 --- /dev/null +++ b/apps/web-ele/src/views/mall/home/components/analysis-chart-card.vue @@ -0,0 +1,25 @@ + + + diff --git a/apps/web-ele/src/views/mall/home/components/analysis-overview-icon.vue b/apps/web-ele/src/views/mall/home/components/analysis-overview-icon.vue new file mode 100644 index 000000000..80ebbbd80 --- /dev/null +++ b/apps/web-ele/src/views/mall/home/components/analysis-overview-icon.vue @@ -0,0 +1,100 @@ + + + diff --git a/apps/web-ele/src/views/mall/home/components/analysis-overview.vue b/apps/web-ele/src/views/mall/home/components/analysis-overview.vue new file mode 100644 index 000000000..6e1aa439f --- /dev/null +++ b/apps/web-ele/src/views/mall/home/components/analysis-overview.vue @@ -0,0 +1,174 @@ + + + + diff --git a/apps/web-ele/src/views/mall/home/components/analysis-trade-overview.vue b/apps/web-ele/src/views/mall/home/components/analysis-trade-overview.vue new file mode 100644 index 000000000..b188a9d2c --- /dev/null +++ b/apps/web-ele/src/views/mall/home/components/analysis-trade-overview.vue @@ -0,0 +1,87 @@ + + + diff --git a/apps/web-ele/src/views/mall/home/components/data.ts b/apps/web-ele/src/views/mall/home/components/data.ts new file mode 100644 index 000000000..021a20e5f --- /dev/null +++ b/apps/web-ele/src/views/mall/home/components/data.ts @@ -0,0 +1,39 @@ +export interface WorkbenchQuickDataShowItem { + name: string; + value: number; + prefix: string; + decimals: number; + routerName: string; +} + +export interface AnalysisOverviewItem { + title: string; + totalTitle?: string; + totalValue?: number; + value: number; + prefix?: string; + tooltip?: string; + // 环比增长相关字段 + showGrowthRate?: boolean; // 是否显示环比增长率,默认为false +} + +export interface AnalysisOverviewIconItem { + icon: string; + title: string; + value: number; + prefix?: string; + iconBgColor: string; + iconColor: string; + tooltip?: string; + decimals?: number; + percent?: number; +} + +export interface AnalysisOverviewTradeItem { + title: string; + value: number; + prefix?: string; + decimals?: number; + percent?: number; + tooltip?: string; +} diff --git a/apps/web-ele/src/views/mall/home/components/member-funnel-card.vue b/apps/web-ele/src/views/mall/home/components/member-funnel-card.vue index 47ed3dd01..089e507ad 100644 --- a/apps/web-ele/src/views/mall/home/components/member-funnel-card.vue +++ b/apps/web-ele/src/views/mall/home/components/member-funnel-card.vue @@ -3,13 +3,13 @@ import type { MallMemberStatisticsApi } from '#/api/mall/statistics/member'; import { ref } from 'vue'; -import { AnalysisChartCard } from '@vben/common-ui'; import { calculateRelativeRate, fenToYuan } from '@vben/utils'; import dayjs from 'dayjs'; import * as MemberStatisticsApi from '#/api/mall/statistics/member'; +import AnalysisChartCard from './analysis-chart-card.vue'; import ShortcutDateRangePicker from './shortcut-date-range-picker.vue'; /** 会员概览卡片 */ diff --git a/apps/web-ele/src/views/mall/home/components/trade-trend-card.vue b/apps/web-ele/src/views/mall/home/components/trade-trend-card.vue index 7385292bb..8c2b2b692 100644 --- a/apps/web-ele/src/views/mall/home/components/trade-trend-card.vue +++ b/apps/web-ele/src/views/mall/home/components/trade-trend-card.vue @@ -10,8 +10,7 @@ import { fenToYuan, formatDate } from '@vben/utils'; import dayjs, { Dayjs } from 'dayjs'; import * as TradeStatisticsApi from '#/api/mall/statistics/trade'; - -import { TimeRangeTypeEnum } from '../data'; +import { TimeRangeTypeEnum } from '#/utils/constants'; /** 交易量趋势 */ defineOptions({ name: 'TradeTrendCard' }); diff --git a/packages/effects/common-ui/src/ui/dashboard/workbench/workbench-quick-data-show.vue b/apps/web-ele/src/views/mall/home/components/workbench-quick-data-show.vue similarity index 70% rename from packages/effects/common-ui/src/ui/dashboard/workbench/workbench-quick-data-show.vue rename to apps/web-ele/src/views/mall/home/components/workbench-quick-data-show.vue index 68b03fedc..3d55ccb8b 100644 --- a/packages/effects/common-ui/src/ui/dashboard/workbench/workbench-quick-data-show.vue +++ b/apps/web-ele/src/views/mall/home/components/workbench-quick-data-show.vue @@ -1,12 +1,10 @@ diff --git a/apps/web-ele/src/views/mall/home/data.ts b/apps/web-ele/src/views/mall/home/data.ts deleted file mode 100644 index d88b257f2..000000000 --- a/apps/web-ele/src/views/mall/home/data.ts +++ /dev/null @@ -1,6 +0,0 @@ -export enum TimeRangeTypeEnum { - DAY30 = 1, - MONTH = 30, - WEEK = 7, - YEAR = 365, -} // 日期类型 diff --git a/apps/web-ele/src/views/mall/home/index.vue b/apps/web-ele/src/views/mall/home/index.vue index a8c00711f..3ebbe281a 100644 --- a/apps/web-ele/src/views/mall/home/index.vue +++ b/apps/web-ele/src/views/mall/home/index.vue @@ -1,27 +1,17 @@