| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- // 统一处理业务逻辑
- import code from '~/map/rcodeMap_esm'
- 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.NotPermission]: {
- // msg: code[code.NotPermission].msg,
- // ok: code[code.NotPermission].ok,
- // type: code[code.NotPermission].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
- }
|