🚀 XT-Element-UI:基于 Vue 2.7 + ElementUI 的企业级组件库

# 🚀 XT-Element-UI:基于 Vue 2.7 + ElementUI 的企业级组件库

30+ 高质量组件,开箱即用,让你的企业级开发效率翻倍!


# 🔥 为什么选择 XT-Element-UI?

在日常的企业级开发中,你是否遇到过以下痛点:

  • 🎨 ElementUI 原生组件样式不够精致,二次开发成本高
  • 📊 图表组件与业务系统耦合度高,复用困难
  • 🌓 主题切换需要大量 CSS 覆盖,代码冗余
  • 🔄 审批流程轨迹展示丑陋,难以定制

XT-Element-UI 正是为解决这些痛点而生!基于 Vue 2.7 + ElementUI 构建,提供 30+ 企业级组件,覆盖布局、表单、数据展示、图表、工作流等常见场景。


# ✨ 核心亮点

# 1️⃣ 丰富的组件体系

├── 🎨 基础组件 (13个)
│   ├── XtButton / XtCard / XtFlexBox
│   ├── XtInput / XtText / XtTime
│   ├── XtGridBox / XtGridItem
│   └── XtStepPrice / XtList ...
├── 🔧 扩展组件 (15个)
│   ├── XtTable (虚拟滚动)
│   ├── XtSelectTree / XtTransferTree
│   ├── XtUpload (图片预览)
│   └── XtFlow (审批流程轨迹) ...
└── 📊 图表组件 (5个)
    ├── XtBar / XtLine / XtPie
    └── XtMulti (组合图)

# 2️⃣ 开箱即用的主题系统

无需复杂配置,轻松切换明暗主题:

<template>
  <xt-config-provider 
    tag="template"
    :proxyElement="htmlElement"
    :theme="theme"
    :primaryColor="primaryColor"
    :injectBackground="true"
  >
    <your-app />
  </xt-config-provider>
</template>

<script>
export default {
  data() {
    return {
      theme: 'white',      // 'white' | 'dark'
      primaryColor: '#1890ff',
      htmlElement: null
    }
  },
  mounted() {
    this.htmlElement = document.querySelector('html')
  },
  methods: {
    changeTheme(newTheme) {
      this.theme = newTheme
    }
  }
}
</script>

# 3️⃣ 优雅的审批流程轨迹

XtFlow 组件专为企业级审批场景设计:

  • 📐 纯纵向布局,规避行内拓扑图的丑陋
  • 📦 自动折叠长审批链,控制页面高度
  • ✅ 区分通过/驳回/待办/转办四种状态
  • 🎯 原生对接 Flowable 工作流后端数据
<xt-flow 
  :data="flowData" 
  :rounded="'square'"
  @node-click="handleNodeClick"
>
  <template #node-action="{ node }">
    <el-button size="mini">查看详情</el-button>
  </template>
</xt-flow>

# 4️⃣ 强大的图表能力

内置 ECharts 封装,支持柱状图、折线图、饼图、组合图:

<xt-bar 
  :data="chartData" 
  :theme="theme"
  :size="'medium'"
/>

<xt-multi 
  :data="multiData" 
  :type="['line', 'bar']"
/>

# 5️⃣ 灵活的布局组件

<!-- 弹性布局 -->
<xt-flex-box :gap="'16px'" :direction="'row'" :align="'center'">
  <xt-button>按钮1</xt-button>
  <xt-button>按钮2</xt-button>
</xt-flex-box>

<!-- 网格布局 -->
<xt-grid-box :cols="4" :gap="'16px'">
  <xt-grid-item v-for="item in list" :key="item.id">
    <xt-card-item :title="item.title" :value="item.value" />
  </xt-grid-item>
</xt-grid-box>

# 📦 快速开始

# 安装

npm install xt-element-ui --save

# 全局引入

import Vue from 'vue'
import XtElementUI from 'xt-element-ui'
import 'xt-element-ui/lib/index.css'

Vue.use(XtElementUI)

# 按需引入

import XtButton from 'xt-element-ui/lib/xt-button'
import XtCard from 'xt-element-ui/lib/xt-card'
import 'xt-element-ui/lib/xt-button/style.css'
import 'xt-element-ui/lib/xt-card/style.css'

Vue.component('XtButton', XtButton)
Vue.component('XtCard', XtCard)

# 🌐 资源链接

资源 链接
📖 在线文档 https://JobWebNie.github.io/xt-element-ui/
🐛 GitHub 仓库 https://github.com/JobWebNie/xt-element-ui
📦 npm 主页 https://www.npmjs.com/package/xt-element-ui
📝 更新日志 https://github.com/JobWebNie/xt-element-ui/blob/main/CHANGELOG.md

# 🤝 贡献指南

欢迎提交 Issue 和 Pull Request!如果你有好的组件想法或发现 Bug,欢迎参与贡献。


# 📄 License

MIT License


如果觉得这个组件库对你有帮助,欢迎 ⭐ Star 支持一下!你的支持是我们持续更新的动力!

#Vue #ElementUI #组件库 #前端 #企业级