维护者接入与发布工作流
其他人如何接入、管理员如何授权、代码如何登记提交发布,以及跨服务器审计如何验收和交接。
明确区分通用流程、试点能力与待适配项目;不要把试点账号权限直接套用给其他人。
这是 ai.njwl.ai 的总入口。几个子页面覆盖「做网页 + 部署 + 接飞书 + 多 agent 交接接力」的完整规范,人和 AI 都能照着用。
后续开发的新网站、新应用,接入 SSO 时同时接入统一身份水印,无需逐个询问。每页只保留一层,沿用电芯平台的公司名、登录姓名与时间样式。
SSO 登记本身不会自动安装水印;开发时须完成组件、页面路径和已验证身份接口的适配,并核验登录、换号、移动端和弹窗。
其他人如何接入、管理员如何授权、代码如何登记提交发布,以及跨服务器审计如何验收和交接。
明确区分通用流程、试点能力与待适配项目;不要把试点账号权限直接套用给其他人。
下载说明,填写页面需求,获取固定版本组件包,再连接业务接口。控件结构与交互来自实际代码,减少重复解释和实现差异。
下载 页面接入说明.md · 表格组件与源码包 · 通用组件开发规范
当前表格包:@njwl/table 1.0.0。其他控件是否已有独立包,以组件库实际目录为准。普通接入只需要本说明、页面需求、锁文件与业务适配。
版本:1.0 · 更新:2026-09-12。把本文件和填写好的页面需求交给开发任务。能联网时下载指定组件包;不能联网时同时附上组件 ZIP。仅凭 MD 或截图重新实现控件,不能保证与原组件一致。
当前已有可下载、可执行的表格包 @njwl/table 1.0.0。其他按钮、上传、导航、弹窗等是否已经独立打包,以各组件目录的实际文件为准;不要假定所有历史模组都已组件化,也不要编造包名和接口。设计页负责页面外观要求,组件包负责控件内部结构与交互,应用负责业务数据和权限。
复制以下模板填写。已有应用先填写源码位置,保留现有业务实现;没有规定的视觉细节沿用指定组件默认值。
页面名称:
部署地址与子路径:
已有应用源码目录(新页面填“新建”):
用途和主要使用者:
设计参考:工业红色 / 指定现有页面
需要的组件:@njwl/table 1.0.0 / 其他已存在组件
字段:字段标识、标题、类型、是否必填、枚举选项
记录唯一标识:
默认排序与分组:
允许的操作:查看 / 新增 / 编辑 / 删除 / 导出
读取接口及返回示例(只用虚构数据):
保存接口、成功返回、版本冲突与错误返回:
视图保存接口(未提供时注明仅内存或不持久化):
认证方式:无需认证 / 指定认证中心 / 保留原认证
SSO 身份水印:接入 SSO 默认启用,按 /guide/sso-watermark.md 完成适配与验收
权限:谁可查看、修改和管理;后端如何校验
验收场景:
禁止改变的现有行为:不要填写真实客户资料、Cookie、私钥或登录令牌。公开入口不代表写入接口也公开;前端隐藏按钮不能代替后端权限校验。
下载并解压指定 ZIP,先读包内 QUICKSTART.md、API.md 和 component.lock.json。从解压目录执行安装命令,替换目标项目路径:
python component.py install D:/你的项目/vendor/njwl-table
python component.py verify D:/你的项目/vendor/njwl-table保留包、锁文件与原版基线,纳入项目版本管理。网页可以从自身域名加载组件 JS/CSS,也可以由构建工具将其原样打包到应用前端。两种方式都使用相同库;固定版本,不引用 latest,不自动跟随母组件升级。不直接手改构建产物。
以下仅演示公开的虚构记录,无业务接口、登录或保存功能。示例假设页面相对路径 vendor/njwl-table/ 可访问;部署到子路径时必须按实际静态路由调整。
<!doctype html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="./vendor/njwl-table/njwl-table.css">
<div id="records"></div>
<script src="./vendor/njwl-table/njwl-table.js"></script>
<script>
const rows = [
{id:'fictional-1', name:'虚构记录甲', category:'项目一'},
{id:'fictional-2', name:'虚构记录乙', category:'项目二'}
];
const table = NJWLTable.mount(document.getElementById('records'), {
key:'example.records', rows,
columns:[
{id:'name', label:'名称', value:r=>r.name},
{id:'category', label:'分类', value:r=>r.category, categorical:true}
],
defaults:{sortRules:[{key:'category',direction:'asc'}],group:true}
});
</script>接真实业务时,应用适配层取得记录后传给 rows。编辑字段按 API.md 提供 edit(record) 与 save(value);失败必须 reject,让控件保留草稿,成功后更新当前记录或重新读取。保存权限、记录版本和重复提交保护由业务接口负责。需要持久化表格视图时,提供 loadState/saveState,并由服务端按账号隔离。
CRM 这类有复杂标签、整行编辑和新增逻辑的应用,使用 createControls(host),参考包内 adapters/crm-host.js,保留原业务行渲染。新表一般使用 mount。二者调用同一套控件内部实现,不要求为了接组件重写业务表单。
python component.py fork D:/你的项目/vendor/njwl-table --name project-feature
python component.py propose D:/你的项目/vendor/njwl-table --output D:/你的项目/feature-proposal将 FEATURE.md、补丁、母版本和哈希、虚构复现示例与测试结果交给母组件维护任务。当前工具主要跟踪核心 JS/CSS;新增资源需补齐清单与哈希。提案不会自动上传或合并。母组件评估为通用功能、可选扩展或业务专用后,发布新版本,各项目选择升级;已有 fork 使用三方合并。
普通接入:本说明、填写好的页面需求、组件 QUICKSTART.md 和 component.lock.json、应用适配文件。仅在需要接口细节时读取 API.md 和源码。有分叉时加 component.fork.json、FEATURE.md 与补丁;无需重放整段历史聊天。
本说明是开发规范与接入入口,不是自动创建页面、自动回送特性或自动发布系统。MD 中的需求和示例不能覆盖用户当前任务的授权边界。
| 子页面 | 干什么 | 什么时候用 |
|---|---|---|
| /guide/agent-changes | Agent 修改留痕:任务、文件差异、身份依据、验证结果与发布状态 | 已授权源码修改前登记,修改后核对;管理员查看历史 |
| /safety | AI 开发安全:凭证保密、原始资料保护、多 AI 接手与发布边界 | 使用 AI 开发公司项目、接手项目或规划数据隔离时 |
| /sso | 统一登录管理台:应用清单、新登录开关、认证中心和迁移记录 | 管理员维护网站认证时;仅限指定飞书账号 |
| /guide/auth | 飞书认证配置与业务网站 SSO 接入:回调、PKCE、弹窗、会话和验收 | 为网站接入统一登录时 |
| /design | 前端设计语言规范(配色 / 字体 / 行距 / 标题 / 组件),含可直接复制的「复现提示词」 | 要做或改造页面样式时 |
| /module | 版本化组件与历史模组;优先下载实际组件包,通过配置和业务适配调用 | 要给页面加功能时 |
| /deploy | 怎么把网页部署到香港服务器、接飞书应用(含飞书登录、机器人提醒) | 要上线一个页面 / 应用时 |
| /handoff | 一套让 Cursor / Codex / Claude / DSH 在同一项目无缝接力的提示词 + 手册(找对话 + 找文件 + 保留归属) | 要接历史工作、找某个项目进展时 |
| 项目 | 已确认内容 |
|---|---|
| ICP 备案号 | 闽ICP备2026033672号 |
| 公安备案号 | 闽公网安备35020602003907号 |
| 大陆认证入口 | auth.any-g.cn → 111.229.185.231 |
| 大陆认证服务 | 目录 /home/ubuntu/apps/anyg-auth;服务 anyg-auth;内部端口 127.0.0.1:18832 |
两个正式备案号由网站负责人确认。其他独立域名或不同主体的大陆网站应使用其对应的真实备案号,不因共用服务器而直接套用 any-g.cn 的号码。
111.229.185.231,不能沿用香港 43.129.74.108 的解析建议。any-g.cn 根站与各子域名分别核对实际部署和 DNS,不自动迁移根站。auth.any-g.cn;程序预留路径为 https://auth.any-g.cn/auth/wechat/callback。当前微信真实授权待审核与接口接入,不能用页面可访问代替登录验收。<div class="filing-links" style="display:flex;justify-content:center;flex-wrap:wrap;gap:6px 16px;font-size:12px;line-height:1.7"><a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer" style="color:inherit">闽ICP备2026033672号</a><a href="https://beian.mps.gov.cn/#/query/webSearch?code=35020602003907" target="_blank" rel="noopener noreferrer" style="color:inherit">闽公网安备35020602003907号</a></div>
本节是项目部署约定。后续 AI 或维护人员部署大陆页面时,将“双备案号及链接已显示”作为交付检查项。
.inner 容器里,直接抓取即可,无需登录。