# vuetify-extension **Repository Path**: Exceptation/vuetify-extension ## Basic Information - **Project Name**: vuetify-extension - **Description**: vuetify UI 库的扩展工具库,提供如确认框, 遮罩层,通知框等功能的操作类以及装饰器。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2020-12-28 - **Last Updated**: 2024-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # vuetify-extension 项目基于**vueitfy**UI库,参考**ElementUI**类库并实现了其中常用的`弹框`、`确认框`、`加载框`、`提示框`工具类。而且提供了相对应的**装饰器**供大家更灵活的使用! ## 安装 ``` npm i vuetify-extension ``` ### 初始化 ```javascript import Vue from "vue"; import App from "./App.vue"; import router from "./router"; import vuetify from "./plugins/vuetify"; import install from "vuetify-extension"; Vue.config.productionTip = false; // 使用install方法将Vue与vuetify注入至库中,以确保和项目中保持一致。 install(Vue, vuetify); new Vue({ router, vuetify, render: h => h(App) }).$mount("#app"); ``` ### 使用 目前有4个工具类、1个api、3个装饰器。 api: - [`install(vue, vuetify)`](#install) class: - [`Loader`](#Loader) - [`Notification`](#Notification) - [`ConfirmDialog`](#ConfirmDialog) - [`PopNotification`](#PopNotification) decorators: - [`Loading`](#Loading) - [`Confirm`](#Confirm) - [`Notice`](#Notice) ### install(vue, vuetify) 初始化扩展库,将vue,vueitfy 注入进库中。保证库的行为与项目一致。 ```javascript import Vue from "vue"; import App from "./App.vue"; import router from "./router"; import vuetify from "./plugins/vuetify"; import install from "vuetify-extension"; Vue.config.productionTip = false; // 使用install方法将Vue与vuetify注入至库中,以确保和项目中保持一致。 install(Vue, vuetify); new Vue({ router, vuetify, render: h => h(App) }).$mount("#app"); ``` ### Loader ```typescript class Loader { static Loading(text: string, options?: object): string; static Close(id: string); static CloseAll(); } ``` #### Loading 开启一个遮罩层 | 参数名 | 类型 | 说明 | 必需 | | ------- | ------- | ---------------- | ---- | | text | string | 加载中显示的文字 | 是 | | options | object? | 配置项 | 否 | 配置项结构: | 属性 | 类型 | 说明 | 默认值 | | ------ | ------ | --------------------------- | -------- | | text | string | 遮罩层的文字 | '加载中' | | size | int | `v-progress-circular`的属性 | 100 | | width | int | `v-progress-circular`的属性 | 8 | | color | string | `v-progress-circular`的属性 | '#fff' | | zIndex | int | 遮罩层的`z-index` | 5 | | 返回值类型 | 说明 | | ---------- | ---------------------------- | | string | 此次遮罩层的id,用于手动关闭 | #### Close 关闭一个遮罩层 | 参数名 | 类型 | 说明 | 必需 | | ------ | ------ | ---------- | ---- | | id | string | 遮罩层的Id | 是 | #### CloseAll 关闭所有遮罩层 ### Notification ```typescript class Notification { static notify(options: any); static success(text: string); static error(text: string); static primary(text: string); static warn(text: string); } ``` #### notify 弹出提示框 | 参数名 | 类型 | 说明 | 必需 | | ------- | ------ | ------ | ---- | | options | object | 配置项 | 是 | 配置项结构: | 属性 | 类型 | 说明 | 默认值 | | --------- | ------- | ------------------------------ | ------ | | message | string | 提示框文字 | '' | | duration | int | `v-snackbar`的属性,显示多少秒 | 3000 | | closeable | boolean | 是否显示关闭的按钮 | false | | color | string | `v-snackbar`的属性 | '' | #### success 弹出提示框,颜色跟随主题的`success` | 参数名 | 类型 | 说明 | 必需 | | ------ | ------ | -------- | ---- | | text | string | 提示内容 | 是 | #### error 弹出提示框,颜色跟随主题的`error` | 参数名 | 类型 | 说明 | 必需 | | ------ | ------ | -------- | ---- | | text | string | 提示内容 | 是 | #### primary 弹出提示框,颜色跟随主题的`primary` | 参数名 | 类型 | 说明 | 必需 | | ------ | ------ | -------- | ---- | | text | string | 提示内容 | 是 | #### warn 弹出提示框,颜色跟随主题的`warn` | 参数名 | 类型 | 说明 | 必需 | | ------ | ------ | -------- | ---- | | text | string | 提示内容 | 是 | ### ConfirmDialog ```typescript class ConfirmDialog{ static Confirm(title: string, context: string, yesText: string, noText: string): Promise; } ``` #### Confirm 弹出确认框 | 参数名 | 类型 | 说明 | 必需 | | ------- | ------ | ---------------------------- | ---- | | title | string | 确认框的标题 | 是 | | context | string | 确认框的文本 | 是 | | yesText | string | 确认按钮的文字 | 是 | | noText | string | 取消按钮的文字) | 是 | ### PopNotification ```typescript class PopNotification{ static notify(options: object); static success(text: string, options?: object); static error(text: string, options?: object); static primary(text: string, options?: object); static warn(text: string, options?: object); } ``` #### notify 弹出提示框 | 参数名 | 类型 | 说明 | 必需 | | ------- | ------ | ------ | ---- | | options | object | 配置项 | 是 | 配置项结构: | 属性 | 类型 | 说明 | 默认值 | | ---------- | ------ | -------------- | ------- | | message | string | 提示框文字 | '' | | width | string | 提示框宽度 | '300px' | | height | string | 提示框高度 | '180px' | | color | string | 标题的背景色 | '' | | title | | | | | titleColor | string | 标题的文字颜色 | 'white' | | horizontal | string | 水平方向位置 | 'left' | | vertical | string | 垂直方向位置 | 'top' | #### success 弹出提示框,颜色跟随主题的`success` | 参数名 | 类型 | 说明 | 必需 | | ------- | ------ | -------- | ---- | | text | string | 提示内容 | 是 | | options | object | 配置项 | 否 | #### error 弹出提示框,颜色跟随主题的`error` | 参数名 | 类型 | 说明 | 必需 | | ------ | ------ | -------- | ---- | | text | string | 提示内容 | 是 | | options | object | 配置项 | 否 | #### primary 弹出提示框,颜色跟随主题的`primary` | 参数名 | 类型 | 说明 | 必需 | | ------ | ------ | -------- | ---- | | text | string | 提示内容 | 是 | | options | object | 配置项 | 否 | #### warn 弹出提示框,颜色跟随主题的`warn` | 参数名 | 类型 | 说明 | 必需 | | ------ | ------ | -------- | ---- | | text | string | 提示内容 | 是 | | options | object | 配置项 | 否 | ### Loading 加载遮罩层的装饰器。 在函数执行前打开遮罩,并在函数结束后关闭遮罩。 **在函数执行出现异常时,也将会自动关闭遮罩** | 参数名 | 类型 | 说明 | | ------ | ------ | ---------- | | msg | string | 遮罩层文字 | ### Confirm 确认框的装饰器。 在函数执行前弹出确认框,只有确认才可以进行函数中。 | 参数名 | 类型 | 说明 | 必需 | | ------- | ------ | ---------------------------- | ---- | | title | string | 确认框的标题 | 是 | | context | string | 确认框的文本 | 是 | | yesText | string | 确认按钮的文字(默认为“是”) | 否 | | noText | string | 取消按钮的文字(默认为“否”) | 否 | ### Notice 提示框的装饰器。 在函数执行成功后,将弹出设置的成功提示信息,否则将弹出设置的失败提示信息。 | 参数名 | 类型 | 说明 | 必须 | | ---------- | ------ | ------------------------ | ---- | | successMsg | string | 函数执行成功时的提示信息 | 是 | | errorMsg | string | 函数执行失败时的提示信息 | 否 | ## 计划 - [ ] typescript重构 - [ ] 加入`VNode`与`html`片段的内容支持 - [ ] 回补单元测试 ## 关于 halo, 我是若羽,如果这个库能对你有所帮助那是最好的。 如果使用过程中有什么问题欢迎随意提出`issues`,或者直接邮箱联系。 欢迎大家贡献代码,不断完善它。 ## License MIT License