# ease-ui
**Repository Path**: yun_hua_admin/ease-ui
## Basic Information
- **Project Name**: ease-ui
- **Description**: Ease UI 是一套为「快速复制」而生的 Vue 3 业务组件库。每个组件都是独立的 .vue 单文件,不依赖任何外部样式或工具函数,直接复制到你的项目即可使用。它仅依赖 Element Plus,却解决了中后台开发中表格选择混乱、搜索表单代码臃肿、日期范围绑定繁琐等真实痛点,让组件复用像复制代码一样简单。
- **Primary Language**: TypeScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: http://1.14.65.79
- **GVP Project**: No
## Statistics
- **Stars**: 12
- **Forks**: 1
- **Created**: 2026-03-24
- **Last Updated**: 2026-03-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Ease UI
🚀 即插即用的 Vue 3 业务组件库,让中后台开发回归简单
📋 更新记录 |
🌐 在线预览 |
⭐ Gitee 仓库
Ease UI 是一套为「快速复制」而生的 Vue 3 业务组件库。每个组件都是独立的 .vue 单文件,不依赖任何外部样式或工具函数,直接复制到你的项目即可使用。它仅依赖 Element Plus,却解决了中后台开发中表格选择混乱、搜索表单代码臃肿、日期范围绑定繁琐等真实痛点,让组件复用像复制代码一样简单。
---
## 💡 项目初衷
在中后台系统开发中,我们频繁遇到这些问题:
| 痛点 | 现状 |
|-------------------------|------------------------------------------|
| 🔧 **组件库太重** | 引入一套组件库,需要学习整套 API、主题配置、构建配置,成本太高 |
| 📋 **复制粘贴难** | 想从项目 A 复用一个组件到项目 B,发现依赖了各种公共样式、工具函数,拆不出来 |
| 🧩 **Element Plus 不够用** | 基础组件有了,但业务组件(如带展开/收起的搜索表单、智能表格)还得自己写 |
| 🔄 **重复造轮子** | 每个项目都要重新实现表格选择、日期范围绑定、表单布局... |
**于是,Ease UI 诞生了。**
> 打造一套**极致轻量、即拷即用**的业务组件,让开发者可以像复制一段代码一样简单地复用组件。
---
## ✨ 核心优势
### 🎯 单文件组件,即拷即用
每个组件都是**完全独立的 `.vue` 单文件**,包含:
- ✅ 完整的 `` 模板
- ✅ 独立的 `
```
**核心优势:**
- 🎯 **贴合表单模型** - `start`/`end` 直接对应后端接口字段,无需转换
- 🔄 **独立响应** - 开始/结束日期变化分别触发 `update:start` / `update:end`
- 📡 **统一 change 事件** - 同时获取 `{ start, end }` 对象
- 🎨 **视觉统一** - 两个日期选择器 + 分隔符,外观一体化
- 📏 **尺寸联动** - 支持 `large` / `default` / `small` 三种尺寸
---
### 📊 超级表格 (xly-table)
**痛点解决:** 中后台表格需求复杂,Element Plus 表格配置繁琐,二次封装困难。
**我们的方案:** 一个组件覆盖 90% 的表格场景
```vue
```
**核心特性:**
| 特性 | 说明 |
|-----------------|--------------------------------------------------------|
| 🎯 **单选/多选模式** | `selection-mode="single"` 或 `"multiple"`,单选使用 Radio 样式 |
| 📋 **列固定** | `fixed: 'left'` / `fixed: 'right'`,自动处理阴影和层级 |
| 🔧 **列拖拽排序** | 可视化拖拽调整列顺序,实时同步 |
| 👁️ **列显示控制** | 内置列设置面板,动态显示/隐藏列 |
| 📄 **服务端/前端分页** | 智能识别,传入 `total` 即启用服务端分页 |
| 🔍 **排序与筛选** | 点击表头排序,支持自定义排序函数 |
| ✏️ **单元格编辑** | 支持行内编辑模式 |
| 📐 **自适应宽度** | 自动计算最小宽度,防止列被压缩 |
| 💬 **超长提示** | `ellipsis: true` 自动显示 Tooltip |
**选择行优化:**
```typescript
// 使用 Map 存储选择状态,解决对象引用比较问题
const selectedMap = ref