export default { /** * 上传单个文件 * @param {string} url 服务器地址 * @param {object} formData 上传的其他字段 * @param {array} extension 上传文件类型 扩展名数组 * @param {string} name * @returns */ chooseAndUpload(url, formData = {}, extension = ['.xls', '.xlsx'], name = 'param') { uni.hideLoading(); clearTimeout(timer); let timer = null; return new Promise((resolve, reject) => { const token = uni.$t.storage.getStorageSync(uni.$t.app.tokenKey); if (!token) { return reject('用户未登录,请登录后重试'); } uni.chooseFile({ count: 1, //默认100 extension, success: res => { if (!timer) { timer = setTimeout(() => { uni.$t.ui.showLoading('正在上传...'); timer = null; }, 800); } // 开始上传 uni.uploadFile({ url, filePath: res.tempFilePaths[0], name, formData, header: { Authorization: `Bearer ${token}` }, success: ({ data, statusCode }) => { clearTimeout(timer); uni.hideLoading(); if (statusCode === 200 && data) { const { code, msg } = JSON.parse(data); if (code !== 200) { reject(msg); } else { resolve(data.data); } } else { reject('上传失败'); } }, fail: error => { clearTimeout(timer); uni.hideLoading(); reject(error); }, }); }, fail: error => { clearTimeout(timer); uni.hideLoading(); reject(error); }, }); }); }, };