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;
|
|||
|
|
// }
|
|||
|
|
}
|