import { getToken } from '@/utils/auth' import config from '@/config' const baseUrl = config.baseUrl //上传文件还是选择相册图片 const getWxFile = (type,fileNum) => { return new Promise((resolve, reject) => { //文件上传 if (type === 'file') { wx.chooseMessageFile({ count: fileNum || 1, type: 'file', success: (res) => { resolve(res) }, fail(error) { console.log(' 上传失败', error); uni.showToast({ title: '上传失败', icon: 'none' }) reject(error) } }); } //相册或者摄像头 if (type === 'img') { wx.chooseImage({ count: 1, // 选择图片数量 sizeType: ['original', 'compressed'], // 图片类型 sourceType: ['album', 'camera'], // 来源(相册或摄像头) success: function (res) { resolve(res) }, fail(error) { console.log(' 上传失败', error); uni.showToast({ title: '上传失败', icon: 'none' }) reject(error) } }); } }) } const getUploadPromise = (file) => { return new Promise((resolve, reject) => { const path = file.path wx.uploadFile({ url: baseUrl + '/common/upload', // 服务器接口地址 filePath: path, // 本地文件路径(通过 wx.chooseImage 获取) name: 'file', // 文件对应的 key(服务器接收字段名) formData: { // 额外表单数据 file: file, }, header: { 'Authorization': 'Bearer ' + getToken(), // 自定义请求头 }, success(res) { const data = JSON.parse(res.data); resolve(data); }, fail(error) { console.log(' 上传失败', error); uni.showToast({ title: '上传失败', icon: 'none' }) reject(error) } }); }) } const uploadFile = async (files) => { const filesPromise = files.map((item) => { return getUploadPromise(item) }) try { const results = await Promise.all(filesPromise) console.log('results',results); return results; } catch (error) { console.log('上传失败-uploadFile', error); throw error; } } /** * * type: 文件上传方式 * file:选择文件 * img: 相册或者摄像头 */ export const wxUploadFile = async (type,fileNum) => { try { console.log('11'); //选择文件 const files = await getWxFile(type,fileNum); console.log('选择文件', files,files.tempFiles); //上传服务器 const u_files = await uploadFile(files.tempFiles); console.log('上传服务器', u_files); return u_files; } catch (error) { console.log('上传失败-wxUploadFile', error); throw error; } } /** * 拨打电话 */ export const wxMakePhoneCall = (phoneNumber) => { uni.makePhoneCall({ phoneNumber: phoneNumber }); }