1. 页面概览

飞书设置页是 AIP 管理后台集中配置飞书机器人的入口,路由 /admin/feishu,需管理员角色。它以 FEISHU_ 前缀的 key 读写系统设置(system_settings 表),覆盖机器人总开关、App ID/App Secret、域名、允许用户/群白名单、群聊/会话模式、进度样式与默认通道等 11 项配置。页面顶部提供「运行状态」卡(配置/运行/启用三态),并附飞书开放平台接入步骤说明。

配置采用"整页表单 + 顶部保存"模式:一次「保存」把全部字段逐项 PUT 到设置表,修改后重启 AIP 生效。若设置表缺项,页面会按运行状态自动兜底回填,凭证已配置且未显式禁用时提示"机器人默认启用"。

2. 访问入口

2.1 路由与菜单

path /admin/feishu、name FeishuSettings、title 飞书设置;挂载在父路由 /admin(AdminLayout)下,侧边栏菜单项「飞书设置」。源码 action/web/src/views/FeishuSettingsPage.vue(懒加载注册)。

2.2 认证与权限

该子路由 meta 显式 requiresAuth: true, requiresAdmin: true;后端 GET /feishu/statusPUT /settings 均在 admin 组。请求经 aipClient.js 附带 aip_token

2.3 端口与 API 前缀

AIP 后端 18080,前缀 /aip-api(baseURL /aip-api/v1,Vite 代理重写为 /api/v1)。

3. 界面布局

飞书设置                                    [保存]
[操作结果提示 alert(可关闭)]
[提示:FEISHU_ 前缀配置项存入系统设置,修改后重启 AIP 生效]
运行状态:配置状态(已配置 App ID/未配置) | 运行状态(运行中/未运行) |
          启用开关(已启用/未启用)    [刷新状态]
飞书机器人接入说明:1 建应用 → 2 开启机器人能力 → 3 订阅事件与回调
                  → 4 填 App ID/Secret → 5 开开关并重启
配置表单:启用飞书机器人(开关) | App ID | App Secret | 域名 |
          允许用户 open_id | 允许群 chat_id | 仅群聊 | 群内共享会话 |
          线程隔离 | 进度样式(下拉) | 默认通道(下拉)

4. 交互元素

控件位置含义与作用
保存按钮页面头部逐项 PUT /settings(Promise.all 并行)保存全部字段,保存中禁用表单
刷新状态按钮运行状态卡重新请求 /feishu/status 并据此兜底回填
启用飞书机器人表单FEISHU_ENABLED 总开关,关闭后机器人不响应任何消息
App ID / App Secret表单FEISHU_APP_ID/FEISHU_APP_SECRET,Secret 密码框,保存后仅写入设置表
允许用户 open_id表单FEISHU_ALLOW_FROM 白名单,逗号分隔,* 不限制
允许群 chat_id表单FEISHU_ALLOW_CHAT 白名单,逗号分隔,* 不限制
进度样式下拉表单FEISHU_PROGRESS_STYLE:legacy 经典文本 / compact 精简 / card 卡片
默认通道下拉表单FEISHU_DEFAULT_CHANNEL:copilot 智能助手 / nlq 自然语言查数
仅群聊/群内共享会话/线程隔离表单三个布尔开关,控制响应范围与会话上下文隔离

5. 后端关联

5.1 端点表

方法路径用途
GET/feishu/status返回机器人配置与运行状态:{enabled, running, configured, app_id}
PUT/settings逐字段 upsert,body {key, value, type, description}
POST/feishu/push系统主动推送(open_id/chat_id),本页不调用,作为能力背景

5.2 请求与响应

GET /feishu/status 引擎未启动时返回配置态(running=false),已启动时返回引擎状态并强制 running=true。布尔字段存储为字符串 "true"/"false",回填时 String(s.value) === 'true' 转回布尔。

5.3 关键机制

6. 权限与安全

7. 常见问题与排错

问题 1:运行状态卡显示"无法获取运行状态"

问题 2:保存后机器人不响应消息

问题 3:运行状态显示"已配置但未运行"

问题 4:表单被自动回填了未保存过的值

8. 已知缺陷与边界

说明
重启生效全部配置修改重启 AIP 后生效,无热更新
无测试按钮本页不提供消息推送测试,主动推送需另调 POST /feishu/push
布尔存字符串设置表以 "true"/"false" 文本存储
回填依赖状态缺失字段展示依赖 /feishu/status 可用,状态失败时回填不生效