提交 03382e2d authored 作者: 钟是志's avatar 钟是志

解决北电科防火墙问题 把接口数据转成文件

上级 ca1a4b12
import baseX from 'base-x'; import baseX from 'base-x';
import { apiRequest } from '../utils/request'; import { apiRequest } from '../utils/request';
import { isJSON } from '@/webPublic/zyd_public/utils/utils'; import { isJSON } from '@/webPublic/zyd_public/utils/utils';
import { uploadFile } from '@/webPublic/one_stop_public/libs/PictureSignature/ShowItem';
import { queryApiActionPath, queryIsSafe } from '@/webPublic/one_stop_public/utils/queryConfig';
import { getToken, getUserInfo } from '@/webPublic/one_stop_public/utils/token';
var BASE16 = '0123456789abcdef'; var BASE16 = '0123456789abcdef';
var bs16 = baseX(BASE16); var bs16 = baseX(BASE16);
...@@ -39,6 +42,9 @@ const encryptApiList = [ ...@@ -39,6 +42,9 @@ const encryptApiList = [
api: 'DataColumnApi/getOptions', api: 'DataColumnApi/getOptions',
key: ['filterSql'], key: ['filterSql'],
}, },
{
api: 'UnifiedServicePatternApi/updateForm',
},
{ {
api: 'DataColumnApi/getLabels', api: 'DataColumnApi/getLabels',
key: ['allValues'], key: ['allValues'],
...@@ -162,7 +168,86 @@ const countAllValues = async (datas, item) => { ...@@ -162,7 +168,86 @@ const countAllValues = async (datas, item) => {
}; };
export function requestFileInfo(url, datas){
const formData = new FormData();
if(getToken()){
datas.token = getToken();
}
for(let key in datas){
formData.append(key, datas[key]);
}
return fetch(queryApiActionPath() + url, {
headers: {
Accept: 'application/json',
// Authorization: `bearer ${getToken()}`,
},
method: 'POST',
credentials: 'omit',
mode: 'cors',
body: formData,
}).then((res) => {
return res.json();
}).then((res) => {
// console.log(res);
return res;
});
}
function giveFilePostData(datas, url){
url = url.replaceAll('\/\/', '\/');
if (url && typeof url === 'string') {
// const roleGroup = getUserInfo().groupsId;
// url = url.replace(url, `/safe/${roleGroup}/` + url);
// url = url.replaceAll('//', '/');
// console.table({datas, url});
// let file = new File([JSON.stringify(datas)], "fileParams.txt", {
// type: "text/plain",
// });
// datas = {
// fileParams: file,
// }
// return new Promise((resolve, reject) => {
// resolve({
// datas,
// url,
// });
// });
for (let item of encryptApiList) {
if (url.indexOf(item.api) > -1) {
const roleGroup = getUserInfo().groupsId;
url = url.replace(url, `/safe/${roleGroup}/` + url);
url = url.replaceAll('//', '/');
console.table(datas);
let file = new File([JSON.stringify(datas)], "fileParams.jpg", {
type: "text/plain",
});
// uploadFile(file);
datas = {
fileParams: file,
}
return new Promise((resolve, reject) => {
resolve({
datas,
url,
});
});
}
}
}
return new Promise((resolve, reject) => {
resolve(datas);
return datas;
});
}
export async function giveBase16EnCode(datas, url) { // 全局加解密函数. export async function giveBase16EnCode(datas, url) { // 全局加解密函数.
if(queryIsSafe()){
return giveFilePostData(datas, url);
}
if (!checkOpenBase16()) { if (!checkOpenBase16()) {
return datas; return datas;
} }
...@@ -191,13 +276,13 @@ export async function giveBase16EnCode(datas, url) { // 全局加解密函数. ...@@ -191,13 +276,13 @@ export async function giveBase16EnCode(datas, url) { // 全局加解密函数.
} }
} }
if(item.yinShe){ // 映射参数字段. if (item.yinShe) { // 映射参数字段.
datas.isBase = true; datas.isBase = true;
for(let oldKey in item.yinShe){ for (let oldKey in item.yinShe) {
let newKey = item.yinShe[oldKey]; let newKey = item.yinShe[oldKey];
// if(typeof datas[oldKey] !== 'undefined'){ // if(typeof datas[oldKey] !== 'undefined'){
datas[newKey] = datas[oldKey]; datas[newKey] = datas[oldKey];
delete datas[oldKey]; delete datas[oldKey];
// } // }
} }
} }
...@@ -207,3 +292,5 @@ export async function giveBase16EnCode(datas, url) { // 全局加解密函数. ...@@ -207,3 +292,5 @@ export async function giveBase16EnCode(datas, url) { // 全局加解密函数.
} }
return datas; return datas;
} }
...@@ -135,7 +135,6 @@ export const queryCheckPath = () => queryConfig('CHECK_PATH'); ...@@ -135,7 +135,6 @@ export const queryCheckPath = () => queryConfig('CHECK_PATH');
export const queryLoginRedirect = () => queryConfig('LOGIN_REDIRECT'); export const queryLoginRedirect = () => queryConfig('LOGIN_REDIRECT');
export const queryApiVersion = () => queryConfig('apiVersion'); export const queryApiVersion = () => queryConfig('apiVersion');
export const queryUiaApi = () => queryConfig('oauthServer'); export const queryUiaApi = () => queryConfig('oauthServer');
export const queryIsSafe = () => queryConfig('IS_SAFE'); // 是否开启文件上传加密 2022年5月24日 钟是志 解决北电科安全防火墙bug
export default queryConfig; export default queryConfig;
...@@ -14,7 +14,7 @@ import { ...@@ -14,7 +14,7 @@ import {
import { openToast } from '../location/Notification'; import { openToast } from '../location/Notification';
import { showToast } from '../location/Toast'; import { showToast } from '../location/Toast';
import { offline } from '../location/Toast'; import { offline } from '../location/Toast';
import { giveBase16EnCode } from "@/webPublic/one_stop_public/Base16"; import { giveBase16EnCode, requestFileInfo } from '@/webPublic/one_stop_public/Base16';
import objectToFormData from '@/webPublic/zyd_public/utils/object-to-formdata-custom'; import objectToFormData from '@/webPublic/zyd_public/utils/object-to-formdata-custom';
const codeMessage = { const codeMessage = {
...@@ -42,7 +42,11 @@ const codeMessage = { ...@@ -42,7 +42,11 @@ const codeMessage = {
* return URL参数字符串 * return URL参数字符串
*/ */
const qqCw = ({ title = '请求错误', msg = '', customErrMsg = '' }) => { const qqCw = ({
title = '请求错误',
msg = '',
customErrMsg = '',
}) => {
// 请求错误 增加自定义错误提示信息 customErrMsg 从发起 接口那里自定义 // 请求错误 增加自定义错误提示信息 customErrMsg 从发起 接口那里自定义
// 禅道bug 11794 // 禅道bug 11794
notification.error({ notification.error({
...@@ -118,11 +122,14 @@ const loginUmiRequest = extend({ ...@@ -118,11 +122,14 @@ const loginUmiRequest = extend({
const getUrl = url => (url.startsWith('/') ? url : '/' + url); const getUrl = url => (url.startsWith('/') ? url : '/' + url);
export const request = (url, data, options = {}) => { export const request = (url, data, options = {}) => {
return giveBase16EnCode(data, url).then((newData) => { return giveBase16EnCode(data, url)
// console.log(newData); .then((newData) => {
return requestOrigin(url, newData, options); if(typeof newData === 'object' && newData.url){
return requestFileInfo(newData.url, newData.datas, options);
}
return requestOrigin(url, newData, options);
}); });
} };
export const requestOrigin = (url, data, options = {}) => { export const requestOrigin = (url, data, options = {}) => {
...@@ -157,67 +164,67 @@ export const requestOrigin = (url, data, options = {}) => { ...@@ -157,67 +164,67 @@ export const requestOrigin = (url, data, options = {}) => {
...options, ...options,
}) })
.then(response => { .then(response => {
// console.log(response); // console.log(response);
if(response && response.errMsg){ if (response && response.errMsg) {
response.errMsg = response.errMsg.slice(0,50); response.errMsg = response.errMsg.slice(0, 50);
} }
if (response.errCode && response.errCode == '10000') { if (response.errCode && response.errCode == '10000') {
const ul = window.location.href; const ul = window.location.href;
if (ul.indexOf('timeVersion=') == -1) { if (ul.indexOf('timeVersion=') == -1) {
let x = JSON.parse(response.errMsg); let x = JSON.parse(response.errMsg);
let time = +new Date(); let time = +new Date();
localStorage.setItem('version', JSON.stringify(x.version)); localStorage.setItem('version', JSON.stringify(x.version));
if (ul.indexOf('/portal/') == -1 && ul.indexOf('/admin/') == -1) { if (ul.indexOf('/portal/') == -1 && ul.indexOf('/admin/') == -1) {
sessionStorage.removeItem('cacheMobile'); sessionStorage.removeItem('cacheMobile');
showToast('检查到最新版本,即将自动更新,更新完成后请重新操作'); showToast('检查到最新版本,即将自动更新,更新完成后请重新操作');
window.location.href = x.mobileAdress window.location.href = x.mobileAdress
? mobileAdress + '?timeVersion=' + time ? mobileAdress + '?timeVersion=' + time
: ul.indexOf('?') > -1 : ul.indexOf('?') > -1
? ul + '&timeVersion=' + time ? ul + '&timeVersion=' + time
: ul + '?timeVersion=' + time; : ul + '?timeVersion=' + time;
} else { } else {
sessionStorage.removeItem('cacheMobile'); sessionStorage.removeItem('cacheMobile');
openToast('error', '版本更新', '检查到最新版本,即将自动更新,更新完成后请重新操作'); openToast('error', '版本更新', '检查到最新版本,即将自动更新,更新完成后请重新操作');
window.location.href = x.webAdress window.location.href = x.webAdress
? x.webAdress + '?timeVersion=' + time ? x.webAdress + '?timeVersion=' + time
: ul.indexOf('?') > -1 : ul.indexOf('?') > -1
? ul + '&timeVersion=' + time ? ul + '&timeVersion=' + time
: ul + '?timeVersion=' + time; : ul + '?timeVersion=' + time;
}
setTimeout(() => location.reload(), 3000);
}
return;
}
if (window.location.href.indexOf('/mobile') != -1) {
if (response.errCode || response.errMsg) {
offline(response.errMsg, 2);
if (data.callback) data.callback(response);
return;
} }
setTimeout(() => location.reload(), 3000);
} }
if (!response) return;
return;
}
if (window.location.href.indexOf('/mobile') != -1) {
if (response.errCode || response.errMsg) { if (response.errCode || response.errMsg) {
offline(response.errMsg, 2); qqCw({
if (data.callback) data.callback(response); msg: response.errMsg,
customErrMsg: pp.customErrMsg,
});
return; return;
} }
} if (response.errcode) {
if (!response) return; qqCw({
msg: response.errmsg,
if (response.errCode || response.errMsg) { customErrMsg: pp.customErrMsg,
qqCw({ });
msg: response.errMsg, return;
customErrMsg: pp.customErrMsg, }
}); canReportError = true;
return; return response;
} });
if (response.errcode) {
qqCw({
msg: response.errmsg,
customErrMsg: pp.customErrMsg,
});
return;
}
canReportError = true;
return response;
});
} else { } else {
const pp = { const pp = {
token: getToken(), // 部分接口 只需要传入假token 所以这里优先级是 data中的token > getToken; token: getToken(), // 部分接口 只需要传入假token 所以这里优先级是 data中的token > getToken;
...@@ -241,65 +248,66 @@ export const requestOrigin = (url, data, options = {}) => { ...@@ -241,65 +248,66 @@ export const requestOrigin = (url, data, options = {}) => {
requestType: 'form', requestType: 'form',
...options, ...options,
}).then(response => { })
if(response && response.errMsg){ .then(response => {
response.errMsg = response.errMsg.slice(0,30) + '...'; if (response && response.errMsg) {
} response.errMsg = response.errMsg.slice(0, 30) + '...';
if (response && response.errCode && response.errCode == '10000') { }
const ul = window.location.href; if (response && response.errCode && response.errCode == '10000') {
if (ul.indexOf('timeVersion=') == -1) { const ul = window.location.href;
let x = JSON.parse(response.errMsg); if (ul.indexOf('timeVersion=') == -1) {
let time = +new Date(); let x = JSON.parse(response.errMsg);
localStorage.setItem('version', JSON.stringify(x.version)); let time = +new Date();
localStorage.setItem('version', JSON.stringify(x.version));
if (ul.indexOf('/portal/') == -1 && ul.indexOf('/admin/') == -1) {
sessionStorage.removeItem('cacheMobile'); if (ul.indexOf('/portal/') == -1 && ul.indexOf('/admin/') == -1) {
showToast('检查到最新版本,即将自动更新,更新完成后请重新操作'); sessionStorage.removeItem('cacheMobile');
window.location.href = x.mobileAdress showToast('检查到最新版本,即将自动更新,更新完成后请重新操作');
? mobileAdress + '?timeVersion=' + time window.location.href = x.mobileAdress
: ul.indexOf('?') > -1 ? mobileAdress + '?timeVersion=' + time
? ul + '&timeVersion=' + time : ul.indexOf('?') > -1
: ul + '?timeVersion=' + time; ? ul + '&timeVersion=' + time
} else { : ul + '?timeVersion=' + time;
sessionStorage.removeItem('cacheMobile'); } else {
openToast('error', '版本更新', '检查到最新版本,即将自动更新,更新完成后请重新操作'); sessionStorage.removeItem('cacheMobile');
openToast('error', '版本更新', '检查到最新版本,即将自动更新,更新完成后请重新操作');
window.location.href = x.webAdress
? x.webAdress + '?timeVersion=' + time window.location.href = x.webAdress
: ul.indexOf('?') > -1 ? x.webAdress + '?timeVersion=' + time
? ul + '&timeVersion=' + time : ul.indexOf('?') > -1
: ul + '?timeVersion=' + time; ? ul + '&timeVersion=' + time
: ul + '?timeVersion=' + time;
}
setTimeout(() => location.reload(), 3000);
} }
setTimeout(() => location.reload(), 3000); return;
} }
return; if (window.location.href.indexOf('/mobile') != -1) {
} if (response.errCode || response.errMsg) {
if (window.location.href.indexOf('/mobile') != -1) { offline(response.errMsg, 2);
if (data.callback) data.callback(response);
return;
}
}
if (!response) return;
if (response.errCode || response.errMsg) { if (response.errCode || response.errMsg) {
offline(response.errMsg, 2); qqCw({
if (data.callback) data.callback(response); msg: response.errMsg,
customErrMsg: pp.customErrMsg,
});
return; return;
} }
} if (response.errcode) {
if (!response) return; qqCw({
msg: response.errmsg,
if (response.errCode || response.errMsg) { customErrMsg: pp.customErrMsg,
qqCw({ });
msg: response.errMsg, return;
customErrMsg: pp.customErrMsg, }
}); canReportError = true;
return; return response;
} });
if (response.errcode) {
qqCw({
msg: response.errmsg,
customErrMsg: pp.customErrMsg,
});
return;
}
canReportError = true;
return response;
});
} }
}; };
...@@ -350,26 +358,28 @@ export const getUiaRequest = (data) => { // 2.0的登录接口 ...@@ -350,26 +358,28 @@ export const getUiaRequest = (data) => { // 2.0的登录接口
return fetch(queryUiaApi() + '/oauth/token', { return fetch(queryUiaApi() + '/oauth/token', {
credentials: 'omit', credentials: 'omit',
mode: 'cors', mode: 'cors',
headers:{ headers: {
Accept: 'application/json', Accept: 'application/json',
// 'Content-Type': 'multipart/form-data', // 'Content-Type': 'multipart/form-data',
}, },
method: 'POST', method: 'POST',
body: objectToFormData(data), body: objectToFormData(data),
}).then(response => {
return response.json();
}).then((g) => {
if(g && g.access_token){
g.token = g.access_token;
return g;
}else{
if(g && g.message){
message.warn(g.message);
}
return false;
}
}) })
} .then(response => {
return response.json();
})
.then((g) => {
if (g && g.access_token) {
g.token = g.access_token;
return g;
} else {
if (g && g.message) {
message.warn(g.message);
}
return false;
}
});
};
// export const testGetUiaRequest = (data) => { // 2.0的登录接口 // export const testGetUiaRequest = (data) => { // 2.0的登录接口
......
/** /**
* 设置token * 设置token
* */ * */
import { isJSON } from '@/webPublic/one_stop_public/copy';
export const setToken = (value, time) => { export const setToken = (value, time) => {
localStorage.setItem('antd-pro-token-onestop', value); localStorage.setItem('antd-pro-token-onestop', value);
localStorage.setItem('antd-pro-token', value); localStorage.setItem('antd-pro-token', value);
...@@ -31,3 +33,15 @@ export const delToken = () => { ...@@ -31,3 +33,15 @@ export const delToken = () => {
localStorage.removeItem('antd-pro-token'); localStorage.removeItem('antd-pro-token');
localStorage.removeItem('wisdom-school-token'); localStorage.removeItem('wisdom-school-token');
} }
export const getUserInfo = () => {
let x = localStorage.getItem('user');
if(isJSON(x)){
x = JSON.parse(x);
return x;
}else{
return {
groupsId: 'pub',
};
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论