【EaseUI】2026-05-11 项目更新:增加xly-super-form快速表单
🚀 即插即用的 Vue 3 业务组件库,让中后台开发回归简单
Ease UI 是一套为「快速复制」而生的 Vue 3 业务组件库。每个组件都是独立的 .vue 单文件,不依赖任何外部样式或工具函数,直接复制到你的项目即可使用。它仅依赖 Element Plus,却解决了中后台开发中表格选择混乱、搜索表单代码臃肿、日期范围绑定繁琐等真实痛点,让组件复用像复制代码一样简单。
✨ 新增
-
xly-super-form(快速表单组件)
src/components/xly-super-form/- 基于配置驱动的高效表单组件,支持双绑定数据同步
- 支持多种组件类型:
input/select/datePicker/dateRangePicker/dateTimePicker/dateTimeRangePicker/timePicker/timeRangePicker/cascader/switch/rate/imageUpload/user - 支持双绑定组件(日期范围等),自动绑定
startProp和endProp - 内置表单校验:
required/email/phone/pattern/validator - 支持栅格布局控制(
span1-24) - 支持标签宽度、必填标记、尺寸控制
- 支持远程搜索方法(
remoteMethod) - 暴露方法:
validate/validateField/resetFields/clearValidate/submit/getFormData
-
useFormFields(表单字段生成器)
src/components/xly-super-form/useFormFields.ts- 链式调用风格的表单字段配置工具,简化表单定义
- 自动推断中文标签(如
name→ “姓名”、“phone” → “手机号”) - 支持四种参数风格:
input('name')/input('name', '用户名')/input('name', { required: true })/input('name', '用户名', { span: 12 }) - 日期范围支持四种调用方式,自动生成
startProp/endProp - 链式方法:
$required()/$span()/$label()/$noLabel()/$props()/$rule()/$options()/$dict()/$remote()/$range() - 内置校验规则工厂:
rules.required()/rules.email()/rules.phone()/rules.pattern()/rules.custom() - 工具函数:
pick()数据提取 /divider()分隔线 /title()标题
使用示例
import { useFormFields } from '@/components/xly-super-form/useFormFields'
const { input, textarea, password, rules } = useFormFields()
const fields = [
input('name', '姓名', { required: true }),
input('phone', '手机号', { rules: rules.phone() }),
input('email', '邮箱', { rules: rules.email() }),
textarea('remark', '备注', { props: { rows: 3 } }),
password('password', '密码'),
]









🐛 修复
- search-form搜索表单:修复重置事件触发顺序问题
- 调整 reset 事件在 modelValue 更新后的触发顺序
- 确保表单重置时数据同步的一致性
- select下拉框:修复下拉框单项模式添加选项失败的问题
💡 项目初衷
在中后台系统开发中,我们频繁遇到这些问题:
| 痛点 | 现状 |
|---|---|
| 🔧 组件库太重 | 引入一套组件库,需要学习整套 API、主题配置、构建配置,成本太高 |
| 📋 复制粘贴难 | 想从项目 A 复用一个组件到项目 B,发现依赖了各种公共样式、工具函数,拆不出来 |
| 🧩 Element Plus 不够用 | 基础组件有了,但业务组件(如带展开/收起的搜索表单、智能表格)还得自己写 |
| 🔄 重复造轮子 | 每个项目都要重新实现表格选择、日期范围绑定、表单布局… |
于是,Ease UI 诞生了。
打造一套极致轻量、即拷即用的业务组件,让开发者可以像复制一段代码一样简单地复用组件。
✨ 核心优势
🎯 单文件组件,即拷即用
每个组件都是完全独立的 .vue 单文件,包含:
- ✅ 完整的
<template>模板 - ✅ 独立的
<script setup>逻辑 - ✅ 自包含的
<style scoped>样式
无需任何配置,直接复制 .vue 文件到你的项目即可使用!
# 只需要这一个文件
src/components/xly-button/index.vue
# 不需要:
❌ 额外的 CSS 文件
❌ 公共样式依赖
❌ 复杂的构建配置
❌ 主题变量文件
🔌 仅依赖 Element Plus
本组件库仅依赖 Element Plus(及其图标库),不引入其他 UI 组件库:
{
"dependencies": {
"element-plus": "^2.13.6",
"@element-plus/icons-vue": "^2.3.2"
}
}
依赖说明:
- 🎨 Element Plus - 仅使用其图标组件(
@element-plus/icons-vue) - 🚫 无其他 UI 库 - 不依赖 Ant Design Vue、Naive UI、Vuetify 等
- 🚫 无样式库 - 不依赖 Tailwind CSS、UnoCSS 等原子类框架
- 📝 纯 Vue 3 + SCSS - 所有组件样式独立编写
这意味着:
- 如果你的项目已经使用 Element Plus,可以无缝集成
- 如果你的项目没有 Element Plus,只需安装它即可
- 不会有多个 UI 库的样式冲突问题
如果你觉得这个项目还不错或对你有帮助,欢迎到 Gitee 或 GitHub 上点个 Star,这是对作者最好的支持~开源不易,且用且珍惜。
🔗 Gitee:https://gitee.com/yun_hua_admin/ease-ui
🔗 GitHub:https://github.com/Momingyun/ease-ui
🔗 预览地址:https://ease-ui.com
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)