Commit c9bf951f by chunhong.mu

refactor(@common/sdk): 重构目录结构,按功能模块划分子目录

将 SDK 代码按职责划分为 adapters/core/mini-program/services 四个子目录,更新 exports 配置支持按需引入,删除已废弃的 ui-core.ts
parent 15d3f72c
Showing with 225 additions and 272 deletions
...@@ -2,6 +2,12 @@ ...@@ -2,6 +2,12 @@
"name": "@common/sdk", "name": "@common/sdk",
"version": "1.0.0", "version": "1.0.0",
"private": true, "private": true,
"exports": {
".": "./src/index.ts",
"./mini-program": "./src/mini-program/index.ts",
"./services/login-service": "./src/services/login-service.ts",
"./services/verify-service": "./src/services/verify-service.ts"
},
"main": "src/index.ts", "main": "src/index.ts",
"dependencies": { "dependencies": {
"axios": "^0.27.2", "axios": "^0.27.2",
......
...@@ -13,12 +13,74 @@ import { ...@@ -13,12 +13,74 @@ import {
import { Tree } from "uniplat-sdk/build/main/model/tree/tree" import { Tree } from "uniplat-sdk/build/main/model/tree/tree"
import { buildFilePath, buildImage } from "./image-builder" import { buildFilePath, buildImage } from "./image-builder"
/**
* 环境枚举
*/
export enum Environment {
Dev = "dev",
Test = "test",
Pro = "pro",
Stage = "stage",
}
/**
* 客户端 ID 枚举
*/
export enum ClientId {
None = "",
QqxbApp = "qqxb-hrm-app-ios",
QqtxzMp = "qqxb_mini_app",
FlbMp = "qqxb_flb_mini_app",
WebLogin = "teamix-personal-center-web-pc",
RenCaiKuaiDiMp = "welfare_bean_wechat_mini_app",
YuZhiPinMp = "chongqing_job_mini_app",
RenCaiKuaiDiH5 = "welfare_bean_qqxb_h5",
RenCaiKuaiDiPc = "welfare_bean_agent_pc",
Hrs100 = "hrs100-front-web-pc",
QqxbOfficial = "qqxb-official-web",
FastServiceWeb = "teamix-fast-service-web",
FastServiceMerchant = "teamix-fast-service-merchant",
Hrs100WechatMiniApp = "hrs100_wechat_mini_app",
Donghu = "donghu-web-pc",
}
/**
* Passport 配置
*/
const qqxbPassportConfig = new Map<Environment, string>([
[
Environment.Dev,
"http://191env1.report.qinqinxiaobao-passport.qqxb.jinsehuaqin.com:8800",
],
[
Environment.Test,
"http://191env1.report.qinqinxiaobao-passport.qqxb.jinsehuaqin.com:8800",
],
[Environment.Pro, "https://passport.qinqinxiaobao.com"],
[Environment.Stage, "https://pre-passport.qinqinxiaobao.com"],
])
/**
* 微信分销商 URL 配置
*/
export const wxDistributerUrlConfig = new Map<Environment, string>([
[Environment.Dev, "http://wechat.test.teammix.qqxb.cn"],
[Environment.Test, "https://pre-wx-distributer.teammix.com"],
[Environment.Pro, "https://wx-distributer.teammix.com"],
[Environment.Stage, "https://pre-wx-distributer.teammix.com"],
])
export class SdkCore { export class SdkCore {
private uniplatSdk!: UniplatSdk private uniplatSdk!: UniplatSdk
private readonly handler = new UniplatSdkExtender() private readonly handler = new UniplatSdkExtender()
private token!: string private token!: string
public orgId!: number public orgId!: number
// UICore 合并的属性
private client = ClientId.None
private passportUrl = ""
private wxDistributerUrl = ""
constructor(config?: SdkConfig, adapter?: AxiosAdapter) { constructor(config?: SdkConfig, adapter?: AxiosAdapter) {
if (config) { if (config) {
this.init(config, adapter) this.init(config, adapter)
...@@ -40,6 +102,13 @@ export class SdkCore { ...@@ -40,6 +102,13 @@ export class SdkCore {
this.uniplatSdk.getAxios().defaults.timeout = 10e3 this.uniplatSdk.getAxios().defaults.timeout = 10e3
this.uniplatSdk.global.rootEntrance = config.rootEntrance this.uniplatSdk.global.rootEntrance = config.rootEntrance
// UICore 初始化逻辑
this.client = config.clientId as ClientId || ClientId.None
const envir = (config.logEnv as Environment) || Environment.Dev
this.passportUrl = qqxbPassportConfig.get(envir) || qqxbPassportConfig.get(Environment.Dev)!
this.wxDistributerUrl = wxDistributerUrlConfig.get(envir) || wxDistributerUrlConfig.get(Environment.Dev)!
} }
public setupEventHandlers(handlers: { public setupEventHandlers(handlers: {
...@@ -54,6 +123,42 @@ export class SdkCore { ...@@ -54,6 +123,42 @@ export class SdkCore {
return this.uniplatSdk return this.uniplatSdk
} }
public get storage() {
return this.uniplatSdk?.global.storage || localStorage
}
public get clientId() {
return this.client
}
public get passport() {
return this.passportUrl
}
public get wxDistributer() {
return this.wxDistributerUrl
}
/**
* 构建 Passport 登出 URL
*/
public buildPassport4Logout(redirect?: string) {
if (redirect) {
return `${this.passportUrl}?redirectUrl=${redirect}&logout=1`
}
return `${this.passportUrl}?logout=1`
}
public forgetPassword() {
return `${this.passportUrl}/forget`
}
public register() {
return `${this.passportUrl}/register?redirectUrl=${encodeURIComponent(
window.location.href,
)}`
}
public domainServiceGet<ParamsType, ReturnType>( public domainServiceGet<ParamsType, ReturnType>(
apiName: string, apiName: string,
params?: ParamsType, params?: ParamsType,
......
import type { AxiosAdapter } from "axios" import type { AxiosAdapter } from "axios"
import type { Index } from "uniplat-sdk" import type { Index } from "uniplat-sdk"
import { decodeJwt, UniplatSdk } from "uniplat-sdk" import { decodeJwt, UniplatSdk } from "uniplat-sdk"
import { UICore } from "./ui-core"
/** /**
* 登录 API 名称枚举 * 登录 API 名称枚举
...@@ -20,14 +19,27 @@ export class PassportTokenController { ...@@ -20,14 +19,27 @@ export class PassportTokenController {
private static readonly key = "JWT_TOKEN" private static readonly key = "JWT_TOKEN"
private static baseUrl = "" private static baseUrl = ""
private static ssr = false private static ssr = false
private static storageInstance: Storage | null = null
public static setupBaseUrl(baseUrl: string) { public static setupBaseUrl(baseUrl: string) {
this.baseUrl = baseUrl this.baseUrl = baseUrl
return this return this
} }
/**
* 设置自定义存储实例(由 SdkCore 传入)
*/
public static setupStorage(storage: Storage) {
this.storageInstance = storage
return this
}
private static get storage() {
return this.storageInstance || localStorage
}
public static clearToken() { public static clearToken() {
UICore.storage.removeItem(this.key) this.storage.removeItem(this.key)
} }
public static useSsrMode() { public static useSsrMode() {
...@@ -57,13 +69,18 @@ export class PassportTokenController { ...@@ -57,13 +69,18 @@ export class PassportTokenController {
.then((r) => { .then((r) => {
const o = r as Index.loginByPassportRequestResult const o = r as Index.loginByPassportRequestResult
if (o.jwt) { if (o.jwt) {
this.ssr && (UICore.core.global.ssr = true) if (this.ssr) {
UICore.storage.setItem(this.key, o.jwt) (sdk.global as any).ssr = true
}
this.storage.setItem(this.key, o.jwt)
} }
}) })
} else { } else {
this.ssr && (UICore.core.global.ssr = true) if (this.ssr) {
UICore.storage.setItem(this.key, token) // SSR mode requires sdk.global to be set
// This should be handled by the caller
}
this.storage.setItem(this.key, token)
return Promise.resolve() return Promise.resolve()
} }
} }
...@@ -81,13 +98,13 @@ export class PassportTokenController { ...@@ -81,13 +98,13 @@ export class PassportTokenController {
public static hasToken() { public static hasToken() {
const cache = const cache =
UICore.storage.getItem(this.key) || this.storage.getItem(this.key) ||
(UICore.core && UICore.core.global.jwtToken) (UniplatSdk.prototype && (window as any).jwtToken)
if (cache) { if (cache) {
if (this.isTokenValid(cache)) { if (this.isTokenValid(cache)) {
return cache return cache
} }
UICore.storage.removeItem(this.key) this.storage.removeItem(this.key)
return null return null
} }
return cache return cache
...@@ -95,8 +112,8 @@ export class PassportTokenController { ...@@ -95,8 +112,8 @@ export class PassportTokenController {
public static checkTokenExit() { public static checkTokenExit() {
const cache = const cache =
UICore.storage.getItem(this.key) || this.storage.getItem(this.key) ||
(UICore.core && UICore.core.global.jwtToken) (window as any).jwtToken
return cache return cache
} }
......
// 平台条件执行器 // HTTP 适配器
export { ActionInvoker } from "./action-invoker" export { uniAdapter } from "./adapters/uni-adapter"
// 认证处理器
export { getAuthHandlers, registerAuthHandlers } from "./auth-handlers"
export type { AuthHandlers } from "./auth-handlers"
// 文件操作(上传/下载/预览)
export {
AppFileType,
chooseImage,
downloadFile,
previewDocument,
} from "./file-operations"
export type { UploadData } from "./file-operations" export { webAdapter } from "./adapters/web-adapter"
// HTTP 请求服务 // HTTP 请求服务
export { HttpRequestWithSdk } from "./http-request" export { HttpRequestWithSdk } from "./core/http-request"
export { default as HttpRequest } from "./http-request" export { default as HttpRequest } from "./core/http-request"
// 图片/文件 URL 构建
export { buildFilePath, buildImage } from "./image-builder"
// 登录服务
export { loginService } from "./login-service"
export type { LoginRegisterResult, RegisterChannel } from "./login-service" // 图片/文件 URL 构建
export { buildFilePath, buildImage } from "./core/image-builder"
// 小程序工具
export {
MiniProgramVersion,
navigateBackMiniProgram,
navigateToMiniProgram,
} from "./mini-program"
export type { MiniProgramNavConfig } from "./mini-program"
// 监控 // 监控
export { monitor, Product } from "./monitor" export { monitor, Product } from "./core/monitor"
export type { SdkMonitorOption } from "./core/monitor"
export type { SdkMonitorOption } from "./monitor"
// Passport 公共常量 // Passport 公共常量
export { export {
PASSPORT_ANONYMOUS_SERVICE, PASSPORT_ANONYMOUS_SERVICE,
PASSPORT_SERVICE, PASSPORT_SERVICE,
PASSPORT_SUB_PROJECT, PASSPORT_SUB_PROJECT,
} from "./passport-constants" } from "./core/passport-constants"
// SDK 控制器 // SDK 控制器
export { SdkController } from "./sdk-controller" export { SdkController } from "./core/sdk-controller"
// SDK 核心 // SDK 核心
export { SdkCore } from "./sdk-core" export { ClientId, Environment, SdkCore, wxDistributerUrlConfig } from "./core/sdk-core"
export type { SdkConfig, SdkInitOptions } from "./sdk-types" export type { SdkConfig, SdkInitOptions } from "./core/sdk-types"
// 分享
export { createShareMixin, finalShareData, setShareData } from "./share"
// Token 管理 // Token 管理
export { decodeToken, PassportTokenController } from "./token-manager" export { decodeToken, PassportTokenController } from "./core/token-manager"
// 核心配置
export { ClientId, Environment, UICore, wxDistributerUrlConfig } from "./ui-core"
// HTTP 适配器
export { uniAdapter } from "./uni-adapter"
// 小程序版本更新
export { updateManager } from "./update-manager"
// 验证码服务
export { verifyService } from "./verify-service"
export type { VerifyImageResult } from "./verify-service"
export { webAdapter } from "./web-adapter" // 认证处理器
export { getAuthHandlers, registerAuthHandlers } from "./services/auth-handlers"
// 微信登录服务
export { wechatLoginService } from "./wechat-login-service"
export type { WechatLoginResult } from "./wechat-login-service" export type { AuthHandlers } from "./services/auth-handlers"
// 小程序专属导出(仅小程序项目使用)
// 条件执行器
export { ActionInvoker } from "./action-invoker"
// 文件操作(上传/下载/预览)
export {
AppFileType,
chooseImage,
downloadFile,
previewDocument,
} from "./file-operations"
export type { UploadData } from "./file-operations"
// 小程序工具
export {
MiniProgramVersion,
navigateBackMiniProgram,
navigateToMiniProgram,
} from "./mini-program"
export type { MiniProgramNavConfig } from "./mini-program"
// 分享
export { createShareMixin, finalShareData, setShareData } from "./share"
// 小程序版本更新
export { updateManager } from "./update-manager"
// 微信登录服务
export { WechatLoginService } from "./wechat-login-service"
export type { RegisterChannel, WechatLoginResult } from "./wechat-login-service"
import {
PASSPORT_ANONYMOUS_SERVICE,
PASSPORT_SUB_PROJECT,
} from "./passport-constants"
/** /**
* 微信登录服务 * 微信登录服务
* 提供微信小程序绑定手机号登录等功能 * 提供微信小程序绑定手机号登录等功能
*/ */
import { UICore } from "./ui-core" import type { SdkCore } from "../core/sdk-core"
import {
PASSPORT_ANONYMOUS_SERVICE,
PASSPORT_SUB_PROJECT,
} from "../core/passport-constants"
export enum WechatLoginApiName { export enum WechatLoginApiName {
BindPhone = "bind_phone", BindPhone = "bind_phone",
...@@ -28,6 +28,8 @@ export interface WechatLoginResult { ...@@ -28,6 +28,8 @@ export interface WechatLoginResult {
} }
export class WechatLoginService { export class WechatLoginService {
constructor(private sdk: SdkCore) {}
/** /**
* 微信小程序绑定手机号登录 * 微信小程序绑定手机号登录
*/ */
...@@ -38,7 +40,7 @@ export class WechatLoginService { ...@@ -38,7 +40,7 @@ export class WechatLoginService {
iv: string, iv: string,
registerChannel: RegisterChannel = {}, registerChannel: RegisterChannel = {},
) { ) {
return UICore.core return this.sdk.core
.domainService( .domainService(
PASSPORT_SUB_PROJECT, PASSPORT_SUB_PROJECT,
PASSPORT_ANONYMOUS_SERVICE.SystemWechat, PASSPORT_ANONYMOUS_SERVICE.SystemWechat,
...@@ -52,7 +54,7 @@ export class WechatLoginService { ...@@ -52,7 +54,7 @@ export class WechatLoginService {
data: { data: {
appid, appid,
code, code,
client_id: UICore.clientId, client_id: this.sdk.clientId,
encryptedData, encryptedData,
iv, iv,
...registerChannel, ...registerChannel,
...@@ -60,5 +62,3 @@ export class WechatLoginService { ...@@ -60,5 +62,3 @@ export class WechatLoginService {
}) })
} }
} }
export const wechatLoginService = new WechatLoginService()
import {
PASSPORT_ANONYMOUS_SERVICE,
PASSPORT_SERVICE,
PASSPORT_SUB_PROJECT,
} from "./passport-constants"
/** /**
* 登录服务 * 登录服务
* 提供密码登录、验证码登录等功能 * 提供密码登录、验证码登录等功能
*/ */
import { UICore } from "./ui-core" import type { SdkCore } from "../core/sdk-core"
import {
PASSPORT_ANONYMOUS_SERVICE,
PASSPORT_SUB_PROJECT,
} from "../core/passport-constants"
export enum LoginApiName { export enum LoginApiName {
LoginWithPassword = "loginWithPassword", LoginWithPassword = "loginWithPassword",
...@@ -44,11 +43,13 @@ export interface RegisterChannel { ...@@ -44,11 +43,13 @@ export interface RegisterChannel {
} }
export class LoginService { export class LoginService {
constructor(private sdk: SdkCore) {}
/** /**
* 密码登录 * 密码登录
*/ */
public login(username: string, password: string) { public login(username: string, password: string) {
return UICore.core return this.sdk.core
.domainService( .domainService(
PASSPORT_SUB_PROJECT, PASSPORT_SUB_PROJECT,
PASSPORT_ANONYMOUS_SERVICE.SystemUser, PASSPORT_ANONYMOUS_SERVICE.SystemUser,
...@@ -57,7 +58,7 @@ export class LoginService { ...@@ -57,7 +58,7 @@ export class LoginService {
.post<LoginRegisterResult>({ .post<LoginRegisterResult>({
password, password,
username, username,
client_id: UICore.clientId, client_id: this.sdk.clientId,
}) })
} }
...@@ -72,12 +73,12 @@ export class LoginService { ...@@ -72,12 +73,12 @@ export class LoginService {
const data: Record<string, any> = { const data: Record<string, any> = {
mobile, mobile,
verifycode, verifycode,
client_id: UICore.clientId, client_id: this.sdk.clientId,
} }
if (optional) { if (optional) {
Object.assign(data, this.buildNotNullProperty(optional)) Object.assign(data, this.buildNotNullProperty(optional))
} }
return UICore.core return this.sdk.core
.domainService( .domainService(
PASSPORT_SUB_PROJECT, PASSPORT_SUB_PROJECT,
PASSPORT_ANONYMOUS_SERVICE.SystemUser, PASSPORT_ANONYMOUS_SERVICE.SystemUser,
...@@ -94,13 +95,13 @@ export class LoginService { ...@@ -94,13 +95,13 @@ export class LoginService {
deviceInfo?: Record<string, string>, deviceInfo?: Record<string, string>,
) { ) {
const p = optional || {} const p = optional || {}
return UICore.core return this.sdk.core
.domainService( .domainService(
PASSPORT_SUB_PROJECT, PASSPORT_SUB_PROJECT,
PASSPORT_SERVICE.SystemUser, PASSPORT_SERVICE.SystemUser,
LoginApiName.RefreshToken, LoginApiName.RefreshToken,
) )
.post(p, { client_id: UICore.clientId, ...deviceInfo }) .post(p, { client_id: this.sdk.clientId, ...deviceInfo })
} }
/** /**
...@@ -118,5 +119,3 @@ export class LoginService { ...@@ -118,5 +119,3 @@ export class LoginService {
return t return t
} }
} }
export const loginService = new LoginService()
import {
PASSPORT_ANONYMOUS_SERVICE,
PASSPORT_SUB_PROJECT,
} from "./passport-constants"
/** /**
* 验证码服务 * 验证码服务
* 提供图形验证码生成、短信验证码发送等功能 * 提供图形验证码生成、短信验证码发送等功能
*/ */
import { UICore } from "./ui-core" import type { SdkCore } from "../core/sdk-core"
import {
PASSPORT_ANONYMOUS_SERVICE,
PASSPORT_SUB_PROJECT,
} from "../core/passport-constants"
export enum VerifyApiName { export enum VerifyApiName {
SendVerifyCode = "sendVerifyCode", SendVerifyCode = "sendVerifyCode",
...@@ -19,11 +19,13 @@ export interface VerifyImageResult { ...@@ -19,11 +19,13 @@ export interface VerifyImageResult {
} }
export class VerifyService { export class VerifyService {
constructor(private sdk: SdkCore) {}
/** /**
* 生成图形验证码 * 生成图形验证码
*/ */
public generateImage(): VerifyImageResult { public generateImage(): VerifyImageResult {
const result = UICore.core.getVerifyImageAndSeed() as any const result = this.sdk.core.getVerifyImageAndSeed() as any
return { return {
img: result.img, img: result.img,
seed: String(result.seed), seed: String(result.seed),
...@@ -34,7 +36,7 @@ export class VerifyService { ...@@ -34,7 +36,7 @@ export class VerifyService {
* 发送短信验证码(需要图形验证码) * 发送短信验证码(需要图形验证码)
*/ */
public sendVerifyCode(mobile: string, seed: string, verifycode: string) { public sendVerifyCode(mobile: string, seed: string, verifycode: string) {
return UICore.core return this.sdk.core
.domainService( .domainService(
PASSPORT_SUB_PROJECT, PASSPORT_SUB_PROJECT,
PASSPORT_ANONYMOUS_SERVICE.SystemUser, PASSPORT_ANONYMOUS_SERVICE.SystemUser,
...@@ -51,7 +53,7 @@ export class VerifyService { ...@@ -51,7 +53,7 @@ export class VerifyService {
* 发送短信验证码(使用 token) * 发送短信验证码(使用 token)
*/ */
public sendVerifyCodeWithToken(mobile: string, token: string) { public sendVerifyCodeWithToken(mobile: string, token: string) {
return UICore.core return this.sdk.core
.domainService( .domainService(
PASSPORT_SUB_PROJECT, PASSPORT_SUB_PROJECT,
PASSPORT_ANONYMOUS_SERVICE.SystemUser, PASSPORT_ANONYMOUS_SERVICE.SystemUser,
...@@ -68,7 +70,7 @@ export class VerifyService { ...@@ -68,7 +70,7 @@ export class VerifyService {
* 验证手机号 * 验证手机号
*/ */
public verifyMobile(mobile: string, verifycode: string) { public verifyMobile(mobile: string, verifycode: string) {
return UICore.core return this.sdk.core
.domainService( .domainService(
PASSPORT_SUB_PROJECT, PASSPORT_SUB_PROJECT,
PASSPORT_ANONYMOUS_SERVICE.SystemUser, PASSPORT_ANONYMOUS_SERVICE.SystemUser,
...@@ -79,9 +81,7 @@ export class VerifyService { ...@@ -79,9 +81,7 @@ export class VerifyService {
Record<string, unknown>, Record<string, unknown>,
{ check_result: boolean } { check_result: boolean }
>("post", { >("post", {
data: { mobile, verifycode, client_id: UICore.clientId }, data: { mobile, verifycode, client_id: this.sdk.clientId },
}) })
} }
} }
export const verifyService = new VerifyService()
import type { AxiosAdapter } from "axios"
import type {
metaRow,
SdkListRowPredict,
SdkListRowPredictObject,
UniplatSdk,
} from "uniplat-sdk"
import { UniplatSdkExtender } from "uniplat-sdk"
/**
* 环境枚举
*/
export enum Environment {
Dev = "dev",
Test = "test",
Pro = "pro",
Stage = "stage",
}
/**
* 客户端 ID 枚举
*/
export enum ClientId {
None = "",
QqxbApp = "qqxb-hrm-app-ios",
QqtxzMp = "qqxb_mini_app",
FlbMp = "qqxb_flb_mini_app",
WebLogin = "teamix-personal-center-web-pc",
RenCaiKuaiDiMp = "welfare_bean_wechat_mini_app",
YuZhiPinMp = "chongqing_job_mini_app",
RenCaiKuaiDiH5 = "welfare_bean_qqxb_h5",
RenCaiKuaiDiPc = "welfare_bean_agent_pc",
Hrs100 = "hrs100-front-web-pc",
QqxbOfficial = "qqxb-official-web",
FastServiceWeb = "teamix-fast-service-web",
FastServiceMerchant = "teamix-fast-service-merchant",
Hrs100WechatMiniApp = "hrs100_wechat_mini_app",
Donghu = "donghu-web-pc",
}
/**
* Passport 配置
*/
const qqxbPassportConfig = new Map<Environment, string>([
[
Environment.Dev,
"http://191env1.report.qinqinxiaobao-passport.qqxb.jinsehuaqin.com:8800",
],
[
Environment.Test,
"http://191env1.report.qinqinxiaobao-passport.qqxb.jinsehuaqin.com:8800",
],
[Environment.Pro, "https://passport.qinqinxiaobao.com"],
[Environment.Stage, "https://pre-passport.qinqinxiaobao.com"],
])
/**
* 微信分销商 URL 配置
*/
export const wxDistributerUrlConfig = new Map<Environment, string>([
[Environment.Dev, "http://wechat.test.teammix.qqxb.cn"],
[Environment.Test, "https://pre-wx-distributer.teammix.com"],
[Environment.Pro, "https://wx-distributer.teammix.com"],
[Environment.Stage, "https://pre-wx-distributer.teammix.com"],
])
/**
* UI 核心配置类
* 负责 SDK 初始化配置、客户端 ID、Passport URL 等
*/
export class UICore {
private static sdk: UniplatSdk | null = null
private static adapter: AxiosAdapter | null = null
private static client = ClientId.None
private static passportUrl = ""
private static wxDistributerUrl = ""
private static readonly handler = new UniplatSdkExtender()
public static setupSdk(
sdk: UniplatSdk,
params?: {
client?: ClientId
envir?: Environment
config?: AxiosAdapter
},
) {
this.sdk = sdk
if (params) {
this.adapter = params.config as AxiosAdapter
this.client = params.client as ClientId
}
if (params?.envir) {
this.passportUrl = qqxbPassportConfig.get(params.envir) as string
this.wxDistributerUrl = wxDistributerUrlConfig.get(
params.envir,
) as string
}
if (!this.passportUrl) {
this.passportUrl = qqxbPassportConfig.get(Environment.Dev) as string
}
if (!this.wxDistributerUrl) {
this.wxDistributerUrl = wxDistributerUrlConfig.get(
Environment.Dev,
) as string
}
}
public static get core() {
return this.sdk as UniplatSdk
}
public static get storage() {
return UICore.core?.global.storage || localStorage
}
public static get adapterConfig() {
return this.adapter as AxiosAdapter
}
public static get clientId() {
return this.client
}
public static get passport() {
return this.passportUrl
}
public static get wxDistributer() {
return this.wxDistributerUrl
}
/**
* 构建 Passport 登出 URL
*/
public static buildPassport4Logout(redirect?: string) {
if (redirect) {
return `${this.passportUrl}?redirectUrl=${redirect}&logout=1`
}
return `${this.passportUrl}?logout=1`
}
public static forgetPassword() {
return `${this.passportUrl}/forget`
}
public static register() {
return `${this.passportUrl}/register?redirectUrl=${encodeURIComponent(
window.location.href,
)}`
}
public static buildActionParameter(parameter: { [key: string]: any }) {
return this.handler.buildActionParameter(parameter)
}
public static buildRows<T>(
rows: metaRow[],
predicts: SdkListRowPredict[] | SdkListRowPredictObject,
) {
return this.handler.buildRows<T>(rows, predicts)
}
public static buildRow<T>(
item: metaRow,
predicts: SdkListRowPredict[] | SdkListRowPredictObject,
) {
return this.handler.buildRow<T>(item, predicts)
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment