自動補全插件有很多,比如jquery.typeahead.js,vue2.0中可以用element的組件庫,vue1.0中目前還沒發現好的組件庫,就自己模仿寫一個:
使用vue1.0腳手架。需要安裝lodash,來處理搜索,一個完整的組件需要要有獨立的事件,方法和功能,輸入時根據輸入的字符對數據源進行模糊檢索,點擊選擇數據:
- 功能描述:
- 點擊輸入框,彈出下拉框,彈出source中的數據
- 選擇下拉框中的數據,關閉下拉框
- 組件失去焦點,關閉下拉框(不是輸入框失去焦點)
- 輸入的中文轉化為拼音首字母進行搜索
- 搜索排序還沒解決...(js不知道怎么實現達到高效率,可以使用ajax,動態加載數據,排序問題交給后臺)
- 組件參數:
名稱 | 類型 | 默認 | 描述 |
---|---|---|---|
source | Array | [] | 數據源,是一個對象數組 |
searchFields | String | '' | 搜索時搜索的字段,是一個逗號分割的字符串,格式 field1,field2,....field3 |
txtFields | String | '' | 選擇時顯示的字段,是一個逗號分割的字符串,格式 field1,field2,....field3 |
- 事件列表:
事件名稱 | 參數 | 描述 |
---|---|---|
autoFocus | 組件獲得焦點 | |
autoBlur | 組件失去焦點 | |
autoKeyup | 組件鍵盤事件 | |
autoClick | 組件單機事件 | |
autoDownDropOpen | 打開下拉框 | |
autoDownDropClose | 關閉下拉框 | |
autoSelected | 選擇數據執行事件 | |
txtClick | 輸入框單機事件 | |
txtFocus | 輸入框獲得焦點 | |
txtBlur | 輸入框失去焦點 | |
txtKeyup | 輸入框鍵盤事件 |
- 目錄結構
Autocomplate
--auto-full.vue // 組件
--searchDate.js // 搜索接口
寫的比較爛~~,后續在優化