diff --git a/Cunkebao/兼容性说明.md b/Cunkebao/兼容性说明.md deleted file mode 100644 index dc77df52..00000000 --- a/Cunkebao/兼容性说明.md +++ /dev/null @@ -1,177 +0,0 @@ -# 存客宝项目 - 浏览器兼容性说明 - -## 🎯 **兼容性目标** - -本项目已配置为支持以下浏览器版本: - -- **Chrome**: 50+ -- **Firefox**: 50+ -- **Safari**: 10+ -- **Edge**: 12+ -- **Internet Explorer**: 11+ (部分功能受限) -- **Android**: 4.4+ (特别优化Android 7) -- **iOS**: 9+ - -## 🔧 **兼容性配置** - -### 1. **Polyfill 支持** - -项目已集成以下 polyfill 来确保低版本浏览器兼容性: - -- **core-js**: ES6+ 特性支持 -- **regenerator-runtime**: async/await 支持 -- **whatwg-fetch**: fetch API 支持 -- **Android专用polyfill**: 针对Android 7等低版本系统优化 - -### 2. **构建配置** - -- 使用 **terser** 进行代码压缩 -- 配置了 **browserslist** 目标浏览器 -- 添加了兼容性检测组件 -- 特别针对Android设备优化 - -### 3. **特性支持** - -项目通过 polyfill 支持以下 ES6+ 特性: - -- ✅ Promise -- ✅ fetch API -- ✅ Array.from, Array.find, Array.includes, Array.findIndex -- ✅ Object.assign, Object.entries, Object.values, Object.keys -- ✅ String.includes, String.startsWith, String.endsWith -- ✅ Map, Set, WeakMap, WeakSet -- ✅ Symbol -- ✅ requestAnimationFrame -- ✅ IntersectionObserver -- ✅ ResizeObserver -- ✅ URLSearchParams -- ✅ AbortController - -## 🚀 **使用方法** - -### 开发环境 - -```bash -pnpm dev -``` - -### 生产构建 - -```bash -pnpm build -``` - -### 预览构建结果 - -```bash -pnpm preview -``` - -## 📱 **Android 特别优化** - -### **Android 7 兼容性** - -Android 7 (API 24) 系统对ES6+特性支持不完整,项目已特别优化: - -#### **问题解决:** - -- ✅ Array.prototype.includes 方法缺失 -- ✅ String.prototype.includes 方法缺失 -- ✅ Object.assign 方法缺失 -- ✅ Array.from 方法缺失 -- ✅ requestAnimationFrame 缺失 -- ✅ IntersectionObserver 缺失 -- ✅ URLSearchParams 缺失 - -#### **解决方案:** - -- 使用自定义polyfill补充缺失方法 -- 提供降级实现确保功能可用 -- 自动检测Android版本并启用相应polyfill - -### **Android WebView 优化** - -- 针对系统WebView进行特别优化 -- 支持微信、QQ等内置浏览器 -- 提供降级方案确保基本功能可用 - -## ⚠️ **注意事项** - -1. **Android 7 支持** - - 已启用兼容模式,基本功能可用 - - 建议升级到Android 8+或使用最新版Chrome - - 部分高级特性可能受限 - -2. **Android 6 及以下** - - 支持有限,建议升级系统 - - 使用最新版Chrome浏览器 - - 部分功能可能不可用 - -3. **移动端兼容性** - - iOS Safari 10+ - - Android Chrome 50+ - - 微信内置浏览器 (部分功能受限) - - QQ内置浏览器 (部分功能受限) - -4. **性能考虑** - - polyfill 会增加包体积 - - 现代浏览器会自动忽略不需要的 polyfill - - Android设备上会有额外的兼容性检测 - -## 🔍 **兼容性检测** - -项目包含自动兼容性检测功能: - -### **通用检测** - -- 在低版本浏览器中会显示警告提示 -- 控制台会输出兼容性信息 -- 建议用户升级浏览器 - -### **Android专用检测** - -- 自动检测Android系统版本 -- 检测Chrome和WebView版本 -- 识别微信、QQ等内置浏览器 -- 提供针对性的解决方案建议 - -## 📝 **更新日志** - -### v3.0.0 - -- ✅ 添加 ES5 兼容性支持 -- ✅ 集成 core-js polyfill -- ✅ 添加兼容性检测组件 -- ✅ 优化构建配置 -- ✅ **新增Android 7专用polyfill** -- ✅ **新增Android兼容性检测** -- ✅ **优化移动端体验** - -## 🛠️ **故障排除** - -如果遇到兼容性问题: - -1. **Android设备问题** - - 检查Android系统版本 - - 确认Chrome浏览器版本 - - 查看控制台错误信息 - - 尝试使用系统浏览器而非内置浏览器 - -2. **通用问题** - - 检查浏览器版本是否在支持范围内 - - 查看控制台是否有错误信息 - - 确认 polyfill 是否正确加载 - - 尝试清除浏览器缓存 - -3. **性能问题** - - 在低版本设备上可能加载较慢 - - 建议使用WiFi网络 - - 关闭不必要的浏览器扩展 - -## 📞 **技术支持** - -如有兼容性问题,请联系开发团队。 - -### **特别说明** - -本项目已针对Android 7等低版本系统进行了特别优化,通过代码弥补了系统内核对ES6+特性支持不完整的问题。虽然不能完全替代系统升级,但可以确保应用在低版本Android设备上正常运行。 diff --git a/Cunkebao/技术栈.md b/Cunkebao/技术栈.md deleted file mode 100644 index a565619f..00000000 --- a/Cunkebao/技术栈.md +++ /dev/null @@ -1,26 +0,0 @@ -## 使用技术栈 -- React 18 -- TypeScript -- Vite(新一代前端构建工具) -- axios -- sass (scss) -- React Router v6 -- antd-mobile -- antd(已设置基础单位为 rem,配合 postcss-pxtorem) -- postcss-pxtorem(px 转 rem,移动端适配) -- ESLint + Prettier(代码规范与自动格式化) -- 路径别名 @ 指向 src 目录 - -## 关于兼容与工程化 -- 自动化脚本(yarn lint、yarn dev 等) -- 移动端 rem 适配(html 根字体 + pxtorem) -- iOS 浏览器滚动回弹兼容问题已通过全局样式处理 -- 支持 VS Code 编辑器自动格式化(推荐配合 ESLint/Prettier 插件) - -## 目录结构简要 -- src/ 业务源码(pages、api、styles、App.tsx、main.tsx 等) -- public/ 静态资源目录 -- index.html 项目入口(根目录) -- vite.config.ts 构建与路径别名配置 -- tsconfig.json TypeScript 配置 -- .eslintrc.js 代码规范配置 \ No newline at end of file diff --git a/Touchkebao/src/pages/index.tsx b/Touchkebao/src/pages/index.tsx index ed9c8153..d0857ff5 100644 --- a/Touchkebao/src/pages/index.tsx +++ b/Touchkebao/src/pages/index.tsx @@ -18,7 +18,7 @@ const IndexPage: React.FC = () => { if (isMobile()) { navigate("/mobile/dashboard"); } else { - navigate("/pc/dashboard"); + navigate("/pc/weChat"); } }, [navigate]); diff --git a/Touchkebao/src/pages/pc/ckbox/powerCenter/content-management/AddKeywordModal.tsx b/Touchkebao/src/pages/pc/ckbox/powerCenter/content-management/AddKeywordModal.tsx deleted file mode 100644 index 86836d9b..00000000 --- a/Touchkebao/src/pages/pc/ckbox/powerCenter/content-management/AddKeywordModal.tsx +++ /dev/null @@ -1,162 +0,0 @@ -import React, { useState } from "react"; -import { Modal, Form, Input, Button, message, Select } from "antd"; -import { addKeyword, type KeywordAddRequest } from "./api"; - -const { TextArea } = Input; -const { Option } = Select; - -interface AddKeywordModalProps { - visible: boolean; - onCancel: () => void; - onSuccess: () => void; -} - -const AddKeywordModal: React.FC = ({ - visible, - onCancel, - onSuccess, -}) => { - const [form] = Form.useForm(); - const [loading, setLoading] = useState(false); - - const handleSubmit = async (values: any) => { - try { - setLoading(true); - const data: KeywordAddRequest = { - title: values.title, - keywords: values.keywords, - content: values.content, - matchType: values.matchType, - priority: values.priority, - replyType: values.replyType, - status: values.status || "1", - }; - - const response = await addKeyword(data); - if (response) { - message.success("添加关键词成功"); - form.resetFields(); - onSuccess(); - onCancel(); - } else { - message.error(response?.message || "添加关键词失败"); - } - } catch (error) { - console.error("添加关键词失败:", error); - message.error("添加关键词失败"); - } finally { - setLoading(false); - } - }; - - const handleCancel = () => { - form.resetFields(); - onCancel(); - }; - - return ( - -
- - - - - - - - - -