货无忧
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
1.5 KiB

1 year ago
"use strict";const e=require("../common/vendor.js"),t=require("../store/index.js"),a=require("./functions.js"),o=require("../config/host.js"),r=require("./base64.js"),i=require("./md5.js");exports.service=n=>new Promise(((s,d)=>{let u=e.index.getStorageSync("refresh_token"),c=e.index.getStorageSync("access_token"),l=e.index.getStorageSync("userinfo"),g={};l&&c&&u?(t.store.commit("updateislog",!0),t.store.commit("updaterftk",u),t.store.commit("updatetk",c),t.store.commit("updatauser",l),g["Blade-Auth"]=`bearer ${t.store.state.access_token}`):c||-1!=n.url.indexOf("oauth/token")||(e.index.navigateTo({url:"/pages/login/login"}),a.api.error("请登录")),g.Authorization=`Basic ${r.base64.encode(o.APPKEY)}`,-1!=n.url.indexOf("blade-auth/oauth/token")&&(g["Content-Type"]="application/x-www-form-urlencoded",g["Tenant-Id"]=n.data.tenantId,n.data.password=i.hexMD5(n.data.password)),function r(){e.index.request({url:o.host+n.url,data:n.data,method:n.method,header:g}).then((o=>{if(e.index.hideLoading(),200==o.statusCode){let i=o.data;switch(i.code){case 200:case 203:default:s(i);break;case 1001:t.store.commit("updatetk",i.data.token),e.index.setStorageSync("token",i.data),r();break;case 1002:e.index.navigateTo({url:"/pages/login/login"}),a.api.error("请登录"),s({data:{}})}}else{if(400==o.statusCode)return void s({});if(500==o.statusCode)return void a.api.error("接口出错,请联系后端开发人员");a.api.error("连接服务器失败")}})).catch((t=>{console.log(t),a.api.error("请检查是否连接到无线网络"),e.index.hideLoading()}))}()}));