import encryptApiList, { resBinaryApiList, } from '@/webPublic/one_stop_public/Base16/encryptApiList'; import { getToken, getUserInfo } from '@/webPublic/one_stop_public/utils/token'; import { queryApiActionPath } from '@/webPublic/one_stop_public/utils/queryConfig'; import { qqCw } from '@/webPublic/one_stop_public/utils/request'; import { getHeaders, isJSON } from '@/webPublic/zyd_public/utils/utils'; import { deepCopy } from '@/webPublic/one_stop_public/utils/myutils'; import { countAllValues } from '@/webPublic/one_stop_public/Base16/SplitBase16Index'; import { getUrlInfo } from '@/webPublic/one_stop_public/DetailForAudit/utils'; import { getTransformApi } from '@/webPublic/one_stop_public/2022beidianke/localstorageTransform'; import { strToBinary } from './strToBinary'; // 字符串转二进制 混淆代码 import { binaryToStr } from './binaryToStr'; import { getVisitorToken } from '@/webPublic/zyd_public/utils/getHeaders'; // 二进制字符串转JSON字符串 混淆代码 const test = !!getUrlInfo().test; function formatDatas(datas, url = '') { if (url && url.indexOf('getSqlData') > -1 && window.smartFormGlobalProps?.data) { // 按欢哥的要求 getSqlData 接口要加上appId 参数 // 解决北电科接口越权的问题. datas.appId = window.smartFormGlobalProps?.data.appId || window.smartFormGlobalProps?.data.id; // console.log('getSqlData,AppId', datas.appId); } let datasCode = JSON.stringify(datas); const openIsBinary = window.CONFIG?.IS_BINARY; // if (test) { // console.log(url, datas); // } if (openIsBinary) { datasCode = strToBinary(datasCode); } let file = new File([datasCode], 'fileParams.jpeg', { type: 'image/jpeg', }); let datasTrue = { fileParams: file, }; if (openIsBinary) { datasTrue.bin = true; if (window.CONFIG?.ALL_R_BIN) { datasTrue.rbin = true; } else { let findIndexA = resBinaryApiList.findIndex((g) => { return url.includes(g.api); }); if (findIndexA >= 0) { datasTrue.rbin = true; } } } return datasTrue; } export async function giveFilePostData(datas, url) { // console.log(datas, url); for (let i in datas) { if ( datas[i] === null || (Array.isArray(datas[i]) && datas[i].length === 0) || datas[i] === undefined ) { delete datas[i]; } } if (url && typeof url === 'string') { 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) { url = url.replace('/onestop/', `/onestop/safe/${roleGroup}/`); } else { url = url.replace(url, `/safe/${roleGroup}/` + url); url = url.replaceAll('//', '/'); } datas = await countAllValues(datas, item); return new Promise((resolve, reject) => { resolve({ datas: formatDatas(datas, url), url, }); }); } } } return new Promise((resolve, reject) => { resolve(datas); return datas; }); } function testPromise(d) { return new Promise((resolve, reject) => { resolve(d); }); } export async function requestFileInfo(url, datas) { // for (let i = 0; i < 100; i++) { // datas = await testPromise(datas); // } const formData = new FormData(); if (getVisitorToken()) { datas.token = getVisitorToken(); } 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, { headers: { Accept: 'application/json', ...getHeaders(transformApi).headers, // apis: headersApi, // axxx: `select * from user123 where id = 1`, }, method: 'POST', credentials: 'omit', mode: 'cors', body: formData, }) .then((res) => { if (res.status === 401) { qqCw({ title: '登录过期401', customErrMsg: '登录已过期,请重新登录', }); return false; } if (res.status === 404) { qqCw({ title: 'http404报错', customErrMsg: '请联系系统管理员', }); return false; } return res.json(); }) .then((res) => { if (res && typeof res === 'object' && res.rbin) { res = binaryToStr(res.rbin); if (isJSON(res)) { res = JSON.parse(res); } } if (res && res.errCode) { qqCw({ msg: res.errMsg || res.message, customErrMsg: res.customErrMsg, }); return false; } // if (test) { // console.log({ // url, // res, // }); // } return res; }); } export function giveFilePostDataInfoForTrue(datas, url) { if (!window.CONFIG?.IS_SAFE) { return { datas, url, }; } datas = deepCopy(datas); for (let i in datas) { if ( datas[i] === null || (Array.isArray(datas[i]) && datas[i].length === 0) || datas[i] === undefined ) { delete datas[i]; } } if (url) { const roleGroup = getUserInfo().groupsId; if (url.indexOf('http') > -1) { url = url.replace('/onestop/', `/onestop/safe/${roleGroup}/`); } else { url = url.replace(url, `/safe/${roleGroup}/` + url); url = url.replaceAll('//', '/'); } return { datas: formatDatas(datas, url), url, }; } }