# 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/) 预览

vue3 t-ui-plus t-ui-plus npm

## 动态效果图 ### 安装 **建议您使用包管理器 ([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 contributors ## 微信交流群 >目前微信群已超过 200 人,需要加微信好友(请备注 T-ui-Plus),拉大家进群 | 微信二维码 | | :---------------------------------------: | | | ## Git 提交规范 - `ci`: ci 配置文件和脚本的变动; - `chore`: 构建系统或辅助工具的变动; - `fix`: 代码 BUG 修复; - `feat`: 新功能; - `perf`: 性能优化和提升; - `refactor`: 仅仅是代码变动,既不是修复 BUG 也不是引入新功能; - `style`: 代码格式调整,可能是空格、分号、缩进等等; - `docs`: 文档变动; - `test`: 补充缺失的测试用例或者修正现有的测试用例; - `revert`: 回滚操作;