1.網址:https://github.com/greedying/vux-uploader
2.安裝
npm install vux-uploader --save npm install --save-dev babel-preset-es2015
.babelrc
{ "presets": [ ["env", { "modules": false, "targets": { "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] } }], "es2015", "stage-2" ], "plugins": ["transform-runtime"], "env": { "test": { "presets": ["env", "es2015", "stage-2"], "plugins": ["istanbul"] } } }
3.使用
// 引入組件 import Uploader from 'vux-uploader' // 子組件 export default { ... components: { ... Uploader, ... } ... } // 使用組件 <uploader :max="varmax" :images="images" :handle-click="true" :show-header="false" :readonly="true" :upload-url="uploadUrl" name="img" :params="params" size="small" @preview="previewMethod" @add-image="addImageMethod" @remove-image="removeImageMethod" ></uploader>
參數說明:
images 類型: Array 默認值: [],空數組 含義: 圖片數組,格式為 [ { url: '/url/of/img.ong' }, ...] 備注: 變量為數組時,數據流為雙向,在組件內部改變數組的值影響父組件 max 類型: Number 默認值: 1 含義: 圖片最大張數 備注: 圖片達到max值時,新增按鈕消失 showHeader 類型: Boolean 默認值: true 含義: 是否顯示頭部 備注: 控制整個頭部的顯示 title 類型: String 默認值: 圖片上傳 含義: 頭部的標題 備注: 不顯示則留空 showTip 類型: Boolean 默認值: true 含義: 是否顯示頭部數字部分,即1/3部分 備注: 當showHeader為false時,header整體隱藏,此時本參數無效 readonly 類型: Boolean 默認值: false 含義: 是否只讀 備注: 只讀時,新增和刪除按鈕隱藏 handleClick 類型: Boolean 默認值: false 含義: 是否接管新增按鈕的點擊事件,如果是,點擊新增按鈕不再自動出現選擇圖片界面 備注: true時,點擊新增按鈕,則$emit('add-image'),可以在此事件內進行自定義的選擇圖片等操作,此后圖片的新增、上傳、刪除都由使用者接管 autoUpload 類型: Boolean 默認值: true 含義: 選擇圖片后是否自動上傳。是,則調用內部上傳接口。否,則$emit('upload-image', formData)',formData`為圖片內容,用戶可監聽事件自己上傳 備注: handleClick為true時,無法進行圖片選擇,故此參數無效。此參數為false時,選擇圖片后,$emit('upload-image', formData)',formData`為圖片內容 uploadUrl 類型: String 默認值: '' 含義: 接收上傳圖片的url 備注: 需要返回如下格式的json字符串,否則請設置autoUpload為false自行上傳 { result: 0, message: "result不是0時候的錯誤信息", data: { url: "http://image.url.com/image.png" } } name 類型: String 默認值: img 含義: 默認上傳的時候,圖片使用的表單name 備注: 無 params 類型: Object 默認值: null 含義: 上傳文件時攜帶參數 備注: 無 size 類型: String 默認值: normal 含義: 尺寸類型 備注: normal為weui默認尺寸,small為作者定義的小一些的尺寸 capture 類型: String 默認值: '' 含義: input 的capture屬性 備注: 可以設置為camera,此時點擊新增按鈕,部分機型會直接調起相機,注意,各型號手機表現不同,請謹慎使用。handleClick為true時,此屬性無效 emit事件說明 add-image emit時機: 當handleClick參數為true時,點擊新增按鈕 參數: 無 備注: 無 remove-image emit時機: 當handleClick參數為true時,點擊刪除按鈕 參數: 無 備注: 當handleClick為false時,點擊刪除按鈕,組件內部刪除第一張圖片;否則,用戶需要監聽本事件,並進行相應刪除操作 preview emit時機: 點擊任意一張圖片的時候 參數: 圖片對象,格式為 { url: 'imgUrl' } 備注: 暫時沒有實現自動預覽功能,如果需要用戶監聽事件自行實現 upload-image emit時機: handleClick和autoUpload都為false`時,選擇圖片 參數: formData,圖片內容生成的formData 備注: 可以通過vm.$refs.input獲取圖片的input元素
.