Token导航 LogoToken导航TokenDH.com
研究检索external-servicegithub未标认证来源可访问clear审计未展示

hap-frontend-projecthap 前端项目

Agent Skill

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。它适合让 Agent 生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码,整理组件结构,或定位布局和性能问题。使用时需要结合项目现有设计系统、路由和构建方式,避免只生成孤立片段;涉及页面改动时,应配合本地预览和构建检查确认视觉效果。

总安装

624

周安装

26

GitHub Stars

公开资料未说明

下载量

208
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:hap-frontend-project(hap 前端项目)
来源仓库:https://github.com/garfield-bb/hap-skills-collection
仓库路径:skills/hap-frontend-project
安装命令:
npx skills add garfield-bb/hap-skills-collection --skill "hap-frontend-project"
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

AgentSkills.tonpx skills
npx skills add garfield-bb/hap-skills-collection --skill "hap-frontend-project"

简介

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。

  • 适合生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码。
  • 可整理组件结构或定位布局和性能问题,需结合项目现有设计系统使用。
  • 涉及页面改动时应配合本地预览和构建检查确认视觉效果。
  • 安装前建议确认权限范围和维护状态,以及是否会触发命令执行或文件读写。

SKILL.md

HAP 前后端项目搭建指南

触发条件(MANDATORY)

<EXTREMELY_IMPORTANT> 当用户提到以下任何情况时,必须使用此技能:

  • ✅ "通过 HAP 搭建官网"
  • ✅ "用 HAP 做网站"
  • ✅ "HAP 前端项目"
  • ✅ "HAP 作为数据库" + "网站"相关需求
  • ✅ "企业官网" + "HAP"相关需求
  • ✅ "搭建网站" + "HAP"相关需求
  • ✅ "官网" + "HAP"相关需求
  • ✅ "HAP 网站"
  • ✅ "HAP 官网"
  • ✅ "前后端分离" + "HAP"相关需求
  • ✅ "内容管理系统" + "HAP"相关需求

技能优先级:

  • 如果用户明确提到"HAP" + "网站/官网/前端",必须优先使用此技能
  • 如果用户提到"搭建网站"但没有提到技术栈,可以询问是否使用 HAP

This is MANDATORY. No exceptions. </EXTREMELY_IMPORTANT>


Overview

本技能提供使用明道云 HAP(高级应用平台)作为后台内容管理系统,搭建完整前后端分离项目的完整工作流。适用于企业官网、内容管理网站、数据展示平台、表单收集系统等多种场景。

核心能力:

  • ✅ HAP 后台数据结构设计与配置
  • ✅ 前端项目架构搭建(HTML/CSS/JS)
  • ✅ HAP API V3 集成与数据交互
  • ✅ 完整的开发工作流和最佳实践
  • ✅ 自动启动本地开发服务器

适用场景:

  • 企业官网(产品展示、新闻资讯、案例展示)
  • 内容管理网站(博客、文档库、知识库)
  • 数据展示平台(数据看板、报表展示)
  • 表单收集系统(在线预约、问卷调查、询价订单)
  • 营销落地页(活动页面、促销页面)

HAP 产品线说明

🌐 多产品线支持

HAP 支持多个产品线和私有部署,在前端项目中调用 API 时需要配置正确的 API Host

产品线API Host说明
明道云 HAPhttps://api.mingdao.com官方 SaaS 服务
Nocoly HAPhttps://www.nocoly.comNocoly SaaS 服务
私有部署 HAPhttps://your-domain.com/api⚠️ 注意:私有部署需要在域名后加 /api

示例

  • 明道云:https://api.mingdao.com/v3/open/worksheet/getFilterRows
  • 私有部署:https://p-demo.mingdaoyun.cn/api/v3/open/worksheet/getFilterRows ← 注意 /api

配置建议

  • 在项目配置文件中设置 API_BASE_URL
  • 根据用户的 MCP 配置自动判断使用哪个 host
  • 如果用户未提供,需询问使用哪个产品线

工作流程

阶段 1: 需求理解与结构评估

目标: 理解用户需求,评估现有 HAP 应用结构

必须执行:

  1. 读取应用结构 // 获取应用工作表列表 mcp__hap_mcp____get_app_worksheets_list({responseFormat: 'md'}) // 获取特定工作表结构 mcp__hap_mcp____get_worksheet_structure({worksheet_id: '工作表ID', responseFormat: 'md', ai_description: '工作表: <工作表名称>'})
  2. 结构差距评估

- 识别业务对象(产品、案例、新闻等) - 判断现有结构可复用性 - 识别缺失的工作表和字段

  1. 输出评估报告

- ✅ 可复用结构清单 - ➕ 建议新增内容 - 🚫 不执行的操作(仅分析阶段)

关键原则:

  • ⚠️ 此阶段仅做分析,不得执行任何写操作
  • ✅ 必须先读取应用现有结构
  • ✅ 必须评估是否满足需求

阶段 2: 用户确认(强制)

目标: 获得用户明确同意后再执行结构变更

触发条件:

  • 🔴 需要新增工作表
  • 🔴 需要新增字段到现有工作表
  • 🔴 需要写入示例数据
  • 🔴 需要修改现有字段配置

确认方式: 使用 AskUserQuestion 工具,清晰列出建议的操作:

AskUserQuestion({
    questions: [{
        question: "根据业务需求分析,当前应用缺少「新闻资讯」相关数据表。是否允许创建新的工作表?",
        header: "新增工作表",
        multiSelect: false,
        options: [
            {
                label: "同意创建(推荐)",
                description: "创建「新闻资讯」工作表,包含标题、封面图、发布时间、内容等字段,并添加 5 条示例数据"
            },
            {
                label: "仅创建表结构",
                description: "只创建工作表和字段,不添加示例数据。前端页面可能显示为空"
            },
            {
                label: "暂不创建",
                description: "跳过此工作表,使用现有数据完成开发。新闻模块将无法展示"
            }
        ]
    }]
})

禁止行为:

  • ❌ 未确认即新增工作表
  • ❌ 未确认即新增字段
  • ❌ 未确认即写入数据
  • ❌ 假设用户意图

阶段 3: HAP 后台配置

目标: 在 HAP 中创建/补充数据结构和示例数据

执行顺序:

  1. 创建新工作表(如用户同意) mcp__hap_mcp____create_worksheet({name: '新闻资讯', alias: 'news', fields: [{name: '标题', type: 'Text', isTitle: true, required: true}, {name: '封面图', type: 'Attachment', required: false}, {name: '发布时间', type: 'Date', required: false}, {name: '内容', type: 'Text', required: false}, {name: '是否发布', type: 'Checkbox', required: false}], ai_description: '工作表: 新闻资讯'})
  2. 补充字段到现有工作表(如用户同意) mcp__hap_mcp____update_worksheet({worksheet_id: '现有工作表ID', addFields: [{name: '封面图', type: 'Attachment'}, {name: '详情', type: 'Text'}], ai_description: '工作表: <工作表名称>'})
  3. 添加示例数据(如用户同意) // 🔴 重要:附件字段必须填充图片 URL mcp__hap_mcp____batch_create_records({worksheet_id: '工作表ID', rows: [{fields: [{id: '标题字段ID', value: '示例新闻标题'}, {id: '封面图字段ID', value: [{name: 'news.jpg', url: 'https://m1.mingdaoyun.cn/doc/20251205/095p6B8tbW3x9v1A5lc41O8QdYaua101bM8Wb7442Q2ZfKb21m8deM1U0r4UaC9h.png?e=1765001146299&token=...'}]}, {id: '发布时间字段ID', value: '2024-12-01'}, {id: '内容字段ID', value: '新闻内容...'}, {id: '是否发布字段ID', value: '1'}]} //... 至少 5 条示例数据], triggerWorkflow: false, ai_description: '工作表: 新闻资讯'})

关键要求:

  • ✅ 每个新增工作表必须至少添加 5 条示例数据
  • 🔴 附件字段必须填充图片 URL(使用文档提供的测试图片 URL)
  • ❌ 绝不允许附件字段为空数组 [] 或空字符串 ''
  • ⚠️ SingleSelect/MultipleSelect 筛选必须使用 key(UUID),不能使用显示文本

测试图片 URL(8个): 详见 references/hap-as-database-guide.md 第 1.3 节


阶段 4: 获取 API 凭证

目标: 获取 HAP API 认证信息

方法一:通过 MCP 配置提取(推荐)

{
  "mcpServers": {
    "hap-mcp-应用名": {
      "url": "https://api.mingdao.com/mcp?HAP-Appkey=xxx&HAP-Sign=xxx"
    }
  }
}

从 URL 参数中提取:

  • HAP-Appkey: 从 URL 参数提取
  • HAP-Sign: 从 URL 参数提取

方法二:手动获取

  1. 登录明道云 → 应用 → 设置 → API 密钥
  2. 复制 Appkey 和 Sign

获取工作表 ID 和字段 ID:

  • 通过 MCP: get_worksheet_structure
  • 通过 API: /v3/app/worksheets/{worksheetId}/structure
  • 浏览器审查元素: 查找 data-controlid 属性

阶段 5: 前端项目搭建

目标: 创建完整的前端项目结构

项目结构:

project-name/
├── index.html          # 主页面
├── css/
│   └── style.css       # 样式文件
├── js/
│   ├── config.js       # HAP 配置(Appkey、Sign、字段映射)
│   ├── api.js          # API 封装(请求、分页、筛选)
│   └── main.js         # 应用逻辑(渲染、事件处理)
├── images/             # 图片资源(可选)
└── README.md           # 项目说明

核心文件模板:

1. js/config.js

const CONFIG = {
    API_BASE_URL: 'https://api.mingdao.com',
    HAP_APPKEY: '你的HAP_APPKEY',
    HAP_SIGN: '你的HAP_SIGN',
    WORKSHEETS: {
        PRODUCTS: '产品表ID',
        NEWS: '新闻表ID'
    },
    PRODUCT_FIELDS: {
        NAME: '产品名称字段ID',
        IMAGE: '产品图片字段ID',
        PRICE: '参考价格字段ID'
    }
};

2. js/api.js

  • 通用请求方法(处理认证、错误)
  • getRows() - 获取记录列表(支持分页、筛选、排序)
  • getRecord() - 获取单条记录详情
  • getFieldValue() - 通用字段值解析函数(支持所有字段类型)

3. js/main.js

  • 应用初始化
  • 数据加载与渲染
  • 事件处理
  • 错误处理

4. index.html

  • 语义化 HTML 结构
  • 响应式设计支持
  • SEO 优化

5. css/style.css

  • 现代、专业的视觉设计
  • 响应式布局
  • 微交互和动画

详细代码模板: 参考 references/hap-as-database-guide.md 第 2-6 节


阶段 6: API 集成

目标: 实现前端与 HAP API V3 的数据交互

核心要点:

  1. CORS 跨域请求 headers: {'HAP-Appkey': CONFIG.HAP_APPKEY, 'HAP-Sign': CONFIG.HAP_SIGN, 'Content-Type': 'application/json'}
  2. 分页查询 API.getRows(worksheetId, {pageIndex: 1, pageSize: 20, includeTotalCount: true, filter: {/* 筛选条件 */}, sorts: [/* 排序 */]})
  3. 字段值解析

- 附件字段:使用 downloadUrl - 选项字段:提取 value 属性 - 关联记录:提取 namesid - 检查框:判断 === '1'

详细 API 使用规范: 参考 references/hap-api-usage-guide.md


阶段 7: 数据渲染

目标: 实现动态数据渲染和用户交互

核心要求:

  • ✅ 动态生成 DOM(使用模板字符串)
  • ✅ 处理空数据状态(友好提示)
  • ✅ 图片加载失败处理(占位图)
  • ✅ 数据格式化(价格、日期等)
  • ✅ 响应式布局
  • ✅ 加载状态提示
  • ✅ 错误处理和用户提示

示例:

async loadProducts() {
    try {
        this.showLoading();
        const data = await API.getRows(CONFIG.WORKSHEETS.PRODUCTS, {
            pageSize: 20,
            filter: {
                type: 'group',
                logic: 'AND',
                children: [{
                    type: 'condition',
                    field: CONFIG.PRODUCT_FIELDS.PUBLISHED,
                    operator: 'eq',
                    value: ['1']
                }]
            }
        });
        this.renderProducts(data.rows);
    } catch (error) {
        this.showError('加载失败,请刷新重试');
    } finally {
        this.hideLoading();
    }
}

阶段 8: 启动开发服务器

目标: 自动启动本地开发服务器,供用户预览

启动方式(按优先级):

  1. Python HTTP Server(推荐) python -m http.server 8000
  2. npx serve npx serve -p 8000
  3. PHP 内置服务器 php -S localhost:8000

执行要求:

  • ✅ 使用 run_in_background: true 参数
  • ✅ 立即向用户输出访问地址
  • ✅ 端口被占用时尝试其他端口(8001、8080、3000)

输出示例:

✅ 项目搭建完成!
🚀 本地服务器已启动
📍 访问地址: http://localhost:8000
💡 提示: 在浏览器中打开上述地址即可预览网站

核心原则(必须遵守)

1. 数据来源原则(必须动态)

允许静态的内容:

  • 导航菜单文案
  • 页脚信息
  • UI 占位文本
  • 固定的展示标题

禁止静态的内容(必须从 HAP 获取):

  • 产品列表和详情
  • 案例展示
  • 新闻资讯
  • 轮播图内容
  • 价格信息
  • 任何业务相关的展示数据

2. 只增不删原则(红线)

✅ 允许的操作:

  • 新增工作表(需确认)
  • 新增字段(需确认)
  • 新增示例数据(需确认)

❌ 严禁的操作:

  • 删除任何已有工作表
  • 删除任何已有字段
  • 修改已有字段的别名(除非用户明确要求)
  • 修改已有数据(除非用户明确要求)

3. 示例数据强制要求

  • ✅ 每个新增工作表必须至少添加 5 条示例数据
  • 🔴 附件字段必须填充图片 URL(最重要!)
  • ✅ 示例数据必须符合字段类型
  • ✅ 示例数据必须可直接用于前端预览

4. SingleSelect/MultipleSelect 筛选规范

🔴 重要警告:筛选必须使用 key(UUID),不能使用显示文本!

// ❌ 错误:使用显示文本
value: ['现代简约']  // 筛选失败!

// ✅ 正确:使用 key
value: ['a1b2c3d4-e5f6-7890-abcd-ef1234567890']  // 筛选成功

// 获取 key 的方法:
// 1. 调用 get_worksheet_structure 获取字段的 options
// 2. 从 options 中找到匹配的 key

常见问题

Q1: 如何获取字段 ID?

方法 1: 使用 MCP(推荐)

mcp__hap_mcp____get_worksheet_structure({
    worksheet_id: '工作表ID',
    responseFormat: 'md'
})

方法 2: API 查询

fetch('https://api.mingdao.com/v3/app/worksheets/{worksheetId}/structure', {
    headers: {
        'HAP-Appkey': 'xxx',
        'HAP-Sign': 'xxx'
    }
})

方法 3: 浏览器审查元素

  • 打开 HAP 工作表
  • F12 检查元素
  • 查找 data-controlid 属性

Q2: 附件字段如何处理?

// 附件字段返回格式
const attachments = row[fieldId]; // Array
// [{downloadUrl: 'https://...', fileName: '图片.jpg'}]

// 获取第一个附件 URL
const imageUrl = attachments[0]?.downloadUrl || '';

// 使用 HAP CDN 参数优化
const thumbnailUrl = `${imageUrl}?imageView2/2/w/300`;

Q3: 如何保护 API 密钥安全?

开发环境: 可直接使用(localhost 不会泄露)

生产环境:

  • 方案 1:使用后端代理(Node.js、PHP 等)
  • 方案 2:使用 Serverless Functions(Vercel、Netlify)
  • 方案 3:限制 HAP API 密钥权限(只读权限)

Q4: 数据量大时如何优化性能?

  1. 分页加载: 设置合理的 pageSize(建议 20-50)
  2. 字段筛选: 只获取需要的字段
  3. 前端缓存: 使用 localStorage 或内存缓存
  4. 懒加载: 滚动到底部时加载更多
  5. 防抖处理: 搜索框使用 debounce

参考资源

核心文档

  • references/hap-as-database-guide.md - 完整的 HAP 前后端项目搭建指南

- 项目概述和架构说明 - 详细步骤(HAP 配置、前端搭建、API 集成) - 核心概念和最佳实践 - 常见问题和解决方案

  • references/hap-api-usage-guide.md - HAP API V3 使用规范

- API 端点和鉴权配置 - 筛选器(Filter)语法详解 - 字段类型处理和数据格式转换 - 完整的代码示例

相关技能

  • HAP MCP 使用指南 - 了解如何使用 HAP MCP 进行应用管理和数据操作
  • HAP 视图插件开发指南 - 如需开发 HAP 视图插件(与本技能不同)

工作流检查清单

在执行本技能时,请确保完成以下所有步骤:

  • 阶段 1: 读取应用结构并评估差距
  • 阶段 2: 获得用户确认(如需要新增结构)
  • 阶段 3: 创建/补充 HAP 数据结构
  • 阶段 3: 添加示例数据(附件字段必须填充图片 URL)
  • 阶段 4: 获取 API 凭证(Appkey、Sign、工作表 ID、字段 ID)
  • 阶段 5: 创建前端项目结构(HTML、CSS、JS)
  • 阶段 5: 编写配置文件(config.js)
  • 阶段 5: 编写 API 封装(api.js)
  • 阶段 5: 编写应用逻辑(main.js)
  • 阶段 6: 实现 API 集成和数据交互
  • 阶段 7: 实现数据渲染和用户交互
  • 阶段 8: 启动本地开发服务器并提供访问地址

注意事项

  1. 必须动态获取数据: 业务数据必须从 HAP API 获取,不能写死在代码中
  2. 用户确认机制: 任何结构变更必须征得用户明确同意
  3. 只增不删原则: 绝不删除现有工作表、字段或数据
  4. 附件字段填充: 示例数据的附件字段必须填充图片 URL
  5. 筛选使用 key: SingleSelect/MultipleSelect 筛选必须使用选项的 key(UUID)
  6. 自动启动服务器: 完成项目搭建后必须自动启动本地开发服务器

技能版本: v1.0 最后更新: 2026-01-11 适用场景: HAP 前后端分离项目搭建

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

30.8%
按下载量换算64

windsurf

24.6%
按下载量换算51

OpenCode

18.79%
按下载量换算39

Codex

12.77%
按下载量换算27

Antigravity

8.74%
按下载量换算18

Gemini CLI

3.16%
按下载量换算7

安全审计

暂无安全审计结果可展示。

权限和风险

external-service

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills