HeyUI元件庫
如果你還不瞭解heyui元件庫,歡迎來我們的官網或者github參觀。
當然,如果能給我們一顆✨✨✨,那是最讚的了!
按需載入
當heyui元件庫的元件越來越多的時候,按需載入的功能終於上線了。
話不多說,先把按需載入的使用方式放出來。
線上示例
以此圖為例,按需載入後,js與css的大小將大幅度減小。
示例程式碼
import Vue from 'vue';
import App from './app.vue';
import { install, Prototypes, Button, DropdownMenu } from 'heyui';
require('../css/module.less');
Vue.use(install, { components: { Button, DropdownMenu }, prototypes: Prototypes });
const app = new Vue({
el: '#app',
render: h => h(App)
});
export default app;
複製程式碼
module.less
@import (less) "../../themes/common.base.less";
@import (less) "../../themes/components/dropdown-menu.less";
複製程式碼
其中,common.base.less將引用系統的一些基礎樣式,其他的元件需要自己載入樣式。
common.base.less
@import (less) "./mixins/index.less";
@import (less) "./fonts/font.less";
@import "extend.less";
@import "checkbox.less";
@import "radio.less";
@import "search.less";
@import "notify.less";
@import "message.less";
@import "notice.less";
@import "modal.less";
@import "tooltip.less";
@import "dropdown.less";
@import "dropdown-custom.less";
@import "tabs.less";
@import "input.less";
@import "input-group.less";
@import "button.less";
@import "grid.less";
@import "word-count.less";
複製程式碼
其他的元件載入請參考以下檔案: github.com/heyui/heyui…
盤點HeyUI元件庫的獨特功能
既然heyui已經支援按需載入了,那接下來就介紹一下系統的一些獨特功能。
在已經使用iviewui或者elementui的前提下,你也可以選擇單獨使用這些功能。
AutoComplete 模糊匹配
其實AutoComplete元件,iview與elementui都有相關的功能,但是從功能性來考慮,heyui幾乎將AutoComplete的功能全覆蓋了。
比如說:
- 繫結值使用key或者完整物件,搜尋的時候,獲取選擇的物件。
- 多選,滿足選擇員工等需求
- 更加完整的事件,資料的改變有哪些事件觸發:enter, blur, picker, remove, clear
- 支援 mustMatch=false 屬性
如果你有類似的需求,可以選擇使用heyui的AutoComplete。
相關文件: AutoComplete文件
DateFullRangePicker 超級日期範圍控制元件
覆蓋日期範圍選擇的所有需求,並且自動將結束日期+1,適配後端的小於查詢。
相關文件: DateFullRangePicker文件
Tree 樹
其實,所有的元件都擁有Tree元件,但是heyui的Tree元件擁有更加細緻的處理。
heyui的Tree元件擁有三種選擇模式:
- all: 只有子集全選才會選中父級(比如:部門選擇)
- some: 只要子集有選擇,父級就會選中(比如:選單選擇,許可權選擇)
- independent: 子父選擇沒有相關性
相關文件: Tree文件
TreePicker
其實,在系統開發過程中,TreePicker是一個需求比較強烈的功能。
雖然TreePicker元件也沒有經常使用,但是,如果有相關需求的時候,能有一個完整的元件提供選擇是一件非常棒的事情。
並且,我們的TreePicker元件提供 單選,多選,覆蓋需求的每個角落。
相關文件: TreePicker文件
Category
Category元件,是其他元件庫都沒有的元件。
主要是用來滿足一些大量標籤資料的選擇,具有很強的通用性。
比如,在我們的應用中,用來選擇很多資訊的行業標籤。
相關文件: Category文件
CategoryPicker
CategoryPicker元件,大概是三級地址聯動的最佳方案選擇了吧,我們提供了非常強大的功能定製。
包括:
- 單選,多選
- 是否顯示所有的層級
- 展示子集數量
- 可以使用繫結key,也可以是物件資料。
- 分佈非同步獲取資料
- 資料 selectable, checkable 控制
相關文件: CategoryPicker文件
DropdownCustom 自定義下拉控制元件
提供自定義Dropdown,使用者可以根據自己的需求定製不同的下拉元件。
相關文件: DropdownCustom文件
其中,還包括右鍵觸發的操作,以heyui-admin系統的tabs為例。
Avatar 頭像資訊
其實,其他元件庫也有頭像元件。
但是,heyui的頭像元件更加關注的是頭像的排版結合,十分適用於系統中的各種資訊展示。
相關文件: Avatar文件
並且,我們還提供了全域性自定義處理src的功能。
// 通過配置可以設定src的全域性處理方式,比如根據width引數設定不同的圖片大小
HeyUI.config("avatar.handleSrc", (src) => {
if (!src) return '';
// this.width 可以獲取元件的引數
let width = this.width;
if (width == undefined) return src;
return `${src}?imageView2/1/w/${width*2}/h/${width*2}`;
});
複製程式碼
ImagePreview 圖片預覽
這種其實包含兩個部分:
- 圖片列表展示
- 圖片預覽功能
圖片列表
圖片列表適用於一些基本的圖片展示需求,可以自定義圖片大小以及圖片間距。
圖片預覽
圖片預覽的功能在系統的各個角落都需求非常強烈。
目前開源比較好的是lightbox2,但是,lightbox2依賴於jquery,為了一個圖片預覽,還需要載入jquery,非常的麻煩。
所以,我們自己開發了一個圖片預覽功能,並且直接通過方法呼叫,比lightbox2的定義更加方便便捷。
相關文件: ImagePreview 圖片預覽
TextEllipsis 超出文字省略
超出文字省略的功能,其實也是屬於系統需求比較強烈,而使用css也很難滿足的功能。
我們開發的元件是一套適用性強,並且能夠完美滿足此類需求的功能。
如下圖所示,我們擁有以下功能:
- 自定義字首
- 自定義字尾
- 配合需求完成展開收起的操作
- 如果產生省略,則tooltip提示,如果沒有產生省略,則不出提示
相關文件: TextEllipsis 超出文字省略
Clipboard 複製剪下板
不知道你是否還在使用clipboard.js,其實,我們的複製剪下板需求非常簡單,而clipboard.js還停留在html,jquery模式,雖然擁有很多定義方式,但是我們完全用不到。
heyui元件庫直接提供一個單獨的方法,使用簡練。
this.$Clipboard({
text: '測試==複製至剪下板的文字==測試',
showSuccessTip: 'Copy Success'
});
複製程式碼
相關文件: Clipboard 複製剪下板
ScrollIntoView 滾動至檢視內
其實,這是一個非常方便的功能,比如說,分頁載入後滾動至頭部,切換頁面時切換至頭部。
不需要自己寫繁瑣的scroll方法,並自帶time引數,設定滾動特效。
相關文件: ScrollIntoView
HeyUI Admin
除了以上說明的那些獨特的功能,我們還擁有一個完整的admin系統。
最後
說了這麼多,還有更多的內容等著你去發現。
github:github.com/heyui/heyui
期待你的star✨✨✨