# t-ui-plus
**Repository Path**: wocwin/t-ui-plus
## Basic Information
- **Project Name**: t-ui-plus
- **Description**: 基于vue3+ts+Element-plus二次封装基础组件文档,希望对你有用。
- **Primary Language**: TypeScript
- **License**: MIT
- **Default Branch**: dev
- **Homepage**: https://wocwin.github.io/t-ui-plus/
- **GVP Project**: No
## Statistics
- **Stars**: 150
- **Forks**: 57
- **Created**: 2022-09-21
- **Last Updated**: 2025-06-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: vue3, element-plus, 组件封装, vitepress, monorepo
## README
# T-ui-Plus
## [Vue2 基于 Element-ui基础组件传送门](https://github.com/wocwin/t-ui)
> 基于 Element-ui 二次封装基础组件地址
>
## [T-ui-Plus使用Demo项目](https://github.com/wocwin/wocwin-admin)
>`wocwin-admin`是基于 Vue3.3、TypeScript、Vite4、Pinia、Element-Plus 开源的一套后台管理模板;此项目全面使用了`T-ui-Plus`二次封装基础组件库
## 介绍
> 基于 vue3+ ts+ Element-plus 二次封装组件
这是我在学习 Vue3 中基于[Element-plus](https://element-plus.org/zh-CN/) 二次封装基础组件文档,希望对你有用。可查看 [详细组件案例文档](https://wocwin.github.io/t-ui-plus/) 预览
## 动态效果图
### 安装
**建议您使用包管理器 ([pnpm](https://pnpm.io/)推荐 , [yarn](https://classic.yarnpkg.com/lang/en/),[npm](https://www.npmjs.com/)) 安装 @wocwin/t-ui-plus**。
```sh [pnpm]
pnpm install @wocwin/t-ui-plus -S
```
```sh [yarn]
yarn add @wocwin/t-ui-plus
```
```sh [npm]
npm install @wocwin/t-ui-plus -S
```
## 全局注册使用
> ### 前提条件:使用项目必须全局注册 Element-plus组件库
```js
// 在main.js中按下引入
import { createApp } from "vue";
import App from "./App.vue";
import ElementPlus from "element-plus";
import "element-plus/dist/index.css";
import "element-plus/theme-chalk/dark/css-vars.css";
import locale from "element-plus/es/locale/lang/zh-cn";
// element-plus图标
import * as ElementPlusIconsVue from "@element-plus/icons-vue";
import TuiPlus from '@wocwin/t-ui-plus'
import '@wocwin/t-ui-plus/index.css'
const app = createApp(App)
// 注册所有图标
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.component(key, component);
}
// 注册ElementPlus
app.use(ElementPlus, {
locale // 语言设置
// size: Cookies.get('size') || 'medium' // 尺寸设置
});
app.use(TuiPlus)
app.mount('#app')
```
## 按需引入
```js
// 在main.js中按下引入
import '@wocwin/t-ui-plus/index.css'
// 单个.vue文件引入
```
## 浏览器直接引入
直接通过浏览器的 HTML 标签导入 @wocwin/t-ui-plus,然后就可以使用全局变量 `TuiPlus` 了。
根据不同的 CDN 提供商有不同的引入方式, 我们在这里以[unpkg](https://unpkg.com) 和 [jsDelivr](https://jsdelivr.com) 举例。 你也可以使用其它的 CDN 供应商。
### unpkg
```html
```
### jsDelivr
```html
```
## 全部组件如下
| 组件名称 | 说明 |
| :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |
| TLayoutPage | 布局页面 |
| TLayoutPageItem | 布局页面子项 |
| TAdaptivePage | [一屏组件](https://wocwin.github.io/t-ui-plus/components/TAdaptivePage/base.html?_blank)(继承TTable 及 TQueryCondition 组件的所有属性、事件、插槽、方法) |
| TQueryCondition | [条件查询组件](https://wocwin.github.io/t-ui-plus/components/TQueryCondition/base.html?_blank) |
| TTable | [表格组件](https://wocwin.github.io/t-ui-plus/components/TTable/base.html?_blank) |
| Virtualized TTable | [虚拟列表](https://wocwin.github.io/t-ui-plus/components/TTableVirtual/base.html?_blank) |
| TForm | [表单组件](https://wocwin.github.io/t-ui-plus/components/TForm/base.html?_blank) |
| TSelectTable | [下拉选择表格组件](https://wocwin.github.io/t-ui-plus/components/TSelectTable/base.html?_blank) |
| Virtualized TSelectTable | [下拉选择虚拟表格组件](https://wocwin.github.io/t-ui-plus/components/multipleVirtual/base.html?_blank) |
| TSelectIcon | [图标选择组件](https://wocwin.github.io/t-ui-plus/components/TSelectIcon/base.html?_blank) |
| TSelect | [下拉选择组件](https://wocwin.github.io/t-ui-plus/components/TSelect/base.html?_blank) |
| TDetail | [详情组件](https://wocwin.github.io/t-ui-plus/components/TDetail/base.html?_blank) |
| TButton | [防抖按钮组件](https://wocwin.github.io/t-ui-plus/components/TButton/base.html?_blank) |
| TStepWizard | [步骤条组件](https://wocwin.github.io/t-ui-plus/components/TStepWizard/base.html?_blank) |
| TTimerBtn | 定时按钮组件 |
| TModuleForm | [模块表单/详情组件](https://wocwin.github.io/t-ui-plus/components/TModuleForm/base.html?_blank) |
| TDatePicker | [日期选择器组件](https://wocwin.github.io/t-ui-plus/components/TDatePicker/base.html?_blank) |
| TRadio | [单选组件](https://wocwin.github.io/t-ui-plus/components/TRadio/base.html?_blank) |
| TCheckbox | [多选组件](https://wocwin.github.io/t-ui-plus/components/TCheckbox/base.html?_blank) |
| TChart | [图表组件](https://wocwin.github.io/t-ui-plus/components/TChart/base.html?_blank) |
| TTabs | [标签页组件](https://wocwin.github.io/t-ui-plus/components/TTabs/base.html?_blank) |
| TSelectIcon | [图标选择组件](https://wocwin.github.io/t-ui-plus/components/TSelectIcon/base.html?_blank) |
## Vue - Official (Volar)待验证
```js
// 需要在使用的项目的tsconfig.json文件中添加以下
compilerOptions:{
"types": [
"@wocwin/t-ui-plus/index.d.ts"
],
}
```
## 自动按需导入 (暂不支持--待完善)
- 1. 安装插件
```sh
pnpm install -D unplugin-vue-components unplugin-auto-import @t-ui-plus/resolver
```
- 2. 配置 `vite.config.ts` 或者配置 `webpack(vue).config.js`
### vite.config.ts配置
```js
// vite.config.ts
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import { TuiPlusResolver } from '@t-ui-plus/resolver'
export default defineConfig({
// ...
plugins: [
// ...
AutoImport({
resolvers: [ElementPlusResolver()]
}),
Components({
resolvers: [ElementPlusResolver(), TuiPlusResolver()]
})
]
})
```
### vue.config.js配置
```js
const { defineConfig } = require('@vue/cli-service')
const AutoImport = require('unplugin-auto-import/webpack')
const Components = require('unplugin-vue-components/webpack')
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')
const { TuiPlusResolver } = require('@t-ui-plus/resolver')
module.exports = defineConfig({
// ...
configureWebpack: {
plugins: [
// ...
AutoImport({
resolvers: [ElementPlusResolver()]
}),
Components({
resolvers: [TuiPlusResolver(), ElementPlusResolver()]
})
]
}
})
```
## 安装依赖
> ### 注意: 本地环境版本最好安装 [Node.js 18.x+](https://nodejs.org/en)、[pnpm 7.x+](https://github.com/pnpm/pnpm/)
```shell
npm install -g pnpm
# 安装依赖
pnpm install --registry=https://registry.npmjs.org/
>pnpm config get registry 查看当前指向源
# 如果安装依赖失败,可以尝试使用淘宝镜像 --registry=https://registry.npmmirror.com/
>pnpm config set registry https://registry.npmmirror.com/ 切换淘宝镜像源
>pnpm install
```
## 本地运行 vitepress 中组件文档
```shell
// docs项目(文档demo示例)基于vue3+vite项目
npm run docs:dev
```
## Thanks to all the contributors
## 微信交流群
>目前微信群已超过 200 人,需要加微信好友(请备注 T-ui-Plus),拉大家进群
| 微信二维码 |
| :---------------------------------------: |
|
|
## Git 提交规范
- `ci`: ci 配置文件和脚本的变动;
- `chore`: 构建系统或辅助工具的变动;
- `fix`: 代码 BUG 修复;
- `feat`: 新功能;
- `perf`: 性能优化和提升;
- `refactor`: 仅仅是代码变动,既不是修复 BUG 也不是引入新功能;
- `style`: 代码格式调整,可能是空格、分号、缩进等等;
- `docs`: 文档变动;
- `test`: 补充缺失的测试用例或者修正现有的测试用例;
- `revert`: 回滚操作;