-
{device.memo}
-
- {device.status === "online" ? "在线" : "离线"}
+
+ {/* 顶部行:选择框和IMEI */}
+
+
+ v.id === device.id)}
+ onChange={() => handleDeviceToggle(device)}
+ className={style.deviceCheckbox}
+ />
+
+
+ IMEI: {device.imei?.toUpperCase()}
+
+
+
+ {/* 主要内容区域:头像和详细信息 */}
+
+ {/* 头像 */}
+
+ {device.avatar ? (
+

+ ) : (
+
+ {(device.memo || device.wechatId || "设")[0]}
+
+ )}
+
+
+ {/* 设备信息 */}
+
+
+
{device.memo}
+
+ {device.status === "online" ? "在线" : "离线"}
+
+
+
+
+ 微信号:
+
+ {device.wechatId}
+
+
+
+ 好友数:
+
+ {device.totalFriend ?? "-"}
+
+
-
-
IMEI: {device.imei}
-
微信号: {device.wechatId}
-
-
+
))}
)}
diff --git a/Cunkebao/src/pages/mobile/mine/content/form/index.tsx b/Cunkebao/src/pages/mobile/mine/content/form/index.tsx
index ccc27987..711ceb29 100644
--- a/Cunkebao/src/pages/mobile/mine/content/form/index.tsx
+++ b/Cunkebao/src/pages/mobile/mine/content/form/index.tsx
@@ -62,9 +62,7 @@ export default function ContentForm() {
setSelectedFriends(data.sourceFriends || []);
setSelectedGroups(data.selectedGroups || []);
setSelectedGroupsOptions(data.selectedGroupsOptions || []);
-
- setSelectedFriendsOptions(data.sourceFriendsOptions || []);
-
+ setSelectedFriendsOptions(data.friendsGroupsOptions || []);
setKeywordsInclude((data.keywordInclude || []).join(","));
setKeywordsExclude((data.keywordExclude || []).join(","));
setAIPrompt(data.aiPrompt || "");
diff --git a/Cunkebao/src/pages/mobile/mine/content/list/index.tsx b/Cunkebao/src/pages/mobile/mine/content/list/index.tsx
index 4d7f0d5d..cd24f010 100644
--- a/Cunkebao/src/pages/mobile/mine/content/list/index.tsx
+++ b/Cunkebao/src/pages/mobile/mine/content/list/index.tsx
@@ -132,7 +132,7 @@ const ContentLibraryList: React.FC = () => {
};
const handleEdit = (id: string) => {
- navigate(`/content/edit/${id}`);
+ navigate(`/mine/content/edit/${id}`);
};
const handleDelete = async (id: string) => {
diff --git a/Cunkebao/src/pages/mobile/mine/devices/index.module.scss b/Cunkebao/src/pages/mobile/mine/devices/index.module.scss
new file mode 100644
index 00000000..dad90af4
--- /dev/null
+++ b/Cunkebao/src/pages/mobile/mine/devices/index.module.scss
@@ -0,0 +1,173 @@
+.deviceList {
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+}
+
+.deviceCard {
+ background: #fff;
+ border-radius: 12px;
+ padding: 12px;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
+ transition: all 0.2s ease;
+ position: relative;
+ overflow: hidden;
+
+ &:hover {
+ transform: translateY(-1px);
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
+ }
+
+ &.selected {
+ border: 2px solid #1677ff;
+ }
+
+ &:not(.selected) {
+ border: 1px solid #f5f5f5;
+ }
+}
+
+.headerRow {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ margin-bottom: 8px;
+}
+
+.checkboxContainer {
+ flex-shrink: 0;
+}
+
+.imeiText {
+ font-size: 13px;
+ color: #666;
+ font-family: monospace;
+ flex: 1;
+}
+
+.mainContent {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ cursor: pointer;
+ border-radius: 8px;
+ transition: background-color 0.2s ease;
+
+ &:hover {
+ background-color: #f8f9fa;
+ }
+}
+
+.avatar {
+ width: 64px;
+ height: 64px;
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ box-shadow: 0 2px 8px rgba(102, 126, 234, 0.25);
+ flex-shrink: 0;
+ border-radius: 6px;
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ }
+
+ .avatarText {
+ font-size: 18px;
+ color: #fff;
+ font-weight: 700;
+ text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
+ }
+}
+
+.deviceInfo {
+ flex: 1;
+ min-width: 0;
+}
+
+.deviceHeader {
+ display: flex;
+ align-items: center;
+ gap: 6px;
+ margin-bottom: 6px;
+}
+
+.deviceName {
+ margin: 0;
+ font-size: 16px;
+ font-weight: 600;
+ color: #1a1a1a;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.statusBadge {
+ font-size: 11px;
+ padding: 1px 6px;
+ border-radius: 8px;
+ font-weight: 500;
+
+ &.online {
+ color: #52c41a;
+ background: #f6ffed;
+ border: 1px solid #b7eb8f;
+ }
+
+ &.offline {
+ color: #ff4d4f;
+ background: #fff2f0;
+ border: 1px solid #ffccc7;
+ }
+}
+
+.infoList {
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+}
+
+.infoItem {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+}
+
+.infoLabel {
+ font-size: 13px;
+ color: #666;
+ min-width: 50px;
+}
+
+.infoValue {
+ font-size: 13px;
+ color: #333;
+
+ &.friendCount {
+ font-weight: 500;
+ }
+}
+
+.arrowIcon {
+ color: #999;
+ font-size: 14px;
+ margin-left: auto;
+ transition: transform 0.2s ease;
+}
+
+.mainContent:hover .arrowIcon {
+ transform: translateX(3px);
+ color: #1677ff;
+}
+
+.paginationContainer {
+ padding: 16px;
+ background: #fff;
+ border-top: 1px solid #f0f0f0;
+ display: flex;
+ justify-content: center;
+}
diff --git a/Cunkebao/src/pages/mobile/mine/devices/index.tsx b/Cunkebao/src/pages/mobile/mine/devices/index.tsx
index 31459ff6..c4199a43 100644
--- a/Cunkebao/src/pages/mobile/mine/devices/index.tsx
+++ b/Cunkebao/src/pages/mobile/mine/devices/index.tsx
@@ -7,6 +7,7 @@ import {
ReloadOutlined,
SearchOutlined,
QrcodeOutlined,
+ RightOutlined,
} from "@ant-design/icons";
import Layout from "@/components/Layout/Layout";
import {
@@ -19,6 +20,7 @@ import type { Device } from "@/types/device";
import { comfirm } from "@/utils/common";
import { useUserStore } from "@/store/module/user";
import NavCommon from "@/components/NavCommon";
+import styles from "./index.module.scss";
const Devices: React.FC = () => {
// 设备列表相关
@@ -250,7 +252,7 @@ const Devices: React.FC = () => {
>
}
footer={
-
+
{
>
{/* 设备列表 */}
-
+
{filtered.map(device => (
-
goDetail(device.id!)}
- >
-
{
- e.stopPropagation();
- setSelected(prev =>
- e.target.checked
- ? [...prev, device.id!]
- : prev.filter(id => id !== device.id),
- );
- }}
- onClick={e => e.stopPropagation()}
- style={{ marginRight: 12 }}
- />
-
-
- {device.memo || "未命名设备"}
-
-
- IMEI: {device.imei}
-
-
- 微信号: {device.wechatId || "未绑定"}
-
-
- 好友数: {device.totalFriend ?? "-"}
+
+ {/* 顶部行:选择框和IMEI */}
+
+
+ {
+ e.stopPropagation();
+ setSelected(prev =>
+ e.target.checked
+ ? [...prev, device.id!]
+ : prev.filter(id => id !== device.id),
+ );
+ }}
+ onClick={e => e.stopPropagation()}
+ />
+
+ IMEI: {device.imei?.toUpperCase()}
+
+
+
+ {/* 主要内容区域:头像和详细信息 */}
+
+ {/* 头像 */}
+
+ {device.avatar ? (
+

+ ) : (
+
+ {(device.memo || device.wechatId || "设")[0]}
+
+ )}
+
+
+ {/* 设备信息 */}
+
+
+
+ {device.memo || "未命名设备"}
+
+
+ {device.status === "online" || device.alive === 1
+ ? "在线"
+ : "离线"}
+
+
+
+
+
+ 微信号:
+
+ {device.wechatId || "未绑定"}
+
+
+
+ 好友数:
+
+ {device.totalFriend ?? "-"}
+
+
+
+
+
+ {/* 箭头图标 */}
+
goDetail(device.id!)}
+ />
-
- {device.status === "online" || device.alive === 1
- ? "在线"
- : "离线"}
-
))}
diff --git a/Cunkebao/src/types/device.ts b/Cunkebao/src/types/device.ts
index b48295ba..09425d39 100644
--- a/Cunkebao/src/types/device.ts
+++ b/Cunkebao/src/types/device.ts
@@ -11,6 +11,7 @@ export interface Device {
nickname?: string;
battery?: number;
lastActive?: string;
+ avatar?: string;
features?: {
autoAddFriend?: boolean;
autoReply?: boolean;