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元素
.
