[{"data":1,"prerenderedAt":74},["ShallowReactive",2],{"article-110":3},{"code":4,"msg":5,"data":6,"count":14},200,"查询成功",{"id":7,"title":8,"keywords":9,"description":10,"category_id":11,"content":12,"body_html":13,"thumb_up":14,"clicks":15,"sort":14,"remark":13,"status":16,"is_open":16,"is_deleted":14,"is_top":16,"is_recommend":16,"create_time":17,"update_time":18,"image_id":19,"url":13,"member_id":14,"cate_name":20,"prev":21,"next":24,"tags":27,"words":45,"read_time":46,"comments":14,"cover":47,"relevant":48},110,"FAdminAi开源系统","ThinkPHP 8.1, Vue 3, Element Plus, 后台管理, AI 智能助手, 微信公众号, CMS, 问答系统","FAdminAi 是一个基于 ThinkPHP 8.1 与 Vue 3.5 的全栈后台管理系统，面向系统管理、内容管理、问答、AI 智能助手、微信公众号、文件上传、静态站发布和实时通信等场景。",2,"## 系统截图\n\n截图使用演示后台账号生成临时登录态采集，手机号、邮箱、IP、Token、密钥等敏感信息已遮挡。\n\n### 登录页\n\n![登录页](https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fmarkdown\u002F20260630\u002F8b712bf535ec9b6db5d7139394db0201.png)\n\n### 仪表盘首页\n\n![仪表盘首页](https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fmarkdown\u002F20260630\u002F6dcea0be3be601089ce3f7df2dbc59d8.png)\n\n### AI 聊天\n\n![AI 聊天](https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fmarkdown\u002F20260630\u002Fbe79306cfbe711a3e25e04f12f5f580b.png)\n\n### CMS 文章列表\n\n![CMS 文章列表](https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fmarkdown\u002F20260630\u002Fa9d18a8a447325f142d105d419cb346f.png)\n\n### 问答问题管理\n\n![问答问题管理](https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fmarkdown\u002F20260630\u002Fd1d08f48d919ccbed74ff59b1cb11bb1.png)\n\n### 微信数据统计\n\n![微信数据统计](https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fmarkdown\u002F20260630\u002Fe6e5a0561e5a1c4f123186c260f3677a.png)\n\n### 系统菜单管理\n\n![系统菜单管理](https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fmarkdown\u002F20260630\u002Faab426a77d74e51f2844b43226dbb66a.png)\n\n### 架构与功能模块\n\n下图是项目架构说明图，不计入上方系统截图数量。\n\n![项目架构与功能模块](https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fmarkdown\u002F20260630\u002F6af7bc7ccd21844e0cd1200104c52893.png)\n\n## 项目定位\n\n本项目是一个后台管理与内容业务一体化平台，适合用于企业或个人后台管理、博客内容运营、问答社区管理、微信公众号管理，以及带 AI 能力的综合业务后台。\n\n适用场景包括：\n\n- 企业内部管理后台。\n- 博客、问答、微信公众号等内容管理平台。\n- 集成文本、图片、音频、视频能力的 AI 管理后台。\n- 需要 WebSocket、Workerman、队列任务和静态站发布能力的综合后台项目。\n\n## 核心功能\n\n### 系统管理\n\n- 管理员、角色、部门、菜单、权限节点和按钮权限。\n- 字典、配置、通知、日志、邮箱、附件和数据库管理。\n- 动态菜单路由、前端权限控制和后台接口鉴权。\n\n### 内容与问答\n\n- CMS 博客文章、分类、标签、轮播、友链、留言、站点信息和访问记录。\n- 问答系统的问题、分类、回答、评论、举报原因和举报记录管理。\n- 对外 API 提供博客、问答、上传、分享页和统计接口。\n\n### AI 智能助手\n\n- 聊天会话、消息、模型配置、提示词和工具管理。\n- 图片、音频、视频生成相关页面和接口。\n- AI 分享页、抖音素材提取、PPT 生成和 Coze 工作流管理。\n- 支持 DeepSeek、OpenAI、Coze、Vidu 等外部能力接入。\n\n### 微信公众号\n\n- 公众号配置、菜单、素材、图文、粉丝和标签管理。\n- 关注回复、关键词回复、默认回复和自动回复。\n- 后端通过 Wechat Developer SDK 封装公众号能力。\n\n### 文件、发布与实时能力\n\n- 普通上传、分片上传和附件记录管理。\n- 静态站部署包上传、发布、回滚和删除。\n- WebSocket、Workerman、Channel、STOMP、在线人数和前端组合式工具。\n- Think Queue 队列任务、定时任务和站点地图推送。\n\n## 技术架构\n\n### 后端\n\n- 运行环境：PHP >= 8.0，建议 PHP 8.1 或更高版本。\n- 框架：ThinkPHP Framework ^8.1、think-orm ^3.0、think-multi-app。\n- 关键依赖：think-filesystem、think-queue、think-view、JWT、Guzzle、Predis、Workerman、STOMP、PhpSpreadsheet、PHP-FFMpeg、PHPMailer。\n- AI 相关：think-ai、Neuron AI，以及 DeepSeek、OpenAI、Coze、Vidu 等服务配置。\n\n后端采用 ThinkPHP 多应用结构：\n\n- `backend\u002Fapp\u002Fadmin\u002F`：后台管理应用，包含控制器、逻辑层、模型、服务、验证器、中间件、路由和视图。\n- `backend\u002Fapp\u002Fapi\u002F`：对外 API 应用，包含 CMS、问答、上传、分享、AI 和微信小程序兼容接口。\n- `backend\u002Fapp\u002Fchat\u002F`：聊天或实时通信相关接口。\n- `backend\u002Fapp\u002Fcommon\u002F`：公共模型、服务、命令、队列任务、AI Provider、枚举和工具类。\n\n### 前端\n\n- 运行环境：Node.js `^20.19.0 || >=22.12.0`，包管理器使用 pnpm。\n- 核心框架：Vue 3.5、TypeScript 5.9、Vite 7。\n- UI 与状态：Element Plus、Pinia、Vue Router、Vue I18n、UnoCSS。\n- 业务依赖：ECharts、VXE Table、WangEditor、Markdown 编辑器、CodeMirror、XGPlayer、STOMP、ExcelJS。\n\n前端源码主要位于：\n\n- `frontend\u002Fsrc\u002Fapi\u002F`：接口客户端。\n- `frontend\u002Fsrc\u002Fviews\u002F`：业务页面。\n- `frontend\u002Fsrc\u002Fcomponents\u002F`：公共组件。\n- `frontend\u002Fsrc\u002Fstore\u002F`：Pinia 状态。\n- `frontend\u002Fsrc\u002Frouter\u002F`：静态路由与动态路由基础配置。\n- `frontend\u002Fsrc\u002Fcomposables\u002F`：组合式工具，包括 WebSocket 相关能力。\n\n## 目录结构\n\n```text\nFAdminAi\n├── backend\n│   ├── app\n│   │   ├── admin       # 后台管理应用\n│   │   ├── api         # 对外 API 应用\n│   │   ├── chat        # 聊天和实时通信应用\n│   │   ├── common      # 公共模型、服务、命令、队列任务和工具\n│   │   └── controller  # ThinkPHP 默认控制器目录\n│   ├── config          # 后端配置\n│   ├── database        # 补丁或更新 SQL\n│   ├── public          # Web 入口、公开资源和安装 SQL\n│   ├── route           # 全局路由\n│   └── composer.json\n├── frontend\n│   ├── src\n│   │   ├── api         # 前端 API 客户端\n│   │   ├── components  # 公共组件\n│   │   ├── composables # 组合式工具\n│   │   ├── router      # 路由\n│   │   ├── store       # Pinia 状态\n│   │   └── views       # 业务页面\n│   ├── vite.config.ts\n│   └── package.json\n└── docs\u002Fproject-overview\n    ├── project-overview.md\n    └── assets\n```\n\n当前安装 SQL 位于 `backend\u002Fpublic\u002Finstall\u002Fdb\u002Finstall.sql`，补丁 SQL 位于 `backend\u002Fdatabase\u002F`。\n\n## 主要业务页面\n\n| 模块        | 前端目录                       | 说明                                                         |\n| ----------- | ------------------------------ | ------------------------------------------------------------ |\n| 首页看板    | `frontend\u002Fsrc\u002Fviews\u002Fdashboard\u002F` | 访问统计、系统信息、公告和运行概览                           |\n| AI 智能助手 | `frontend\u002Fsrc\u002Fviews\u002Fai\u002F`       | 聊天、绘图、视频、音频、提示词、模型、分享、抖音提取和 PPT   |\n| CMS 博客    | `frontend\u002Fsrc\u002Fviews\u002Fblog\u002F`     | 文章、分类、标签、轮播、友链、留言和站点信息                 |\n| 问答系统    | `frontend\u002Fsrc\u002Fviews\u002Fquestion\u002F` | 问题、回答、评论、分类、举报原因和举报记录                   |\n| 微信公众号  | `frontend\u002Fsrc\u002Fviews\u002Fwechat\u002F`   | 微信数据统计、菜单、素材、图文、粉丝、标签和回复规则         |\n| 系统管理    | `frontend\u002Fsrc\u002Fviews\u002Fsystem\u002F`   | 管理员、角色、菜单、部门、通知、日志、配置、部署和数据库     |\n| 会员管理    | `frontend\u002Fsrc\u002Fviews\u002Fmember\u002F`   | 前台会员账号、资料、导入导出和重置密码                       |\n| 代码生成    | `frontend\u002Fsrc\u002Fviews\u002Fcodegen\u002F`  | 根据数据库表生成后台代码                                     |\n\n## 运行方式\n\n### 后端\n\n```bash\ncd backend\ncomposer install\nphp think run -H 127.0.0.1 -p 9040\n```\n\n常用后端命令：\n\n```bash\nphp think\nphp think route:list\nphp think task\nphp think websocket:server\nphp think workerman:server\nphp think channel:server\nphp think pushSitemap\n```\n\n队列示例：\n\n```bash\nphp think queue:work database --queue=douyin_extract,vidu_video --sleep=5 --tries=0 --timeout=1800\n```\n\n### 前端\n\n```bash\ncd frontend\npnpm install\npnpm dev\n```\n\n常用前端命令：\n\n```bash\npnpm type-check\npnpm lint\npnpm build-only\npnpm build\npnpm build-copy\npnpm preview\n```\n\n开发环境常用变量来自 `frontend\u002F.env.development`：\n\n- `VITE_APP_PORT`：前端服务端口。\n- `VITE_APP_BASE_API`：接口代理前缀。\n- `VITE_APP_API_URL`：后端接口地址。\n- `VITE_APP_WS_ENDPOINT`：WebSocket 地址。\n- `VITE_MOCK_DEV_SERVER`：Mock 服务开关。\n- `VITE_BLOG_SITE_URL`：博客站点地址。\n\n## 部署说明\n\n### 后端部署\n\n- Web 根目录指向 `backend\u002Fpublic`。\n- 配置 URL Rewrite，将请求转发到 `backend\u002Fpublic\u002Findex.php`。\n- 确保 `backend\u002Fruntime`、`backend\u002Fpublic\u002Fstorage` 和备份目录可写。\n- 生产环境关闭调试，配置安全的 JWT 密钥、API Token、微信公众号 Token 和第三方服务密钥。\n- 使用进程管理工具托管 Workerman、WebSocket、Channel、队列和定时任务。\n\n### 前端部署\n\n构建静态文件：\n\n```bash\ncd frontend\npnpm build-only\n```\n\n如需生成部署 zip：\n\n```bash\npnpm build\n```\n\n生成后的静态文件可部署到 Nginx、Apache、对象存储或 CDN。后台“打包发布”页面用于接收已构建好的静态 zip 包，不负责执行前端构建命令。\n\n## 安全与维护建议\n\n- 生产环境必须修改默认账号密码和所有密钥。\n- 不要提交 `.env`、证书、Token、生产配置和第三方服务密钥。\n- 严格配置 CORS，只允许可信前端域名。\n- 上传目录禁止执行 PHP、脚本或其他可执行文件。\n- 禁止公开访问运行日志、备份目录、`runtime`、数据库导出文件和临时文件。\n- 定期执行依赖审计：\n\n```bash\ncd backend\ncomposer audit --locked --no-interaction\n\ncd ..\u002Ffrontend\npnpm audit\n```\n\n## 在线体验与联系方式\n\n站点地址：\n\n```php\n地址： https:\u002F\u002Ftp.myong.top\n账号： guest\n密码： guest123\n```\n\n有兴趣的同学可以通过站点留言、QQ、微信或者邮箱联系我：\n\n```php\nQQ： 1650464351\n微信：dota-shaa\n邮箱： 1650464351@qq.com\n```\n\n\u003Cdiv style=\"display: flex; gap: 20px; align-items: center;\">\n  \u003Cimg src=\"https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fmarkdown\u002F20260630\u002Ffda7bf527d95a0be3315b7636ff6c46c.jpg\" alt=\"QQ二维码\" width=\"200\" \u002F>\n\n  \u003Cimg src=\"https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fmarkdown\u002F20260630\u002Ffaf67dd34c79a4d36b890493c4dc4fdb.jpg\" alt=\"微信二维码\" width=\"200\" \u002F>\n\u003C\u002Fdiv>\n\n欢迎广大同行给出建议以及使用本产品。\n\n## 本次文档验证\n\n- 前端登录页 `http:\u002F\u002F127.0.0.1:3000\u002F#\u002Flogin` 返回 `200 text\u002Fhtml`。\n- 后端验证码接口 `http:\u002F\u002F127.0.0.1:9040\u002Fadmin\u002Fauth\u002Fverify` 返回 `200 application\u002Fjson`。\n- 临时登录态访问 `\u002Fadmin\u002Fauth\u002Fme` 返回 `code=200`，角色为 `ADMINISTRATOR`。\n- 临时登录态访问 `\u002Fadmin\u002Fmenu\u002Froutes` 返回 `code=200`，顶层路由数量为 `14`。\n- 已生成 7 张真实系统截图，均位于 `docs\u002Fproject-overview\u002Fassets\u002F`。\n- 截图完成后已清理临时后台 token，并确认会话过期。\n",null,0,17,1,"2025-05-22 01:29:25","2026-06-30 22:56:21",219,"PHP",{"id":22,"title":23},109,"thinkphp6加swoole高并发上传图片",{"id":25,"title":26},111,"Ubuntu系统安装Protocol Buffers (protobuf) 编译器完全指南",[28,30,33,36,39,42],{"id":29,"name":20},25,{"id":31,"name":32},49,"ThinkPHP",{"id":34,"name":35},87,"vue",{"id":37,"name":38},88,"博客",{"id":40,"name":41},89,"Ai",{"id":43,"name":44},90,"Chat",4572,11,"https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Farticle\u002F20260630\u002Fd769a8584b39ad4f7e36d4dc9a52a4f0.png",[49,54,59,64,69],{"id":50,"title":51,"create_time":52,"description":53},93,"PHP执行Python脚本解压，压缩文件夹操作","2020-08-06 14:59:05","PHP是有解压缩类文件的，但在实际项目中，用户方使用Python脚本压缩，很容易出现中文解压乱码，导致文件内容丢失的情况，本文主要介绍PHP执行Python脚本解压缩出现的问题以及解决方法",{"id":55,"title":56,"create_time":57,"description":58},92,"PHP对图片的处理","2020-07-30 15:53:38","图片处理函数功能：缩放、剪切、相框、水印、锐化、旋转、翻转、透明度、反色处理并保存历史记录的思路：当有图片有改动时自动生成一张新图片",{"id":60,"title":61,"create_time":62,"description":63},96,"PHP中字符串跟0做比较永远是true","2021-02-04 16:16:27","最近在项目中做数据对比的功能，发现一个特殊的情况，0跟任何字符串做比较永远返回true，特意了解了一下。",{"id":65,"title":66,"create_time":67,"description":68},13,"Win系统下配置PHP链接Oracle","2019-01-17 22:23:36","该文章内容主要介绍window系统下，php连接oracle的配置。",{"id":70,"title":71,"create_time":72,"description":73},103,"面向对象三大特性五大原则 + 低耦合高内聚[转载]","2021-10-31 23:18:58","面向对象的三大特性是\"封装、\"多态\"、\"继承\"，五大原则是\"单一职责原则\"、\"开放封闭原则\"、\"里氏替换原则\"、\"依赖倒置原则\"、\"接口分离原则\"。",1783431653808]