Merge branch 'yongpxu-dev2' into yongpxu-dev

# Conflicts:
#	Touchkebao/src/pages/pc/ckbox/components/NavCommon/index.tsx   resolved by yongpxu-dev2 version
This commit is contained in:
超级老白兔
2025-09-13 11:53:54 +08:00
22 changed files with 630 additions and 12 deletions

View File

@@ -73,14 +73,12 @@
.headerRight {
display: flex;
align-items: center;
gap: 16px;
padding-right: 10px;
.userInfo {
display: flex;
align-items: center;
padding: 8px 0;
.suanli {
display: flex;
align-items: center;

View File

@@ -180,7 +180,6 @@ const NavCommon: React.FC<NavCommonProps> = ({
/>
</div>
</Dropdown>
<div className={styles.messageButton} onClick={handleMessageClick}>
<Badge count={messageCount} size="small">
<BellOutlined style={{ fontSize: 20 }} />

View File

@@ -0,0 +1,43 @@
.container {
padding: 24px;
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.header {
margin-bottom: 24px;
h1 {
font-size: 24px;
font-weight: 600;
color: #262626;
margin: 0 0 8px 0;
}
p {
font-size: 14px;
color: #8c8c8c;
margin: 0;
}
}
.content {
min-height: 400px;
}
.placeholder {
display: flex;
align-items: center;
justify-content: center;
height: 300px;
background: #fafafa;
border: 1px dashed #d9d9d9;
border-radius: 6px;
p {
font-size: 16px;
color: #8c8c8c;
margin: 0;
}
}

View File

@@ -0,0 +1,21 @@
import React from "react";
import styles from "./index.module.scss";
const AiTraining: React.FC = () => {
return (
<div className={styles.container}>
<div className={styles.header}>
<h1>AI模型训练</h1>
<p>AI模型训练</p>
</div>
<div className={styles.content}>
{/* 功能内容待开发 */}
<div className={styles.placeholder}>
<p>AI模型训练功能正在开发中...</p>
</div>
</div>
</div>
);
};
export default AiTraining;

View File

@@ -0,0 +1,43 @@
.container {
padding: 24px;
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.header {
margin-bottom: 24px;
h1 {
font-size: 24px;
font-weight: 600;
color: #262626;
margin: 0 0 8px 0;
}
p {
font-size: 14px;
color: #8c8c8c;
margin: 0;
}
}
.content {
min-height: 400px;
}
.placeholder {
display: flex;
align-items: center;
justify-content: center;
height: 300px;
background: #fafafa;
border: 1px dashed #d9d9d9;
border-radius: 6px;
p {
font-size: 16px;
color: #8c8c8c;
margin: 0;
}
}

View File

@@ -0,0 +1,21 @@
import React from "react";
import styles from "./index.module.scss";
const AutoGreeting: React.FC = () => {
return (
<div className={styles.container}>
<div className={styles.header}>
<h1></h1>
<p></p>
</div>
<div className={styles.content}>
{/* 功能内容待开发 */}
<div className={styles.placeholder}>
<p>...</p>
</div>
</div>
</div>
);
};
export default AutoGreeting;

View File

@@ -0,0 +1,43 @@
.container {
padding: 24px;
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.header {
margin-bottom: 24px;
h1 {
font-size: 24px;
font-weight: 600;
color: #262626;
margin: 0 0 8px 0;
}
p {
font-size: 14px;
color: #8c8c8c;
margin: 0;
}
}
.content {
min-height: 400px;
}
.placeholder {
display: flex;
align-items: center;
justify-content: center;
height: 300px;
background: #fafafa;
border: 1px dashed #d9d9d9;
border-radius: 6px;
p {
font-size: 16px;
color: #8c8c8c;
margin: 0;
}
}

View File

@@ -0,0 +1,21 @@
import React from "react";
import styles from "./index.module.scss";
const CommunicationRecord: React.FC = () => {
return (
<div className={styles.container}>
<div className={styles.header}>
<h1></h1>
<p></p>
</div>
<div className={styles.content}>
{/* 功能内容待开发 */}
<div className={styles.placeholder}>
<p>...</p>
</div>
</div>
</div>
);
};
export default CommunicationRecord;

View File

@@ -0,0 +1,43 @@
.container {
padding: 24px;
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.header {
margin-bottom: 24px;
h1 {
font-size: 24px;
font-weight: 600;
color: #262626;
margin: 0 0 8px 0;
}
p {
font-size: 14px;
color: #8c8c8c;
margin: 0;
}
}
.content {
min-height: 400px;
}
.placeholder {
display: flex;
align-items: center;
justify-content: center;
height: 300px;
background: #fafafa;
border: 1px dashed #d9d9d9;
border-radius: 6px;
p {
font-size: 16px;
color: #8c8c8c;
margin: 0;
}
}

View File

@@ -0,0 +1,21 @@
import React from "react";
import styles from "./index.module.scss";
const ContentManagement: React.FC = () => {
return (
<div className={styles.container}>
<div className={styles.header}>
<h1></h1>
<p></p>
</div>
<div className={styles.content}>
{/* 功能内容待开发 */}
<div className={styles.placeholder}>
<p>...</p>
</div>
</div>
</div>
);
};
export default ContentManagement;

View File

@@ -0,0 +1,43 @@
.container {
padding: 24px;
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.header {
margin-bottom: 24px;
h1 {
font-size: 24px;
font-weight: 600;
color: #262626;
margin: 0 0 8px 0;
}
p {
font-size: 14px;
color: #8c8c8c;
margin: 0;
}
}
.content {
min-height: 400px;
}
.placeholder {
display: flex;
align-items: center;
justify-content: center;
height: 300px;
background: #fafafa;
border: 1px dashed #d9d9d9;
border-radius: 6px;
p {
font-size: 16px;
color: #8c8c8c;
margin: 0;
}
}

View File

@@ -0,0 +1,21 @@
import React from "react";
import styles from "./index.module.scss";
const CustomerManagement: React.FC = () => {
return (
<div className={styles.container}>
<div className={styles.header}>
<h1></h1>
<p></p>
</div>
<div className={styles.content}>
{/* 功能内容待开发 */}
<div className={styles.placeholder}>
<p>...</p>
</div>
</div>
</div>
);
};
export default CustomerManagement;

View File

@@ -40,7 +40,7 @@ export const featureCards: FeatureCard[] = [
description: "基于客户标签和行为数据进行精准群发",
icon: <AimOutlined />,
color: "#ff6b35",
path: "/pc/ckbox/precision-send",
path: "/pc/powerCenter/precision-send",
},
{
id: "sop-send",
@@ -48,7 +48,7 @@ export const featureCards: FeatureCard[] = [
description: "使用触客宝SOP标准化流程进行批量消息发送",
icon: <SendOutlined />,
color: "#4285f4",
path: "/pc/ckbox/sop-send",
path: "/pc/powerCenter/sop-send",
},
{
id: "moments-marketing",
@@ -56,7 +56,7 @@ export const featureCards: FeatureCard[] = [
description: "AI智能生成朋友圈内容提升品牌曝光度",
icon: <CalendarOutlined />,
color: "#34a853",
path: "/pc/ckbox/moments-marketing",
path: "/pc/powerCenter/moments-marketing",
},
{
id: "tag-management",
@@ -64,7 +64,7 @@ export const featureCards: FeatureCard[] = [
description: "智能客户标签分类,精准用户画像分析",
icon: <TagsOutlined />,
color: "#9c27b0",
path: "/pc/ckbox/tag-management",
path: "/pc/powerCenter/tag-management",
},
{
id: "customer-management",
@@ -72,7 +72,7 @@ export const featureCards: FeatureCard[] = [
description: "统一管理客户信息和好友关系,提升服务效率",
icon: <UserOutlined />,
color: "#6366f1",
path: "/pc/ckbox/customer-management",
path: "/pc/powerCenter/customer-management",
},
{
id: "communication-record",
@@ -80,7 +80,7 @@ export const featureCards: FeatureCard[] = [
description: "完整记录客户沟通历史,支持多维度查询分析",
icon: <MessageOutlined />,
color: "#06b6d4",
path: "/pc/ckbox/communication-record",
path: "/pc/powerCenter/communication-record",
},
{
id: "content-management",
@@ -88,7 +88,7 @@ export const featureCards: FeatureCard[] = [
description: "素材管理、数据词汇库、关键词自动回复",
icon: <FileTextOutlined />,
color: "#f59e0b",
path: "/pc/ckbox/content-management",
path: "/pc/powerCenter/content-management",
},
{
id: "ai-training",
@@ -96,7 +96,7 @@ export const featureCards: FeatureCard[] = [
description: "自定义AI模型训练打造专属智能客服助手",
icon: <RobotOutlined />,
color: "#ec4899",
path: "/pc/ckbox/ai-training",
path: "/pc/powerCenter/ai-training",
isNew: true,
},
{
@@ -105,7 +105,7 @@ export const featureCards: FeatureCard[] = [
description: "智能识别新好友,自动发送个性化欢迎消息",
icon: <UserAddOutlined />,
color: "#10b981",
path: "/pc/ckbox/auto-greeting",
path: "/pc/powerCenter/auto-greeting",
},
];

View File

@@ -0,0 +1,43 @@
.container {
padding: 24px;
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.header {
margin-bottom: 24px;
h1 {
font-size: 24px;
font-weight: 600;
color: #262626;
margin: 0 0 8px 0;
}
p {
font-size: 14px;
color: #8c8c8c;
margin: 0;
}
}
.content {
min-height: 400px;
}
.placeholder {
display: flex;
align-items: center;
justify-content: center;
height: 300px;
background: #fafafa;
border: 1px dashed #d9d9d9;
border-radius: 6px;
p {
font-size: 16px;
color: #8c8c8c;
margin: 0;
}
}

View File

@@ -0,0 +1,21 @@
import React from "react";
import styles from "./index.module.scss";
const MomentsMarketing: React.FC = () => {
return (
<div className={styles.container}>
<div className={styles.header}>
<h1></h1>
<p>AI智能生成朋友圈内容</p>
</div>
<div className={styles.content}>
{/* 功能内容待开发 */}
<div className={styles.placeholder}>
<p>...</p>
</div>
</div>
</div>
);
};
export default MomentsMarketing;

View File

@@ -0,0 +1,43 @@
.container {
padding: 24px;
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.header {
margin-bottom: 24px;
h1 {
font-size: 24px;
font-weight: 600;
color: #262626;
margin: 0 0 8px 0;
}
p {
font-size: 14px;
color: #8c8c8c;
margin: 0;
}
}
.content {
min-height: 400px;
}
.placeholder {
display: flex;
align-items: center;
justify-content: center;
height: 300px;
background: #fafafa;
border: 1px dashed #d9d9d9;
border-radius: 6px;
p {
font-size: 16px;
color: #8c8c8c;
margin: 0;
}
}

View File

@@ -0,0 +1,21 @@
import React from "react";
import styles from "./index.module.scss";
const PrecisionSend: React.FC = () => {
return (
<div className={styles.container}>
<div className={styles.header}>
<h1></h1>
<p></p>
</div>
<div className={styles.content}>
{/* 功能内容待开发 */}
<div className={styles.placeholder}>
<p>...</p>
</div>
</div>
</div>
);
};
export default PrecisionSend;

View File

@@ -0,0 +1,43 @@
.container {
padding: 24px;
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.header {
margin-bottom: 24px;
h1 {
font-size: 24px;
font-weight: 600;
color: #262626;
margin: 0 0 8px 0;
}
p {
font-size: 14px;
color: #8c8c8c;
margin: 0;
}
}
.content {
min-height: 400px;
}
.placeholder {
display: flex;
align-items: center;
justify-content: center;
height: 300px;
background: #fafafa;
border: 1px dashed #d9d9d9;
border-radius: 6px;
p {
font-size: 16px;
color: #8c8c8c;
margin: 0;
}
}

View File

@@ -0,0 +1,21 @@
import React from "react";
import styles from "./index.module.scss";
const SopSend: React.FC = () => {
return (
<div className={styles.container}>
<div className={styles.header}>
<h1>SOP群发</h1>
<p>使SOP标准化流程进行批量消息发送</p>
</div>
<div className={styles.content}>
{/* 功能内容待开发 */}
<div className={styles.placeholder}>
<p>SOP群发功能正在开发中...</p>
</div>
</div>
</div>
);
};
export default SopSend;

View File

@@ -0,0 +1,43 @@
.container {
padding: 24px;
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.header {
margin-bottom: 24px;
h1 {
font-size: 24px;
font-weight: 600;
color: #262626;
margin: 0 0 8px 0;
}
p {
font-size: 14px;
color: #8c8c8c;
margin: 0;
}
}
.content {
min-height: 400px;
}
.placeholder {
display: flex;
align-items: center;
justify-content: center;
height: 300px;
background: #fafafa;
border: 1px dashed #d9d9d9;
border-radius: 6px;
p {
font-size: 16px;
color: #8c8c8c;
margin: 0;
}
}

View File

@@ -0,0 +1,21 @@
import React from "react";
import styles from "./index.module.scss";
const TagManagement: React.FC = () => {
return (
<div className={styles.container}>
<div className={styles.header}>
<h1></h1>
<p></p>
</div>
<div className={styles.content}>
{/* 功能内容待开发 */}
<div className={styles.placeholder}>
<p>...</p>
</div>
</div>
</div>
);
};
export default TagManagement;

View File

@@ -2,6 +2,15 @@ import CkboxPage from "@/pages/pc/ckbox";
import WeChatPage from "@/pages/pc/ckbox/weChat";
import Dashboard from "@/pages/pc/ckbox/dashboard";
import PowerCenter from "@/pages/pc/ckbox/powerCenter";
import PrecisionSend from "@/pages/pc/ckbox/powerCenter/precision-send";
import SopSend from "@/pages/pc/ckbox/powerCenter/sop-send";
import MomentsMarketing from "@/pages/pc/ckbox/powerCenter/moments-marketing";
import TagManagement from "@/pages/pc/ckbox/powerCenter/tag-management";
import CustomerManagement from "@/pages/pc/ckbox/powerCenter/customer-management";
import CommunicationRecord from "@/pages/pc/ckbox/powerCenter/communication-record";
import ContentManagement from "@/pages/pc/ckbox/powerCenter/content-management";
import AiTraining from "@/pages/pc/ckbox/powerCenter/ai-training";
import AutoGreeting from "@/pages/pc/ckbox/powerCenter/auto-greeting";
const ckboxRoutes = [
{
path: "/pc",
@@ -20,6 +29,42 @@ const ckboxRoutes = [
path: "powerCenter",
element: <PowerCenter />,
},
{
path: "powerCenter/precision-send",
element: <PrecisionSend />,
},
{
path: "powerCenter/sop-send",
element: <SopSend />,
},
{
path: "powerCenter/moments-marketing",
element: <MomentsMarketing />,
},
{
path: "powerCenter/tag-management",
element: <TagManagement />,
},
{
path: "powerCenter/customer-management",
element: <CustomerManagement />,
},
{
path: "powerCenter/communication-record",
element: <CommunicationRecord />,
},
{
path: "powerCenter/content-management",
element: <ContentManagement />,
},
{
path: "powerCenter/ai-training",
element: <AiTraining />,
},
{
path: "powerCenter/auto-greeting",
element: <AutoGreeting />,
},
],
},
];