tplus-mobilelogin
Version:
password login module
170 lines (152 loc) • 5.07 kB
text/typescript
import {tApi, User} from 'tplus-api';
const QS = require('qs');
import axios from 'axios';
import {GeneralResponse, LoginSupplierModel} from "../models/LoginSupplierModel";
import loginStore from "../stores/LoginStore";
import {SetOrganizationModel} from "../models/SetOrganizationModel";
import tools from '../util/tools';
declare var __CIA_ENV__;
export default class WebAppApi {
static baseWebAppURL = 'https://lcs.chanapp.chanjet.com';
static baseWebAppURL_agreement = 'https://base.chanapp.chanjet.com';
static initialize(){
console.log("cia",__CIA_ENV__);
if(__CIA_ENV__ === "development" || __CIA_ENV__ === "inte" || __CIA_ENV__ === "dev"){
WebAppApi.baseWebAppURL = 'https://lcs-chanapp.test.chanjet.com';
WebAppApi.baseWebAppURL_agreement = 'https://base-chanapp.inte.chanjet.com';
console.log("cia inte");
WebAppApi.setBaseWebAppURL('https://lcs-chanapp.test.chanjet.com');
}
}
static axiosInstance = axios.create({
baseURL: WebAppApi.baseWebAppURL,
headers: { 'content-type': 'application/json' },
withCredentials: true
});
static setBaseWebAppURL(url){
WebAppApi.baseWebAppURL = url;
WebAppApi.axiosInstance = axios.create({
baseURL: WebAppApi.baseWebAppURL,
headers: { 'content-type': 'application/json' },
withCredentials: true
});
console.log("setBaseWebAppURL", WebAppApi.baseWebAppURL);
}
//获取应用有效期
static async getServiceDueCheck(appId:string){
const method = 'chanjet.EAP.GZQ.CSP.ServiceDueCheck';
const param = {'ciaAppId':appId};
const resp = await tApi(param,method,false);
return resp;
}
static get token(){
return localStorage.getItem("token") || undefined;
}
/**
* 用户密码登录
* @param username
* @param password
* @param openId 微信登录传,其他不传
*/
static async getTPlusLogin(username, password,openId?):Promise<LoginSupplierModel>{
var param = {
'userName': username,
'password': User.pwdEncrypt(password),
'appCode': "LOGISTICSTRACK",
'openId': (openId || "")
};
var ajax = WebAppApi.axiosInstance;
const resp = await ajax.post(tools.addUUidTOUrl('/api/LoginCollaboration/Login'), param);
let data = resp.data.data as LoginSupplierModel;
return data || resp.data;
}
/**
* 微信端绑定用户
* @param authCode
*/
static async defaultLogin(authCode):Promise<GeneralResponse>{
var param = {
"appCode": "LOGISTICSTRACK",
"authcode": authCode
};
var ajax = WebAppApi.axiosInstance;
const resp = await ajax.post(tools.addUUidTOUrl('/api/LoginCollaboration/LoginWithAppAuthCode'), param);
let data = resp.data as any;
return data;
}
static async LoginWithCIAInfo(ciaToken,cloudUserId,orgId):Promise<GeneralResponse>{
var param = {
"appCode": "LOGISTICSTRACK",
ciaToken,cloudUserId,orgId
};
var ajax = WebAppApi.axiosInstance;
const resp = await ajax.post(tools.addUUidTOUrl('/api/LoginCollaboration/LoginWithCIAInfo'), param);
let data = resp.data as any;
return data;
}
/**
* 解绑微信账号,从微信退出时调用,从其他端退出时不调用
*/
static async unbind():Promise<void>{
var ajax = WebAppApi.axiosInstance;
const resp = await ajax.post(tools.addUUidTOUrl('/api/LoginCollaboration/CancelAppBinding'),{},{
headers:{
"token":localStorage.getItem("token")
}
});
return resp.data;
}
/**
* 登录设置供应商、切换账套
* @param userName 手机号
* @param id 供应商Id
* @param platformAuthCode 登录时传此参数,切换账套不用
*/
static async setOrganization(userName, id, platformAuthCode?):Promise<SetOrganizationModel>{
var param = {
"supplierId":id,
"platformAuthCode":platformAuthCode,
"userName":userName,
"appCode":"LOGISTICSTRACK"
};
var ajax =WebAppApi.axiosInstance;
let token = localStorage.getItem("token");
let config = {};
if(token) {
config = {
headers: {
token: token
}
}
};
const resp = await ajax.post(tools.addUUidTOUrl('/api/LoginCollaboration/SetOrganization'), param,config);
return resp.data.data;
}
static async getServiceVersionNo(orgId) {
var param = QS.stringify({
'code': orgId
});
var ajax = axios.create({
baseURL: 'http://webapp.tplus.chanjet.com/TPlus/api/v1/'
});
const resp = await ajax.post('RptSubscribe/GetVersionNo', param);
return resp.data.Value;
}
//上报功能
static async SignAgreement(param) {
let token = localStorage.getItem("ctoken");
let config = {};
if(token) {
config = {
headers: {
"content-type": "application/json",
accessToken: token
}
}
};
var ajax = axios.create({baseURL: WebAppApi.baseWebAppURL_agreement});
const resp = await ajax.post('agreement/sign', param, config);
return resp.data;
}
}
WebAppApi.initialize();