| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- // 统一处理业务逻辑
- import code from '~/map/rcodeMap'
- let rcodeHandleMap = {
- };
- function registerHandle(rcode,handle){
- rcodeHandleMap[rcode] = handle;
- }
- // 1. 获取当前url地址
- // 2. 存储sessionStore
- // 3. 自动前往登陆页
- function toLogin(){
- let nowUrl = window.location.href;
- window.sessionStorage.setItem('lastUrl',nowUrl);
- window.location.href = '/login';
- }
- let defaultFns = {
- [code.notMatch]: {
- msg: code[code.notMatch].msg,
- ok: code[code.notMatch].ok,
- type: code[code.notMatch].type,
- },
- [code.ok]: {
- msg: code[code.ok].msg,
- ok: code[code.ok].ok,
- type: code[code.ok].type,
- },
- [code.notParam]: {
- msg: code[code.notParam].msg,
- ok: code[code.notParam].ok,
- type: code[code.notParam].type,
- },
- [code.notLogin]: {
- fn: toLogin,
- msg: code[code.notLogin].msg,
- ok: code[code.notLogin].ok,
- type: code[code.notLogin].type,
- },
- [code.serverError]: {
- // fn: toLogin,
- msg: code[code.serverError].msg,
- ok: code[code.serverError].ok,
- type: code[code.serverError].type,
- },
- [code.permissionDenied]: {
- msg: code[code.permissionDenied].msg,
- ok: code[code.permissionDenied].ok,
- type: code[code.permissionDenied].type,
- },
- [code.customError]: {
- msg: code[code.customError].msg,
- ok: code[code.customError].ok,
- type: code[code.customError].type,
- },
- [code.notFound]: {
- msg: code[code.notFound].msg,
- ok: code[code.notFound].ok,
- type: code[code.notFound].type,
- },
- [code.apiError]: {
- msg: code[code.apiError].msg,
- ok: code[code.apiError].ok,
- type: code[code.apiError].type,
- },
- [code.saveError]: {
- msg: code[code.saveError].msg,
- ok: code[code.saveError].ok,
- type: code[code.saveError].type,
- },
- [code.dataRepeat]: {
- msg: code[code.dataRepeat].msg,
- ok: code[code.dataRepeat].ok,
- type: code[code.dataRepeat].type,
- },
- [code.timeout]: {
- msg: '请求超时,'+code[code.dataRepeat].msg,
- ok: code[code.dataRepeat].ok,
- type: code[code.dataRepeat].type,
- },
- }
- /**
- * 检查api返回值对应含义,普通服务器接口
- * @param response axios 接口返回的请求值
- * @param err
- * @param fns {object} 对应的rcocd绑定对应的函数
- * @returns {{msg: string, ok: boolean, type: string ,res:object}}
- */
- function checkResponseRcode(response,err,fns={}){
- // 默认值
- let keys = Object.keys(fns);
- let finalFns = {
- ...defaultFns
- }
- for(let field of keys){
- if(finalFns[field]){
- finalFns[field] = {
- ...finalFns[field],
- ...fns[field]
- }
- }
- }
- let res = {}
- if(err){return {ok: false, msg: err?err.message:defaultFns[0].msg,type: 'error',rcode : null};}
- let data = response.data;
- if(!data.rcode || !defaultFns[data.rcode]){
- res = defaultFns[0];
- return res;
- }
- // res = defaultFns[data.rcode]
- res.ok = finalFns[data.rcode].ok;
- res.msg = data.msg?data.msg:finalFns[data.rcode].msg;
- res.type = finalFns[data.rcode].type;
- res.rcode = data.rcode;
- res.res = data;
- // 执行相关操作函数
- if(finalFns[data.rcode].fn){
- finalFns[data.rcode].fn()
- }
- return res;
- }
- function checkErr(err){
- console.log(err);
- }
- export default {
- checkResponseRcode,
- checkErr,
- registerHandle,
- toLogin
- }
|