本文へ移動
cccskills
無料GitHub で公開

jeecg-portal

JeecgBoot 门户(Portal)全生命周期管理——通过 API 自动创建、删除、配置门户,管理门户内的 14 种组件(轮播图、新闻动态、系统公告、流程中心、应用快捷入口、协同待办、我的计划、知识库、文本、iframe 等),动态查询数据源并填充组件内容,支持 Web 和 App 双端布局。

只要用户意图涉及「门户」就必须使用本技能,包括但不限于: 创建或生成门户("做一个门户"、"创建门户"、"新增门户"、"生成一个包含轮播图和新闻的门户"、"做一个全组件门户")、 删除门户("删除门户"、"移除XX门户")、 修改门户类型("设为个人工作台"、"设为主门户"、"设为普通门户"、"改门户类型")、 管理门户组件("添加组件"、"加个轮播图"、"加个系统公告"、"删除组件"、"去掉流程中心")、 修改组件配置("修改轮播图配置"、"改标题颜色"、"把新闻动态宽度改为占满一行"、"修改门户里的XX")、 查询门户("查看门户列表"、"有哪些门户")。

即使用户没有明确说"门户"二字,只要描述的是 JeecgBoot 系统首页定制、工作台组件配置、portal 相关操作,也应触发此技能。关键词触发:门户、portal、工作台、首页定制、门户组件、portalDesign。

インストール方法を見る

含まれるファイル(6)

  • SKILL.md11.2 KB
  • references/api-reference.md2.2 KB
  • references/component-configs.md10.8 KB
  • references/full-portal-template.md4.9 KB
  • scripts/build_portal.py17.6 KB
  • scripts/modify_component.py9.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

JeecgBoot 门户管理技能

通过 JeecgBoot REST API 管理门户系统:创建/删除门户、设置门户类型、添加/删除/配置 14 种门户组件,支持 Web + App 双端。

前置条件

需要用户提供:

  1. API 地址:JeecgBoot 后端地址(如 http://192.168.x.x:8080/jeecg-boot)
  2. X-Access-Token:JWT 登录令牌

如果未提供,提示用户从浏览器 F12 → Network → 任意请求的 Request Headers 中复制。

操作类型识别

用户意图操作类型
创建/新增/做一个门户新增门户
删除/移除门户删除门户
设为个人工作台/普通门户/主门户修改门户类型
添加组件/加个XX添加组件
删除/移除/去掉组件删除组件
修改组件配置/改XX颜色/宽度修改组件配置
查看门户/门户列表查询门户

场景 A:新增门户

A1. 解析需求

信息必填默认值
门户名称是-
门户编码否名称拼音(小写下划线)
门户类型否common
包含组件否无

A2. 门户类型

类型值显示名约束
system主门户系统唯一,管理员设计
template个人门户模版系统唯一,可被重置
personal个人工作台用户唯一
common普通门户无限制

A3. 唯一性校验

创建前必须校验:

# 编码唯一性
GET {API_BASE}/sys/duplicate/check?tableName=portal_design&fieldName=code&fieldVal={code}&dataId=
→ success: true 可用,false 已存在

# 类型唯一性(仅 system/template/personal)
GET {API_BASE}/eoa/portalapp/portalDesign/duplicateTypeCheck?portalCategory={type}
→ success: true 可创建

A4. 创建门户

POST {API_BASE}/eoa/portalapp/portalDesign/add
Body: { "name": "名称", "code": "编码", "bizMode": "portal", "portalType": "pc,app", "portalCategory": "common", "status": "1", "izDefault": "0" }
→ result 为新门户 ID

A5. 添加组件

创建完成后如果用户指定了组件,进入场景 D 添加组件。

全组件门户快捷方式:当用户要求创建包含全部组件的门户时,优先使用 scripts/build_portal.py 脚本(python3 scripts/build_portal.py --api-base {API_BASE} --token {TOKEN} --name {名称}),或者参考 references/full-portal-template.md 手动构建。脚本会自动完成数据源查询、designJson 构建和保存,比手动构建快得多。


场景 B:删除门户

B1. 查询列表

GET {API_BASE}/eoa/portalapp/portalDesign/list?bizMode=portal&pageNo=1&pageSize=50

以表格展示(名称、编码、类型、状态),让用户确认。

system 和 template 类型不允许删除。

B2. 执行删除

DELETE {API_BASE}/eoa/portalapp/portalDesign/physicalDelete?id={portalId}

场景 C:修改门户类型

C1. 查询门户详情

GET {API_BASE}/eoa/portalapp/portalDesign/queryById?id={portalId}

C2. 唯一性校验(同 A3)

C3. 修改

POST {API_BASE}/eoa/portalapp/portalDesign/edit
Body: { "id": "ID", "name": "名称", "code": "编码", "portalCategory": "新类型", ...(保留原有字段) }

场景 D:添加组件

D1. 查询目标门户的 designJson

GET {API_BASE}/eoa/portalapp/portalDesign/queryById?id={portalId}

D2. 可用组件(14 种)

组件名称component 值有配置面板默认 defaultProps
轮播图JAppCarousel是{ showName: true, autoplay: true, contentPadding: false, textAlign: "center", imgSize: "cover", textFontSize: "default", list: [] }
新闻动态JCmsNews是{ tabType: 0, noTabsData: [], tabsData: [], showType: 1 }
系统公告JSystemNotice是{ msgCategory: ["1", "2"], noticeType: [] }
我的计划JSchedule是{ mobileMaxCount: 3, tabType: 0, singleRange: "week", multiRange: ["week"] }
近期邮件JEmail否无特有配置
流程提醒JProcessNotice否无特有配置
我的申请JMyApplyFlow否无特有配置
流程中心JMyFlow是{ category: [0,1,2,3], order: [0,1,2,3] }
知识库JKnowledge是{ tabType: 0, noTabsData: [], tabsData: [] }
会议JMeeting否无特有配置
应用快捷入口JAppEnter是{ tabType: 0, noTabsData: { contentSource: 1, infoList: [] }, tabsData: [], styleType: 0, contentIconRadius: "none", ... }
文本JText是{ showTitleBar: false, text: "文本", fontSize: 16, fontWeight: "normal", color: "#000", textAlign: "center" }
协同待办JCollaPending是{ category: [0,1,2,3], order: [0,1,2,3] }
iframeJIframe是{ frameSrc: "", placeholderImg: "", imgSize: "cover" }

D3. designJson 结构

{
  "webComponentData": [ ... ],
  "appComponentData": [ ... ]
}

Web 端组件结构:

{
  "i": "32位无横杠UUID",
  "x": 0, "y": 0, "w": 4, "h": 4, "static": false,
  "name": "组件名称",
  "component": "JAppCarousel",
  "icon": "/src/assets/images/portalapp/component-cover/carousel.png",
  "platform": ["WEB", "APP"],
  "defaultProps": { "titleBarColor": "#1890FF", "titleColor": "#000000", ... }
}

App 端组件结构(比 Web 多 width 和 height):

{
  "i": "与Web端相同的UUID",
  "x": 0, "y": 0, "w": 12, "h": 4, "static": false,
  "name": "组件名称", "component": "...", "icon": "...",
  "platform": ["WEB", "APP"],
  "width": "100%", "height": "100%",
  "defaultProps": { ... }
}

icon 对照表:

componenticon
JAppCarousel.../carousel.png
JCmsNews.../news.png
JSystemNotice.../systemNotice.png
JSchedule.../schedule.png
JEmail.../email.png
JProcessNotice.../processNotice.png
JMyApplyFlow.../myApplyFlow.png
JMyFlow.../myFlow.png
JKnowledge.../knowledge.png
JMeeting.../meeting.png
JAppEnter.../appEnter.png
JText.../text.png
JCollaPending.../collaPending.png
JIframe.../iframe.png

icon 路径前缀统一为 /src/assets/images/portalapp/component-cover/。

D4. 布局规则

Web 端(12 栏网格):

  • x: 列位置(0-11), y: 行位置, w: 宽度(推荐 4/6/12), h: 高度(推荐 2-8)
  • 同行 x + w 不超过 12,不与已有组件重叠
  • 默认 w=4, h=4(一行3个),宽组件 w=12

App 端(单列):

  • x=0, w=12, y=上一个组件的 y+h+1, 默认 h=4
  • 必须含 width: "100%" 和 height: "100%"

UUID:32位无横杠格式,Web/App 同组件共享同一个 i。

D5. 保存 designJson

POST {API_BASE}/eoa/portalapp/portalDesign/edit
Body: { "id": "门户ID", "designJson": "{\"webComponentData\":[...],\"appComponentData\":[...]}" }

designJson 的值是字符串化的 JSON(JSON.stringify 后),不是原始对象。这是因为后端将 designJson 存储为 text 字段。


场景 E:删除组件

直接执行脚本:

python3 scripts/modify_component.py --api-base {API_BASE} --token {TOKEN} --portal-id {ID} remove --component JSchedule

或按名称删除:--name "我的计划"


场景 F:修改组件配置

直接执行脚本(自动处理双端同步):

python3 scripts/modify_component.py --api-base {API_BASE} --token {TOKEN} --portal-id {ID} modify --component JSchedule --props '{"tabType":0,"singleRange":"week"}'

也可同时修改布局:--layout '{"w":12,"h":6}'

需要查具体配置项时,读取 references/component-configs.md。


场景 G:查询门户列表

GET {API_BASE}/eoa/portalapp/portalDesign/list?bizMode=portal&pageNo=1&pageSize=50

以表格展示:门户名称、编码、类型、状态。


注意事项

  1. designJson 是字符串:保存时必须 JSON.stringify,后端 text 字段不接受原始对象
  2. Web/App 联动:同组件共享 i,修改数据属性时双端同步(详见 references/component-configs.md 末尾的同步规则表)
  3. system/template 不可删除:前端和 API 层面都有保护
  4. 唯一性校验:创建 system/template/personal 前必须先校验
  5. 编码规则:以字母开头,可含数字/下划线/横杠,不支持大写
  6. 组件布局不重叠:Web 端添加组件时需计算 x/y/w/h 避免重叠
  7. 所有 API 请求都需要 Header 带 X-Access-Token

资源文件

文件用途何时读取
references/component-configs.md14种组件的全部配置项详情修改组件配置(场景 F)时
references/full-portal-template.md全组件门户标准模板(布局、主题色、数据源规则)创建全组件门户时
references/api-reference.md补充 API(默认首页、重置、路由、权限等)涉及高级操作时
scripts/build_portal.py全组件门户一键构建脚本创建全组件门户时直接执行
scripts/modify_component.py组件配置修改/删除/列表脚本修改、删除组件时直接执行,避免重复写代码

常用示例

用户说法操作
"创建一个运营门户,包含轮播图和新闻动态"新增 + 添加2组件
"创建一个门户包含全组件"执行 scripts/build_portal.py
"删除测试门户"查列表 + 确认 + 物理删除
"把XX门户设为个人工作台"类型校验 + edit
"给首页门户加一个系统公告组件"添加组件到 designJson
"修改首页门户的轮播图,设置自动播放关闭"修改 defaultProps.autoplay
"把流程中心去掉"删除组件
"查看当前有哪些门户"列表查询

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

JeecgBoot AI 编排流程(AIFlow)全生命周期管理——通过自然语言描述需求,自动创建、编辑、查询、删除、调试、发布 AI 编排流程。 只要用户意图涉及「AI编排」「AIFlow」就必须使用本技能,包括但不限于: 创建 AI 编排流程("做一个AI流程"、"创建aiflow"、"新建编排"、"做一个知识库问答流程"、"创建一个大模型对话流程"), 修改已有流程("给流程加个节点"、"改一下LLM的提示词"、"修改流程"), 查询流程("查看流程列表"、"有哪些AI流程"), 删除流程("删除流程"、"移除XX流程"), 调试运行流程("调试流程"、"运行流程"、"测试流程"), 发布管理("发布流程"、"取消发布"), 复制流程("复制流程"、"克隆流程")。 关键词触发:aiflow、ai-flow、AI编排、AI流程、编排流程、大模型流程、知识库流程、LLM流程。 注意:本技能仅处理 AI 编排流程(AIFlow),不处理 BPMN 工作流(使用 jeecg-bpmn)、 不处理简流(使用 jeecg-lowcode-miniflow)。

日本語の概要は準備中です。原文の説明を表示しています。

jeecgboot/skills2402026年9月17日 更新

Use when user asks to create/generate/edit/modify a BPM workflow, design a Flowable BPMN process, or says "创建流程", "生成流程", "新建流程", "设计流程", "画流程", "审批流程", "工作流", "BPM", "BPMN", "create flow", "create process", "new workflow", "generate workflow". Also triggers when user describes an approval chain like "先经理审批再HR审批" or mentions process nodes like "开始→审批→网关→结束". Also triggers for OA application creation: "创建OA应用", "创建审批单", "创建报销单", "创建请假单", "做一个OA表单带流程", "一键创建表单和流程", "create OA app", "create approval form with workflow". Also triggers for ANY operation on existing processes: "编辑流程", "修改流程", "删除监听器", "添加监听器", "删除节点", "添加节点", "修改节点", "配置节点", "流程中的", "edit process", "modify process", "delete listener", "add listener", "remove listener", "add node", "delete node", "configure node". Key rule: whenever user mentions a specific process name (like "网关测试") with any modification intent, this skill MUST be invoked FIRST before any manual API exploration.

日本語の概要は準備中です。原文の説明を表示しています。

jeecgboot/skills2402026年9月17日 更新

Use when user asks to generate JeecgBoot CRUD code, create a new module, add/modify fields on existing module, or says "代码生成", "生成代码", "创建模块", "新增功能", "建表", "加字段", "加一个字段", "增加字段", "新增字段", "修改字段", "删除字段", "generate code", "new entity", "add field"

日本語の概要は準備中です。原文の説明を表示しています。

jeecgboot/skills2402026年9月17日 更新

Use when user asks to generate JeecgBoot CRUD code, create a new module, add/modify fields on existing module, or says "代码生成", "生成代码", "创建模块", "新增功能", "建表", "加字段", "加一个字段", "增加字段", "新增字段", "修改字段", "删除字段", "generate code", "new entity", "add field"

日本語の概要は準備中です。原文の説明を表示しています。

jeecgboot/skills2402026年9月17日 更新

jeecg-dev

無料

JeecgBoot 开发规范(仅手动触发)。⚠️ 本技能只在用户显式输入 /jeecg-dev 或 $jeecg-dev 命令时使用,禁止自动触发——编写/修改 JeecgBoot 代码、应用 GitHub PR/issue 改动、修复 bug、新增功能、重构、代码生成等场景都不要自动调用本技能。内容涵盖 update-begin/end 痕迹注释、命名规范、实体/控制器/服务模式、API 约定、建表规则、MyBatis 多数据库兼容与修改日志实践。MANUAL ONLY: invoke ONLY when the user explicitly runs the /jeecg-dev command. Do NOT auto-trigger on any code editing, bug fix, PR/issue application, refactoring, or code generation.

日本語の概要は準備中です。原文の説明を表示しています。

jeecgboot/skills2402026年9月17日 更新

Use when user asks to create/edit Online graph charts, data visualization, or says "创建图表", "生成图表", "新建图表", "做一个图表", "online图表", "数据图表", "柱状图", "折线图", "饼图", "统计图", "可视化", "chart", "graph", "create chart", "generate chart", "bar chart", "line chart", "pie chart". Also triggers when user describes chart requirements like "做一个销售柱状图" or mentions data visualization like "用图表展示男女比例".

日本語の概要は準備中です。原文の説明を表示しています。

jeecgboot/skills2402026年9月17日 更新

jeecgboot のスキルをすべて見る

このスキルの問題を報告する