Browse Source

文件上传hook

devlop
邓雄飞 4 years ago
parent
commit
2e38465c8b
3 changed files with 49 additions and 26 deletions
  1. 6
      pages/add-user/index.vue
  2. 9
      pages/enterprise-info/index.vue
  3. 60
      utils/hook.js

6
pages/add-user/index.vue

@ -393,9 +393,9 @@ export default {
},
selectedImage(type) {
uploadImage()
.then((url) => {
if (url) {
this.form[type] = url
.then((urls) => {
if (urls) {
this.form[type] = urls[0]
}
})
.catch((e) => {

9
pages/enterprise-info/index.vue

@ -366,9 +366,10 @@ export default {
},
selectedImage(type) {
uploadImage()
.then((url) => {
if (url) {
this.form[type] = url
.then((urls) => {
if (urls) {
this.form[type] = urls[0]
console.log('urls', urls)
}
})
.catch((e) => {
@ -381,7 +382,7 @@ export default {
cancel() {
//
if (this.operation === 'add') {
go2('client', true)
go2('client', {}, true)
} else {
back()
}

60
utils/hook.js

@ -94,9 +94,10 @@ export function exit() {
/**
* 文件上传
* @param {array} sourceType 上传的方式 album:相册 camera:相机
* @return {Promise} 以数组的形式返回对应的文件地址
* @param {number} count 上传的数量
* @return {Promise<string[]>} 以数组的形式返回对应的文件地址
*/
export function uploadImage(sourceType = ['album', 'camera']) {
export function uploadImage(sourceType = ['album', 'camera'], count = 1) {
return new Promise((resolve, reject) => {
uni.chooseImage({
count: 1,
@ -104,24 +105,16 @@ export function uploadImage(sourceType = ['album', 'camera']) {
sourceType: sourceType,
success: (res) => {
const tempFilePaths = res.tempFilePaths
uni.uploadFile({
url: uploadUrl.image,
filePath: tempFilePaths[0],
name: 'image',
fileType: 'image',
success: (res) => {
let result = JSON.parse(res.data)
if (result.data) {
resolve(result.data)
} else {
reject(result.message)
}
},
fail: (err) => {
console.error('uploadFile error:', err)
reject(err)
}
let cache = tempFilePaths.map((path) => {
return uploadFile(path, 'image')
})
Promise.all(cache)
.then((res) => {
resolve(res)
})
.catch((err) => {
reject(err)
})
},
fail: (err) => {
console.error('chooseImage error:', err)
@ -130,3 +123,32 @@ export function uploadImage(sourceType = ['album', 'camera']) {
})
})
}
/**
* 单文件上传
* @param {string} path 文件路径
* @param {string} type 文件类型 image | file默认为image
* @returns {Promise<string>} 返回单文件上传地址
*/
export function uploadFile(path, type = 'image') {
return new Promise((resolve, reject) => {
uni.uploadFile({
url: uploadUrl[type],
filePath: path,
name: type,
// fileType: type,
success: (res) => {
let result = JSON.parse(res.data)
if (result.data) {
resolve(result.data)
} else {
reject(result.message)
}
},
fail: (err) => {
console.error('uploadFile error:', err)
reject(err)
}
})
})
}
Loading…
Cancel
Save