🚀 即插即用的 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
    • 支持双绑定组件(日期范围等),自动绑定 startPropendProp
    • 内置表单校验:required / email / phone / pattern / validator
    • 支持栅格布局控制(span 1-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

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐