提交 462f7276 authored 作者: 钟是志's avatar 钟是志

演示环境开发

上级 039c862d
...@@ -6,31 +6,31 @@ import { extend } from 'umi-request'; ...@@ -6,31 +6,31 @@ import { extend } from 'umi-request';
import { notification } from 'antd'; import { notification } from 'antd';
import { getToken } from './token'; import { getToken } from './token';
import { import {
queryApiActionPath, queryApiActionPath,
queryOauthActionPath, queryOauthActionPath,
queryPermActionPath, queryPermActionPath,
queryDynamicActionPath, queryDynamicActionPath,
} from './queryConfig'; } from './queryConfig';
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';
const codeMessage = { const codeMessage = {
200: '服务器成功返回请求的数据。', 200: '服务器成功返回请求的数据。',
201: '新建或修改数据成功。', 201: '新建或修改数据成功。',
202: '一个请求已经进入后台排队(异步任务)。', 202: '一个请求已经进入后台排队(异步任务)。',
204: '删除数据成功。', 204: '删除数据成功。',
400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。', 400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',
401: '登录已过期,请重新登录', 401: '登录已过期,请重新登录',
403: '用户得到授权,但是访问是被禁止的。', 403: '用户得到授权,但是访问是被禁止的。',
404: '发出的请求针对的是不存在的记录,服务器没有进行操作。', 404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',
406: '请求的格式不可得。', 406: '请求的格式不可得。',
410: '请求的资源被永久删除,且不会再得到的。', 410: '请求的资源被永久删除,且不会再得到的。',
422: '当创建一个对象时,发生一个验证错误。', 422: '当创建一个对象时,发生一个验证错误。',
500: '服务器发生错误,请检查服务器。', 500: '服务器发生错误,请检查服务器。',
502: '网关错误。', 502: '网关错误。',
503: '服务不可用,服务器暂时过载或维护。', 503: '服务不可用,服务器暂时过载或维护。',
504: '网关超时。', 504: '网关超时。',
}; };
/** /**
* param 将要转为URL参数字符串的对象 * param 将要转为URL参数字符串的对象
...@@ -41,60 +41,60 @@ const codeMessage = { ...@@ -41,60 +41,60 @@ const codeMessage = {
*/ */
const qqCw = ({ title = '请求错误', msg = '', customErrMsg = '' }) => { const qqCw = ({ title = '请求错误', msg = '', customErrMsg = '' }) => {
// 请求错误 增加自定义错误提示信息 customErrMsg 从发起 接口那里自定义 // 请求错误 增加自定义错误提示信息 customErrMsg 从发起 接口那里自定义
// 禅道bug 11794 // 禅道bug 11794
notification.error({ notification.error({
message: title, message: title,
description: customErrMsg || msg, description: customErrMsg || msg,
}); });
return undefined; return undefined;
}; };
const objectToQuery = function(param, key, encode) { const objectToQuery = function(param, key, encode) {
if (param == null) return ''; if (param == null) return '';
var paramStr = ''; var paramStr = '';
var t = typeof param; var t = typeof param;
if (t == 'string' || t == 'number' || t == 'boolean') { if (t == 'string' || t == 'number' || t == 'boolean') {
paramStr += '&' + key + '=' + (encode == null || encode ? encodeURIComponent(param) : param); paramStr += '&' + key + '=' + (encode == null || encode ? encodeURIComponent(param) : param);
} else { } else {
for (var i in param) { for (var i in param) {
var k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i); var k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i);
paramStr += objectToQuery(param[i], k, encode); paramStr += objectToQuery(param[i], k, encode);
} }
} }
return paramStr; return paramStr;
}; };
/** /**
* 异常处理程序 * 异常处理程序
*/ */
var canReportError = true; var canReportError = true;
const errorHandler = (error) => { const errorHandler = error => {
const { response } = error; const { response } = error;
if (response && response.status) { if (response && response.status) {
const errorText = codeMessage[response.status] || response.statusText; const errorText = codeMessage[response.status] || response.statusText;
qqCw({ qqCw({
msg: errorText, msg: errorText,
}); });
if (response.status === 401) { if (response.status === 401) {
// @HACK // @HACK
/* eslint-disable no-underscore-dangle */ /* eslint-disable no-underscore-dangle */
if (window.location.href.indexOf('/portal/previewModule') !== -1) { if (window.location.href.indexOf('/portal/previewModule') !== -1) {
return; return;
} }
return window.g_app._store.dispatch({ return window.g_app._store.dispatch({
type: 'login/loginout', type: 'login/loginout',
}); });
} }
} else { } else {
if (canReportError) { if (canReportError) {
notification.error({ notification.error({
message: `网络故障`, message: `网络故障`,
description: '请检查网络链接或联系管理员', description: '请检查网络链接或联系管理员',
}); });
canReportError = false; canReportError = false;
} }
} }
}; };
/** /**
...@@ -102,10 +102,9 @@ const errorHandler = (error) => { ...@@ -102,10 +102,9 @@ const errorHandler = (error) => {
*/ */
const umiRequest = extend({ const umiRequest = extend({
errorHandler, // 默认错误处理 errorHandler, // 默认错误处理
credentials: 'omit', // 默认请求是否带上cookie credentials: 'omit', // 默认请求是否带上cookie
mode: 'cors', mode: 'cors',
}); });
const loginUmiRequest = extend({ const loginUmiRequest = extend({
...@@ -114,208 +113,228 @@ const loginUmiRequest = extend({ ...@@ -114,208 +113,228 @@ const loginUmiRequest = extend({
// mode: 'cors', // mode: 'cors',
}); });
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 = {}) => {
let version = let version =
localStorage.getItem('version') && localStorage.getItem('version') !== 'undefined' localStorage.getItem('version') && localStorage.getItem('version') !== 'undefined'
? JSON.parse(localStorage.getItem('version')) ? JSON.parse(localStorage.getItem('version'))
: null; : null;
if (options.method === 'GET') { if (options.method === 'GET') {
const pp = { ...data, version_: version }; const pp = {
for (let i in pp) { ...data,
if (pp[i] == null) { version_: version,
delete pp[i]; };
} else if (typeof pp[i] == 'string') { for (let i in pp) {
pp[i] = pp[i].trim(); if (pp[i] == null) {
} delete pp[i];
} } else if (typeof pp[i] == 'string') {
if (url.indexOf('?') !== -1) { pp[i] = pp[i].trim();
url = url + '&token=' + getToken() + objectToQuery(pp); }
} else { }
url = url + '?token=' + getToken() + objectToQuery(pp); if (url.indexOf('?') !== -1) {
} url = url + '&token=' + getToken() + objectToQuery(pp);
// 由于自动添加前缀 这里暂时修改getUrl(url) } else {
return umiRequest(url, { url = url + '?token=' + getToken() + objectToQuery(pp);
data: pp, }
// method: "POST", // 由于自动添加前缀 这里暂时修改getUrl(url)
return umiRequest(url, {
requestType: 'form', data: pp,
...options, // method: "POST",
}).then((response) => {
if (response.errCode && response.errCode == '10000') { requestType: 'form',
const ul = window.location.href; ...options,
if (ul.indexOf('timeVersion=') == -1) { }).then(response => {
let x = JSON.parse(response.errMsg); if (response.errCode && response.errCode == '10000') {
let time = +new Date(); const ul = window.location.href;
localStorage.setItem('version', JSON.stringify(x.version)); if (ul.indexOf('timeVersion=') == -1) {
let x = JSON.parse(response.errMsg);
if (ul.indexOf('/portal/') == -1 && ul.indexOf('/admin/') == -1) { let time = +new Date();
sessionStorage.removeItem('cacheMobile'); localStorage.setItem('version', JSON.stringify(x.version));
showToast('检查到最新版本,即将自动更新,更新完成后请重新操作');
if (ul.indexOf('/portal/') == -1 && ul.indexOf('/admin/') == -1) {
window.location.href = x.mobileAdress sessionStorage.removeItem('cacheMobile');
? mobileAdress + '?timeVersion=' + time showToast('检查到最新版本,即将自动更新,更新完成后请重新操作');
: ul.indexOf('?') > -1
? ul + '&timeVersion=' + time window.location.href = x.mobileAdress
: ul + '?timeVersion=' + time; ? mobileAdress + '?timeVersion=' + time
} else { : ul.indexOf('?') > -1
sessionStorage.removeItem('cacheMobile'); ? ul + '&timeVersion=' + time
openToast('error', '版本更新', '检查到最新版本,即将自动更新,更新完成后请重新操作'); : ul + '?timeVersion=' + time;
} else {
window.location.href = x.webAdress sessionStorage.removeItem('cacheMobile');
? x.webAdress + '?timeVersion=' + time openToast('error', '版本更新', '检查到最新版本,即将自动更新,更新完成后请重新操作');
: ul.indexOf('?') > -1
? ul + '&timeVersion=' + time window.location.href = x.webAdress
: ul + '?timeVersion=' + time; ? x.webAdress + '?timeVersion=' + time
} : ul.indexOf('?') > -1
setTimeout(() => location.reload(), 3000); ? ul + '&timeVersion=' + time
} : ul + '?timeVersion=' + time;
}
return; setTimeout(() => location.reload(), 3000);
} }
if (window.location.href.indexOf('/mobile') != -1) {
if (response.errCode || response.errMsg) { return;
offline(response.errMsg, 2); }
if (data.callback) data.callback(response); if (window.location.href.indexOf('/mobile') != -1) {
return; if (response.errCode || response.errMsg) {
} offline(response.errMsg, 2);
} if (data.callback) data.callback(response);
if (!response) return; return;
}
if (response.errCode || response.errMsg) { }
qqCw({ if (!response) return;
msg: response.errMsg,
customErrMsg: pp.customErrMsg, if (response.errCode || response.errMsg) {
}); qqCw({
return; msg: response.errMsg,
} customErrMsg: pp.customErrMsg,
if (response.errcode) { });
qqCw({ return;
msg: response.errmsg, }
customErrMsg: pp.customErrMsg, if (response.errcode) {
}); qqCw({
return; msg: response.errmsg,
} customErrMsg: pp.customErrMsg,
canReportError = true; });
return response; return;
}); }
} else { canReportError = true;
const pp = { return response;
...data, });
token: getToken(), } else {
version_: version, const pp = {
}; ...data,
token: getToken(),
for (let i in pp) { version_: version,
if (pp[i] == null) { };
delete pp[i];
} else if (typeof pp[i] == 'string') { for (let i in pp) {
pp[i] = pp[i].trim(); if (pp[i] == null) {
} delete pp[i];
} } else if (typeof pp[i] == 'string') {
pp[i] = pp[i].trim();
}
}
// 由于自动添加前缀 这里暂时修改getUrl(url) // 由于自动添加前缀 这里暂时修改getUrl(url)
let fetchRequest = url.indexOf('UserApi/login') > -1 ? loginUmiRequest : umiRequest; let fetchRequest = url.indexOf('UserApi/login') > -1 ? loginUmiRequest : umiRequest;
if(window.location.href.indexOf('localhost') > -1 && url.indexOf('UserApi/login') > -1) { // 开发环境直接免密登录 2021年11月25日 if (
(window.location.href.indexOf('localhost') > -1 ||
window.location.href.indexOf('172.32.2') > -1) &&
url.indexOf('UserApi/login') > -1
) {
// 开发环境直接免密登录 2021年11月25日
fetchRequest = umiRequest; fetchRequest = umiRequest;
url = '/UserApi/loginByCount'; url = '/UserApi/loginByCount';
} }
return fetchRequest(url, { return fetchRequest(url, {
data: pp, data: pp,
// method: "POST", // method: "POST",
requestType: 'form', requestType: 'form',
...options, ...options,
}).then((response) => { }).then(response => {
if (response && response.errCode && response.errCode == '10000') { if (response && 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); setTimeout(() => location.reload(), 3000);
} }
return; return;
} }
if (window.location.href.indexOf('/mobile') != -1) { if (window.location.href.indexOf('/mobile') != -1) {
if (response.errCode || response.errMsg) { if (response.errCode || response.errMsg) {
offline(response.errMsg, 2); offline(response.errMsg, 2);
if (data.callback) data.callback(response); if (data.callback) data.callback(response);
return; return;
} }
} }
if (!response) return; if (!response) return;
if (response.errCode || response.errMsg) { if (response.errCode || response.errMsg) {
qqCw({ qqCw({
msg: response.errMsg, msg: response.errMsg,
customErrMsg: pp.customErrMsg, customErrMsg: pp.customErrMsg,
}); });
return; return;
} }
if (response.errcode) { if (response.errcode) {
qqCw({ qqCw({
msg: response.errmsg, msg: response.errmsg,
customErrMsg: pp.customErrMsg, customErrMsg: pp.customErrMsg,
}); });
return; return;
} }
canReportError = true; canReportError = true;
return response; return response;
}); });
} }
}; };
const setRequestConfig = (config) => { const setRequestConfig = config => {
return (url, data, options = {}) => { return (url, data, options = {}) => {
if (Array.isArray(url)) { if (Array.isArray(url)) {
return Promise.all( return Promise.all(
url.map((ags) => { url.map(ags => {
return request(ags[0], ags[1], Object.assign({}, ags[2], config)); return request(ags[0], ags[1], Object.assign({}, ags[2], config));
}), }),
); );
} }
return request(url, data, { ...options, ...config }); return request(url, data, { ...options, ...config });
}; };
}; };
const createServerRequest = (config = {}) => { const createServerRequest = (config = {}) => {
return setRequestConfig(config); return setRequestConfig(config);
}; };
export const dynamicRequest = createServerRequest({ export const dynamicRequest = createServerRequest({
method: 'POST', method: 'POST',
prefix: queryDynamicActionPath(), prefix: queryDynamicActionPath(),
}); });
export const uaaRequest = createServerRequest({ method: 'POST', prefix: queryOauthActionPath() }); export const uaaRequest = createServerRequest({
method: 'POST',
prefix: queryOauthActionPath(),
});
export const permRequest = createServerRequest({ method: 'POST', prefix: queryPermActionPath() }); export const permRequest = createServerRequest({
method: 'POST',
prefix: queryPermActionPath(),
});
export const apiRequest = createServerRequest({ method: 'POST', prefix: queryApiActionPath() }); export const apiRequest = createServerRequest({
method: 'POST',
prefix: queryApiActionPath(),
});
export const getRequest = createServerRequest({ method: 'GET', prefix: queryApiActionPath() }); export const getRequest = createServerRequest({
method: 'GET',
prefix: queryApiActionPath(),
});
export default request; export default request;
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论