/** * 上传公共方法 */ import uniAsync from "@/utils/uni-async.js"; // uni api async 化 import {baseApiUrl} from './config.js' import store from '@/store/index.js' import CryptoJS from './crypto.js' /** * 上传文件到服务器 */ export const uploadToServer = async (tempFilePath) => { const { envVersion } = uni.getAccountInfoSync().miniProgram const temres = await uniAsync.uploadFile({ url: baseApiUrl + "/public/upload", filePath: tempFilePath, name: "file", header: { Authorization: store.state.user.token, }, }); const res = envVersion === 'release' ? JSON.parse(CryptoJS.Des3Decrypt(temres.data)) : JSON.parse(temres.data); if (res.code === 200) { return res.data; } }; /** * * 上传回复音频到服务器 */ export const uploadAudioToServer = async(tempFilePath)=>{ const { envVersion } = uni.getAccountInfoSync().miniProgram const temres = await uniAsync.uploadFile({ url: baseApiUrl + "/community/question/reply/upload_audio", filePath: tempFilePath, name: "file", header: { Authorization: store.state.user.token, }, }); const res = envVersion === 'release' ? JSON.parse(CryptoJS.Des3Decrypt(temres.data)) : JSON.parse(temres.data); return res; } /** * 上传图片 * count 同时上传张数 默认:1 */ export const uploadImg = async ({count = 1}) => { console.log(count); const { tempFilePaths } = await uniAsync.chooseImage({ count }); uni.showLoading({ title: "上传中...", }); const uploadResArr = tempFilePaths.map((item) => { return uploadToServer(item); }); return new Promise((resolve, reject) => { Promise.all(uploadResArr) .then((res) => { uni.hideLoading(); const arr = res.map((item) => { return item; }); resolve(arr); }) .catch((res) => { uni.hideLoading(); reject(res) }); }); }; /** * 公共上传音频方法 */ export const commonUploadAudio=(tempFilePath)=>{ const { envVersion } = uni.getAccountInfoSync().miniProgram wx.showLoading({ title: '上传音频中...', mask: true, success: (result) => {}, fail: () => {}, complete: () => {} }); return new Promise((resolve,reject)=>{ uni.uploadFile({ url: baseApiUrl + "/public/upload_audio", filePath: tempFilePath, name: 'file', header: { Authorization: store.state.user.token, }, success: (result) =>{ const res = envVersion === 'release' ? JSON.parse(CryptoJS.Des3Decrypt(result.data)) : JSON.parse(result.data); resolve(res) }, fail: () => { console.log('上传音频失败'); reject('上传音频失败') uni.showToast({ title:'上传音频失败,请稍后重试!', icon:'none' }) }, complete: () => { wx.hideLoading(); } }) }) }