mtl-js-sdk
Version:
ynf-fw-mtl-api
1,526 lines (1,491 loc) • 1.18 MB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define("mtl", [], factory);
else if(typeof exports === 'object')
exports["mtl"] = factory();
else
root["mtl"] = factory();
})(self, () => {
return /******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "./index.js":
/*!******************!*\
!*** ./index.js ***!
\******************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
/*
* @Author: wangyingliang@yonyou.com
* @Date: 2024-07-22 15:45:20
* @LastEditors: wangyingliang wangyingliang@yonyou.com
* @LastEditTime: 2024-07-29 15:35:32
* @FilePath: /mtl-api-project/index.js
* @Description: 项目入口函数
* Copyright (c) 2024 by Yonyou, All Rights Reserved.
*/
// module.exports = require("./lib").default;
module.exports = __webpack_require__(/*! ./lib */ "./lib/index.js")["default"];
/***/ }),
/***/ "./lib/common/builder.js":
/*!*******************************!*\
!*** ./lib/common/builder.js ***!
\*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./lib/common/utils.js");
/**
* 重载 obj[key] 的 getter 使其返回 value
*/
function clobber(obj, key, value) {
var needsProperty = false;
try {
obj[key] = value;
} catch (e) {
needsProperty = true;
}
if (needsProperty || obj[key] !== value) {
_utils__WEBPACK_IMPORTED_MODULE_1__["default"].defineGetter(obj, key, function () {
return value;
});
}
}
/**
* 递归合并 src 的属性到 target 中,target 中已存在的属性会被覆盖。
*/
function recursiveMerge(target, src) {
for (var prop in src) {
if (src !== null && src !== void 0 && src.hasOwnProperty(prop)) {
if (target.prototype && target.prototype.constructor === target) {
clobber(target.prototype, prop, src[prop]);
} else {
if ((0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__["default"])(src[prop]) === 'object' && (0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__["default"])(target[prop]) === 'object') {
recursiveMerge(target[prop], src[prop]);
} else {
clobber(target, prop, src[prop]);
}
}
}
}
}
var builder = {};
builder.recursiveMerge = recursiveMerge;
builder.assignGetter = clobber;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (builder);
/***/ }),
/***/ "./lib/common/environment.js":
/*!***********************************!*\
!*** ./lib/common/environment.js ***!
\***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js");
/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! axios */ "./node_modules/axios/index.js");
/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_1__);
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
/*
* @Author: wangyingliang@yonyou.com
* @Date: 2024-10-31 09:34:14
* @LastEditors: wangyingliang wangyingliang@yonyou.com
* @LastEditTime: 2025-04-07 09:38:44
* @FilePath: /mtl-api-project/src/common/environment.js
* @Description: 获取环境变量
* Copyright (c) 2024 by Yonyou, All Rights Reserved.
*/
var baseUrl = "ht' + 'tps://build.yyuap.c' + 'om";
var FAIL_CODE = 1;
var axios = ((axios__WEBPACK_IMPORTED_MODULE_1___default()) === null || (axios__WEBPACK_IMPORTED_MODULE_1___default()) === void 0 ? void 0 : (axios__WEBPACK_IMPORTED_MODULE_1___default()["default"])) || (axios__WEBPACK_IMPORTED_MODULE_1___default());
var apiUpesn = "";
var upesnVersion = 0; // 单数表示ios、偶数表示安卓
var NAVITYPE = {
GAODE: 1,
BAIDU: 2,
TENCENT: 3
};
function getSystemType(params) {
var systemType = '';
if (userAgent.indexOf('Windows') > -1) {
systemType = 'windows';
} else if (userAgent.indexOf('Macintosh') > -1 || userAgent.indexOf('Mac OS X') > -1) {
systemType = 'macOS';
} else if (userAgent.indexOf('iPhone') > -1 || userAgent.indexOf('iPad') > -1 || userAgent.indexOf('iPod') > -1) {
systemType = 'iOS';
} else if (userAgent.indexOf('Android') > -1) {
systemType = 'Android';
} else {
systemType = '无法识别的系统类型';
}
return systemType;
}
function getPlatform() {
var userAgent = window.navigator.userAgent;
var platform = null;
if (userAgent.indexOf("miniProgram") !== -1 || userAgent.indexOf("wxwork") !== -1 || userAgent.indexOf("wechatdevtools") !== -1) {
platform = "wx";
// initInputChooseFile()
loadCDNJS("https://res.wx.qq.com/open/js/jweixin-1.5.0.js", function (res) {
console.log(res);
}, function (err) {
console.log(err);
});
} else if (userAgent.indexOf("APIAndroid") !== -1) {
if (userAgent.indexOf("QYZone") !== -1) {
apiUpesn = "APIAndroid";
platform = "upesnAndroid";
upesnVersion = 2; // 安卓为偶数
} else {
platform = "APIAndroid";
}
} else if (userAgent.indexOf("APIIOS") !== -1) {
if (userAgent.indexOf("QYZone") !== -1) {
apiUpesn = "APIIos";
platform = "upesnIos";
upesnVersion = 1; // ios为奇数
} else {
platform = "APIIos";
}
} else if (userAgent.indexOf("APIHarmonyOS") !== -1) {
// 鸿蒙旗舰版
apiUpesn = "APIHarmonyOS";
platform = "APIHarmonyOS";
upesnVersion = 3; // 鸿蒙为偶数
} else if (userAgent.indexOf("QYZone") !== -1) {
platform = "upesn";
apiUpesn = "upesn";
} else if (/dingtalk/i.test(userAgent)) {
platform = "dingtalk";
// initInputFile()
loadCDNJS("https://g.alicdn.com/dingding/dingtalk-jsapi/3.0.25/dingtalk.open.js", function (res) {
console.log(res);
}, function (err) {
console.log(err);
});
} else if (userAgent.indexOf("Feishu") !== -1) {
// 飞书平台
platform = "tt";
// initInputFile()
loadCDNJS("https://lf1-cdn-tos.bytegoofy.com/goofy/lark/op/h5-js-sdk-1.5.37.js", function (res) {
console.log(res);
}, function (err) {
console.log(err);
});
} else {
platform = "h5";
// initInputFile()
}
return platform;
}
function isWxH5() {
var userAgent = window.navigator.userAgent.toLowerCase();
if (userAgent.toLowerCase().indexOf("micromessenger") !== -1) {
return true;
}
return false;
}
/**
* 获取是否是可信平台, 表单.
* @param {Array} whiteList 白名单.['tt']
* @return true 可信; false 不可信
*/
function isTrustedPlatform(object) {
var whiteList = (object === null || object === void 0 ? void 0 : object.whiteList) || [];
var platform = window.mtl.platform;
// 设置白名单
var isTrusted = whiteList.includes(platform);
if (!isTrusted) {
if (platform.indexOf("upesn") !== -1) {
// 友空间内, 尝试调用友空间函数, 确保UA没有被篡改
if (window.MTLWebViewJavascriptBridge && window.api) {
window.MTLWebViewJavascriptBridge.registerHandler("autoPermission", function (res) {
console.log(res);
});
isTrusted = true;
}
} else if (platform.indexOf("tt") !== -1) {
var _tt;
if ((_tt = tt) !== null && _tt !== void 0 && _tt.chooseImage) {
isTrusted = true;
}
} else if (platform.indexOf("dingtalk") !== -1) {
var _dd;
if ((_dd = dd) !== null && _dd !== void 0 && (_dd = _dd.biz) !== null && _dd !== void 0 && (_dd = _dd.util) !== null && _dd !== void 0 && _dd.chooseImage) {
isTrusted = true;
}
} else if (platform.indexOf("wx") !== -1) {
var _wx;
if ((_wx = wx) !== null && _wx !== void 0 && _wx.chooseImage) {
isTrusted = true;
}
}
}
return isTrusted;
}
/**
* 初始化移动基础服务
* @param {string} url 移动基础服务地址, 'https://c1.yonyoucloud.com'
* @returns
*/
function initMobileService(object) {
var url = object.url;
if (!url || url === "") {
object.fail && object.fail({
message: "url is null!",
code: FAIL_CODE
});
return;
}
var hostUrl = new URL(url);
var origin = hostUrl.origin;
var requestUrl = "".concat(url, "/rest/v1/mobile/app/workbench/env?host=").concat(origin);
var params = {
url: requestUrl,
method: "GET",
withCredentials: true,
responseType: "json",
headers: {
"content-type": "application/json;"
}
};
axios(params).then(function (response) {
var res = response.data && response.status && response.headers ? response.data : response;
var dataObj = convertToObject(res);
if (dataObj && dataObj.data) {
mtl.setStorage({
key: "key_mobile_app_url",
data: dataObj.data.mobileAppUrl
});
}
object.success && object.success(dataObj);
})["catch"](function (err) {
object.fail && object.fail(err);
});
}
function initInputFile() {
var input = document.createElement("input");
input.type = "file";
input.accept = "image/*";
input.id = "mtlChooseImage";
input.name = "mtlChooseImage";
input.style.display = "none";
document.head && document.head.appendChild(input);
// initInputChooseFile()
// initInputVideoFile()
}
// 选择附件
function initInputChooseFile() {
var inputFile = document.createElement("input");
inputFile.type = "file";
inputFile.id = "mtlChooseFiles";
inputFile.name = "mtlChooseFiles";
inputFile.style.display = "none";
document.head && document.head.appendChild(inputFile);
}
// 选择视频
function initInputVideoFile() {
var inputFile = document.createElement("input");
inputFile.type = "file";
inputFile.id = "mtlChooseVideo";
inputFile.name = "mtlChooseVideo";
inputFile.style.display = "none";
document.head && document.head.appendChild(inputFile);
}
//设置MTL上下文Context
function setContext(object) {
mtl.setStorage({
domain: "mtl",
key: "mtlContext",
data: object
});
}
// 加载cdn mtljs
function loadMtlCDNJs(object) {
var _obj = object || {};
var _obj$url = _obj.url,
url = _obj$url === void 0 ? "https://design.yonyoucloud.com/library/mtl/release/mtl.min.js" : _obj$url,
type = _obj.type;
if (type && type === "all") {
loadCDNJS(url, _obj.success, _obj.fail);
} else {
if (isWxAndroid()) {
loadCDNJS(url, _obj.success, _obj.fail);
}
}
}
//加载js
function loadCDNJS(url, success, fail) {
if (url && !isLoadedJsScript(url)) {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = url;
script.onload = function () {
return success && success(true);
};
script.onerror = function (err) {
return fail && fail(err);
};
document.head.appendChild(script);
}
}
function isLoadedJsScript(url) {
for (var i = 0; i < document.scripts.length; i++) {
if (document.scripts[i].src == url) {
return true;
}
}
return false;
}
//判断平台是否wx-安卓
function isWxAndroid() {
var ua = window.navigator.userAgent;
if (mtl.platform === "wx") {
if (ua.includes("Android") || ua.includes("Linux")) {
console.log("isWxAndroid success");
return true;
}
}
console.log("isWxAndroid fail");
return false;
}
//用户密码登录
function login() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
console.warn("'login:' is deprecated; first deprecated in 6.2.13; use 'loginNew' function.");
loginRequest("login", object);
}
function loginNew() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
loginRequest("loginNew", object);
}
function logout() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var url = object.url,
openUrl = object.openUrl,
yhtToken = object.yhtToken,
wbAt = object.wbAt,
_object$lang = object.lang,
lang = _object$lang === void 0 ? "zh_CN" : _object$lang;
if (!!!url) {
var res = {
code: FAIL_CODE,
message: "url is null"
};
handleFailCallBack(object, res);
object.complete && object.complete(res);
return;
}
if (!!!yhtToken || !!!wbAt) {
mtl.getStorage({
domain: "mtlLoginInfo",
key: "data",
success: function success(res) {
var data = res.data || {};
if (data) {
var dataObj = typeof data === "string" ? JSON.parse(data) : data;
var authToken = dataObj.yhtToken.yhtAccessToken;
var _wbAt = dataObj.sessionInfo.sessionId;
logoutRequest(_objectSpread(_objectSpread({}, object), {}, {
url: url,
yhtToken: authToken,
wbAt: _wbAt,
lang: lang,
openUrl: openUrl
}));
} else {
handleFailCallBack(object, {
message: "Please log in again!",
code: FAIL_CODE
});
object.complete && object.complete({
message: "Please log in again!",
code: FAIL_CODE
});
}
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
} else {
logoutRequest(object);
}
}
function logoutRequest() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var url = object.url,
openUrl = object.openUrl,
yhtToken = object.yhtToken,
wbAt = object.wbAt,
_object$lang2 = object.lang,
lang = _object$lang2 === void 0 ? "zh_CN" : _object$lang2;
var vv = "yht_access_token=".concat(yhtToken, ";wb_at=").concat(wbAt, ";");
var newUrl = "".concat(url, "/rest/v1/mobile/user/logout");
requestAction({
requestType: 1,
url: "".concat(newUrl).concat(/\?/.test(newUrl) ? "&" : "?", "lang=").concat(lang),
method: "POST",
withCredentials: true,
responseType: "json",
headers: {
"content-type": "application/json;",
cookie: vv
},
success: function success(res) {
if (openUrl) {
mtl.navigateTo({
url: openUrl,
navShow: 0
});
}
handleSuccessCallBack(object, res);
object.complete && object.complete(res);
mtl.removeStorage({
domain: "mtlLoginInfo",
key: "data"
});
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
}
//手机号验证码登录
function validateCodeLogin() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
console.warn("'validateCodeLogin:' is deprecated; first deprecated in 6.2.13; use 'validateCodeLoginNew' function.");
loginRequest("validateCodeLogin", object);
}
function validateCodeLoginNew() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
loginRequest("validateCodeLoginNew", object);
}
//自动登录
function autoLogin() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
console.warn("'autoLogin:' is deprecated; first deprecated in 6.2.13; use 'autoLoginNew' function.");
autoLoginRequest("autoLogin", object);
}
function autoLoginNew() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
autoLoginRequest("autoLoginNew", object);
}
function autoLoginRequest(type) {
var object = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var path = object.url ? object.url : baseUrl;
var lang = object.lang || "zh_CN";
if (type === "autoLoginNew") {
object.url = "".concat(path, "/rest/v1/mobile/login/token?lang=").concat(lang);
} else {
object.url = "".concat(path, "/mobile-app/rest/v1/mobile/login/token?lang=").concat(lang);
}
var params = (object === null || object === void 0 ? void 0 : object.data) || {};
mtl.getStorage({
domain: "mtlLoginInfo",
key: "data",
success: function success(res) {
var data = res.data || {};
if (data) {
var dataObj = typeof data === "string" ? JSON.parse(data) : data;
var authToken = dataObj.yhtToken.yhtAccessToken;
var userId = dataObj.userInfo.userId;
var tenantId = object.tenantId ? object.tenantId : "";
requestAction({
requestType: object.requestType,
url: object.url,
method: "POST",
data: _objectSpread({
userId: userId,
token: authToken,
tenantId: tenantId
}, params),
headers: {
"content-type": "application/json;"
},
responseType: "json",
success: function success(res) {
var obj = convertToObject(res);
if (obj && obj.data) {
mtl.setStorage({
domain: "mtlLoginInfo",
key: "data",
data: obj.data
});
}
handleSuccessCallBack(object, obj);
object.complete && object.complete(res);
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
} else {
handleFailCallBack(object, {
message: "Please log in again!",
code: FAIL_CODE
});
object.complete && object.complete({
message: "Please log in again!",
code: FAIL_CODE
});
}
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
}
//发送验证码
function sendValidateCode() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
console.warn("'sendValidateCode:' is deprecated; first deprecated in 6.2.13; use 'sendValidateCodeNew' function.");
sendValidateCodeRequest("send", object);
}
function sendValidateCodeNew() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
sendValidateCodeRequest("sendNew", object);
}
function sendValidateCodeRequest(type, object) {
var path = object.url ? object.url : baseUrl;
var lang = object.lang || "zh_CN";
if (type === "sendNew") {
object.url = "".concat(path, "/rest/v1/mobile/login/sendCode?lang=").concat(lang);
} else {
object.url = "".concat(path, "/mobile-app/rest/v1/mobile/login/sendCode?lang=").concat(lang);
}
object.method = "POST";
var data = {
username: object.mobile,
lang: object.lang || ""
};
delete object.username;
requestAction({
requestType: object.requestType,
url: object.url,
method: "POST",
data: data,
headers: {
"content-type": "application/json;"
},
responseType: "json",
success: function success(res) {
var dataObj = convertToObject(res);
handleSuccessCallBack(object, dataObj);
object.complete && object.complete(res);
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
}
//切换租户
function changeTenant(object) {
console.warn("'changeTenant:' is deprecated; first deprecated in 6.2.13; use 'changeTenantNew' function.");
autoLoginRequest("autoLogin", object);
}
function changeTenantNew(object) {
autoLoginRequest("autoLoginNew", object);
}
//获取wx应用列表
function getAppList(object) {
console.warn("'getAppList:' is deprecated; first deprecated in 6.2.13; use 'getAppListNew' function.");
getAppListRequest("getApp", object);
}
function getAppListNew(object) {
getAppListRequest("getAppNew", object);
}
function getAppListRequest(type, object) {
var path = object.url ? object.url : baseUrl;
var lang = object.lang || "zh_CN";
if (type === "getAppNew") {
object.url = "".concat(path, "/rest/v1/mobile/app/vx/list?lang=").concat(lang);
} else {
object.url = "".concat(path, "/mobile-app/rest/v1/mobile/app/vx/list?lang=").concat(lang);
}
mtl.getStorage({
domain: "mtlLoginInfo",
key: "data",
success: function success(res) {
var data = res.data || {};
if (data) {
var dataObj = typeof data === "string" ? JSON.parse(data) : data;
var token = dataObj.yhtToken.yhtAccessToken;
var userId = dataObj.userInfo.userId;
var terminalType = mtl.platform;
requestAction({
requestType: object.requestType,
url: object.url,
method: "GET",
params: {
yht_access_token: token,
terminalType: terminalType,
userId: userId,
lang: object.lang || ""
},
headers: {
"content-type": "application/json;"
},
responseType: "json",
success: function success(res) {
var dataObj = convertToObject(res);
handleSuccessCallBack(object, dataObj);
object.complete && object.complete(res);
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
} else {
handleFailCallBack(object, {
message: "Please log in again!",
code: FAIL_CODE
});
object.complete && object.complete({
message: "Please log in again!",
code: FAIL_CODE
});
}
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
}
//获取独立app应用列表
function getIndependenceAppList(object) {
var path = object.url ? object.url : baseUrl;
var lang = object.lang || "zh_CN";
object.url = "".concat(path, "/rest/v1/mobile/app/workbench/list?lang=").concat(lang);
var param = {
appId: object.appId
// lang: object.lang || "",
};
if (object.hasOwnProperty("includeApproveCenter")) {
param.includeApproveCenter = object.includeApproveCenter;
}
var headers = object.headers ? object.headers : {
"content-type": "application/json;"
};
requestAction({
requestType: object.requestType,
url: object.url,
method: "GET",
params: param,
headers: headers,
withCredentials: true,
responseType: "json",
success: function success(res) {
var dataObj = convertToObject(res);
handleSuccessCallBack(object, dataObj);
object.complete && object.complete(res);
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
}
//获取友空间code
function getEsnCode() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
console.warn("'getEsnCode:' is deprecated; first deprecated in 6.2.13; use 'getEsnCodeNew' function.");
getEsnCodeRequest("esnCode", object);
}
function getEsnCodeNew() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
getEsnCodeRequest("esnCodeNew", object);
}
function getEsnCodeRequest(type, object) {
var path = (object === null || object === void 0 ? void 0 : object.url) || window.location.origin;
var lang = (object === null || object === void 0 ? void 0 : object.lang) || "zh_CN";
if (type === "esnCodeNew") {
object.url = "".concat(path, "/rest/v1/mobile/user/yht/auth/code?lang=").concat(lang);
} else {
object.url = "".concat(path, "/mobile-app/rest/v1/mobile/user/yht/auth/code?lang=").concat(lang);
}
requestAction({
requestType: (object === null || object === void 0 ? void 0 : object.requestType) || "",
url: object.url,
method: "GET",
params: {
wb_at: object === null || object === void 0 ? void 0 : object.wb_at,
yhtAccessToken: object === null || object === void 0 ? void 0 : object.yht_access_token,
tenantId: object === null || object === void 0 ? void 0 : object.tenantId,
lang: lang
},
headers: {
"content-type": "application/json;"
},
responseType: "json",
success: function success(res) {
var dataObj = convertToObject(res);
handleSuccessCallBack(object, dataObj);
object.complete && object.complete(res);
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
}
//根据authCode获取wb_at和yht_access_token
function getYhtTokenWithCode() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
console.warn("'getYhtTokenWithCode:' is deprecated; first deprecated in 6.2.13; use 'getYhtTokenWithCodeNew' function.");
getYhtTokenWithCodeRequest("tokenCode", object);
}
function getYhtTokenWithCodeNew() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
getYhtTokenWithCodeRequest("tokenCodeNew", object);
}
function getYhtTokenWithCodeRequest(type, object) {
var path = object.url ? object.url : baseUrl;
var lang = object.lang || "zh_CN";
if (type === "tokenCodeNew") {
object.url = "".concat(path, "/rest/v1/mobile/login/yqcode?lang=").concat(lang);
} else {
object.url = "".concat(path, "/mobile-app/rest/v1/mobile/login/yqcode?lang=").concat(lang);
}
requestAction({
requestType: object.requestType,
url: object.url,
method: "GET",
params: {
code: object.code,
lang: object.lang || ""
},
headers: {
"content-type": "application/json;"
},
withCredentials: true,
responseType: "json",
success: function success(res) {
var dataObj = convertToObject(res);
handleSuccessCallBack(object, dataObj);
object.complete && object.complete(res);
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
}
//获取banner列表
function getBannerList() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
console.warn("'getBannerList:' is deprecated; first deprecated in 6.2.13; use 'getBannerListNew' function.");
getBannerListRequest("banner", object);
}
function getBannerListNew() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
getBannerListRequest("bannerNew", object);
}
function getBannerListRequest(type, object) {
var path = object.url ? object.url : baseUrl;
var category = object.category;
var lang = object.lang || "zh_CN";
if (type === "bannerNew") {
object.url = "".concat(path, "/rest/v1/mobile/banner/list?lang=").concat(lang);
} else {
object.url = "".concat(path, "/mobile-app/rest/v1/mobile/banner/list?lang=").concat(lang);
}
requestAction({
requestType: object.requestType,
url: object.url,
method: "GET",
params: {
category: category,
platform: mtl.platform
// lang: object.lang || "",
},
headers: object.headers,
withCredentials: true,
responseType: "json",
success: function success(res) {
var dataObj = convertToObject(res);
handleSuccessCallBack(object, dataObj);
object.complete && object.complete(res);
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
}
//匿名情况下获取用户基本信息
function getBaseUserInfo(object) {
var path = object.url ? object.url : baseUrl;
var userId = object.userId;
object.url = "".concat(path, "/rest/v1/mobile/user/anonymous/").concat(userId, "/info/simple");
requestAction({
requestType: object.requestType,
url: object.url,
method: "GET",
params: {
tenantId: object.tenantId
},
headers: {
"content-type": "application/json;"
},
withCredentials: true,
responseType: "json",
success: function success(res) {
handleSuccessCallBack(object, res);
object.complete && object.complete(res);
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
}
//小程序登录
function loginOfMiniProgram() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
console.warn("'loginOfMiniProgram:' is deprecated; first deprecated in 6.2.13; use 'loginOfMiniProgramNew' function.");
loginOfMiniProgramRequest("miniLogin", object);
}
function loginOfMiniProgramNew() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
loginOfMiniProgramRequest("miniLoginNew", object);
}
function loginOfMiniProgramRequest(type, object) {
var path = object.url ? object.url : baseUrl;
var lang = object.lang || "zh_CN";
var url = "".concat(path, "/mobile-app/rest/v1/mobile/login/weChat?lang=").concat(lang);
if (type === "miniLoginNew") {
url = "".concat(path, "/rest/v1/mobile/login/weChat?lang=").concat(lang);
}
var paramsurl = getUrlParams() || {};
var appCode = paramsurl.appCode,
authCode = paramsurl.authCode,
encryptedData = paramsurl.encryptedData,
iv = paramsurl.iv;
var ed = encryptedData + "==";
var niv = iv + "==";
var data = {
wxAppId: appCode,
wxCode: authCode,
encryptedData: ed,
iv: niv,
lang: object.lang || ""
};
requestAction({
requestType: 1,
url: url,
method: "POST",
data: data,
headers: {
"content-type": "application/json;"
},
responseType: "json",
success: function success(res) {
var dataObj = convertToObject(res);
if (dataObj && dataObj.data) {
var code = dataObj.code;
if (code === "1002") {
localStorage.setItem("wxOpenId", dataObj.data.attributes.openId);
} else if (code === "0") {
var _dataObj$data$attribu;
mtl.setStorage({
domain: "mtlLoginInfo",
key: "data",
data: dataObj.data
});
localStorage.setItem("wxAppId", appCode);
if ((_dataObj$data$attribu = dataObj.data.attributes) !== null && _dataObj$data$attribu !== void 0 && _dataObj$data$attribu.openId) {
var _dataObj$data$attribu2;
localStorage.setItem("wxOpenId", (_dataObj$data$attribu2 = dataObj.data.attributes) === null || _dataObj$data$attribu2 === void 0 ? void 0 : _dataObj$data$attribu2.openId);
}
}
}
handleSuccessCallBack(object, dataObj);
object.complete && object.complete(dataObj);
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
}
//微信绑定方法
function bindUser(object, type) {
var openId = localStorage.getItem("wxOpenId");
var paramsurl = getUrlParams() || {};
var appCode = paramsurl.appCode;
if (openId && openId !== "") {
var data = {
username: object.username,
password: object === null || object === void 0 ? void 0 : object.password,
tenantId: object.tenantId,
openId: openId,
wxAppId: appCode,
validateCodeType: "username",
lang: object.lang || "",
validateCode: ""
};
if (type === 2) {
data.validateCode = object.validateCode;
data.username = object.mobile;
data.validateCodeType = "mobile";
}
requestAction({
requestType: 1,
url: object.url,
method: "POST",
data: data,
headers: {
"content-type": "application/json;"
},
responseType: "json",
success: function success(res) {
var dataObj = convertToObject(res);
if (dataObj && dataObj.data) {
mtl.setStorage({
domain: "mtlLoginInfo",
key: "data",
data: dataObj.data
});
localStorage.setItem("wxAppId", appCode);
}
handleSuccessCallBack(object, dataObj);
object.complete && object.complete(dataObj);
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
} else {
var err = {
code: "1",
message: "no found openId"
};
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
}
//微信解绑
function unBindUser() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
console.warn("'unBindUser:' is deprecated; first deprecated in 6.2.13; use 'unBindUserNew' function.");
unBindUserRequest("miniUnbind", object);
}
function unBindUserNew() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
unBindUserRequest("miniUnbindNew", object);
}
function unBindUserRequest(type, object) {
mtl.getStorage({
domain: "mtlLoginInfo",
key: "data",
success: function success(res) {
var path = object.url ? object.url : baseUrl;
var lang = object.lang || "zh_CN";
var url = "".concat(path, "/mobile-app/rest/v1/mobile/user/weChatUnbind?lang=").concat(lang);
if (type === "miniUnbindNew") {
url = "".concat(path, "/rest/v1/mobile/user/weChatUnbind?lang=").concat(lang);
}
var openId = localStorage.getItem("wxOpenId");
var wxAppId = localStorage.getItem("wxAppId");
var dataObj = convertToObject(res.data);
var yhtToken = dataObj.yhtToken.yhtAccessToken;
var data = {
yhtToken: yhtToken,
openId: openId,
wxAppId: wxAppId,
lang: object.lang || ""
};
requestAction({
requestType: 1,
url: url,
method: "POST",
data: data,
headers: {
"content-type": "application/json;"
},
responseType: "json",
success: function success(res) {
var dataObj = convertToObject(res);
handleSuccessCallBack(object, dataObj);
object.complete && object.complete(dataObj);
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
}
});
}
// 内部方法
function loginRequest(type, object) {
var path = object.url ? object.url : baseUrl;
var lang = object.lang || "zh_CN";
var data = {};
switch (type) {
case "login":
case "loginNew":
if (mtl.platform === "wx") {
if (type === "loginNew") {
object.url = "".concat(path, "/rest/v1/mobile/login/weChatBindAndLogin?lang=").concat(lang);
} else {
object.url = "".concat(path, "/mobile-app/rest/v1/mobile/login/weChatBindAndLogin?lang=").concat(lang);
}
bindUser(object, 1);
return;
} else {
if (type === "loginNew") {
object.url = "".concat(path, "/rest/v1/mobile/login/password?lang=").concat(lang);
} else {
object.url = "".concat(path, "/mobile-app/rest/v1/mobile/login/password?lang=").concat(lang);
}
data = _objectSpread(_objectSpread({}, object), {}, {
tenantId: object.tenantId ? object.tenantId : ""
});
}
break;
case "validateCodeLogin":
case "validateCodeLoginNew":
if (mtl.platform === "wx") {
if (type === "validateCodeLoginNew") {
object.url = "".concat(path, "/rest/v1/mobile/login/weChatBindAndLogin?lang=").concat(lang);
} else {
object.url = "".concat(path, "/mobile-app/rest/v1/mobile/login/weChatBindAndLogin?lang=").concat(lang);
}
bindUser(object, 2);
return;
} else {
if (type === "validateCodeLoginNew") {
object.url = "".concat(path, "/rest/v1/mobile/login/validateCode?lang=").concat(lang);
} else {
object.url = "".concat(path, "/mobile-app/rest/v1/mobile/login/validateCode?lang=").concat(lang);
}
data = _objectSpread(_objectSpread({}, object), {}, {
username: object.mobile,
tenantId: object.tenantId ? object.tenantId : ""
});
}
break;
default:
break;
}
requestAction({
requestType: object.requestType,
url: object.url,
method: "POST",
data: data,
headers: {
"content-type": "application/json;"
},
responseType: "json",
success: function success(res) {
var dataObj = convertToObject(res);
if (dataObj && dataObj.data) {
mtl.setStorage({
domain: "mtlLoginInfo",
key: "data",
data: dataObj.data
});
}
handleSuccessCallBack(object, dataObj);
object.complete && object.complete(dataObj);
},
fail: function fail(err) {
handleFailCallBack(object, err);
object.complete && object.complete(err);
}
});
}
//处理原生和H5的成功回调
function handleSuccessCallBack(object, res) {
if (mtl.platform === "ios" || mtl.platform === "android") {
window.mtl_handleCallback({
callbackId: object.callbackId,
data: res,
code: 0
});
} else {
object.success && object.success(res);
}
}
//处理原生和H5的失败回调
function handleFailCallBack(object, err) {
if (mtl.platform === "ios" || mtl.platform === "android") {
window.mtl_handleCallback({
callbackId: object.callbackId,
msg: err.message,
code: err.code
});
} else {
object.fail && object.fail(err);
}
}
// 内部方法
function requestAction() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _object$requestType = object.requestType,
requestType = _object$requestType === void 0 ? "" : _object$requestType;
if (requestType === "") {
delete object.requestType;
axios(object).then(function (response) {
var code = response.status,
message = response.statusText,
data = response.data;
if (code === 200) {
object.success && object.success(data);
} else {
object.fail && object.fail({
code: code,
message: message,
data: data
});
}
object.complete && object.complete({
code: code,
message: message,
data: data
});
})["catch"](function (err) {
// const result = { code: FAIL_CODE, message: err.message };
object.fail && object.fail(err);
object.complete && object.complete(err);
});
} else {
mtl.request({
url: object.url,
method: object.method,
params: object.method === "POST" ? object.data : object.params,
headers: object.headers,
paramsType: object.method === "POST" ? 1 : 0,
responseType: "json",
success: function success(res) {
var code = res.status,
message = res.statusText,
data = res.data;
if (code === 200) {
object.success && object.success(data);
} else {
object.fail && object.fail({
code: code,
message: message,
data: data
});
}
object.complete && object.complete({
code: code,
message: message,
data: data
});
},
fail: function fail(err) {
object.fail && object.fail(err);
object.complete && object.complete(err);
}
});
}
}
function convertToObject(res) {
var dataObj = res;
if (typeof res === "string") {
try {
dataObj = JSON.parse(res);
} catch (error) {
dataObj = res;
}
}
return dataObj;
}
function getUrlParams() {
var res = {};
var serach = window.location.search;
if (!serach || serach === "") {
serach = window.location.href.split("?").pop();
}
var str = decodeURIComponent(serach);
str = str.trim().replace(/^[?#&]/, "");
if (!str) {
return res;
}
str.split("&").forEach(function (strItem) {
if (strItem) {
var parts = strItem.split("=");
var partKey = parts[0],
partValue = parts[1] || "";
res[partKey] = partValue;
}
});
return res;
}
// 获取语言
function getExclusiveLanguage() {
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var config = mtl.getStorageSync({
key: "key_lang"
});
if (!!!config) {
var useragent = window.navigator.userAgent.toLocaleLowerCase();
if (useragent.includes("youzonelanguage")) {
var newUas = useragent.split("youoneLanguage=");
if (newUas.length > 1) {
newUas = newUas[1].split(" ");
if (newUas > 0) {
config = newUas[0];
}
}
}
}
if (config) {
if (config === "tw") {
config = "zht";
} else if (config === "zh") {
config = "zhs";
}
} else {
config = "zhs";
}
obj.success && obj.success({
language: config
});
obj.complete && obj.complete({
language: config
});
}
// 获取平台(区分友空间专属版、海外版)
function getCurrentPlatform() {
var platform = getPlatform();
// 友空间公有云
var userAgent = window.navigator.userAgent;
if (userAgent.indexOf("QYZone_YonYouPrivateCloud") !== -1) {
platform = "PrivateCloud";
} else if (userAgent.indexOf("QYZone_OverSea") !== -1) {
platform = "OverSea";
} else if (userAgent.indexOf("QYZone_OverSea_HarmonyOS") !== -1) {
platform = "QYZone_OverSea_HarmonyOS";
} else if (userAgent.indexOf("QYZone_Exclusive_HarmonyOS") !== -1) {
// 鸿蒙专属版
platform = "QYZone_Exclusive_HarmonyOS";
}
if (userAgent.indexOf("QYZone_OverSea_PrivateCloud") !== -1) {
// 友空间私有版 海外发布
platform = "QYZone_OverSea_PrivateCloud";
} else if (userAgent.indexOf("QYZone_OverSea_PrivateCloud_HarmonyOS") !== -1) {
// 友空间鸿蒙私有版 海外发布
platform = "QYZone_OverSea_PrivateCloud_HarmonyOS";
}
return platform;
}
/**
* 获取指定的多数据中心域名
* @param {string} serviceCode 服务编码
* @param {string} tenantId 租户ID
* @param {string} success 成功的回调
* @param {string} fail 失败的回调
*/
function getDomain(params) {
if (params !== null && params !== void 0 && params.serviceCode) {
return;
}
var serviceCode = params === null || params === void 0 ? void 0 : params.serviceCode;
var tenantId = params === null || params === void 0 ? void 0 : params.tenantId;
// 获取域名
mtl.getMultiDataCenterConfig({
success: function success(res) {
var _res$multidata, _res$domain;
if (Object.keys(res).length === 0) {
params === null || params === void 0 || params.success(window.location.origin);
return;
}
var domainUrl = '';
// 如果 serviceCode 存在需要查询是否在多数据中心环境
var multidataCodeList = (_res$multidata = res.multidata) === null || _res$multidata === void 0 ? void 0 : _res$multidata.multidataCode; // 多数据中心域名
var domainCodeList = (_res$domain = res.domain) === null || _res$domain === void 0 ? void 0 : _res$domain.domainCode; // 社会化服务域名
if (multidataCodeList[serviceCode]) {
domainUrl = res.multidata.multidataUrl[tenantId || res.currentTenantID];
} else if (domainCodeList[serviceCode]) {
domainUrl = res.domain.domainUrl; // 社会化域名
} else {
domainUrl = window.location.origin; // 当前环境域名
}
params === null || params === void 0 || params.success(domainUrl);
},
fail: function fail(err) {
console.log("getMultiDataCenterConfig bridge no exist");
// 处理私有版
if (mtl.platform === "APIIos" || mtl.platform === "APIAndroid") {
// 友空间私有版 需要额外处理
mtl.getStorage({
key: 'key_base_url',
success: function success(res) {
console.log("API key_base_url = ", res);
params === null || params === void 0 || params.success((res === null || res === void 0 ? void 0 : res.data) || window.location.origin);
},
fail: function fail(err) {
params === null || params === void 0 || params.success(window.location.origin);
}
});
} else {
params === null || params === void 0 || params.success(window.location.origin);
}
}
});
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
platform: getPlatform(),
systemType: getSystemType,
apiUpesn: apiUpesn,
upesnVersion: upesnVersion,
isWxH5: isWxH5(),
NAVITYPE: NAVITYPE,
getDomain: getDomain,
setContext: setContext,
login: login,
loginNew: loginNew,
validateCodeLogin: validateCodeLogin,
validateCodeLoginNew: validateCodeLoginNew,
autoLogin: autoLogin,
autoLoginNew: autoLoginNew,
sendValidateCode: sendValidateCode,
sendValidateCodeNew: sendValidateCodeNew,
changeTenant: changeTenant,
changeTenantNew: changeTenantNew,
getAppList: getAppList,
getAppListNew: getAppListNew,
getEsnCode: getEsnCode,
getEsnCodeNew: getEsnCodeNew,
getYhtTokenWithCode: getYhtTokenWithCode,
getYhtTokenWithCodeNew: getYhtTokenWithCodeNew,
getBannerList: getBannerList,
getBannerListNew: getBannerListNew,
getBaseUserInfo: getBaseUserInfo,
getIndependenceAppList: getIndependenceAppList,
loadMtlCDNJs: loadMtlCDNJs,
loadCDNJS: loadCDNJS,
loginOfMiniProgram: loginOfMiniProgram,
loginOfMiniProgramNew: loginOfMiniProgramNew,
unBindUser: unBindUser,
unBindUserNew: unBindUserNew,
getExclusiveLanguage: getExclusiveLanguage,
logout: logout,
initMobileService: initMobileService,
currentPlatform: getCurrentPlatform(),
isTrustedPlatform: isTrustedPlatform
});
/***/ }),
/***/ "./lib/common/modulemapper.js":
/*!************************************!*\
!*** ./lib/common/modulemapper.js ***!
\************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _builder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./builder */ "./lib/common/builder.js");
/*
* @Author: wangyingliang@yonyou.com
* @Date: 2024-07-22 15:45:20
* @LastEditors: wangyingliang wangyingliang@yonyou.com
* @LastEditTime: 2024-07-22 16:05:26
* @FilePath: /mtl-api-project/src/common/modulemapper.js
* @Description: builder
* Copyright (c) 2024 by Yonyou, All Rights Reserved.
*/
var symbolList;
function addEntry(strategy, module, symbolPath) {
symbolList.push(strategy, module, symbolPath);
}
function prepareNamespace(symbolPath, context) {
if (!symbolPath) {
return context;
}
var parts = symbolPath.split('.');
var cur = context;
for (var i = 0, part; part = parts[i]; ++i) {
cur = cur[part] = cur[part] || {};
}
return cur;
}
var mapper = {};
mapper.reset = function () {
symbolList = [];
};
mapper.addEntry = addEntry;
mapper.clobbers = function (module, symbolPath) {
addEntry('c', module, symbolPath);
};
mapper.merges = function (module, symbolPath) {
addEntry('m', module, symbolPath);
};
mapper.uniques = function (module, symbolPath) {
addEntry('u', module, symbolPath);
};
mapper.extend = function (module, symbolPath) {
addEntry('e', module, symbolPath);
};
mapper.mapModules = function (context) {
var origSymbols = {};
context.MTL_origSymbols = origSymbols;
for (var i = 0, len = symbolList.length; i < len; i += 3) {
var strategy = symbolList[i];
var module = symbolList[i + 1];
var symbolPath = symbolList[i + 2];
var lastDot = symbolPath.lastIndexOf('.');
var namespace = symbolPath.substr(0, lastDot);
var lastName = symbolPath.substr(lastDot + 1);
var parentObj = prepareNamespace(namespace, context);
var target = parentObj[lastName];
if (strategy === 'u' && target) {
console.log('Error: Scaling failure, ' + symbolPath + ' already exist。');
} else if (strategy === 'm' && target) {
_builder__WEBPACK_IMPORTED_MODULE_0__["default"].recursiveMerge(target, module);
} else if (strategy === 'e' && target) {
_builder__WEBPACK_IMPORTED_MODULE_0__["default"].recursiveMerge(target, module);
} else {
if (!(symbolPath in origSymbols)) {
origSymbols[symbolPath] = target;
}
_builder__WEBPACK_IMPORTED_MODULE_0__["default"].assignGetter(parentObj, lastName, module);
}
}
};
mapper.getOriginalSymbol = function (context, symbolPath) {
var origSymbols = context.MTL_origSymbols;
if (origSymbols && symbolPath in origSymbols) {
return origSymbols[symbolPath];
}
var parts = symbolPath.split('.');
var obj = context;
for (var i = 0; i < parts.length; ++i) {
obj = obj && obj[parts[i]];
}
return obj;
};
mapper.reset();
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mapper);
/***/ }),
/***/ "./lib/common/permission.js":
/*!**********************************!*\
!*** ./lib/common/permission.js ***!
\**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/*
* @Author: wangyingliang@yonyou.com
*