UNPKG

mtl-js-sdk

Version:

ynf-fw-mtl-api

1,526 lines (1,491 loc) 1.18 MB
(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 *