UNPKG

tplus-mobilelogin

Version:

password login module

170 lines (152 loc) 5.07 kB
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();