825 lines
21 KiB
JavaScript
825 lines
21 KiB
JavaScript
import base from "@/common/config/domain.js"
|
||
import {md5} from "@/common/js/md5.js"
|
||
|
||
const baseUrl = base.baseUrl
|
||
const wsUrl = base.wsUrl
|
||
|
||
let ajaxTimes = 0;
|
||
|
||
//需要跳转到登录页的接口
|
||
let login_list=[
|
||
'/game/app/question/queryTrainQuest',
|
||
'/game/operate/joinGame',
|
||
'/user/app/feat/getAllFeatInfo'
|
||
];
|
||
|
||
|
||
/*
|
||
url接口地址
|
||
data数据
|
||
needtoken是否需要令牌
|
||
domain请求域名
|
||
*/
|
||
export const get = (url, data = {}, needtoken = true, domain) => {
|
||
|
||
|
||
let header = defaultHeader();
|
||
// let header = {
|
||
// // "content-type": "application/json",
|
||
// Authorization: handleToken(),
|
||
// };
|
||
let token = handleToken();
|
||
let http_base = {
|
||
url: domain ? domain + url : baseUrl + url,
|
||
data: data,
|
||
method: "GET",
|
||
header:{
|
||
...header
|
||
}
|
||
}
|
||
|
||
// console.log("domain",domain)
|
||
if (needtoken) {
|
||
//拦截需要登录的名单跳转到登录页面
|
||
// console.log("login_list.indexOf(url)",login_list.indexOf(url));
|
||
if(login_list.indexOf(url)>=0 && !token){
|
||
//需要登录
|
||
uni.navigateTo({
|
||
url:'/pages/login/index'
|
||
})
|
||
return ;
|
||
// return new Promise((resolve, reject) => {
|
||
// reject('需要先登录');
|
||
// });
|
||
}
|
||
http_base.header.Authorization =token;
|
||
} else {
|
||
if (token) {
|
||
http_base.header.Authorization =token;
|
||
}
|
||
}
|
||
return new Promise((resolve, reject) => {
|
||
uni.request({
|
||
...http_base,
|
||
success: (res) => {
|
||
// console.log("getres",res);
|
||
if (res.statusCode == 200) {
|
||
if (typeof res.data == "string") {
|
||
res.data = JSON.parse(res.data);
|
||
}
|
||
if (res.data.code == "1000") {
|
||
resolve(res.data);
|
||
} else {
|
||
authCase(res.data, url)
|
||
reject(res);
|
||
}
|
||
} else {
|
||
reject(res);
|
||
}
|
||
},
|
||
fail: (err) => {
|
||
console.log("请求失败",err);
|
||
uni.showToast({
|
||
title:"网络异常,请检查网络",
|
||
icon:"none",
|
||
duration:2000,
|
||
})
|
||
reject(err);
|
||
},
|
||
complete: (com) => {
|
||
|
||
},
|
||
});
|
||
});
|
||
};
|
||
|
||
/*
|
||
url接口地址
|
||
data数据
|
||
needtoken是否需要令牌
|
||
domain请求域名
|
||
*/
|
||
export const post = (url, data = {}, needtoken = true, domain) => {
|
||
let header = defaultHeader();
|
||
let token = handleToken();
|
||
let http_base = {
|
||
url: domain ? domain + url : baseUrl + url,
|
||
data: data,
|
||
method: "POST",
|
||
header:{
|
||
...header,
|
||
"content-type": "application/json",
|
||
}
|
||
}
|
||
|
||
if (needtoken) {
|
||
console.log("login_list.indexOf(url)",url,login_list.indexOf(url));
|
||
//拦截需要登录的名单跳转到登录页面
|
||
if(login_list.indexOf(url)>=0 && !token){
|
||
console.log(1)
|
||
//需要登录
|
||
uni.navigateTo({
|
||
url:'/pages/login/index'
|
||
})
|
||
return ;
|
||
// return new Promise((resolve, reject) => {
|
||
// reject('需要先登录');
|
||
// });
|
||
}
|
||
http_base.header.Authorization =token;
|
||
} else {
|
||
if (token) {
|
||
http_base.header.Authorization =token;
|
||
}
|
||
}
|
||
return new Promise((resolve, reject) => {
|
||
uni.request({
|
||
...http_base,
|
||
success: (res) => {
|
||
if (res.statusCode == 200) {
|
||
if (typeof res.data == "string") {
|
||
res.data = JSON.parse(res.data);
|
||
}
|
||
if (res.data.code == "1000") {
|
||
resolve(res.data);
|
||
} else {
|
||
authCase(res.data, url)
|
||
reject(res);
|
||
}
|
||
} else {
|
||
reject(res);
|
||
}
|
||
|
||
},
|
||
fail: (err) => {
|
||
console.log("请求失败",err);
|
||
uni.showToast({
|
||
title:"网络异常,请检查网络",
|
||
icon:"none",
|
||
duration:2000,
|
||
})
|
||
reject(err);
|
||
},
|
||
complete: (com) => {
|
||
|
||
},
|
||
});
|
||
});
|
||
};
|
||
|
||
|
||
function handleToken() {
|
||
let tokenC = uni.getStorageSync('token');
|
||
// tokenC = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NTEwMzY5MjcsInVzZXJJZCI6Ijk5MjYzODg2Nzg4MDI4NDE2MF8xNjUwOTUwNTI3NTc3In0.ID2vAMfd2AYb6h5Ir9l-dcH9RBF0hrtkn4en8w8kL2U'
|
||
// let tokenC = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NTQ4NzMzOTUsInVzZXJJZCI6ImFwcF8xMCJ9.S6sI9wmo3JlU5W-HD1b4fULUqKN7LpYhFVj0O9EZjuU"
|
||
|
||
return tokenC
|
||
}
|
||
|
||
/*
|
||
@param上传文件
|
||
file uniapp的choosefile获取到的文件临时信息
|
||
url 上传的url地址
|
||
name 上传给服务器端的字段名称默认file
|
||
type_set上传的文件类型 默认['.pdf','.doc','.ppt','.pptx','.png','.jpg','.jpeg']
|
||
filekey 储存的路径,更新原有文件
|
||
success 成功
|
||
fail 失败
|
||
max_size 文件最大的大小,单位mb
|
||
onProgress获取上传进度信息
|
||
|
||
*/
|
||
export const uploadFile = (param, needtoken = true) => {
|
||
console.log("param.file",param.file);
|
||
let header = defaultHeader();
|
||
let file_name = param.file.tempFiles[0].name;
|
||
let file_size = param.file.tempFiles[0].size / 1024 / 1024;
|
||
let type_list = file_name.split('.');
|
||
let file_type = null;
|
||
if (type_list.length > 0) {
|
||
file_type = type_list[type_list.length - 1];
|
||
// console.log("file_type",file_type);
|
||
|
||
//截取文件名140字内
|
||
let name_list = JSON.parse(JSON.stringify(type_list));
|
||
name_list.pop();
|
||
let full_name=name_list.join('.');
|
||
full_name=full_name.slice(0,140);
|
||
file_name=`${full_name}.${file_type}`;
|
||
}
|
||
//查找是否在范围内的
|
||
let can_upload = false;
|
||
let type_set = param.type_set ? param.type_set : ['pdf', 'doc', 'ppt', 'pptx', 'png', 'jpg', 'jpeg'];
|
||
// console.log(file_size,file_type);
|
||
// console.log('type_set',type_set);
|
||
if (file_type) {
|
||
console.log("type_set.indexOf('.' + file_type)",type_set.indexOf(file_type));
|
||
if (type_set.indexOf(file_type) >= 0) {
|
||
can_upload = true;
|
||
}
|
||
}
|
||
|
||
|
||
let max_size=param && param.max_size?param.max_size:10;
|
||
// console.log("max_size",max_size);
|
||
if (can_upload && file_size <= max_size) {
|
||
//可以上传的类型
|
||
let nowTime = new Date();
|
||
let year = nowTime.getFullYear();
|
||
let month = nowTime.getMonth() + 1;
|
||
let day = nowTime.getDate();
|
||
let time = nowTime.getTime();
|
||
|
||
let filekey = param.filekey ? param.filekey :
|
||
`/${year}/${month}/${day}/${time}_${Math.floor(Math.random()*100)}.${file_type}`;
|
||
|
||
console.log("filekey",filekey);
|
||
// console.log(year,month,day,time,filekey)
|
||
// console.log('url',baseUrl+param.url);
|
||
let http_base = {
|
||
url: baseUrl + param.url, //仅为示例,非真实的接口地址
|
||
filePath: param.file.tempFiles[0].path,
|
||
name: param.name ? param.name : 'file',
|
||
formData: {
|
||
'fileKey': filekey,
|
||
},
|
||
header:{
|
||
...header
|
||
}
|
||
}
|
||
if (needtoken) {
|
||
http_base.header.Authorization =handleToken();
|
||
}
|
||
const uploadTask = uni.uploadFile({
|
||
// url:baseUrl+param.url, //仅为示例,非真实的接口地址
|
||
// filePath: param.file.tempFilePaths[0],
|
||
// name: param.name?param.name:'file',
|
||
// header:{Authorization: handleToken()},
|
||
// formData: {
|
||
// 'fileKey': filekey
|
||
// },
|
||
...http_base,
|
||
success: (res) => {
|
||
console.log('提交返回', res);
|
||
if (typeof res.data == "string") {
|
||
res.data = JSON.parse(res.data)
|
||
}
|
||
if (res.data.code == 1000) {
|
||
res.data.data.fileName = file_name;
|
||
res.data.data.file_type = file_type;
|
||
res.data.data.resumeName = res.data.data.fileName;
|
||
res.data.data.resumeFileKey = filekey;
|
||
|
||
var update = new Date();
|
||
res.data.data.updateTime = update.toLocaleString('zh',{hour12:false});
|
||
// console.log('res',res);
|
||
param.success && param.success(res)
|
||
} else {
|
||
param.fail && param.fail(res)
|
||
}
|
||
},
|
||
fail: (res) => {
|
||
param.fail && param.fail(res)
|
||
}
|
||
});
|
||
|
||
if (param.onProgress) {
|
||
uploadTask.onProgressUpdate((res) => {
|
||
// console.log('上传进度' + res.progress);
|
||
// console.log('已经上传的数据长度' + res.totalBytesSent);
|
||
// console.log('预期需要上传的数据总长度' + res.totalBytesExpectedToSend);
|
||
param.onProgress(res);
|
||
// 测试条件,取消上传任务。
|
||
// if (res.progress > 50) {
|
||
// uploadTask.abort();
|
||
// }
|
||
});
|
||
}
|
||
|
||
} else {
|
||
//不可以上传
|
||
let msg
|
||
if (!can_upload) {
|
||
let type_str=type_set.join("、");
|
||
msg = `仅支持${type_str}类型文件`;
|
||
}
|
||
if (file_size > max_size) {
|
||
msg = `大小不能超过${max_size}MB`;
|
||
}
|
||
param.fail && param.fail({
|
||
msg: msg
|
||
})
|
||
uni.showToast({
|
||
title: msg,
|
||
icon: 'none'
|
||
})
|
||
}
|
||
}
|
||
|
||
|
||
/*
|
||
setCvDetail上传附件简历
|
||
@param上传文件
|
||
file uniapp的choosefile获取到的文件临时信息
|
||
url 上传的url地址
|
||
name 上传给服务器端的字段名称默认file
|
||
type_set上传的文件类型 默认['.pdf','.doc','.ppt','.pptx','.png','.jpg','.jpeg']
|
||
filekey 储存的路径,更新原有文件
|
||
success 成功
|
||
fail 失败
|
||
max_size 文件最大的大小,单位mb
|
||
onProgress获取上传进度信息
|
||
cvId 简历id
|
||
|
||
*/
|
||
export const setCvDetail = (param, needtoken = true) => {
|
||
console.log("param.file",param.file);
|
||
let header = defaultHeader();
|
||
let file_name = param.file.tempFiles[0].name;
|
||
let file_size = param.file.tempFiles[0].size / 1024 / 1024;
|
||
let type_list = file_name.split('.');
|
||
let file_type = null;
|
||
if (type_list.length > 0) {
|
||
file_type = type_list[type_list.length - 1];
|
||
// console.log("file_type",file_type);
|
||
|
||
//截取文件名140字内
|
||
let name_list = JSON.parse(JSON.stringify(type_list));
|
||
name_list.pop();
|
||
let full_name=name_list.join('.');
|
||
full_name=full_name.slice(0,140);
|
||
file_name=`${full_name}.${file_type}`;
|
||
}
|
||
//查找是否在范围内的
|
||
let can_upload = false;
|
||
let type_set = param.type_set ? param.type_set : ['pdf', 'doc', 'ppt', 'pptx', 'png', 'jpg', 'jpeg'];
|
||
// console.log(file_size,file_type);
|
||
// console.log('type_set',type_set);
|
||
if (file_type) {
|
||
console.log("type_set.indexOf('.' + file_type)",type_set.indexOf(file_type));
|
||
if (type_set.indexOf(file_type) >= 0) {
|
||
can_upload = true;
|
||
}
|
||
}
|
||
|
||
|
||
let max_size=param && param.max_size?param.max_size:10;
|
||
// console.log("max_size",max_size);
|
||
if (can_upload && file_size <= max_size) {
|
||
//可以上传的类型
|
||
let nowTime = new Date();
|
||
let year = nowTime.getFullYear();
|
||
let month = nowTime.getMonth() + 1;
|
||
let day = nowTime.getDate();
|
||
let time = nowTime.getTime();
|
||
|
||
let filekey = param.filekey ? param.filekey :
|
||
`/${year}/${month}/${day}/${time}_${Math.floor(Math.random()*100)}.${file_type}`;
|
||
|
||
console.log("filekey",filekey);
|
||
// console.log(year,month,day,time,filekey)
|
||
// console.log('url',baseUrl+param.url);
|
||
let formData={
|
||
'cvName':file_name,
|
||
'cvPath': filekey,
|
||
}
|
||
if(param.cvId){
|
||
formData.cvId=param.cvId;
|
||
}
|
||
let http_base = {
|
||
url: baseUrl + param.url, //仅为示例,非真实的接口地址
|
||
filePath: param.file.tempFiles[0].path,
|
||
name: param.name ? param.name : 'cvFile',
|
||
formData: formData,
|
||
header:{
|
||
...header
|
||
}
|
||
}
|
||
if (needtoken) {
|
||
http_base.header.Authorization =handleToken();
|
||
}
|
||
console.log("formData",formData);
|
||
const uploadTask = uni.uploadFile({
|
||
// url:baseUrl+param.url, //仅为示例,非真实的接口地址
|
||
// filePath: param.file.tempFilePaths[0],
|
||
// name: param.name?param.name:'file',
|
||
// header:{Authorization: handleToken()},
|
||
// formData: {
|
||
// 'fileKey': filekey
|
||
// },
|
||
...http_base,
|
||
success: (res) => {
|
||
console.log('提交返回', res);
|
||
if (typeof res.data == "string") {
|
||
res.data = JSON.parse(res.data)
|
||
}
|
||
if (res.data.code == 1000) {
|
||
let file_info={};
|
||
file_info.fileName = file_name;
|
||
file_info.file_type = file_type;
|
||
file_info.resumeName = file_name;
|
||
file_info.resumeFileKey = filekey;
|
||
file_info.cvId = res.data.data;
|
||
|
||
var update = new Date();
|
||
file_info.updateTime = update.toLocaleString('zh',{hour12:false});
|
||
// console.log('res',res);
|
||
res.data.data=file_info;
|
||
param.success && param.success(res)
|
||
} else {
|
||
param.fail && param.fail(res)
|
||
}
|
||
},
|
||
fail: (res) => {
|
||
uni.showToast({
|
||
title:"网络异常,请检查网络",
|
||
icon:"none",
|
||
duration:2000,
|
||
})
|
||
param.fail && param.fail(res)
|
||
}
|
||
});
|
||
|
||
if (param.onProgress) {
|
||
uploadTask.onProgressUpdate((res) => {
|
||
// console.log('上传进度' + res.progress);
|
||
// console.log('已经上传的数据长度' + res.totalBytesSent);
|
||
// console.log('预期需要上传的数据总长度' + res.totalBytesExpectedToSend);
|
||
param.onProgress(res);
|
||
// 测试条件,取消上传任务。
|
||
// if (res.progress > 50) {
|
||
// uploadTask.abort();
|
||
// }
|
||
});
|
||
}
|
||
|
||
} else {
|
||
//不可以上传
|
||
let msg
|
||
if (!can_upload) {
|
||
let type_str=type_set.join("、");
|
||
msg = `仅支持${type_str}类型文件`;
|
||
}
|
||
if (file_size > max_size) {
|
||
msg = `大小不能超过${max_size}MB`;
|
||
}
|
||
param.fail && param.fail({
|
||
msg: msg
|
||
})
|
||
uni.showToast({
|
||
title: msg,
|
||
icon: 'none'
|
||
})
|
||
}
|
||
}
|
||
|
||
export const uploadFileMore = (param, needtoken = true) => {
|
||
let header = defaultHeader();
|
||
if (param.index >= param.file.tempFiles.length) {
|
||
return
|
||
}
|
||
let file_name = param.file.tempFiles[param.index].path;
|
||
console.log("file_name", file_name);
|
||
let file_size = param.file.tempFiles[param.index].size / 1024 / 1024;
|
||
let type_list = file_name.split('.');
|
||
//兼容h5
|
||
if (type_list.length == 1) {
|
||
type_list.push('png');
|
||
}
|
||
console.log("type_list", type_list);
|
||
let file_type = null;
|
||
if (type_list.length > 0) {
|
||
file_type = type_list[type_list.length - 1];
|
||
}
|
||
console.log("file_type", file_type);
|
||
//查找是否在范围内的
|
||
let can_upload = false;
|
||
let type_set = param.type_set ? param.type_set : ['.pdf', '.doc', '.ppt', '.pptx', '.PNG', '.JPG', '.JPEG'];
|
||
// console.log(file_size,file_type);
|
||
// console.log('type_set',type_set);
|
||
console.log("type_set", type_set, file_type)
|
||
if (file_type) {
|
||
if (type_set.indexOf('.' + file_type) >= 0) {
|
||
can_upload = true;
|
||
}
|
||
}
|
||
console.log("can_upload", can_upload);
|
||
if (can_upload && file_size < 10) {
|
||
//可以上传的类型
|
||
|
||
let nowTime = new Date();
|
||
let year = nowTime.getFullYear();
|
||
let month = nowTime.getMonth() + 1;
|
||
let day = nowTime.getDate();
|
||
let time = nowTime.getTime();
|
||
let filekey
|
||
if (param.fileType) {//新增的fileType 参数 兼容到没有传 fileType的 各位大佬看见了自己改下自己的代码
|
||
filekey = param.filekey ? param.filekey :
|
||
`/${param.fileType}/${year}/${month}/${day}/${time}_${Math.floor(Math.random()*100)}.${file_type}`;
|
||
} else {
|
||
filekey = param.filekey ? param.filekey :
|
||
`/${year}/${month}/${day}/${time}_${Math.floor(Math.random()*100)}.${file_type}`;
|
||
}
|
||
// console.log(year,month,day,time,filekey)
|
||
// console.log('url',baseUrl+param.url);
|
||
|
||
let http_base = {
|
||
url: baseUrl + param.url, //仅为示例,非真实的接口地址
|
||
filePath: param.file.tempFilePaths[param.index],
|
||
name: param.name ? param.name : 'file',
|
||
formData: {
|
||
'fileKey': filekey,
|
||
},
|
||
header:{
|
||
...header
|
||
}
|
||
}
|
||
if (needtoken) {
|
||
http_base.header.Authorization =handleToken();
|
||
}
|
||
console.log("http_base", http_base)
|
||
const uploadTask = uni.uploadFile({
|
||
// url:baseUrl+param.url, //仅为示例,非真实的接口地址
|
||
// filePath: param.file.tempFilePaths[0],
|
||
// name: param.name?param.name:'file',
|
||
// header:{Authorization: handleToken()},
|
||
// formData: {
|
||
// 'fileKey': filekey
|
||
// },
|
||
...http_base,
|
||
success: (res) => {
|
||
console.log('提交返回', res);
|
||
if (typeof res.data == "string") {
|
||
res.data = JSON.parse(res.data)
|
||
}
|
||
if (res.data.code == 1000) {
|
||
res.data.data.file_type = file_type;
|
||
res.data.data.resumeName = res.data.data.fileName;
|
||
res.data.data.resumeFileKey = filekey;
|
||
|
||
var update = new Date();
|
||
res.data.data.updateTime = update.toLocaleString();
|
||
// console.log('res',res);
|
||
|
||
param.success && param.success(res)
|
||
param.index++
|
||
uploadFileMore(param, true)
|
||
} else {
|
||
param.fail && param.fail(res)
|
||
}
|
||
},
|
||
fail: (res) => {
|
||
param.fail && param.fail(res)
|
||
}
|
||
});
|
||
|
||
if (param.onProgress) {
|
||
uploadTask.onProgressUpdate((res) => {
|
||
// console.log('上传进度' + res.progress);
|
||
// console.log('已经上传的数据长度' + res.totalBytesSent);
|
||
// console.log('预期需要上传的数据总长度' + res.totalBytesExpectedToSend);
|
||
param.onProgress(res);
|
||
// 测试条件,取消上传任务。
|
||
// if (res.progress > 50) {
|
||
// uploadTask.abort();
|
||
// }
|
||
});
|
||
}
|
||
|
||
} else {
|
||
//不可以上传
|
||
let msg
|
||
if (!can_upload) {
|
||
msg = "不支持该类型"
|
||
}
|
||
if (file_size >= 10) {
|
||
msg = "只支持10MB内的文件"
|
||
}
|
||
param.fail && param.fail({
|
||
msg: msg
|
||
})
|
||
uni.showToast({
|
||
title: msg,
|
||
icon: 'none'
|
||
})
|
||
}
|
||
}
|
||
|
||
export const uploadVideo = (param, needtoken = true) => {
|
||
let header = defaultHeader();
|
||
let file_name = param.file.tempFilePath
|
||
console.log("file_name", file_name);
|
||
let file_size = param.file.size / 1024 / 1024;
|
||
let type_list = file_name.split('.');
|
||
console.log("type_list", type_list);
|
||
let file_type = null;
|
||
if (type_list.length > 0) {
|
||
file_type = type_list[type_list.length - 1];
|
||
}
|
||
console.log("file_type", file_type);
|
||
//查找是否在范围内的
|
||
let can_upload = false;
|
||
let type_set = param.type_set ? param.type_set : ['.mp4'];
|
||
// console.log(file_size,file_type);
|
||
// console.log('type_set',type_set);
|
||
console.log("type_set", type_set, file_type)
|
||
if (file_type) {
|
||
if (type_set.indexOf('.' + file_type) >= 0) {
|
||
can_upload = true;
|
||
}
|
||
}
|
||
console.log("can_upload", can_upload);
|
||
if (can_upload && file_size < 10) {
|
||
//可以上传的类型
|
||
|
||
let nowTime = new Date();
|
||
let year = nowTime.getFullYear();
|
||
let month = nowTime.getMonth() + 1;
|
||
let day = nowTime.getDate();
|
||
let time = nowTime.getTime();
|
||
|
||
let filekey
|
||
if (param.fileType) {//新增的fileType 参数 兼容到没有传 fileType的 各位大佬看见了自己改下自己的代码
|
||
filekey = param.filekey ? param.filekey :
|
||
`/${param.fileType}/${year}/${month}/${day}/${time}_${Math.floor(Math.random()*100)}.${file_type}`;
|
||
} else {
|
||
filekey = param.filekey ? param.filekey :
|
||
`/${year}/${month}/${day}/${time}_${Math.floor(Math.random()*100)}.${file_type}`;
|
||
}
|
||
|
||
// console.log(year,month,day,time,filekey)
|
||
// console.log('url',baseUrl+param.url);
|
||
|
||
let http_base = {
|
||
url: baseUrl + param.url, //仅为示例,非真实的接口地址
|
||
filePath: param.file.tempFilePath,
|
||
name: param.name ? param.name : 'file',
|
||
formData: {
|
||
'fileKey': filekey,
|
||
},
|
||
header:{
|
||
...header
|
||
}
|
||
}
|
||
if (needtoken) {
|
||
http_base.header.Authorization =handleToken();
|
||
}
|
||
console.log("http_base", http_base)
|
||
const uploadTask = uni.uploadFile({
|
||
// url:baseUrl+param.url, //仅为示例,非真实的接口地址
|
||
// filePath: param.file.tempFilePaths[0],
|
||
// name: param.name?param.name:'file',
|
||
// header:{Authorization: handleToken()},
|
||
// formData: {
|
||
// 'fileKey': filekey
|
||
// },
|
||
...http_base,
|
||
success: (res) => {
|
||
console.log('提交返回', res);
|
||
if (typeof res.data == "string") {
|
||
res.data = JSON.parse(res.data)
|
||
}
|
||
if (res.data.code == 1000) {
|
||
res.data.data.file_type = file_type;
|
||
res.data.data.resumeName = res.data.data.fileName;
|
||
res.data.data.resumeFileKey = filekey;
|
||
|
||
var update = new Date();
|
||
res.data.data.updateTime = update.toLocaleString();
|
||
// console.log('res',res);
|
||
|
||
param.success && param.success(res)
|
||
} else {
|
||
param.fail && param.fail(res)
|
||
}
|
||
},
|
||
fail: (res) => {
|
||
param.fail && param.fail(res)
|
||
}
|
||
});
|
||
|
||
if (param.onProgress) {
|
||
uploadTask.onProgressUpdate((res) => {
|
||
// console.log('上传进度' + res.progress);
|
||
// console.log('已经上传的数据长度' + res.totalBytesSent);
|
||
// console.log('预期需要上传的数据总长度' + res.totalBytesExpectedToSend);
|
||
param.onProgress(res);
|
||
// 测试条件,取消上传任务。
|
||
// if (res.progress > 50) {
|
||
// uploadTask.abort();
|
||
// }
|
||
});
|
||
}
|
||
|
||
} else {
|
||
//不可以上传
|
||
let msg
|
||
if (!can_upload) {
|
||
msg = "不支持该类型"
|
||
}
|
||
if (file_size >= 10) {
|
||
msg = "只支持10MB内的文件"
|
||
}
|
||
param.fail && param.fail({
|
||
msg: msg
|
||
})
|
||
uni.showToast({
|
||
title: msg,
|
||
icon: 'none'
|
||
})
|
||
}
|
||
}
|
||
|
||
|
||
export const upload = (url, data = {}, needtoken = false) => {
|
||
let header = defaultHeader();
|
||
let http_base = {
|
||
url: baseUrl + url,
|
||
name: data.name || 'file',
|
||
filePath: data.file.path,
|
||
formData: {
|
||
fileKey: data.fileKey
|
||
},
|
||
header:{
|
||
...header
|
||
}
|
||
}
|
||
if (needtoken) {
|
||
http_base.header.Authorization =handleToken();
|
||
}
|
||
return new Promise((resolve, reject) => {
|
||
uni.uploadFile({
|
||
...http_base,
|
||
success: (res) => {
|
||
if (res.statusCode == 200) {
|
||
if (typeof res.data == "string") {
|
||
res.data = JSON.parse(res.data);
|
||
}
|
||
if (res.data.code == "1000") {
|
||
resolve(res.data);
|
||
} else {
|
||
authCase(res.data, url)
|
||
reject(res);
|
||
}
|
||
} else {
|
||
reject(res);
|
||
}
|
||
},
|
||
fail: (res) => {
|
||
reject(res.data);
|
||
},
|
||
complete: (com) => {
|
||
},
|
||
});
|
||
});
|
||
};
|
||
|
||
|
||
|
||
//设置请求头
|
||
function defaultHeader(){
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
return header;
|
||
}
|
||
|
||
|
||
|
||
|
||
// 通过errorcode的拦截提示
|
||
function authCase(res, url) {
|
||
const {code, msg, data} = res
|
||
switch (code) {
|
||
case 6001: // 您已将该用户拉黑,无法对TA进行该操作
|
||
case 6002: // 由于对方的隐私设置,您无法对TA进行该操作
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: msg,
|
||
duration: 1500
|
||
});
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
// switch (code) {
|
||
// case 1004: //签名有误
|
||
// break;
|
||
// case 4000: //请求参数有误
|
||
// break;
|
||
// case 4001: //请求参数有误
|
||
// break;
|
||
// default:
|
||
// break;
|
||
// }
|
||
}
|