提交 745dfb91 authored 作者: 钟是志's avatar 钟是志

2023年3月3日

* UC浏览器不支持 es6的 replaceAll方法 需要自己写一个
上级 54dd7273
......@@ -12,10 +12,11 @@ import { getTransformApi } from '@/webPublic/one_stop_public/2022beidianke/local
import { strToBinary } from './strToBinary'; // 字符串转二进制 混淆代码
import { binaryToStr } from './binaryToStr';
import { getVisitorToken } from '@/webPublic/zyd_public/utils/getHeaders';
import { replaceAll } from '@/webPublic/one_stop_public/Base16/utils';
const test = !!getUrlInfo().test;
function formatDatas(datas, url = '') {
if (url && url.indexOf('getSqlData') > -1 && window.smartFormGlobalProps?.data) {
// 按欢哥的要求 getSqlData 接口要加上appId 参数
// 解决北电科接口越权的问题.
......@@ -37,14 +38,14 @@ function formatDatas(datas, url = '') {
});
let datasTrue = {
fileParams: file,
fileParams: window.CONFIG.SAFE_TYPE === 2 ? datasCode : file,
};
if (openIsBinary) {
datasTrue.bin = true;
if (window.CONFIG?.ALL_R_BIN) {
datasTrue.rbin = true;
} else {
let findIndexA = resBinaryApiList.findIndex((g) => {
let findIndexA = resBinaryApiList.findIndex(g => {
return url.includes(g.api);
});
if (findIndexA >= 0) {
......@@ -56,6 +57,7 @@ function formatDatas(datas, url = '') {
}
export async function giveFilePostData(datas, url) {
const staticS = window.CONFIG.SAFE_TYPE === 2 ? 'interface' : 'safe';
// console.log(datas, url);
for (let i in datas) {
if (
......@@ -70,14 +72,15 @@ export async function giveFilePostData(datas, url) {
for (let item of encryptApiList) {
if ((window.CONFIG?.ALLBIN && url.indexOf('/onestop/') > -1) || url.indexOf(item.api) > -1) {
const roleGroup = getUserInfo().groupsId;
if (url.indexOf('http') > -1) {
console.log(url);
url = url.replace('/onestop/', `/onestop/safe/${roleGroup}/`);
url = url.replace('/onestopapi/', `/onestopapi/safe/${roleGroup}/`);
url = url.replace('/onestop/', `/onestop/${staticS}/${roleGroup}/`);
url = url.replace('/onestopapi/', `/onestopapi/${staticS}/${roleGroup}/`);
} else {
url = url.replace(url, `/safe/${roleGroup}/` + url);
url = url.replaceAll('//', '/');
url = url.replace(url, `/${staticS}/${roleGroup}/` + url);
url = replaceAll(url, '//', '/');
}
datas = await countAllValues(datas, item);
return new Promise((resolve, reject) => {
resolve({
......@@ -101,26 +104,42 @@ function testPromise(d) {
}
export async function requestFileInfo(url, datas) {
const staticS = window.CONFIG.SAFE_TYPE === 2 ? 'interface' : 'safe';
// for (let i = 0; i < 100; i++) {
// datas = await testPromise(datas);
// }
const formData = new FormData();
if (getVisitorToken()) {
datas.token = getVisitorToken();
} else {
datas.token = getToken();
}
for (let key in datas) {
formData.append(key, datas[key]);
}
if (!url || typeof url !== 'string') {
return false;
}
let trueUrl = url && url.indexOf('http') > -1 ? url : queryApiActionPath() + url;
const { transformApi, headersApi } = await getTransformApi(trueUrl);
return fetch(transformApi, {
let urlSafe2 = transformApi;
if (window.CONFIG.SAFE_TYPE === 2) {
urlSafe2 = transformApi.split('/');
let findSafeIndex = urlSafe2.findIndex(g => g === staticS);
if (findSafeIndex >= 1) {
let path = urlSafe2.slice(findSafeIndex + 2).join('/');
urlSafe2 = urlSafe2.slice(0, findSafeIndex + 2).join('/');
datas.path = '/' + path;
}
}
for (let key in datas) {
formData.append(key, datas[key]);
}
return fetch(urlSafe2, {
headers: {
Accept: 'application/json',
...getHeaders(transformApi).headers,
ContentType: 'multipart/form-data',
// apis: headersApi,
// axxx: `select * from user123 where id = 1`,
},
......@@ -129,8 +148,7 @@ export async function requestFileInfo(url, datas) {
mode: 'cors',
body: formData,
})
.then((res) => {
// console.log(res);
.then(res => {
if (res.status === 401) {
qqCw({
title: '登录过期401',
......@@ -147,7 +165,7 @@ export async function requestFileInfo(url, datas) {
}
return res.json();
})
.then((res) => {
.then(res => {
if (res && typeof res === 'object' && res.rbin) {
res = binaryToStr(res.rbin);
if (isJSON(res)) {
......@@ -174,6 +192,7 @@ export async function requestFileInfo(url, datas) {
}
export function giveFilePostDataInfoForTrue(datas, url) {
const staticS = window.CONFIG.SAFE_TYPE === 2 ? 'interface' : 'safe';
if (!window.CONFIG?.IS_SAFE) {
return {
datas,
......@@ -193,11 +212,11 @@ export function giveFilePostDataInfoForTrue(datas, url) {
if (url) {
const roleGroup = getUserInfo().groupsId;
if (url.indexOf('http') > -1) {
url = url.replace('/onestop/', `/onestop/safe/${roleGroup}/`);
url = url.replace('/onestopapi/', `/onestopapi/safe/${roleGroup}/`);
url = url.replace('/onestop/', `/onestop/${staticS}/${roleGroup}/`);
url = url.replace('/onestopapi/', `/onestopapi/${staticS}/${roleGroup}/`);
} else {
url = url.replace(url, `/safe/${roleGroup}/` + url);
url = url.replaceAll('//', '/');
url = url.replace(url, `/${staticS}/${roleGroup}/` + url);
url = replaceAll(url, '//', '/');
}
return {
datas: formatDatas(datas, url),
......
import { replaceAll } from '@/webPublic/one_stop_public/Base16/utils';
/**
* 二进制字符串转JSON字符串
* */
export function binaryToStr(binaryStr = '') {
let res = '';
if (binaryStr) {
binaryStr = binaryStr.replaceAll('.', '1');
binaryStr = binaryStr.replaceAll('-', '0');
binaryStr = replaceAll(binaryStr, '\\.', '1');
binaryStr = replaceAll(binaryStr, '-', '0');
let strListArr = binaryStr.split('_');
for (let i = 0; i < strListArr.length; i++) {
let item = strListArr[i];
res += String.fromCharCode(parseInt(item, 2));
......
/**
* 字符串转二进制
* */
import { replaceAll } from '@/webPublic/one_stop_public/Base16/utils';
export function strToBinary(str) {
let result = [];
let list = str.split('');
......@@ -14,7 +16,7 @@ export function strToBinary(str) {
result.push(binaryStr);
}
let resultStr = result.join('');
resultStr = resultStr.replaceAll('0', '-').replaceAll('1', '.');
// console.log(resultStr);
resultStr = replaceAll(resultStr, '0', '-');
resultStr = replaceAll(resultStr, '1', '.');
return resultStr;
}
/**
* 2023年3月3日
* UC浏览器不支持 es6的 replaceAll方法 需要自己写一个
* */
export function replaceAll(str, before, after) {
return str.replace(new RegExp(before,'gm'), after);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论