Install
openclaw skills install @wufengsheng/element-ui-docsElement UI 基于 Vue 2.0 的桌面端组件库中文文档 - 包含 60+ 组件的 API 参考、使用示例、设计指南、安装快速上手
openclaw skills install @wufengsheng/element-ui-docs基于 Vue 2.0 的桌面端组件库完整中文参考。本技能整合了 Element UI 的全部官方文档页,包含组件 API、可直接运行的代码示例、设计原则和快速上手指导。
当用户提问涉及以下任一情况时,应立即启用本技能:
📋 完整组件列表见
references/index.md(61 个组件 + 5 篇指南)
以下示例均提取自官方文档,涵盖最常用的使用模式。假设已通过 Vue.use(ElementUI) 全局注册所有组件。
<!-- 类型变体 -->
<el-button type="primary">主要按钮</el-button>
<el-button type="success">成功按钮</el-button>
<el-button type="danger">危险按钮</el-button>
<!-- 带图标 + 加载态 -->
<el-button type="primary" icon="el-icon-search" :loading="isLoading">
{{ isLoading ? '搜索中...' : '搜索' }}
</el-button>
<el-table :data="tableData" border stripe style="width: 100%">
<el-table-column prop="name" label="姓名" width="120"></el-table-column>
<el-table-column prop="role" label="角色"></el-table-column>
<el-table-column label="操作" width="150">
<template slot-scope="scope">
<el-button size="mini" @click="handleEdit(scope.row)">编辑</el-button>
<el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@current-change="handlePageChange"
:current-page="page"
:page-size="pageSize"
layout="total, prev, pager, next"
:total="total">
</el-pagination>
<el-form :model="form" :rules="rules" ref="form" label-width="80px">
<el-form-item label="用户名" prop="username">
<el-input v-model="form.username"></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="resetForm">重置</el-button>
</el-form-item>
</el-form>
<script>
export default {
data() {
const validateEmail = (rule, value, callback) => {
if (!value) return callback(new Error('邮箱不能为空'));
const re = /\S+@\S+\.\S+/;
re.test(value) ? callback() : callback(new Error('邮箱格式不正确'));
};
return {
form: { username: '', email: '' },
rules: {
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' },
{ min: 3, max: 16, message: '长度在 3 到 16 个字符', trigger: 'blur' }
],
email: [
{ required: true, validator: validateEmail, trigger: 'blur' }
]
}
};
},
methods: {
submitForm() {
this.$refs.form.validate(valid => {
if (valid) console.log('提交数据:', this.form);
});
},
resetForm() {
this.$refs.form.resetFields();
}
}
};
</script>
// 四种类型的消息提示
this.$message.success('操作成功');
this.$message.warning('请注意检查');
this.$message.error('操作失败');
this.$message.info('这是一条普通消息');
// 带配置的弹出通知
this.$notify({
title: '提醒',
message: '你有新的订单待处理',
type: 'warning',
duration: 5000,
position: 'top-right'
});
// 确认对话框(替代原生 confirm)
this.$confirm('确定删除该条记录吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$message.success('删除成功');
}).catch(() => {
this.$message.info('已取消删除');
});
⚠️ 上下文优化:参考文档已拆分为 66 个独立文件(每个组件/指南一个文件)。按需查阅,无需一次性加载。单文件平均 ~2.7K tokens。
references/llms.txt(快速发现入口,标准格式索引全部文档)references/index.md(~900 tokens)references/components/{组件名}.md(61 个文件)references/guides/{指南名}.md(5 个文件)查 Table 组件 → references/components/table.md (~20K tokens)
查 Button 组件 → references/components/button.md (~2K tokens)
查快速上手 → references/guides/quickstart.md (~3K tokens)
查组件列表 → references/index.md (~900 tokens)
1. 先在 index.md 确认组件文件名
2. 读取 components/{组件名}.md 获取完整文档
3. 不要一次性加载所有组件文件(会超出上下文窗口)
1. 读取目标组件的 .md 文件
2. 寻找 ````html` 代码块 —— 这些是完整可运行的示例
3. 示例自包含 <template>、<script>,可直接使用
4. 优先提取核心 <el-*> 模板和关键的 data/methods
Attributes 表格(中文表头):
- 参数 → prop 名称
- 类型 → string / boolean / number / array / object / function
- 可选值 → 枚举值范围
- 默认值 → "-" 表示无默认值
Events / Methods / Slots 表格同理,表头为中文
| 需求 | 搜索关键词 | 关键组件/属性 |
|---|---|---|
| 表单验证 | el-form + rules | rules 对象、validator 自定义校验函数、validate() |
| 表格分页 | el-table + Pagination | el-pagination 的 @current-change、:total |
| 表格多选 | el-table + selection | type="selection" 列 + @selection-change |
| 远程搜索下拉 | remote + el-select | remote、:remote-method、filterable |
| 文件上传 | el-upload | action、:before-upload、:on-success、:file-list |
| 全局提示 | $message / $notify | JS 方法调用,无需组件标签 |
| 确认弹窗 | $confirm | 返回 Promise,.then() 处理确认 |
| 树形控件 | el-tree | :data、node-key、check-strictly |
data(), methods, computed 等)v-model 双向绑定的值类型需与组件期望一致(如 el-select 多选时期望数组)$message、$notify、$confirm)挂载在 Vue 原型上,不需要额外引入babel-plugin-component 按需引入以减小打包体积;文档示例默认已全局注册v-model):所有表单组件均支持 v-model,内部已处理 :value 和 @input$emit 派发事件,常用事件:change、input、click、select、blur、focusheader、footer、label、default)和默认插槽$message、$confirm、$alert、$prompt、$notify 挂载于 Vue.prototype,可在任意组件 this 上调用$refs 操作:通过 this.$refs.xxx 获取组件实例,调用其方法(如表单的 validate()、resetFields())$nextTick:在数据变更后需等到 DOM 更新完成才能操作组件时使用,常用于自动聚焦、展开等场景this.$set() / this.$delete()⚠️ 本技能示例代码仅演示组件用法,未经生产安全审查。复制到生产环境前请完成以下加固:
accept 属性仅为客户端提示,可被绕过。服务端必须独立验证文件类型、大小和内容,使用随机文件名存储v-html、自定义渲染模板或动态插槽内容时,必须对用户输入做 HTML 实体转义el-form 验证规则仅提升用户体验,不可替代服务端校验。敏感操作(密码修改、支付、权限变更)必须服务端二次验证type="password")传输时必须使用 HTTPS,禁止在 URL 参数或日志中传递明文密码Generated by Skill Seeker's unified multi-source scraper