{
- window.open(material.urls[0].url, "_blank");
- }}
- >
-
-

-
-
-
- {material.urls[0].desc}
-
-
- {material.urls[0].url}
-
-
+ {/* 标题 */}
+ {material.contentType != 4 && (
+
+ {material.content}
)}
+ {/* 内容预览 */}
+ {renderContentPreview(material)}
{/* 操作按钮区 */}
diff --git a/nkebao/src/pages/mobile/mine/traffic-pool/detail/data.ts b/nkebao/src/pages/mobile/mine/traffic-pool/detail/data.ts
index 0657ab5e9..fd55131e4 100644
--- a/nkebao/src/pages/mobile/mine/traffic-pool/detail/data.ts
+++ b/nkebao/src/pages/mobile/mine/traffic-pool/detail/data.ts
@@ -1,124 +1,32 @@
-// 用户详情类型 - 基于实际API返回数据
+// 用户详情类型
export interface TrafficPoolUserDetail {
- userInfo: {
- wechatId: string;
- weight: number | null;
- activity: {
- totalMsgCount: number;
- sevenDayMsgCount: number;
- thirtyDayMsgCount: number;
- yesterdayMsgCount: number;
- };
- friendShip: {
- maleFriend: number;
- groupNumber: number;
- totalFriend: number;
- femaleFriend: number;
- unknowFriend: number;
- };
- nickname: string;
- alias: string;
- avatar: string;
- gender: number; // 0-未知, 1-男, 2-女
- };
- accountAge: string;
- activityLevel: {
- allTimes: number;
- dayTimes: number;
- };
- accountWeight: {
- ageWeight: number;
- activityWeigth: number;
- restrictWeight: number;
- realNameWeight: number;
- scope: number;
- };
- statistics: {
- todayAdded: number;
- addLimit: number;
- };
- restrictions: Array<{
- id: number;
- date: number | null;
- level: number; // 1-轻微, 2-中等, 3-严重
- reason: string;
- }>;
-}
-
-// 用户旅程记录类型
-export interface UserJourneyRecord {
id: number;
- type: number; // 0-浏览, 2-提交订单, 3-注册
- trafficPoolId: number;
- remark: string;
- count: number;
- createTime: string;
- updateTime: string;
-}
-
-// 用户旅程响应类型
-export interface UserJourneyResponse {
- list: UserJourneyRecord[];
- total: number;
-}
-
-// 用户标签类型
-export interface UserTagItem {
- id: string;
- name: string;
- color?: string;
- type?: string;
-}
-
-// 用户标签响应类型
-export interface UserTagsResponse {
- wechat: UserTagItem[];
- siteLabels: UserTagItem[];
-}
-
-// 扩展的用户详情类型 - 用于前端展示
-export interface ExtendedUserDetail extends TrafficPoolUserDetail {
- // 前端计算或模拟的数据
+ nickname: string;
+ avatar: string;
+ wechatId: string;
+ status: number | string;
+ addTime: string;
+ lastInteraction: string;
+ deviceName?: string;
+ wechatAccountName?: string;
+ customerServiceName?: string;
+ poolNames?: string[];
rfmScore?: {
recency: number;
frequency: number;
monetary: number;
- totalScore: number;
+ segment?: string;
};
- trafficPools?: {
- currentPool: string;
- availablePools: string[];
- };
- userJourney?: InteractionRecord[];
- userTags?: UserTag[];
- valueTags?: ValueTag[];
-}
-
-// 用户标签
-export interface UserTag {
- id: string;
- name: string;
- color: string;
- icon?: string;
- type: "user" | "value";
-}
-
-// 价值标签
-export interface ValueTag {
- id: string;
- name: string;
- color: string;
- icon?: string;
- rfmScore: number;
- valueLevel: string;
-}
-
-// 互动记录
-export interface InteractionRecord {
- id: string;
- type: "click" | "view" | "purchase";
- action: string;
- description: string;
- timestamp: string;
- icon: string;
+ totalSpent?: number;
+ interactionCount?: number;
+ conversionRate?: number;
+ tags?: string[];
+ packages?: string[];
+ interactions?: Array<{
+ id: string;
+ type: string;
+ content: string;
+ timestamp: string;
+ value?: number;
+ }>;
}
diff --git a/nkebao/vite.config.ts b/nkebao/vite.config.ts
index f1a085ec2..921473b65 100644
--- a/nkebao/vite.config.ts
+++ b/nkebao/vite.config.ts
@@ -13,15 +13,29 @@ export default defineConfig({
open: true,
},
build: {
- chunkSizeWarningLimit: 1500, // 提高警告阈值,减少无关警告
+ chunkSizeWarningLimit: 2000,
rollupOptions: {
output: {
+ // 减少文件数量,合并更多依赖
manualChunks: {
- "react-vendor": ["react", "react-dom"],
- "antd-vendor": ["antd", "@ant-design/icons", "antd-mobile"],
- "echarts-vendor": ["echarts", "echarts-for-react"],
+ // 核心框架
+ vendor: ["react", "react-dom", "react-router-dom"],
+ // UI组件库
+ ui: ["antd", "@ant-design/icons", "antd-mobile"],
+ // 工具库
+ utils: ["axios", "dayjs", "zustand"],
+ // 图表库
+ charts: ["echarts", "echarts-for-react"],
},
+ // 文件名格式
+ chunkFileNames: "assets/[name]-[hash].js",
+ entryFileNames: "assets/[name]-[hash].js",
+ assetFileNames: "assets/[name]-[hash].[ext]",
},
},
+ // 启用压缩
+ minify: "esbuild",
+ // 启用源码映射(可选,生产环境可以关闭)
+ sourcemap: false,
},
});