isdata-customer-sdk 0.2.71 → 0.2.73

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sources":["../../node_modules/querystringify/index.js","../../src/api/request.js","../../src/api/event.js","../../src/api/portal.js","../../src/api/i18n/core.js","../../src/api/i18n/smardaten_i18n/table_i18n.js","../../src/api/i18n/smardaten_i18n/catalog_i18n.js","../../src/api/i18n/commom_i18n/common_i18n.js","../../src/api/i18n/commom_i18n/attribute_i18n.js","../../src/api/i18n/smardaten_i18n/calendar_i18n.js","../../src/api/i18n/smardaten_i18n/dialog_i18n.js","../../src/api/i18n/commom_view.js","../../src/api/i18n/i18n.js"],"sourcesContent":["'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","import axios from \"axios\"\r\nimport qs from \"querystringify\"\r\n\r\nlet apiContextPath = \"\"\r\n// const onlineDevelopmentMode = process.env.VUE_APP_ONLINE_DEVELOPMENT_MODE === \"true\" || process.env.REACT_APP_ONLINE_DEVELOPMENT_MODE === \"true\"\r\n// if (process.env.NODE_ENV === \"development\" && !onlineDevelopmentMode) {\r\n// document.cookie =\r\n// \"token=eyJhbGciOiJIUzI1NiJ9.eyJsb2dpblRpbWVzdGFtcCI6MTY0NjcyMjI2ODY4NSwidXNlcklkIjoiMTIzNDU2Nzg5MCJ9.F8wr84ha-dW18J9wZOQeTXj55mXTdqKfLBeNlNueoLY\"\r\n// document.cookie =\r\n// \"refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJsb2dpblRpbWVzdGFtcCI6MTY0NjcyMjI2ODY4Nn0.TEVE_nopHNZlvSQM_RUZrLcCzkaERiHo8nz0q-ksL3E\"\r\n// document.cookie = \"username=admin\"\r\n// document.cookie = \"windowOnline=true\"\r\n// apiContextPath = \"/api\"\r\n// }\r\nexport const getInstance = (prefix = \"\") => {\r\n if (prefix) {\r\n prefix.startsWith(\"/\") && (prefix = prefix.slice(1, prefix.length))\r\n prefix.endsWith(\"/\") && (prefix = prefix.slice(0, -1))\r\n }\r\n const instance = axios.create({\r\n baseURL: `${apiContextPath}/${prefix ? prefix + \"/\" : \"\"}sdata/rest`,\r\n timeout: 60000,\r\n validateStatus: function(status) {\r\n return status >= 200 && status < 300 // default\r\n },\r\n headers:\r\n (window.location.search && qs.parse(window.location.search).token) ||\r\n window.token\r\n ? { token: qs.parse(window.location.search).token || window.token }\r\n : {}\r\n })\r\n\r\n let oldPost = instance.post;\r\n\r\n instance.post = (url, data, config)=> {\r\n let prefix =window.VITE_SERVICE_BASE_URL || \"\";\r\n if (prefix) {\r\n let newUrl = prefix + url;\r\n return oldPost.call(instance, newUrl, data, config);\r\n }\r\n return oldPost.call(instance, url, data, config);\r\n };\r\n\r\n instance.defaults.headers.post[\"Content-Type\"] = \"application/json\"\r\n\r\n instance.interceptors.response.use(\r\n response => {\r\n let { data } = response\r\n if (typeof data === \"string\") {\r\n data = JSON.parse(data)\r\n }\r\n if (data && data.status !== 200 && !(data instanceof Blob)) {\r\n return Promise.reject(response)\r\n }\r\n if (data instanceof Blob) {\r\n response.data = data\r\n return response\r\n }\r\n\r\n response.data = data && data.result\r\n return response\r\n },\r\n error => {\r\n if (error.response && error.response.status === 401) {\r\n return\r\n }\r\n\r\n return Promise.reject(error.response)\r\n }\r\n )\r\n return instance\r\n}\r\nlet prefixPath = window.prefixPath || \"\"\r\n\r\nexport default getInstance(prefixPath)\r\n","/**\r\n * 注册事件监听器\r\n * @param {} eventName \r\n * @param {*} actionFun \r\n */\r\nexport const registerEventListener = (eventName,actionFun) =>{\r\n let eventBus = window.rjEventCenter;\r\n if(!eventBus)\r\n {\r\n initEventCenter();\r\n eventBus = window.rjEventCenter;\r\n }\r\n if (eventBus && eventBus.register) {\r\n eventBus.register(eventName, actionFun);\r\n }\r\n}\r\n\r\n/**\r\n * 初始化事件中心\r\n */\r\nexport const initEventCenter = () =>{\r\n if (!window.rjEventCenter) {\r\n console.log(`初始化事件中心:时间戳: ${new Date().toLocaleString()}`);\r\n let eventBus = require('./eventBus').default;\r\n window.rjEventCenter = eventBus;\r\n }\r\n else\r\n {\r\n console.log(`事件中心已经初始化,不需要重新初始化:时间戳: ${new Date().toLocaleString()}`);\r\n }\r\n}\r\n\r\n/**\r\n * 销毁事件中心\r\n */\r\nexport const destroyEventCenter = () =>{\r\n if (window.rjEventCenter) {\r\n window.rjEventCenter.clearAll();\r\n window.rjEventCenter = null;\r\n console.log(`事件中心已清理:时间戳: ${new Date().toLocaleString()}`);\r\n }\r\n}\r\n\r\n\r\n/**\r\n * 移除事件监听器\r\n * @param {*} eventName \r\n * @param {*} actionFun \r\n */\r\nexport const removeEventListener = (eventName,actionFun) =>{\r\n let eventBus = window.rjEventCenter;\r\n if (eventBus && eventBus.unregister) {\r\n eventBus.unregister(eventName, actionFun);\r\n }\r\n}\r\n\r\nexport const fireEvent = (eventName,eventData) =>{\r\n let eventBus = window.rjEventCenter;\r\n eventData.eventKey=eventName;\r\n if (eventBus && eventBus.fireEvent) {\r\n eventBus.fireEvent(eventName, eventData);\r\n }\r\n}\r\n\r\n/**\r\n * 检查是否有事件监听器\r\n * @param {*} eventName \r\n * @returns \r\n */\r\nexport const hasListener = (eventName) =>{\r\n let eventBus = window.rjEventCenter;\r\n if (eventBus && eventBus.hasListener) {\r\n return eventBus.hasListener(eventName);\r\n }\r\n else\r\n {\r\n return false;\r\n }\r\n}\r\n\r\n","import request from \"./request\";\r\n\r\n/**\r\n * 获取门户应用ID\r\n * @param {*} isPortalAction 是否是门户操作\r\n * 如果是门户操作,则从window.appSdk.getAppId()获取\r\n * 否则从sessionStorage中获取iportal_app_id,如果没有则从appVariables中获取\r\n * @param {*} isPortalAction\r\n * @returns\r\n */\r\nexport const getPoratlAppID = () => {\r\n let portal_app_id = window.sessionStorage.getItem(\"iportal_app_id\");\r\n if (!portal_app_id) {\r\n portal_app_id = getCurrentAppID();\r\n }\r\n return portal_app_id;\r\n};\r\n\r\nexport const getCurrentAppID = () => {\r\n let app_id = window.appSdk.getAppId() || window.localStorage.MobileAppId;\r\n return app_id;\r\n};\r\n\r\n/**\r\n * 取门户应用菜单数据\r\n * @param {*} user_id 用户ID\r\n * @param {*} group_id 组织ID\r\n * @param {*} isPortalAction\r\n * @returns\r\n */\r\nexport const getAppPortalMenuDatas = async (\r\n user_id,\r\n group_id,\r\n isPortalAction,\r\n appVariables\r\n) => {\r\n //获取门户应用ID\r\n let portal_app_id = getPoratlAppID();\r\n //获取当前用户在当前组织下的角色ID\r\n let roleList = await getRoleIDsByUserAndGroupID(\r\n user_id,\r\n portal_app_id,\r\n group_id\r\n );\r\n //获取当前组织下的门户菜单数据\r\n let portalMenuDatas = await getMenuDatasByGroupID(group_id, roleList);\r\n let app_id = window.appSdk.getAppId();\r\n let menuDatas = portalMenuDatas.filter((menuData) => {\r\n // 如果是门户菜单,则直接返回true\r\n // 否则根据app_id和portal_app_id进行过滤\r\n if (isPortalAction) {\r\n return true;\r\n } else {\r\n if (menuData.app_id == portal_app_id) {\r\n return true;\r\n } else {\r\n let types = menuData.children;\r\n let hasTargetMenu = false;\r\n if (types && types.length > 0) {\r\n types.forEach((type) => {\r\n let children = type.children;\r\n if (children && children.length > 0) {\r\n let newTypeChilden = children.filter((child) => {\r\n return child.app_id === app_id;\r\n });\r\n if (newTypeChilden && newTypeChilden.length > 0) {\r\n hasTargetMenu = true;\r\n }\r\n }\r\n });\r\n }\r\n return hasTargetMenu;\r\n }\r\n }\r\n });\r\n return menuDatas;\r\n};\r\n\r\n/**\r\n * 查询当前企业门户菜单信息\r\n * @param id GroupID\r\n *\r\n */\r\nexport const getMenuDatasByGroupID = async (group_id, role_ids) => {\r\n let queryData_groupData = {\r\n param: {\r\n id: group_id,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getMenuDatasByGroupID`,\r\n queryData_groupData\r\n );\r\n //所有的快捷访问菜单信息\r\n let portalMenuDatas = result.data.resultDatas;\r\n //所有的菜单类型\r\n let menuTypes = result.data.menuTypes;\r\n\r\n result = await request.post(\r\n `/dataservice/rest/orchestration/getPortalDefaultQuickMenus`,\r\n {}\r\n );\r\n\r\n let defaultMenuDatas = result.data.resultDatas;\r\n\r\n let defaultMenuType = result.data.menuTypes;\r\n\r\n let tempMenuDatas = portalMenuDatas.concat(defaultMenuDatas);\r\n\r\n let tempMenuType = menuTypes.concat(defaultMenuType);\r\n\r\n let finalMenuDatas = [];\r\n\r\n let finaMenuTypes = [];\r\n\r\n let tempMap = {};\r\n //缓存所有快捷访问菜单信息\r\n for (const tempData of tempMenuDatas) {\r\n let id = tempData.id;\r\n let isList =tempData.status==\"1\";\r\n // 只缓存启用状态的菜单\r\n if(!tempMap[id]&&isList)\r\n {\r\n finalMenuDatas.push(tempData);\r\n tempMap[id] = tempData;\r\n }\r\n }\r\n let tempTypeMap = {};\r\n //缓存所有菜单类型信息\r\n for (const tempType of tempMenuType) {\r\n let id = tempType.id;\r\n if(!tempTypeMap[id])\r\n {\r\n finaMenuTypes.push(tempType);\r\n tempTypeMap[id] = tempType;\r\n }\r\n }\r\n\r\n //如果有角色ID,则获取对应角色的快捷访问菜单映射信息\r\n if (role_ids && role_ids.length > 0) {\r\n //获取当前角色下对应的角色快捷访问菜单的映射信息(到应用自定义菜单)和快捷访问菜单的信息\r\n result = await getMenuMappingDatasByRoleIDs(role_ids, group_id);\r\n //对应角色的快捷访问菜单映射信息\r\n let quickMenuMappingDatas = result.data.quickMenuMappingDatas || [];\r\n let filterObjectMap = {};\r\n\r\n //缓存所有角色的快捷访问菜单映射信息\r\n for (const data of quickMenuMappingDatas) {\r\n let id = data.menu_mapping_id;\r\n let quickMenuMapping = tempMap[id];\r\n filterObjectMap[id] = quickMenuMapping;\r\n }\r\n //返回基于角色关联关系过滤后的快捷访问菜单信息\r\n return transformPortalData(finalMenuDatas, finaMenuTypes, filterObjectMap);\r\n } else {\r\n return transformPortalData(finalMenuDatas, finaMenuTypes, []);\r\n }\r\n};\r\n\r\n/**\r\n * 查询对应角色的门户快捷菜单映射信息\r\n * @param id GroupID\r\n *\r\n */\r\nexport const getMenuMappingDatasByRoleIDs = async (role_ids, group_id) => {\r\n let queryData_groupData = {\r\n param: {\r\n role_ids: role_ids,\r\n group_id: group_id,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getQuckMenuMappingsByRoleIDs`,\r\n queryData_groupData\r\n );\r\n //获取菜单数据\r\n return result;\r\n};\r\n\r\n/**\r\n * 校验SSO页面加载是否正确\r\n * @param id GroupID\r\n *\r\n */\r\nexport const validateSSOPageLoaded = async (app_id, appSecret, returnUrl) => {\r\n let queryData_groupData = {\r\n param: {\r\n app_id: app_id,\r\n appSecret: appSecret,\r\n returnUrl: returnUrl,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/validateSSOPageLoaded`,\r\n queryData_groupData\r\n );\r\n let resultCount = result.data.count;\r\n //获取菜单数据\r\n return resultCount;\r\n};\r\n\r\n/**\r\n * 查询对应角色的门户快捷菜单信息\r\n * @param id GroupID\r\n *\r\n */\r\nexport const getRoleIDsByUserAndGroupID = async (user_id, app_id, group_id) => {\r\n let queryData = {\r\n param: {\r\n user_id: user_id,\r\n app_id: app_id,\r\n group_id: group_id,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getRoleIDsByUserAndGroupID`,\r\n queryData\r\n );\r\n let role_ids = result.data.portal_role_ids;\r\n //获取菜单数据\r\n return role_ids;\r\n};\r\n\r\n/**\r\n * 获取门户知识文档的url\r\n * @param {*} kb_doc_id\r\n * @returns\r\n */\r\nexport const getPortalDocmentInfo = async (kb_doc_id) => {\r\n let queryData = {\r\n param: {\r\n kb_doc_id: kb_doc_id,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getPortalDocmentInfoByKBID`,\r\n queryData\r\n );\r\n let docInfo = result.data.docInfo;\r\n return docInfo;\r\n};\r\n\r\n// export const getLoginPortalAccountKey = async (loginName,groupID) => {\r\n// let queryData = {\r\n// param: {\r\n// loginData: {\r\n// account: loginName,\r\n// group_id: groupID,\r\n// },\r\n// },\r\n// };\r\n// let result = await request.post(\r\n// `/dataservice/rest/orchestration/getLoginPortalAccountKey`,\r\n// queryData\r\n// );\r\n// return result;\r\n// };\r\n\r\n/**\r\n * 获取该平台菜单同祖先(直至根节点)得其他兄弟菜单\r\n * @param {*} menu_id \r\n * @returns \r\n */\r\nexport const getPlatformBortherMenusByMenuID =async (menu_id,role_ids,group_id) =>{\r\n let queryData_groupData = {\r\n \"param\": {\r\n \"menu_id\": menu_id,\r\n }\r\n };\r\n let result =await request.post(`/dataservice/rest/orchestration/getPlatformBortherMenusByMenuID`,queryData_groupData);\r\n let sysMenuDatas = result.data.menuDatas || [];\r\n \r\n //获取当前角色下对应的角色菜单权限的映射信息\r\n let roleMenuMappingDatas = await getPlatformMenuMappingsByRoleIDs(role_ids, group_id);\r\n let roleMenuMappingMap = {};\r\n for (const mappingData of roleMenuMappingDatas) {\r\n let menu_mapping_id = mappingData.menu_id;\r\n roleMenuMappingMap[menu_mapping_id] = mappingData;\r\n }\r\n let menuMaps = {};\r\n //缓存所有菜单信息\r\n for (const item of sysMenuDatas) {\r\n let id = item.id;\r\n let leaf_flag = item.leaf_flag;\r\n //如果是叶子节点 并且当前菜单ID在角色菜单映射信息中不存在,则跳过\r\n if(leaf_flag===1&&(!roleMenuMappingMap[id])){\r\n continue;\r\n }\r\n // 如果当前菜单ID在角色菜单映射信息中存在,则表示该角色有权限访问该菜单\r\n if (!menuMaps[id]) {\r\n // let icon =item.icon;\r\n let iconClass =\"el-icon-menu\";\r\n // if(icon){\r\n // let obj = JSON.parse(icon);\r\n // iconClass =obj?.url?`#${obj.url}`:\"el-icon-menu\";\r\n // }\r\n let tempItem = {\r\n id: item.id,\r\n index: item.id,\r\n name: item.name,\r\n isSys:true,\r\n iconClass: iconClass,\r\n actionType: item.action_type|| \"1\", // 默认值为1\r\n app_id: item.datapp_id,\r\n menu_id: item.id, \r\n url: item.url||\"\",\r\n children: item.children || [],\r\n sort: item.sort || 0,\r\n };\r\n menuMaps[id] = tempItem;\r\n }\r\n }\r\n for (const item of sysMenuDatas) {\r\n let parent_id = item.parent_id;\r\n if (!parent_id) continue;\r\n let parentItem = menuMaps[parent_id];\r\n if (parentItem) {\r\n let menuItem = menuMaps[item.id];\r\n if(!menuItem){\r\n continue;\r\n }\r\n parentItem.children.push(menuItem);\r\n }\r\n }\r\n let menuDatas = [];\r\n for (const key in menuMaps) {\r\n let item = menuMaps[key];\r\n if (item.children && item.children.length > 0) {\r\n menuDatas.push(item);\r\n let children = item.children;\r\n children.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n }\r\n }\r\n //如果没有数据,说明只有一级节点父亲\r\n if(menuDatas.length==0){\r\n for (const key in menuMaps) {\r\n let item = menuMaps[key];\r\n if (item) {\r\n menuDatas.push(item);\r\n }\r\n }\r\n }\r\n menuDatas.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n // console.log(\"getPlatformBortherMenusByMenuID\",menuDatas);\r\n //获取菜单数据\r\n return menuDatas;\r\n};\r\n\r\n\r\n\r\n/**\r\n * 通过角色IDS获取该平台菜单权限映射\r\n * @param {*} menu_id \r\n * @returns \r\n */\r\nexport const getPlatformMenuMappingsByRoleIDs =async (role_ids,app_id) =>{\r\n let queryData_groupData = {\r\n \"param\": {\r\n \"role_ids\": role_ids,\r\n \"app_id\":app_id\r\n }\r\n };\r\n let result =await request.post(`/dataservice/rest/orchestration/getPlatformMenuMappingsByRoleIDs`,queryData_groupData);\r\n let mappingDatas = result.data.mappingDatas;\r\n //获取菜单数据\r\n return mappingDatas;\r\n};\r\n\r\n\r\n/**\r\n * 转换门户菜单数据\r\n * @param {*} datas 所有的快捷菜单访问信息\r\n * @param {*} menuTypes 快捷访问菜单类型\r\n * @param {*} filterObjectMap 角色快捷菜单访问映射信息\r\n * @returns\r\n */\r\nconst transformPortalData = (datas, menuTypes, filterObjectMap) => {\r\n let menuMaps = {};\r\n let menuTypeMaps = {};\r\n let parentMaps = {};\r\n //缓存所有父亲菜单信息\r\n for (let key in filterObjectMap) {\r\n let item = filterObjectMap[key];\r\n if(!item) continue;\r\n let parent_id = item.parent_id;\r\n if (parent_id) {\r\n parentMaps[parent_id] = true;\r\n }\r\n }\r\n //缓存所有菜单信息\r\n for (const data of datas) {\r\n let id = data.id;\r\n let tempMenuData = {\r\n id: id,\r\n index: data.menu_id,\r\n name: data.title,\r\n sort: data.sort,\r\n actionType: data.actionType,\r\n url: data.url,\r\n iconClass: data.image?data.image:\"el-icon-menu\",\r\n parent_id: data.parent_id,\r\n children: [],\r\n app_id: data.app_id,\r\n menu_id: data.menu_id,\r\n beyond_type: data.menu_type ? data.menu_type : \"RJVIEW-OTHERS\",\r\n beyond_type_sort: data.menu_type_sort ? data.menu_type_sort : 999,\r\n type:\"MenuItem\",\r\n typeID:data.type,\r\n };\r\n //如果存在快捷菜单映射数据或者是主菜单入口\r\n //如果是主菜单或者存在快捷访问映射或者孩子存在快捷访问映射或者是应用默认的菜单,则纳入到菜单中\r\n if ((filterObjectMap&&filterObjectMap[id]) || data.type == \"4\" || parentMaps[id] || data.is_app_defalut==\"1\") {\r\n //TODO:判断是否有平台系统的menu_id权限,有可能有映射权限,但角色没有平台权限,则不显示\r\n menuMaps[id] = tempMenuData;\r\n }\r\n }\r\n //缓存所有菜单类型信息\r\n for (const menuData of menuTypes) {\r\n let id = menuData.id;\r\n menuTypeMaps[id] = menuData;\r\n }\r\n for (const data of datas) {\r\n let type = data.type;\r\n //5:子菜单入口\r\n if (type == \"5\") {\r\n let tempMenuData = menuMaps[data.id];\r\n //如果没有对应的菜单数据,则跳过\r\n if (!tempMenuData) continue;\r\n let parent_id = data.parent_id;\r\n let tempType = tempMenuData.beyond_type;\r\n // let tempType_sort =tempMenuData.beyond_type_sort;\r\n let tempParentMenu = menuMaps[parent_id];\r\n if (!tempParentMenu) continue;\r\n let parentTypes = tempParentMenu.children;\r\n let parentType = parentTypes.find((tempTypeItem) => {\r\n return tempTypeItem.id == tempType;\r\n });\r\n if (parentType) {\r\n let type_childens = parentType.children;\r\n type_childens.push(tempMenuData);\r\n tempMenuData.typeItem = parentType;\r\n } else {\r\n let menuTypeObj = menuTypeMaps[tempType];\r\n let parentType = menuTypeObj\r\n ? {\r\n id: tempType,\r\n index: tempType,\r\n name: menuTypeObj.title,\r\n children: [],\r\n sort: menuTypeObj.value,\r\n type:\"MenuType\",\r\n }\r\n : {\r\n id: tempType,\r\n index: tempType,\r\n name: \"其他\",\r\n children: [],\r\n sort: 999,\r\n type:\"MenuType\"\r\n };\r\n let type_childens = parentType.children;\r\n type_childens.push(tempMenuData);\r\n parentTypes.push(parentType);\r\n tempMenuData.typeItem = parentType;\r\n }\r\n }\r\n }\r\n const menuList = [];\r\n for (const data of datas) {\r\n let type = data.type;\r\n //4:主菜单入口\r\n if (type == \"4\") {\r\n let tempMenuData = menuMaps[data.id];\r\n //如果没有对应的菜单数据,则跳过\r\n if (!tempMenuData) continue;\r\n let menuTypes = tempMenuData.children;\r\n let count = 0;\r\n for (const menuType of menuTypes) {\r\n let type_childens = menuType.children;\r\n let tempCount = type_childens.length;\r\n count = count + tempCount;\r\n if (tempCount > 0) {\r\n break;\r\n }\r\n }\r\n //如果不是默认菜单,并且没有快捷访问权限,并且孩子没有快捷访问权限,则不显示\r\n if(data.is_app_defalut!=\"1\") {\r\n // 如果没有权限,也没有子菜单时 则跳过\r\n if(filterObjectMap&&!filterObjectMap[data.id]&&count==0) {\r\n continue;\r\n }\r\n }\r\n menuList.push(tempMenuData);\r\n let types = tempMenuData.children;\r\n types.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n for (let typeItem of types) {\r\n let tempArrys = typeItem.children;\r\n tempArrys.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n }\r\n }\r\n }\r\n menuList.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n // console.log(menuList);\r\n return menuList;\r\n};\r\n\r\n/**\r\n * 转换门户用户快捷菜单数据\r\n * @param {*} quickDatas\r\n * @returns\r\n */\r\nexport const transformPortalQuickMenuDatas = (quickDatas,defaultDatas) => {\r\n quickDatas = quickDatas ? quickDatas : [];\r\n defaultDatas = defaultDatas ? defaultDatas : [];\r\n let tempDatas = quickDatas.concat(defaultDatas);\r\n let tempDatasMap = {};\r\n let finalMenuDatas = [];\r\n for (const item of tempDatas) {\r\n let id = item.id;\r\n if(!tempDatasMap[id]) {\r\n tempDatasMap[id] = item;\r\n finalMenuDatas.push(item);\r\n }\r\n }\r\n let quickMenuMaps = {};\r\n for (const data of finalMenuDatas) {\r\n let id = data.id;\r\n let tempMenuData = {\r\n id: id,\r\n label: data.title,\r\n sort: data.sort,\r\n children: [],\r\n parent_id: data.parent_id,\r\n type: data.type,\r\n };\r\n quickMenuMaps[id] = tempMenuData;\r\n }\r\n for (const data of finalMenuDatas) {\r\n let tempMenuData = quickMenuMaps[data.id];\r\n //5:子菜单入口\r\n if (tempMenuData.type == \"5\") {\r\n let parent_id = tempMenuData.parent_id;\r\n let tempParentMenu = quickMenuMaps[parent_id];\r\n if (tempParentMenu) {\r\n let parentChilden = tempParentMenu.children;\r\n parentChilden.push(tempMenuData);\r\n }\r\n }\r\n }\r\n const menuList = [];\r\n for (const data of finalMenuDatas) {\r\n let tempMenuData = quickMenuMaps[data.id];\r\n //4:主菜单入口\r\n if (tempMenuData.type == \"4\") {\r\n menuList.push(tempMenuData);\r\n let tempArrys = tempMenuData.children;\r\n tempArrys.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n }\r\n }\r\n menuList.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n return menuList;\r\n};\r\n\r\nexport const transformPortalSystemMenuDatas = (datas) => {\r\n let menuMaps = {};\r\n for (const data of datas) {\r\n let id = data.id;\r\n let tempMenuData = {\r\n id: id,\r\n label: data.name,\r\n sort: data.sort,\r\n icon: data.icon,\r\n children: [],\r\n app_id: data.datapp_id,\r\n parent_id: data.parent_id,\r\n leaf_flag: data.leaf_flag,\r\n };\r\n menuMaps[id] = tempMenuData;\r\n }\r\n for (const data of datas) {\r\n let leaf_flag = data.leaf_flag;\r\n //5:子菜单入口\r\n if (leaf_flag == 1) {\r\n let tempMenuData = menuMaps[data.id];\r\n let parent_id = data.parent_id;\r\n let tempParentMenu = menuMaps[parent_id];\r\n if (tempParentMenu) {\r\n let parentChilden = tempParentMenu.children;\r\n parentChilden.push(tempMenuData);\r\n }\r\n }\r\n }\r\n const menuList = [];\r\n for (const data of datas) {\r\n let leaf_flag = data.leaf_flag;\r\n //4:主菜单入口\r\n if (leaf_flag == 0) {\r\n let tempMenuData = menuMaps[data.id];\r\n menuList.push(tempMenuData);\r\n let tempArrys = tempMenuData.children;\r\n tempArrys.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n }\r\n }\r\n menuList.sort((data1, data2) => {\r\n if (Number.isNaN(data1.sort)) return 1;\r\n if (Number.isNaN(data2.sort)) return -1;\r\n return data1.sort - data2.sort;\r\n });\r\n return menuList;\r\n};\r\n\r\n/**\r\n * 获取当前用户默认的门户页面ID\r\n *\r\n * 该方法用于获取当前用户在门户中的默认页面ID\r\n * @param {信息} userData\r\n * @returns\r\n */\r\nexport const getCurrentUserPortalPageID = async (userData) => {\r\n let queryData = {\r\n param: {\r\n userData: userData,\r\n },\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getPortalPageID`,\r\n queryData\r\n );\r\n let portal_id = response.data.portal_id;\r\n return portal_id;\r\n};\r\n\r\n/**\r\n * 获取当前用户默认的门户页面ID\r\n *\r\n * 该方法用于获取当前用户在门户中的默认页面ID\r\n * @param {信息} userData\r\n * @returns\r\n */\r\nexport const getCurrentUserPortalMapping = async (userData) => {\r\n let queryData = {\r\n param: {\r\n userData: userData,\r\n },\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getPortalMappingInfo`,\r\n queryData\r\n );\r\n let portal_id = response.data.portal_info;\r\n return portal_id;\r\n};\r\n\r\n/**\r\n * 获取当前用户默认的门户页面ID\r\n *\r\n * 该方法用于获取当前用户在门户中的默认页面ID\r\n * @param {信息} userData\r\n * @returns\r\n */\r\nexport const getPortalInfosByID = async (id) => {\r\n let queryData = {\r\n param: {\r\n id: id,\r\n },\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getPortalInfosByID`,\r\n queryData\r\n );\r\n let portalInfo = response.data.portalInfo;\r\n return portalInfo;\r\n};\r\n\r\n/**\r\n * 通过租户名称模糊匹配获取租户信息\r\n *\r\n * @param {名称信息} name\r\n * @returns\r\n */\r\nexport const getTenetInfoByName = async (name) => {\r\n let queryData = {\r\n param: {\r\n name: name,\r\n },\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getTenetInfoByName`,\r\n queryData\r\n );\r\n let resultDatas = response.data.resultDatas;\r\n return resultDatas;\r\n};\r\n\r\n/**\r\n * 获取当前用户在门户中的所有映射数据\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const getUserAllMappngPortal = (data) => {\r\n let queryData = {\r\n param: {\r\n userData: data,\r\n },\r\n };\r\n return request.post(\r\n `/dataservice/rest/orchestration/getUserAllMappngPortal`,\r\n queryData\r\n );\r\n};\r\n\r\n/**\r\n * 获取用户关联门户关联映射信息\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const getPortalUserMappingInfos = async (data) => {\r\n let queryData = {\r\n param: {\r\n operateData: data,\r\n },\r\n };\r\n let responseData = await request.post(\r\n `/dataservice/rest/orchestration/getPortalUserMappingInfos`,\r\n queryData\r\n );\r\n let userMappingData = responseData.data.portalMapping;\r\n return userMappingData;\r\n};\r\n\r\n/**\r\n * 通过页面ID获取页面配置\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const getPortalPageConfig = async (pageID) => {\r\n let queryData = {\r\n param: {\r\n id: pageID,\r\n },\r\n };\r\n let pageConfigResponse = await request.post(\r\n `/dataservice/rest/orchestration/getPortalPageConfig`,\r\n queryData\r\n );\r\n let configStr = pageConfigResponse.data.portal_page_config || \"[]\";\r\n return configStr;\r\n};\r\n\r\n/**\r\n * 通过页面ID设置页面配置\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const setPortalPageConfig = (configData) => {\r\n let queryData = {\r\n param: configData,\r\n };\r\n return request.post(\r\n `/dataservice/rest/orchestration/setPortalPageConfig`,\r\n queryData\r\n );\r\n};\r\n\r\n/**\r\n * 更新用户选择的门户\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const updateUserSelectPortal = (data) => {\r\n let queryData = {\r\n param: {\r\n portalMappingData: data,\r\n },\r\n };\r\n return request.post(\r\n `/dataservice/rest/orchestration/updateUserSelectPortal`,\r\n queryData\r\n );\r\n};\r\n\r\n/**\r\n * 获取当前用户在门户中的默认页面ID\r\n *\r\n * 该方法用于获取当前用户在门户中的默认页面ID\r\n * @param {信息} userData\r\n * @returns\r\n */\r\nexport const getPortalPageMenuID = async (pageID, app_id) => {\r\n let queryData = {\r\n param: {\r\n id: pageID,\r\n appid: app_id,\r\n },\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getPortalPageMenuID`,\r\n queryData\r\n );\r\n let menu_id = response.data.menu_id;\r\n return menu_id;\r\n};\r\n\r\n// 查询门户映射应用信息\r\n// * @param appID 应用ID\r\n// * @param groupID 集团ID\r\nexport const getMappingAppInfoByID = async (appID, groupID) => {\r\n let queryData = {\r\n param: {\r\n appID: appID,\r\n groupID: groupID,\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getPortalMappingAppInfoByID`,\r\n queryData\r\n );\r\n let appInfo = resultData.data.appInfo;\r\n return appInfo;\r\n};\r\n\r\n/**\r\n *\r\n * @returns 获取门户登录页面的公告信息\r\n */\r\nexport const getLoginPageNotices = async (groupID) => {\r\n let queryData = {\r\n param: {\r\n id: \"1005\",\r\n groupID: groupID, // 集团ID\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getNoticeInfosByAppTypeID`,\r\n queryData\r\n );\r\n let noticeInfos = resultData.data.resultDatas;\r\n return noticeInfos;\r\n};\r\n\r\n/**\r\n * 获取对应租户的组织的公告信息\r\n * @param {*} groupID \r\n * @returns \r\n */\r\nexport const getPortalNotices = async(groupID) => {\r\n let queryData={\r\n \"param\":{\r\n \"id\":groupID\r\n }\r\n };\r\n let resultData = await request.post(`/dataservice/rest/orchestration/getNoticesInfosByGroupID`, queryData);\r\n return resultData;\r\n}\r\n\r\n/**\r\n * 获取门户单点登录接入Token\r\n * @param {*} appKey\r\n * @param {*} appSecret\r\n * @returns\r\n */\r\nexport const getPortalAccessToken = async (appKey, appSecret) => {\r\n let result = await request.get(\r\n `/appAuth/getAccessToken?appKey=${appKey}&appSecret=${appSecret}`\r\n );\r\n let token = result.data;\r\n return token;\r\n};\r\n\r\n/**\r\n * 通过code和接入Token获取用户身份信息\r\n * @param {*} code\r\n * @param {*} access_token\r\n * @returns\r\n */\r\nexport const getPortalUserInfo = async (code, access_token) => {\r\n let result = await request.get(\r\n `/systhirdapp/user/getUserByCode?code=${code}&access_token=${access_token}`\r\n );\r\n let data = result.data;\r\n return data;\r\n};\r\n\r\n/**\r\n * 通过用户ID,平台类型,租户ID获取用户IM的签名ID\r\n * @param {*} userID\r\n * @param {*} platType\r\n * @param {*} groupID\r\n * @returns\r\n */\r\nexport const getPortalUserSig = async (userID, platType, groupID) => {\r\n let queryData = {\r\n param: {\r\n userID: userID,\r\n im_type: platType,\r\n group_id: groupID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getIMUserSigByID`,\r\n queryData\r\n );\r\n let sigID = result.data.userSig;\r\n return sigID;\r\n};\r\n\r\n/**\r\n * 通过租户ID获取门户应用的客户配置\r\n * @param {*} groupID\r\n * @returns\r\n */\r\nexport const getPortalAppCustomConfig = async (groupID) => {\r\n let requestData = {\r\n param: {\r\n groupID: groupID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getPortalAppCustomConfig`,\r\n requestData\r\n );\r\n let appInfo = result.data.configInfo;\r\n return appInfo;\r\n};\r\n\r\n/**\r\n * 查询当前企业组织的集团组织ID\r\n * @param id 组织ID\r\n *\r\n */\r\nexport const queryGroupIDByOfficeId = async (id) => {\r\n let queryData_office = {\r\n param: {\r\n id: id,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getGroupIDByDptID`,\r\n queryData_office\r\n );\r\n let groupDptData = result.data.resultDptData;\r\n let group_id = groupDptData.id;\r\n return group_id;\r\n};\r\n\r\n/**\r\n * 查询app变量\r\n * @param id 组织ID\r\n *\r\n */\r\nexport const queryAppVariable = (name, appVariables) => {\r\n if (appVariables && appVariables.length > 0) {\r\n for (let i = 0; i < appVariables.length; i++) {\r\n if (appVariables[i].name == name) {\r\n return appVariables[i].default_value;\r\n }\r\n }\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getThirdAppPathByKey = async (appkey, appSecret, groupID) => {\r\n let requestData = {\r\n param: {\r\n appKey: appkey,\r\n appSecret: appSecret,\r\n groupID: groupID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getThirdAppPathByKey`,\r\n requestData\r\n );\r\n let path = result.data.path;\r\n return path;\r\n};\r\n\r\nexport const queryAndStoreAppVariable = (name, appVariables) => {\r\n let value = window.sessionStorage.getItem(\"isdata_app_variable_\" + name);\r\n if (!value) {\r\n value = queryAppVariable(name, appVariables);\r\n if (value) {\r\n window.sessionStorage.setItem(\"isdata_app_variable_\" + name, value);\r\n }\r\n }\r\n return value;\r\n};\r\n\r\n/**\r\n * 添加或更新对象使用次数\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const addObjectUsedTimes = (data) => {\r\n let queryData = {\r\n param: {\r\n operateData: data,\r\n },\r\n };\r\n return request.post(\r\n `/dataservice/rest/orchestration/addObjectUsedTimes`,\r\n queryData\r\n );\r\n};\r\n\r\n/**\r\n * 获取对象使用次数\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const getObjectUseTimes = (data) => {\r\n let queryData = {\r\n param: {\r\n objectInfo: data,\r\n },\r\n };\r\n return request.post(\r\n `/dataservice/rest/orchestration/getObjectUseTimes`,\r\n queryData\r\n );\r\n};\r\n\r\n/**\r\n * 获取组件的页面ID\r\n * @param {信息} data\r\n * @returns\r\n */\r\nexport const getPageIDByComponentID = async (componentID) => {\r\n let queryData = {\r\n param: {\r\n componentID: componentID,\r\n },\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getPageIDByComponentID`,\r\n queryData\r\n );\r\n let pageID = response.data.page_id;\r\n return pageID;\r\n};\r\n\r\n/**\r\n * 通过账户名获取集团组织映射数据\r\n * @param {*} account\r\n * @returns\r\n */\r\nexport const getGroupMappingsByAccount = async (account) => {\r\n let queryData = {\r\n param: {\r\n account: account,\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getGourpMappingsByAccountName`,\r\n queryData\r\n );\r\n let tenetGroupDatas = resultData.data.resultGroups;\r\n return tenetGroupDatas;\r\n};\r\n\r\n/**\r\n * 通过手机号获取集团组织映射数据\r\n * @param {*} phone \r\n * @returns \r\n */\r\nexport const getGourpMappingsByPhoneNumber = async (phone) => {\r\n let queryData = {\r\n param: {\r\n phone: phone,\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getGourpMappingsByPhoneNumber`,\r\n queryData\r\n );\r\n let tenetGroupDatas = resultData.data.resultGroups;\r\n return tenetGroupDatas;\r\n};\r\n\r\n/**\r\n * 查询当前企业组织的集团组织ID\r\n * @param id 组织ID\r\n *\r\n */\r\nexport const queryGroupInfosByOfficeId = async (id) => {\r\n let queryData_office = {\r\n param: {\r\n id: id,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getGroupIDByDptID`,\r\n queryData_office\r\n );\r\n let groupDptData = result.data.resultDptData;\r\n return groupDptData;\r\n};\r\n\r\n/**\r\n * 查询当前企业组织信息\r\n * @param id 组织ID\r\n *\r\n */\r\nexport const getOfficeInfosByIDs = async (group_ids) => {\r\n let queryData_groupData = {\r\n param: {\r\n ids: group_ids,\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getOfficeInfosByIDs`,\r\n queryData_groupData\r\n );\r\n let groupDatas = resultData.data.officeInfos;\r\n return groupDatas;\r\n};\r\n\r\n/**\r\n * 查询当前企业组织信息\r\n * @param id 组织ID\r\n *\r\n */\r\nexport const queryOfficeInfosById = async (officeID) => {\r\n let queryData = {\r\n param: {\r\n id: officeID,\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getOfficeInfosByID`,\r\n queryData\r\n );\r\n let groupDptData = resultData.data.officeData;\r\n return groupDptData;\r\n};\r\n\r\n/**\r\n * 获取应用信息通过ID\r\n * @param {*} id\r\n * @returns\r\n */\r\nexport const getAPPInfosByID = async (id) => {\r\n let queryData = {\r\n param: {\r\n id: id,\r\n },\r\n };\r\n let resultData = await request.post(\r\n `/dataservice/rest/orchestration/getAPPInfosByID`,\r\n queryData\r\n );\r\n let groupDptData = resultData.data.appInfo;\r\n return groupDptData;\r\n};\r\n\r\nexport const getAllUserInfosByGroupID = async (groupID) => {\r\n let requestData = {\r\n param: {\r\n groupID: groupID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getAllUserInfosByGroupID`,\r\n requestData\r\n );\r\n let data = result.data.resultDatas;\r\n return data;\r\n};\r\n\r\nexport const getChildrenOfficeInfosByID = async (officeID) => {\r\n let requestData = {\r\n param: {\r\n officeID: officeID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getChildrenOfficeInfosByID`,\r\n requestData\r\n );\r\n let data = result.data.resultDatas;\r\n return data;\r\n};\r\n\r\nexport const getPojectDptsByUserAndGroupID = async (userID, groupID) => {\r\n let requestData = {\r\n param: {\r\n userID: userID,\r\n groupID: groupID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getPojectDptsByUserAndGroupID`,\r\n requestData\r\n );\r\n let data = {\r\n dptDatas: result.data.officeDatas,\r\n userMappings: result.data.userMappings,\r\n };\r\n return data;\r\n};\r\n\r\n/**\r\n * 添加IM签名ID映射关系\r\n */\r\nexport const addIMMapping = async (userID, platType, groupID, sigID) => {\r\n let queryData = {\r\n param: {\r\n data: {\r\n userID: userID,\r\n im_type: platType,\r\n group_id: groupID,\r\n userSig: sigID,\r\n },\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/addIMMapping`,\r\n queryData\r\n );\r\n let resultData = result.data;\r\n return resultData;\r\n};\r\n\r\nexport const getAIRobotInfos = async (userID, groupID) => {\r\n let requestData = {\r\n param: {\r\n userID: userID,\r\n groupID: groupID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getAIRobotInfos`,\r\n requestData\r\n );\r\n let infos = result.data.robotInfos;\r\n return infos;\r\n};\r\n\r\n/**\r\n * 添加IM签名ID映射关系\r\n */\r\nexport const updateIMMapping = async (userID, platType, groupID, sigID) => {\r\n let queryData = {\r\n param: {\r\n userID: userID,\r\n im_type: platType,\r\n groupID: groupID,\r\n userSig: sigID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/updateIMMapping`,\r\n queryData\r\n );\r\n let resultData = result.data;\r\n return resultData;\r\n};\r\n\r\n/**\r\n * 获取应用自定义数据\r\n * @param {*} appID\r\n * @returns\r\n */\r\nexport const getAppCustomData = async (appID) => {\r\n let requestData = {\r\n param: {\r\n appID: appID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getAppCustomData`,\r\n requestData\r\n );\r\n let infos = result.data.customData;\r\n infos = infos ? JSON.parse(infos) : {};\r\n return infos;\r\n};\r\n\r\n/**\r\n * 获取集成应用的信息\r\n * @param {*} appID\r\n * @returns\r\n */\r\nexport const getIntegrateAppInfoByID = async (appID) => {\r\n let requestData = {\r\n param: {\r\n appID: appID,\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getIntegrateAppInfoByID`,\r\n requestData\r\n );\r\n let appInfo = result.data.appInfo;\r\n return appInfo;\r\n};\r\n\r\n// 更新服务器i18n文本\r\nexport const savePortalI18nText=async(key, value,lang,beyondID,i18nType)=>{\r\n let app_id =getPoratlAppID();\r\n let requestData = {\r\n param: {\r\n key: key,\r\n value: value,\r\n appID:app_id,\r\n lang:lang,\r\n beyondID:beyondID,\r\n i18nType:i18nType\r\n },\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/savePortalI18nText`,\r\n requestData\r\n );\r\n let resultData = result.data.resultData;\r\n return resultData;\r\n};\r\n\r\n\r\n// 通过账户名和租户获取手机号\r\nexport const getPhoneNumberByAccountName=async(accountName,groupID)=>{\r\n let requestData = {\r\n param:{\r\n accountName: accountName,\r\n groupID: groupID,\r\n }\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getPhoneNumberByAccountName`,\r\n requestData\r\n );\r\n let phone = result.data.phone;\r\n return phone;\r\n};\r\n","\nexport const i18n = (key, appID, localID) => {\n let result = window.customI18nObject?.get(`${appID}-${key}-${localID}`) || key;\n return result;\n};\n\n/**\n * 检查文本是否匹配$L{...}格式\n * @param {string} text - 要检查的文本\n * @returns {Object|null} - 匹配结果或null\n */\nexport function checkTextFormat(text) {\n if (!text) return null;\n\n const regex = /\\$L\\{([^}]+)\\}/;\n const match = text.match(regex);\n\n if (match) {\n return {\n fullMatch: match[0],\n key: match[1],\n };\n }\n\n return null;\n}\n\n\n","import {i18n} from \"../core\";\r\n\r\nexport const check =(element)=>{\r\n const checkResult = {\r\n result: false,\r\n innerHTMLMatch: null\r\n }\r\n const classes = element.classList;\r\n if(!classes){\r\n return checkResult;\r\n }\r\n // 检查表格头部 序号 和 操作 列\r\n if(classes.contains(\"ant-table-cell\")){\r\n let innerHTML = element.innerHTML;\r\n if(innerHTML.includes(\"序号\")||innerHTML.includes(\"Serial No.\")){\r\n // console.log(\"检查smardaten平台表格 序号 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:'$L{序号}'\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n if(innerHTML==\"操作\"){\r\n // console.log(\"检查smardaten平台表格 操作 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:'$L{操作}'\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 检查分页组件 导出按钮\r\n if(classes.contains(\"export_menu\")){\r\n let innerHTML = element.innerHTML;\r\n if(innerHTML.includes(\"导出进度\") || innerHTML.includes(\"Export progress\")){\r\n // console.log(\"检查smardaten平台表格 导出按钮 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:'$L{导出进度}'\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 检查分页组件\r\n if(classes.contains(\"total_pag_num\")){\r\n let innerHTML = element.innerHTML;\r\n if((innerHTML.includes(\"共\")&&innerHTML.includes(\"条\"))||(innerHTML.includes(\"Total\")&&innerHTML.includes(\"pieces\"))){\r\n // console.log(\"检查smardaten平台分页 共xx条 元素:\",innerHTML);\r\n let scriptFunction = (appID, lang)=>{\r\n let scriptNode = null;\r\n for (let node of element.childNodes) {\r\n // 检查是否为文本节点且包含\"Total\"\r\n if (node.tagName === \"SPAN\") {\r\n scriptNode = node;\r\n }\r\n }\r\n let scriptNodes = [\r\n { \r\n nodeType: Node.TEXT_NODE,\r\n key: '共',\r\n },\r\n { \r\n nodeType: \"SCRIPTNODE\",\r\n node: scriptNode,\r\n },\r\n { \r\n nodeType: Node.TEXT_NODE,\r\n key: '条',\r\n },\r\n ];\r\n for(let i = 0;i<element.childNodes.length;i++)\r\n {\r\n let childNode = element.childNodes[i];\r\n if(childNode.nodeType===Node.TEXT_NODE)\r\n {\r\n element.removeChild(childNode);\r\n }\r\n }\r\n for(let i = 0;i<scriptNodes.length;i++)\r\n {\r\n let scriptNodeItem = scriptNodes[i];\r\n if(scriptNodeItem.nodeType===Node.TEXT_NODE)\r\n {\r\n let textNode =document.createTextNode(i18n(scriptNodeItem.key, appID, lang)||scriptNodeItem.key);\r\n element.appendChild(textNode);\r\n }\r\n if(scriptNodeItem.nodeType===\"SCRIPTNODE\")\r\n {\r\n element.appendChild(scriptNodeItem.node);\r\n }\r\n }\r\n }\r\n let tempHTMLMatch ={\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 检查分页组件 跳至xx页\r\n if(classes.contains(\"ant-pagination-options-quick-jumper\")){\r\n let innerHTML = element.innerHTML;\r\n if((innerHTML.includes(\"跳至\")&&innerHTML.includes(\"页\"))||(innerHTML.includes(\"Go to\")&&innerHTML.includes(\"Page\")))\r\n {\r\n // console.log(\"检查smardaten平台分页 跳至xx页 元素:\",innerHTML);\r\n let scriptFunction = (appID, lang)=>{\r\n let scriptNode = null;\r\n for (let node of element.childNodes) {\r\n // 检查是否为文本节点且包含\"Total\"\r\n if (node.tagName === \"INPUT\") {\r\n scriptNode = node;\r\n }\r\n }\r\n let scriptNodes = [\r\n { \r\n nodeType: Node.TEXT_NODE,\r\n key: '跳至',\r\n },\r\n { \r\n nodeType: \"SCRIPTNODE\",\r\n node: scriptNode,\r\n },\r\n { \r\n nodeType: Node.TEXT_NODE,\r\n key: '页',\r\n },\r\n ];\r\n for(let i = 0;i<element.childNodes.length;i++)\r\n {\r\n let childNode = element.childNodes[i];\r\n if(childNode.nodeType===Node.TEXT_NODE)\r\n {\r\n element.removeChild(childNode);\r\n }\r\n }\r\n for(let i = 0;i<scriptNodes.length;i++)\r\n {\r\n let scriptNodeItem = scriptNodes[i];\r\n if(scriptNodeItem.nodeType===Node.TEXT_NODE)\r\n {\r\n let textNode =document.createTextNode(i18n(scriptNodeItem.key, appID, lang)||scriptNodeItem.key);\r\n element.appendChild(textNode);\r\n }\r\n if(scriptNodeItem.nodeType===\"SCRIPTNODE\")\r\n {\r\n element.appendChild(scriptNodeItem.node);\r\n }\r\n }\r\n }\r\n let tempHTMLMatch ={\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 检查每页xx条\r\n if(classes.contains(\"ant-select-selection-item\")||classes.contains(\"ant-select-item-option-content\")){\r\n let innerHTML = element.innerHTML;\r\n // console.log(\"检查smardaten平台分页 每页xx条 元素:\",innerHTML);\r\n if((innerHTML.includes(\"/\")&&innerHTML.includes(\"page\"))||(innerHTML.includes(\"/\")&&innerHTML.includes(\"条\")&&innerHTML.includes(\"页\")))\r\n {\r\n let oldValue = element.innerHTML;\r\n \r\n if(innerHTML.includes(\"page\"))\r\n {\r\n oldValue =oldValue.replace('page','$L{页}');\r\n }\r\n if(innerHTML.includes(\"页\")){\r\n oldValue =oldValue.replace('页','$L{页}');\r\n }\r\n if(innerHTML.includes(\"条\")){\r\n oldValue =oldValue.replace('条','$L{条}');\r\n }\r\n let tempHTMLMatch ={\r\n oldValue:oldValue,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n \r\n }\r\n // 检查删除确认对话框标题\r\n if(classes.contains(\"ant-popover-message-title\"))\r\n {\r\n let innerHTML = element.innerHTML;\r\n if(innerHTML.includes(\"确认执行:\")||innerHTML.includes(\"Confirm Execution:\")){\r\n // console.log(\"检查smardaten平台删除提问对话框:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:'$L{操作确认:删除?}'\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 检查删除确认对话框按钮 取消 确认\r\n if(classes.contains(\"ant-btn\")&&!classes.contains(\"saveBtn\"))\r\n {\r\n let innerHTML = element.innerHTML;\r\n if(innerHTML.includes(\"Cancel\")||innerHTML.includes(\"取消\")){\r\n // console.log(\"检查smardaten平台 Tip提问取消删除按钮:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:'$L{取消}'\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n if(innerHTML.includes(\"确定\")||innerHTML.includes(\"OK\")){\r\n // console.log(\"检查smardaten平台 Tip提问确认删除按钮:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:'$L{确定}'\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n return checkResult;\r\n}","import { checkTextFormat,i18n} from \"../core.js\";\r\nexport const check =(element)=>{\r\n const checkResult = {\r\n result: false,\r\n innerHTMLMatch: null\r\n }\r\n const classes = element.classList;\r\n if(!classes){\r\n return checkResult;\r\n }\r\n let innerHTML = element.innerHTML;\r\n let oldValue = element.getAttribute(\"oldValue\");\r\n if(!oldValue)\r\n {\r\n oldValue = innerHTML;\r\n }\r\n // 检查目录列表 名称 列\r\n if(classes.contains(\"catalog_name_content\"))\r\n {\r\n // console.log(\"检查smardaten平台目录列表 元素:\",innerHTML);\r\n let scriptFunction = (appID, lang) => {\r\n for (let i = 0; i < element.childNodes.length; i++) {\r\n let scriptNodeItem = element.childNodes[i];\r\n if (scriptNodeItem.nodeType === Node.TEXT_NODE) {\r\n let text = element.getAttribute(\"oldValue\");\r\n let isTextMatch = checkTextFormat(text);\r\n if (!isTextMatch) {\r\n element.appendChild(scriptNodeItem);\r\n } else {\r\n element.removeChild(scriptNodeItem);\r\n let key = isTextMatch.key;\r\n let textNode = document.createTextNode(\r\n i18n(key, appID, lang) || key\r\n );\r\n element.appendChild(textNode);\r\n }\r\n } else {\r\n element.appendChild(scriptNodeItem);\r\n }\r\n }\r\n };\r\n let tempHTMLMatch ={\r\n oldValue:oldValue,\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n if(classes.contains(\"catalog-tree-search\"))\r\n {\r\n let scriptFunction = (appID, lang) => {\r\n for (let i = 0; i < element.childNodes.length; i++) {\r\n let scriptNodeItem = element.childNodes[i];\r\n if (scriptNodeItem.tagName === 'INPUT') {\r\n let oldValue = scriptNodeItem.getAttribute(\"oldplaceholderValue\");\r\n if(!oldValue)\r\n {\r\n let text = scriptNodeItem.getAttribute(\"placeholder\");\r\n if(text){\r\n text =`$L{${text}}`;\r\n }\r\n scriptNodeItem.setAttribute(\"placeholder\",text);\r\n // processElement(scriptNodeItem,appID,lang);\r\n }\r\n } \r\n }\r\n };\r\n let tempHTMLMatch ={\r\n oldValue:oldValue,\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n return checkResult;\r\n};","import { checkTextFormat,i18n} from \"../core.js\";\r\nfunction getOldValueNodeText(innerHTML,index){\r\n const container = document.createElement('div');\r\n container.innerHTML = innerHTML;\r\n const childNode = container.childNodes[index];\r\n return childNode.textContent;\r\n}\r\nexport const check =(element)=>{\r\n const checkResult = {\r\n result: false,\r\n innerHTMLMatch: null\r\n }\r\n // 检查目录列表 名称 列\r\n if(element.tagName === 'BUTTON' || element.tagName === 'P')\r\n {\r\n //TODO:先检查新的是否需要解析,新的不需要有可能是解析后的再次判断,如果有历史解析值,则解析\r\n //如果新的需要解析,更新缓存的历史解析值\r\n let innerHTML = element.innerHTML;\r\n let oldValue = element.getAttribute(\"oldValue\");\r\n if(!oldValue)\r\n {\r\n oldValue = innerHTML;\r\n }\r\n let firstCheck = checkTextFormat(oldValue);\r\n let firstCheckResult = firstCheck?true:false;\r\n // console.log(\"检查 button 元素:\",innerHTML);\r\n // console.log(\"检查结果:\",firstCheckResult);\r\n let scriptFunction = (appID, lang) => {\r\n let elementsArray = [];\r\n for(let i=0;i<element.childNodes.length;i++)\r\n {\r\n let scriptNodeItem = element.childNodes[i];\r\n if (scriptNodeItem.nodeType === Node.TEXT_NODE) {\r\n let oldValue = element.getAttribute(\"oldValue\");\r\n // console.log(\"执行 button 文本节点翻译:\", text);\r\n // 创建正则表达式匹配所有 $L{...} 格式\r\n const regex = /\\$L\\{([^}]+)\\}/g;\r\n let isTextMatch = checkTextFormat(oldValue);\r\n if (!isTextMatch) {\r\n elementsArray.push(scriptNodeItem);\r\n } else {\r\n // console.log(\"执行 button 脚本节点翻译isTextMatch:\", isTextMatch?true:false);\r\n // element.removeChild(scriptNodeItem);\r\n // 替换所有 $L{...} 占位符为翻译文本\r\n let childNodeText = getOldValueNodeText(oldValue,i);\r\n let newValue = childNodeText;\r\n let match;\r\n while ((match = regex.exec(oldValue)) !== null) {\r\n const fullMatch = match[0];\r\n const placeholderKey = match[1];\r\n const translation = i18n(placeholderKey, appID, lang);\r\n newValue = newValue.replace(fullMatch, translation);\r\n }\r\n let textNode = document.createTextNode(newValue);\r\n elementsArray.push(textNode);\r\n }\r\n }\r\n else\r\n {\r\n elementsArray.push(scriptNodeItem);\r\n }\r\n }\r\n element.innerHTML = '';\r\n elementsArray.forEach((el)=>{\r\n element.appendChild(el);\r\n });\r\n };\r\n let tempHTMLMatch ={\r\n oldValue:oldValue,\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = firstCheckResult;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n return checkResult;\r\n};","import { checkTextFormat,i18n} from \"../core.js\";\r\nexport const check = (element) => {\r\n const checkResult = {\r\n result: false,\r\n innerHTMLMatch: null,\r\n };\r\n if(!element){\r\n return checkResult;\r\n }\r\n const checkAttributes = [\"placeholder\", \"title\"];\r\n for (let i = 0; i < checkAttributes.length; i++) {\r\n let attr = checkAttributes[i];\r\n let attrValue = element.getAttribute(attr) || element[attr];\r\n const attrMatch = attrValue ? checkTextFormat(attrValue) : null;\r\n if (attrMatch) {\r\n // console.log(\"检查元素属性 i18n 元素:\", attr, attrValue);\r\n element.setAttribute(`old${attr}Value`, attrValue);\r\n checkResult.result = true;\r\n }\r\n }\r\n let scriptFunction = (appID, lang) => {\r\n for (let i = 0; i < checkAttributes.length; i++) {\r\n let attr = checkAttributes[i];\r\n const oldAttrValue = element.getAttribute(`old${attr}Value`);\r\n if (oldAttrValue) {\r\n // 创建正则表达式匹配所有 $L{...} 格式\r\n const regex = /\\$L\\{([^}]+)\\}/g;\r\n // 替换所有 $L{...} 占位符为翻译文本\r\n let newAttrValue = oldAttrValue;\r\n let match;\r\n while ((match = regex.exec(oldAttrValue)) !== null) {\r\n const fullMatch = match[0];\r\n const attrKey = match[1];\r\n const translation = i18n(attrKey, appID, lang);\r\n newAttrValue = newAttrValue.replace(fullMatch, translation);\r\n }\r\n // 更新元素的placeholder属性\r\n element.setAttribute(attr, newAttrValue);\r\n }\r\n }\r\n };\r\n checkResult.scriptFunction = scriptFunction;\r\n return checkResult;\r\n};\r\n","import {i18n} from \"../core.js\";\r\nfunction convertToChineseWeekday(englishInput) {\r\n // 清理输入:去除首尾空格并转为小写\r\n const input = englishInput.trim().toLowerCase();\r\n \r\n // 定义星期映射关系\r\n const weekdayMap = {\r\n 'mon': '周一', 'monday': '周一', 'mondays': '周一',\r\n 'tue': '周二', 'tues': '周二', 'tuesday': '周二', 'tuesdays': '周二',\r\n 'wed': '周三', 'wednesday': '周三', 'wednesdays': '周三',\r\n 'thu': '周四', 'thur': '周四', 'thurs': '周四', 'thursday': '周四', 'thursdays': '周四',\r\n 'fri': '周五', 'friday': '周五', 'fridays': '周五',\r\n 'sat': '周六', 'saturday': '周六', 'saturdays': '周六',\r\n 'sun': '周日', 'sunday': '周日', 'sundays': '周日'\r\n };\r\n \r\n // 使用正则表达式匹配所有可能的星期格式\r\n const pattern = /^(mon(day)?s?\\.?|tue(sday)?s?\\.?|wed(nesday)?s?\\.?|thu(r(sday)?)?s?\\.?|fri(day)?s?\\.?|sat(urday)?s?\\.?|sun(day)?s?\\.?)$/i;\r\n \r\n // 测试输入是否匹配星期格式\r\n if (!pattern.test(input)) {\r\n return '未知日期';\r\n }\r\n \r\n // 提取基础名称(去除复数形式和句点)\r\n const baseName = input\r\n .replace(/\\./g, '') // 移除所有句点\r\n .replace(/s$/, ''); // 移除结尾的's'(复数形式)\r\n \r\n // 特殊处理周四的多种缩写形式\r\n const normalized = baseName.startsWith('thu') ? 'thu' : baseName.slice(0, 3);\r\n \r\n // 映射到中文名称\r\n return weekdayMap[normalized] || weekdayMap[baseName] || '未知日期';\r\n}\r\nfunction extractYearMonth(str) {\r\n const regex = /(\\d{4})年(0?[1-9]|1[0-2])月/g;\r\n const matches = str.matchAll(regex);\r\n const result = [];\r\n for (const match of matches) {\r\n const year = parseInt(match[1], 10);\r\n const month = parseInt(match[2], 10);\r\n result.push({ year, month });\r\n }\r\n return result;\r\n}\r\n\r\nfunction extractDayNumbers(text) {\r\n // 匹配两种情况:\r\n // 1. \"数字+日\"格式(如\"5日\"、\"12日\")\r\n // 2. 独立的1-31数字(前后有边界)\r\n const regex = /(?:(\\b(0?[1-9]|[12]\\d|3[01])\\b)(?=日))|(\\b(0?[1-9]|[12]\\d|3[01])\\b)/g;\r\n \r\n const results = [];\r\n let match;\r\n \r\n while ((match = regex.exec(text)) !== null) {\r\n // match[2] 对应第一种情况(带\"日\"字的数字)\r\n // match[4] 对应第二种情况(独立数字)\r\n const numStr = match[2] || match[4];\r\n if (numStr) {\r\n // 转换为整数并验证范围\r\n const day = parseInt(numStr, 10);\r\n if (day >= 1 && day <= 31) {\r\n results.push(day);\r\n }\r\n }\r\n }\r\n return results;\r\n}\r\n\r\nfunction extractNumbersFromScenarios(text) {\r\n // 定义两种场景的正则表达式\r\n const patterns = [\r\n // 场景1: \"Other X pieces of data\"\r\n /Other\\s+(\\d+)\\s+pieces of data/gi,\r\n \r\n // 场景2: \"其他 X 条记录\"\r\n /其他\\s+(\\d+)\\s+条记录/g\r\n ];\r\n \r\n const results = [];\r\n \r\n // 遍历所有模式进行匹配\r\n patterns.forEach(pattern => {\r\n let match;\r\n while ((match = pattern.exec(text)) !== null) {\r\n // 提取捕获组中的数字\r\n const number = parseInt(match[1], 10);\r\n results.push({\r\n scenario: match[0], // 完整匹配的字符串\r\n number: number, // 提取的数字\r\n type: pattern.source.includes('Other') ? 'English' : 'Chinese'\r\n });\r\n }\r\n });\r\n \r\n return results;\r\n}\r\n\r\nexport const check =(element)=>{\r\n const checkResult = {\r\n result: false,\r\n innerHTMLMatch: null\r\n }\r\n const classes = element.classList;\r\n if(!classes){\r\n return checkResult;\r\n }\r\n // 检查日历标题\r\n if(classes.contains(\"fc-toolbar-title\")){\r\n let scriptFunction = (appID, lang)=>{\r\n let oldValue = element.getAttribute(\"oldValue\");\r\n let yearMonthList = extractYearMonth(oldValue);\r\n if(yearMonthList.length>0){\r\n let yearMonth = yearMonthList[0];\r\n let year = yearMonth.year;\r\n let month = yearMonth.month;\r\n let newInnerHTML = `${year}/${month}`;\r\n let lang = window.localStorage.getItem(\"iportal_localID\") || \"zh-CN\";\r\n if(lang === \"zh-CN\")\r\n {\r\n newInnerHTML = `${year}年${month}月`;\r\n }\r\n element.innerHTML = newInnerHTML;\r\n }\r\n };\r\n let innerHTML = element.innerHTML;\r\n let testRule =/^\\d{4}年(0?[1-9]|1[0-2])月$/;\r\n if(testRule.test(innerHTML)){\r\n // console.log(\"检查smardaten平台日历标题 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:innerHTML,\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 检查日历今天按钮\r\n if(classes.contains(\"fc-today-button\"))\r\n {\r\n let innerHTML = element.innerHTML;\r\n if(innerHTML.includes(\"今天\")||innerHTML.includes(\"today\")){\r\n // console.log(\"检查smardaten平台日历 今天 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:'$L{今天}'\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 检查日历标题\r\n if(classes.contains(\"fullCalendar_title_value\")){\r\n let innerHTML = element.innerHTML;\r\n const regex = /周[一二三四五六日]/;\r\n const regex_en = /^(mon(day)?s?\\.?|tue(sday)?s?\\.?|wed(nesday)?s?\\.?|thu(r(sday)?)?s?\\.?|fri(day)?s?\\.?|sat(urday)?s?\\.?|sun(day)?s?\\.?)$/i;\r\n let match = innerHTML.match(regex);\r\n if(match){\r\n // console.log(\"检查smardaten平台日历 周 元素:\",innerHTML);\r\n let day = match[0];\r\n let tempHTMLMatch ={\r\n oldValue:`$L{${day}}`\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n match = innerHTML.match(regex_en);\r\n if(match){\r\n // console.log(\"检查smardaten平台日历 周 元素:\",innerHTML);\r\n let day = match[0];\r\n let tempHTMLMatch ={\r\n oldValue:`$L{${convertToChineseWeekday(day)}}`\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n //日期单元格 \r\n if(classes.contains(\"fc-daygrid-day-number\"))\r\n {\r\n let scriptFunction = (appID, lang)=>{\r\n let oldValue = element.getAttribute(\"oldValue\");\r\n let result = extractDayNumbers(oldValue);\r\n if(result&&result.length>0){\r\n let day = result[0];\r\n let newInnerHTML = `${day}`;\r\n let lang = window.localStorage.getItem(\"iportal_localID\") || \"zh-CN\";\r\n if(lang === \"zh-CN\")\r\n {\r\n newInnerHTML = `${day}日`;\r\n }\r\n element.innerHTML = newInnerHTML;\r\n }\r\n };\r\n let innerHTML = element.innerHTML;\r\n let match = extractDayNumbers(innerHTML);\r\n if(match.length>0){\r\n // console.log(\"检查smardaten平台日历 日 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:innerHTML,\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 日历更多按钮\r\n if(classes.contains(\"fc-daygrid-more-link\")){\r\n let scriptFunction = (appID, lang)=>{\r\n let oldValue = element.getAttribute(\"oldValue\");\r\n let result = extractNumbersFromScenarios(oldValue);\r\n if(result&&result.length>0){\r\n let day = result[0][\"number\"];\r\n let newInnerHTML = \"另外${X}条数据\";\r\n newInnerHTML =i18n(newInnerHTML, appID, lang);\r\n newInnerHTML = newInnerHTML.replace(\"${X}\",day);\r\n element.innerHTML = newInnerHTML;\r\n }\r\n };\r\n let innerHTML = element.innerHTML;\r\n let match = extractNumbersFromScenarios(innerHTML);\r\n if(match.length>0){\r\n // console.log(\"检查smardaten平台日历 更多 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:innerHTML,\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n // 日历弹窗标题\r\n if(classes.contains(\"fc-popover-title\"))\r\n {\r\n // 正则表达式匹配中文日期格式\r\n const regex = /(\\d{4})年(\\d{1,2})月(\\d{1,2})日/g;\r\n let scriptFunction = (appID, lang)=>{\r\n let oldValue = element.getAttribute(\"oldValue\");\r\n let match = oldValue.match(regex);\r\n if(match){\r\n // 替换函数\r\n const convertedText = oldValue.replace(regex, function(match, year, month, day) {\r\n // 格式化月份和日期为两位数\r\n const formattedMonth = month.padStart(2, '0');\r\n const formattedDay = day.padStart(2, '0');\r\n let result = `${year}/${formattedMonth}/${formattedDay}`;\r\n let lang = window.localStorage.getItem(\"iportal_localID\") || \"zh-CN\";\r\n if(lang === \"zh-CN\")\r\n {\r\n result = `${year}年${formattedMonth}月${formattedDay}日`;\r\n }\r\n // 返回新格式的日期\r\n return result;\r\n });\r\n element.innerHTML = convertedText;\r\n }\r\n };\r\n let innerHTML = element.innerHTML;\r\n let match = innerHTML.match(regex);\r\n if(match&&match.length>0){\r\n // console.log(\"检查smardaten平台日历 日 元素:\",innerHTML);\r\n let tempHTMLMatch ={\r\n oldValue:innerHTML,\r\n isScriptAction:true,\r\n scriptFunction:scriptFunction,\r\n }\r\n checkResult.result = true;\r\n checkResult.innerHTMLMatch = tempHTMLMatch;\r\n return checkResult;\r\n }\r\n }\r\n return checkResult;\r\n}","export const check =(element)=>{\n const checkResult = {\n result: false,\n innerHTMLMatch: null\n }\n const classes = element.classList;\n if(!classes){\n return checkResult;\n }\n let innerHTML = element.innerHTML;\n let oldValue = element.getAttribute(\"oldValue\");\n if(!oldValue)\n {\n oldValue = innerHTML;\n }\n // 检查删除确认对话框按钮 取消 确认\n if(classes.contains(\"ant-modal-title\"))\n {\n let innerHTML = element.innerHTML;\n if(innerHTML.includes(\"Select Data\")||innerHTML.includes(\"选择数据\")){\n // console.log(\"检查smardaten平台 Tip提问取消删除按钮:\",innerHTML);\n let tempHTMLMatch ={\n oldValue:'$L{选择数据}'\n }\n checkResult.result = true;\n checkResult.innerHTMLMatch = tempHTMLMatch;\n return checkResult;\n }\n }\n return checkResult;\n};","export const check = (element) => {\n const checkResult = {\n result: false,\n };\n const classes = element.classList;\n if (!classes) {\n return checkResult;\n }\n // 处理容器节点\n if (element.tagName === \"DIV\" && classes.contains(\"template-block\")) {\n let scriptFunction = (appID, lang) => {\n let divDom =element.parentNode;\n let divDom2;\n let appBlockDom;\n let comDom;\n let renderDom;\n if(divDom&&divDom.tagName===\"DIV\"){\n divDom2 = divDom.parentNode;\n if(divDom2&&divDom2.tagName===\"DIV\"){\n appBlockDom = divDom2.parentNode;\n if(appBlockDom&&appBlockDom.tagName===\"DIV\"&&appBlockDom.classList.contains(\"application-block\")){\n comDom= appBlockDom.parentNode;\n if(comDom&&comDom.tagName===\"DIV\"&&comDom.classList.contains(\"componentDiv\")){\n renderDom= comDom.parentNode;\n if(renderDom&&renderDom.tagName===\"DIV\"&&renderDom.classList.contains(\"render-all-blocks\")){\n //隐藏整个组件\n renderDom.style.height=\"100%\";\n comDom.style.height=\"100%\";\n appBlockDom.style.height=\"100%\";\n divDom2.style.height=\"100%\";\n divDom.style.height=\"100%\";\n element.style.height=\"100%\";\n //标记已经处理过\n element.setAttribute(\"viewDomID\", generateUniqueId());\n }\n }\n }\n }\n }\n };\n checkResult.result = true;\n checkResult.scriptFunction = scriptFunction;\n return checkResult;\n }\n return checkResult;\n};\n\nfunction generateUniqueId() {\n return `rjview_${Date.now()}`;\n}\n","import request from \"../request\";\r\nimport { registerEventListener } from \"../event\";\r\nimport { getPoratlAppID } from \"../portal\";\r\nimport { nextTick } from \"vue\";\r\nimport { check as tableI18nCheck } from \"./smardaten_i18n/table_i18n\";\r\nimport { check as catalogI18nCheck } from \"./smardaten_i18n/catalog_i18n\";\r\nimport { check as commonI18nCheck } from \"./commom_i18n/common_i18n\";\r\nimport { check as attributeI18nCheck } from \"./commom_i18n/attribute_i18n\";\r\nimport { check as calendarI18nCheck } from \"./smardaten_i18n/calendar_i18n\";\r\nimport { check as dialogI18nCheck } from \"./smardaten_i18n/dialog_i18n\";\r\nimport { check as domViewCheck } from \"./commom_view\";\r\nimport { i18n,checkTextFormat} from \"./core\";\r\n\r\n\r\nexport const getLanguages = async (appID) => {\r\n let queryData = {\r\n param: {\r\n appID: appID,\r\n },\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getAppLanguages`,\r\n queryData\r\n );\r\n let resultDatas = response.data.resultDatas || [];\r\n return resultDatas;\r\n};\r\n\r\nexport const updateI18nValue = (appID, key,localID, value) => {\r\n let realKey = `${appID}-${key}-${localID}`;\r\n window.customI18nObject.set(realKey, value);\r\n}\r\n\r\nexport function i18nText(key) {\r\n let app_id =getPoratlAppID();\r\n let langID = window.localStorage.getItem(\"iportal_localID\") || \"zh-CN\";\r\n return i18n(key,app_id,langID);\r\n}\r\n\r\nexport const loadi18nTexts = async (appID) => {\r\n let queryData = {\r\n param: { appID: appID},\r\n };\r\n let response = await request.post(\r\n `/dataservice/rest/orchestration/getAllTexts`,\r\n queryData\r\n );\r\n let resultDatas = response.data.resultDatas || [];\r\n window.customI18nObject = new Map();\r\n for (let item of resultDatas) {\r\n window.customI18nObject.set(`${appID}-${item.key}-${item.lang}`, item.value);\r\n }\r\n}\r\n\r\n/**\r\n * 检查元素是否有子DOM元素\r\n * @param {HTMLElement} element - 要检查的DOM元素\r\n * @returns {boolean} - 是否有子元素\r\n */\r\nfunction hasChildElements(element) {\r\n return element && element.children?.length > 0;\r\n}\r\n\r\n\r\nfunction generateUniqueId() {\r\n window.idCounter = window.idCounter || 0;\r\n return `i18n_${Date.now()}_${window.idCounter++}`;\r\n}\r\n\r\n/**\r\n * 检查平台特定元素并返回匹配结果\r\n * @param {*} element \r\n * @returns \r\n */\r\nfunction checkPlatformElementContent(element) {\r\n const checkContentResult = {\r\n result: false,\r\n innerHTMLMatch: null\r\n };\r\n let checkArr = [tableI18nCheck,catalogI18nCheck,calendarI18nCheck,dialogI18nCheck,commonI18nCheck];\r\n for(let i=0;i<checkArr.length;i++){\r\n let checkFunc = checkArr[i];\r\n let checkContentResult = checkFunc(element);\r\n if(checkContentResult.result){\r\n return checkContentResult;\r\n }\r\n }\r\n return checkContentResult;\r\n}\r\n\r\n\r\nexport function processElement(element) {\r\n\r\n if (!element) {\r\n return false;\r\n }\r\n \r\n // 仅处理元素节点\r\n if (element && element.nodeType !==Node.ELEMENT_NODE) {\r\n return false;\r\n }\r\n\r\n // 如果元素有子元素,递归处理子元素\r\n const hasChildren = hasChildElements(element);\r\n if (hasChildren) {\r\n let children = element.children;\r\n for (let i = 0; i < children.length; i++) {\r\n let child = children[i];\r\n if(child.nodeType === Node.ELEMENT_NODE)\r\n {\r\n let childLocalDomID = child.getAttribute(\"localDomID\");\r\n // 如果子元素有localDomID但不在缓存中,移除localDomID属性\r\n if(childLocalDomID && window.i18nElementsMap&&!window.i18nElementsMap.has(childLocalDomID)){\r\n unProcessElement(child);\r\n }\r\n }\r\n processElement(children[i]);\r\n }\r\n }\r\n\r\n // 检查innerHTML是否匹配(仅对没有子元素的元素)\r\n let innerHTMLMatch = null;\r\n\r\n const attrCheckResult = attributeI18nCheck(element);\r\n if(attrCheckResult.result){\r\n console.log(\"检查到属性匹配元素:\",element);\r\n }\r\n\r\n //检查是否是smardaten平台元素\r\n const checkContentResult = checkPlatformElementContent(element);\r\n if (checkContentResult.result) {\r\n innerHTMLMatch = checkContentResult.innerHTMLMatch;\r\n element.setAttribute(\"oldValue\", innerHTMLMatch.oldValue);\r\n }\r\n else\r\n {\r\n if(!hasChildren){\r\n //如果存在历史值,说明之前解析过,有可能是值需要刷新触发 \r\n let newValue = element.innerHTML;\r\n let newMatch = checkTextFormat(newValue);\r\n if(newMatch){\r\n innerHTMLMatch = newMatch;\r\n }\r\n else{\r\n newValue = element.getAttribute(\"oldValue\");\r\n if(!newValue)\r\n {\r\n newValue = element.innerHTML;\r\n }\r\n innerHTMLMatch = checkTextFormat(newValue);\r\n }\r\n if(innerHTMLMatch) {\r\n // console.log(\"检查到innerHTML匹配元素:\",element);\r\n element.setAttribute(\"oldValue\", newValue);\r\n }\r\n }\r\n }\r\n\r\n // 如果没有匹配的内容,则不处理\r\n if (!innerHTMLMatch&&!checkContentResult.result&&!attrCheckResult.result) {\r\n return false;\r\n }\r\n\r\n let elementId = element.getAttribute(\"localDomID\");\r\n if (!elementId) {\r\n elementId = generateUniqueId();\r\n }\r\n else\r\n {\r\n // 已经处理过的元素跳过\r\n return false;\r\n }\r\n\r\n element.setAttribute(\"localDomID\", elementId);\r\n\r\n if(!window.i18nElementsMap){\r\n window.i18nElementsMap = new Map();\r\n }\r\n // 添加到Map缓存\r\n window.i18nElementsMap.set(elementId, {\r\n dom: element,\r\n id: elementId,\r\n isScriptAction:innerHTMLMatch?innerHTMLMatch.isScriptAction||false:false,\r\n scriptFunction:innerHTMLMatch?innerHTMLMatch.scriptFunction||null:null,\r\n isAttibuteAction:attrCheckResult.result,\r\n attrFunction:attrCheckResult.scriptFunction||null,\r\n });\r\n // console.log(\"添加后元素缓冲数:\",window.i18nElementsMap.size);\r\n applyTranslation(element);\r\n return true;\r\n}\r\n\r\nfunction unProcessElement(element) {\r\n if (element && element.nodeType !== 1) {\r\n return;\r\n }\r\n let hasChildren = hasChildElements(element);\r\n if (hasChildren) {\r\n let children = element.children;\r\n for (let i = 0; i < children.length; i++) {\r\n unProcessElement(children[i]);\r\n }\r\n }\r\n const localDomID = element.getAttribute(\"localDomID\");\r\n if(localDomID){\r\n // console.log(`处理元素ID:${localDomID} 移除缓存`);\r\n element.removeAttribute(\"localDomID\");\r\n }\r\n if (localDomID && window.i18nElementsMap.has(localDomID)) {\r\n // let oldValue = element.getAttribute(\"oldValue\");\r\n // if(oldValue){\r\n // element.removeAttribute(\"oldValue\");\r\n // 更新元素的innerHTML\r\n // element.innerHTML = oldValue;\r\n // }\r\n window.i18nElementsMap.delete(localDomID);\r\n // console.log(\"移除后元素缓冲数:\",window.i18nElementsMap.size);\r\n }\r\n}\r\n\r\n/**\r\n * 应用翻译到单个元素\r\n * @param {HTMLElement} element - 要更新的DOM元素\r\n * @param {string} lang - 语言标识符\r\n */\r\nconst applyTranslation = async (element) => {\r\n let parentNode = element.parentNode;\r\n if(!parentNode){\r\n unProcessElement(element);\r\n console.log(\"元素已无父节点,移除缓存\");\r\n return;\r\n }\r\n let lang = window.localStorage.getItem(\"iportal_localID\") || \"zh-CN\";\r\n let appID = getPoratlAppID();\r\n const elementId = element.getAttribute(\"localDomID\");\r\n const cachedItem = window.i18nElementsMap.get(elementId);\r\n if (!cachedItem) return;\r\n // 处理属性\r\n if(cachedItem.isAttibuteAction)\r\n {\r\n cachedItem.attrFunction(appID,lang);\r\n }\r\n // 处理innerHTML\r\n if(cachedItem.isScriptAction)\r\n {\r\n cachedItem.scriptFunction(appID,lang);\r\n }\r\n else\r\n {\r\n const oldValue = element.getAttribute(\"oldValue\");\r\n if (oldValue) {\r\n // 创建正则表达式匹配所有 $L{...} 格式\r\n const regex = /\\$L\\{([^}]+)\\}/g;\r\n // 替换所有 $L{...} 占位符为翻译文本\r\n let newValue = oldValue;\r\n let match;\r\n while ((match = regex.exec(oldValue)) !== null) {\r\n const fullMatch = match[0];\r\n const placeholderKey = match[1];\r\n const translation = i18n(placeholderKey, appID, lang);\r\n newValue = newValue.replace(fullMatch, translation);\r\n }\r\n nextTick(() => {\r\n // 更新元素的innerHTML\r\n element.innerHTML = newValue;\r\n });\r\n }\r\n }\r\n};\r\n\r\nexport const initDomNodeI18NObserver = () => {\r\n if (!window.i18nElementsMap) {\r\n window.i18nElementsMap = new Map();\r\n } else {\r\n window.i18nElementsMap.clear();\r\n }\r\n registerEventListener(\"IPORTAL_LANGUAGE_CHANGE_EVENT\", async (lang) => {\r\n console.log(\"语言切换事件触发,更新已处理元素的翻译:\", lang);\r\n // 遍历Map,更新每个已处理元素的翻译\r\n for (const [elementId, item] of window.i18nElementsMap.entries()) {\r\n // console.log(\"更新元素翻译:\", elementId, item.dom);\r\n applyTranslation(item.dom);\r\n }\r\n });\r\n // 创建观察器实例\r\n const observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n if (mutation.type === 'childList') {\r\n // 节点添加\r\n if (mutation.addedNodes.length > 0) {\r\n for (let i = 0; i < mutation.addedNodes.length; i++) {\r\n let node = mutation.addedNodes[i];\r\n // console.log(`处理新增节点:`,node);\r\n if(node.nodeType === Node.TEXT_NODE)\r\n {\r\n node = node.parentNode;\r\n }\r\n processElement(node);\r\n }\r\n }\r\n // 节点移除\r\n if (mutation.removedNodes.length > 0) {\r\n for (let i = 0; i < mutation.removedNodes.length; i++) {\r\n let node = mutation.removedNodes[i];\r\n // console.log(`处理移除节点:`,node);\r\n unProcessElement(node);\r\n }\r\n }\r\n }\r\n else if (mutation.type === 'characterData') {\r\n // 处理文本变化\r\n const oldValue = mutation.oldValue;\r\n const targetNode = mutation.target;\r\n const newValue = targetNode.data;\r\n // 创建日志条目并显示\r\n console.log(`文本修改: ${oldValue} → ${newValue}`);\r\n const parentElement = targetNode.parentNode;\r\n if(parentElement)\r\n {\r\n let localDomID = parentElement.getAttribute(\"localDomID\");\r\n // 如果有localDomID,说明之前处理过,先移除缓存\r\n if(localDomID)\r\n {\r\n unProcessElement(parentElement);\r\n }\r\n }\r\n processElement(parentElement);\r\n }\r\n });\r\n });\r\n\r\n // 配置观察选项\r\n const config = {\r\n childList: true, // 观察子节点变化\r\n subtree: true, // 观察所有后代节点\r\n attributes: false, // 不观察属性变化\r\n characterData: true, // 不观察文本内容变化\r\n characterDataOldValue: true\r\n };\r\n // 开始观察目标节点\r\n const targetNode = document.body;\r\n processElement(targetNode);\r\n observer.observe(targetNode, config);\r\n};\r\n\r\nexport const initDomNodeViewObserver = () => {\r\n // 创建观察器实例\r\n const observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n if (mutation.type === 'childList') {\r\n // 节点添加\r\n if (mutation.addedNodes.length > 0) {\r\n for (let i = 0; i < mutation.addedNodes.length; i++) {\r\n let node = mutation.addedNodes[i];\r\n processViewElement(node);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n\r\n // 配置观察选项\r\n const config = {\r\n childList: true, // 观察子节点变化\r\n subtree: true, // 观察所有后代节点\r\n attributes: false, // 不观察属性变化\r\n characterData: true, // 不观察文本内容变化\r\n characterDataOldValue: true\r\n };\r\n // 开始观察目标节点\r\n const targetNode = document.body;\r\n processViewElement(targetNode);\r\n observer.observe(targetNode, config);\r\n};\r\n\r\n\r\n// 处理单个DOM元素的函数\r\nexport function processViewElement(element) {\r\n if (!element) {\r\n return false;\r\n }\r\n // 仅处理元素节点\r\n if (element && element.nodeType !==Node.ELEMENT_NODE) {\r\n return false;\r\n }\r\n // 如果元素有子元素,则不处理innerHTML\r\n const hasChildren = hasChildElements(element);\r\n if (hasChildren) {\r\n let children = element.children;\r\n for (let i = 0; i < children.length; i++) {\r\n let child = children[i];\r\n processViewElement(child);\r\n }\r\n }\r\n let checkState =element.getAttribute(\"viewDomID\");\r\n // 已经处理过的元素跳过\r\n if(checkState)\r\n {\r\n return false;\r\n }\r\n const viewCheckResult = domViewCheck(element);\r\n // 如果没有匹配的内容,则不处理\r\n if (!viewCheckResult.result) {\r\n return false;\r\n }\r\n viewCheckResult.scriptFunction();\r\n return true;\r\n}\r\n\r\n// 获取所有i18n的类型\r\nexport const getAllI18nTypes=async()=>{\r\n let requestData = {\r\n param: {},\r\n };\r\n let result = await request.post(\r\n `/dataservice/rest/orchestration/getAllI18nTypes`,\r\n requestData\r\n );\r\n let resultData = result.data.resultDatas;\r\n return resultData;\r\n};\r\n\r\nexport * from './core';"],"names":["querystringify_1","apiContextPath","getInstance","prefix","startsWith","slice","length","endsWith","instance","axios","create","baseURL","timeout","validateStatus","status","headers","window","location","search","qs","parse","token","oldPost","post","url","data","config","VITE_SERVICE_BASE_URL","newUrl","call","defaults","interceptors","response","use","JSON","Blob","Promise","reject","result","error","prefixPath","registerEventListener","eventName","actionFun","eventBus","rjEventCenter","initEventCenter","register","console","log","Date","toLocaleString","require","default","getPoratlAppID","portal_app_id","sessionStorage","getItem","getCurrentAppID","app_id","appSdk","getAppId","localStorage","MobileAppId","i18n","key","appID","localID","customI18nObject","get","checkTextFormat","text","regex","match","fullMatch","check","element","checkResult","innerHTMLMatch","classes","classList","contains","innerHTML","includes","tempHTMLMatch","oldValue","scriptFunction","lang","scriptNode","node","childNodes","tagName","scriptNodes","nodeType","Node","TEXT_NODE","i","childNode","removeChild","scriptNodeItem","textNode","document","createTextNode","appendChild","isScriptAction","replace","getAttribute","isTextMatch","setAttribute","getOldValueNodeText","index","container","createElement","textContent","firstCheck","firstCheckResult","elementsArray","push","childNodeText","newValue","exec","placeholderKey","translation","forEach","el","checkAttributes","attr","attrValue","attrMatch","oldAttrValue","newAttrValue","attrKey","convertToChineseWeekday","englishInput","input","trim","toLowerCase","weekdayMap","pattern","test","baseName","normalized","extractYearMonth","str","matches","matchAll","year","parseInt","month","extractDayNumbers","results","numStr","day","extractNumbersFromScenarios","patterns","number","scenario","type","source","yearMonthList","yearMonth","newInnerHTML","testRule","regex_en","convertedText","formattedMonth","padStart","formattedDay","divDom","parentNode","divDom2","appBlockDom","comDom","renderDom","style","height","generateUniqueId","now","getLanguages","queryData","param","request","resultDatas","updateI18nValue","value","realKey","set","i18nText","langID","loadi18nTexts","Map","item","hasChildElements","children","idCounter","checkPlatformElementContent","checkContentResult","checkArr","tableI18nCheck","catalogI18nCheck","calendarI18nCheck","dialogI18nCheck","commonI18nCheck","checkFunc","processElement","ELEMENT_NODE","hasChildren","child","childLocalDomID","i18nElementsMap","has","unProcessElement","attrCheckResult","attributeI18nCheck","newMatch","elementId","dom","id","isAttibuteAction","attrFunction","applyTranslation","localDomID","removeAttribute","delete","cachedItem","nextTick","initDomNodeI18NObserver","clear","entries","observer","MutationObserver","mutations","mutation","addedNodes","removedNodes","targetNode","target","parentElement","childList","subtree","attributes","characterData","characterDataOldValue","body","observe","initDomNodeViewObserver","processViewElement","checkState","viewCheckResult","domViewCheck","getAllI18nTypes","requestData","resultData"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1 @@
1
+ "use strict";const e=(e,t)=>{window.sdataEventActions||(window.sdataEventActions={}),window.sdataEventActions[e]=t};exports.addEventAction=e,exports.addWindowTrustedOrigin=e=>{let t=window.SDATA_WINDOW_TRUSTED_ORIGINS;t||(window.SDATA_WINDOW_TRUSTED_ORIGINS=[]),t.includes(e)||t.push(e)},exports.initFrameWindowListener=()=>{if(window.isFrameWindowInited)return;window.SDATA_WINDOW_TRUSTED_ORIGINS||(window.SDATA_WINDOW_TRUSTED_ORIGINS=[]),window.sdataEventActions||(window.sdataEventActions={}),window.addEventListener("message",async e=>{if(!window.SDATA_WINDOW_TRUSTED_ORIGINS.some(t=>e.origin===t||new RegExp(t).test(e.origin)))return void console.log("拒绝非可信源消息:",e.origin);let t=e.data?.eventKey;if(!t)return;let n=e.origin;if(console.log(`收到${n}页面消息:`,e.data),"sdata_alllife_event_response"===t){let t=e.data.eventOperateKey,n=window.sdataEventActions[t];delete window.sdataEventActions[t],n&&await n(e.data.data,e)}else{let i=window.sdataEventActions[t],a={eventKey:"sdata_alllife_event_response",eventOperateKey:e.data.eventOperateKey,data:{}};if(i){let t=await i(e.data.data,e);a.data=t}e.source.postMessage(a,n)}}),window.isFrameWindowInited=!0},exports.removeEventAction=e=>{window.sdataEventActions||(window.sdataEventActions={}),delete window.sdataEventActions[e]},exports.removeWindowTrustedOrigin=e=>{let t=window.SDATA_WINDOW_TRUSTED_ORIGINS;t||(window.SDATA_WINDOW_TRUSTED_ORIGINS=[]);let n=t.indexOf(e);n>-1&&t.splice(n,1)},exports.sendWindowMessage=async(t,n,i,a,o)=>{let d=`${i}_${(new Date).getTime()}_${Math.floor(1e4*Math.random())+1}`;e(d,o);let s={eventOperateKey:d,eventKey:i,data:a};t.postMessage(s,n)};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iframe.js","sources":["../../src/api/iframe.js"],"sourcesContent":["\r\nexport const addWindowTrustedOrigin = (origin) => {\r\n let SDATA_WINDOW_TRUSTED_ORIGINS = window.SDATA_WINDOW_TRUSTED_ORIGINS;\r\n if (!SDATA_WINDOW_TRUSTED_ORIGINS) window.SDATA_WINDOW_TRUSTED_ORIGINS = [];\r\n if (!SDATA_WINDOW_TRUSTED_ORIGINS.includes(origin)) {\r\n SDATA_WINDOW_TRUSTED_ORIGINS.push(origin);\r\n }\r\n}\r\nexport const removeWindowTrustedOrigin = (origin) => {\r\n let SDATA_WINDOW_TRUSTED_ORIGINS = window.SDATA_WINDOW_TRUSTED_ORIGINS;\r\n if (!SDATA_WINDOW_TRUSTED_ORIGINS) window.SDATA_WINDOW_TRUSTED_ORIGINS = [];\r\n let index = SDATA_WINDOW_TRUSTED_ORIGINS.indexOf(origin); // 查找元素在数组中的索引 \r\n if (index > -1) {\r\n SDATA_WINDOW_TRUSTED_ORIGINS.splice(index, 1); // 删除元素\r\n }\r\n}\r\n\r\nexport const addEventAction = (eventKey, eventAction) => {\r\n let sdataEventActions = window.sdataEventActions;\r\n if (!sdataEventActions) window.sdataEventActions = {};\r\n window.sdataEventActions[eventKey] = eventAction;\r\n}\r\n\r\nexport const removeEventAction = (eventKey) => {\r\n let sdataEventActions = window.sdataEventActions;\r\n if (!sdataEventActions) window.sdataEventActions = {};\r\n delete window.sdataEventActions[eventKey];\r\n}\r\n\r\nexport const initFrameWindowListener = () => {\r\n if(window.isFrameWindowInited) return;\r\n let SDATA_WINDOW_TRUSTED_ORIGINS = window.SDATA_WINDOW_TRUSTED_ORIGINS;\r\n if (!SDATA_WINDOW_TRUSTED_ORIGINS) window.SDATA_WINDOW_TRUSTED_ORIGINS = [];\r\n let sdataEventActions = window.sdataEventActions;\r\n if (!sdataEventActions) window.sdataEventActions = {};\r\n // 监听主页面的消息\r\n window.addEventListener(\"message\", async (event) => {\r\n // 步骤1:验证来源是否在白名单中\r\n const isTrusted = window.SDATA_WINDOW_TRUSTED_ORIGINS.some(\r\n (origin) => event.origin === origin || new RegExp(origin).test(event.origin)\r\n );\r\n if (!isTrusted) {\r\n console.log(\"拒绝非可信源消息:\", event.origin);\r\n return; // 直接终止处理\r\n }\r\n let eventKey = event.data?.eventKey;\r\n if (!eventKey) return;\r\n let eventSourceKey = event.origin;\r\n console.log(`收到${eventSourceKey}页面消息:`, event.data);\r\n if (eventKey === \"sdata_alllife_event_response\") {\r\n let eventOperateKey = event.data.eventOperateKey;\r\n let eventAction = window.sdataEventActions[eventOperateKey];\r\n //删除缓存方法\r\n delete window.sdataEventActions[eventOperateKey];\r\n if(eventAction)\r\n await eventAction(event.data.data,event);\r\n } \r\n else{\r\n let eventAction = window.sdataEventActions[eventKey];\r\n let responseData = {\r\n eventKey: \"sdata_alllife_event_response\",\r\n eventOperateKey: event.data.eventOperateKey,\r\n data: {},\r\n };\r\n if (eventAction) {\r\n let resultData = await eventAction(event.data.data,event);\r\n responseData.data =resultData;\r\n }\r\n event.source.postMessage(responseData, eventSourceKey);\r\n }\r\n });\r\n window.isFrameWindowInited = true;\r\n};\r\n\r\nexport const sendWindowMessage = async (targetWindow, originKey, eventKey, data, callback) => {\r\n let timestamp = new Date().getTime();\r\n let randomNum = Math.floor(Math.random() * 10000) + 1;\r\n let eventOperateKey = `${eventKey}_${timestamp}_${randomNum}`;\r\n addEventAction(eventOperateKey, callback);\r\n let postData = {\r\n eventOperateKey: eventOperateKey,\r\n eventKey: eventKey,\r\n data: data,\r\n };\r\n targetWindow.postMessage(postData, originKey);\r\n};"],"names":["addWindowTrustedOrigin","origin","SDATA_WINDOW_TRUSTED_ORIGINS","window","includes","push","removeWindowTrustedOrigin","index","indexOf","splice","addEventAction","eventKey","eventAction","sdataEventActions","removeEventAction","initFrameWindowListener","isFrameWindowInited","addEventListener","event","isTrusted","some","RegExp","test","console","log","data","eventSourceKey","eventOperateKey","responseData","resultData","source","postMessage","sendWindowMessage","targetWindow","originKey","callback","timestamp","Date","getTime","randomNum","Math","floor","random","postData"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ "use strict";var e=require("axios"),t=require("crypto-js"),i=require("vue");const a=(e,t)=>{let i=window.rjEventCenter;i||(r(),i=window.rjEventCenter),i&&i.register&&i.register(e,t)},r=()=>{if(window.rjEventCenter)console.log(`事件中心已经初始化,不需要重新初始化:时间戳: ${(new Date).toLocaleString()}`);else{console.log(`初始化事件中心:时间戳: ${(new Date).toLocaleString()}`);let e=require("./eventBus").default;window.rjEventCenter=e}};var s={},o=Object.prototype.hasOwnProperty;function n(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}function l(e){try{return encodeURIComponent(e)}catch(e){return null}}s.stringify=function(e,t){t=t||"";var i,a,r=[];for(a in"string"!=typeof t&&(t="?"),e)if(o.call(e,a)){if((i=e[a])||null!=i&&!isNaN(i)||(i=""),a=l(a),i=l(i),null===a||null===i)continue;r.push(a+"="+i)}return r.length?t+r.join("&"):""},s.parse=function(e){for(var t,i=/([^=?#&]+)=?([^&]*)/g,a={};t=i.exec(e);){var r=n(t[1]),s=n(t[2]);null===r||null===s||r in a||(a[r]=s)}return a};var c=((t="")=>{t&&(t.startsWith("/")&&(t=t.slice(1,t.length)),t.endsWith("/")&&(t=t.slice(0,-1)));const i=e.create({baseURL:`/${t?t+"/":""}sdata/rest`,timeout:6e4,validateStatus:function(e){return e>=200&&e<300},headers:window.location.search&&s.parse(window.location.search).token||window.token?{token:s.parse(window.location.search).token||window.token}:{}});let a=i.post;return i.post=(e,t,r)=>{let s=window.VITE_SERVICE_BASE_URL||"";if(s){let o=s+e;return a.call(i,o,t,r)}return a.call(i,e,t,r)},i.defaults.headers.post["Content-Type"]="application/json",i.interceptors.response.use(e=>{let{data:t}=e;return"string"==typeof t&&(t=JSON.parse(t)),!t||200===t.status||t instanceof Blob?t instanceof Blob?(e.data=t,e):(e.data=t&&t.result,e):Promise.reject(e)},e=>{if(!e.response||401!==e.response.status)return Promise.reject(e.response)}),i})(window.prefixPath||"");const d=()=>{let e=window.sessionStorage.getItem("iportal_app_id");return e||(e=p()),e},p=()=>window.appSdk.getAppId()||window.localStorage.MobileAppId,u=async(e,t)=>{let i={param:{id:e}},a=await c.post("/dataservice/rest/orchestration/getMenuDatasByGroupID",i),r=a.data.resultDatas,s=a.data.menuTypes;a=await c.post("/dataservice/rest/orchestration/getPortalDefaultQuickMenus",{});let o=a.data.resultDatas,n=a.data.menuTypes,l=r.concat(o),d=s.concat(n),p=[],u=[],g={};for(const e of l){let t=e.id,i="1"==e.status;!g[t]&&i&&(p.push(e),g[t]=e)}let w={};for(const e of d){let t=e.id;w[t]||(u.push(e),w[t]=e)}if(t&&t.length>0){a=await h(t,e);let i=a.data.quickMenuMappingDatas||[],r={};for(const e of i){let t=e.menu_mapping_id,i=g[t];r[t]=i}return f(p,u,r)}return f(p,u,[])},h=async(e,t)=>{let i={param:{role_ids:e,group_id:t}};return await c.post("/dataservice/rest/orchestration/getQuckMenuMappingsByRoleIDs",i)},g=async(e,t,i)=>{let a={param:{user_id:e,app_id:t,group_id:i}};return(await c.post("/dataservice/rest/orchestration/getRoleIDsByUserAndGroupID",a)).data.portal_role_ids},w=async e=>{let t={param:{kb_doc_id:e}};return(await c.post("/dataservice/rest/orchestration/getPortalDocmentInfoByKBID",t)).data.docInfo},m=async(e,t)=>{let i={param:{role_ids:e,app_id:t}};return(await c.post("/dataservice/rest/orchestration/getPlatformMenuMappingsByRoleIDs",i)).data.mappingDatas},f=(e,t,i)=>{let a={},r={},s={};for(let e in i){let t=i[e];if(!t)continue;let a=t.parent_id;a&&(s[a]=!0)}for(const t of e){let e=t.id,r={id:e,index:t.menu_id,name:t.title,sort:t.sort,actionType:t.actionType,url:t.url,iconClass:t.image?t.image:"el-icon-menu",parent_id:t.parent_id,children:[],app_id:t.app_id,menu_id:t.menu_id,beyond_type:t.menu_type?t.menu_type:"RJVIEW-OTHERS",beyond_type_sort:t.menu_type_sort?t.menu_type_sort:999,type:"MenuItem",typeID:t.type};(i&&i[e]||"4"==t.type||s[e]||"1"==t.is_app_defalut)&&(a[e]=r)}for(const e of t){r[e.id]=e}for(const t of e){if("5"==t.type){let e=a[t.id];if(!e)continue;let i=t.parent_id,s=e.beyond_type,o=a[i];if(!o)continue;let n=o.children,l=n.find(e=>e.id==s);if(l){l.children.push(e),e.typeItem=l}else{let t=r[s],i=t?{id:s,index:s,name:t.title,children:[],sort:t.value,type:"MenuType"}:{id:s,index:s,name:"其他",children:[],sort:999,type:"MenuType"};i.children.push(e),n.push(i),e.typeItem=i}}}const o=[];for(const t of e){if("4"==t.type){let e=a[t.id];if(!e)continue;let r=e.children,s=0;for(const e of r){let t=e.children.length;if(s+=t,t>0)break}if("1"!=t.is_app_defalut&&i&&!i[t.id]&&0==s)continue;o.push(e);let n=e.children;n.sort((e,t)=>Number.isNaN(e.sort)?1:Number.isNaN(t.sort)?-1:e.sort-t.sort);for(let e of n){e.children.sort((e,t)=>Number.isNaN(e.sort)?1:Number.isNaN(t.sort)?-1:e.sort-t.sort)}}}return o.sort((e,t)=>Number.isNaN(e.sort)?1:Number.isNaN(t.sort)?-1:e.sort-t.sort),o},y=async(e,t)=>(await c.get(`/appAuth/getAccessToken?appKey=${e}&appSecret=${t}`)).data,b=async(e,t)=>(await c.get(`/systhirdapp/user/getUserByCode?code=${e}&access_token=${t}`)).data,I=async(e,t,i)=>{let a={param:{userID:e,im_type:t,group_id:i}};return(await c.post("/dataservice/rest/orchestration/getIMUserSigByID",a)).data.userSig},v=(e,t)=>{if(t&&t.length>0)for(let i=0;i<t.length;i++)if(t[i].name==e)return t[i].default_value;return""},D=async e=>{let t={param:{groupID:e}};return(await c.post("/dataservice/rest/orchestration/getAllUserInfosByGroupID",t)).data.resultDatas},_=async e=>{let t={param:{officeID:e}};return(await c.post("/dataservice/rest/orchestration/getChildrenOfficeInfosByID",t)).data.resultDatas},x=async(e,t)=>{let i={param:{userID:e,groupID:t}},a=await c.post("/dataservice/rest/orchestration/getPojectDptsByUserAndGroupID",i);return{dptDatas:a.data.officeDatas,userMappings:a.data.userMappings}},A=async(e,t,i,a)=>{let r={param:{data:{userID:e,im_type:t,group_id:i,userSig:a}}};return(await c.post("/dataservice/rest/orchestration/addIMMapping",r)).data},M=async(e,t)=>{let i={param:{userID:e,groupID:t}};return(await c.post("/dataservice/rest/orchestration/getAIRobotInfos",i)).data.robotInfos},T=async(e,t,i,a)=>{let r={param:{userID:e,im_type:t,groupID:i,userSig:a}};return(await c.post("/dataservice/rest/orchestration/updateIMMapping",r)).data},C=async e=>{let t={param:{appID:e}},i=(await c.post("/dataservice/rest/orchestration/getAppCustomData",t)).data.customData;return i=i?JSON.parse(i):{},i};var N,S="user-agent",k="",E="function",L="object",P="string",O="undefined",B="browser",$="cpu",U="device",V="engine",H="os",R="result",K="name",G="type",j="vendor",q="version",W="architecture",F="major",z="model",X="console",J="mobile",Q="tablet",Y="smarttv",Z="wearable",ee="xr",te="embedded",ie="inapp",ae="brands",re="formFactors",se="fullVersionList",oe="platform",ne="platformVersion",le="bitness",ce="sec-ch-ua",de=ce+"-full-version-list",pe=ce+"-arch",ue=ce+"-"+le,he=ce+"-form-factors",ge=ce+"-"+J,we=ce+"-"+z,me=ce+"-"+oe,fe=me+"-version",ye=[ae,se,J,z,oe,ne,W,re,le],be="Amazon",Ie="Apple",ve="ASUS",De="BlackBerry",_e="Google",xe="Huawei",Ae="Lenovo",Me="Honor",Te="LG",Ce="Microsoft",Ne="Motorola",Se="Nvidia",ke="OnePlus",Ee="OPPO",Le="Samsung",Pe="Sharp",Oe="Sony",Be="Xiaomi",$e="Zebra",Ue="Chrome",Ve="Chromium",He="Chromecast",Re="Edge",Ke="Firefox",Ge="Opera",je="Facebook",qe="Sogou",We="Mobile ",Fe=" Browser",ze="Windows",Xe=typeof window!==O&&window.navigator?window.navigator:void 0,Je=Xe&&Xe.userAgentData?Xe.userAgentData:void 0,Qe=function(e){for(var t={},i=0;i<e.length;i++)t[e[i].toUpperCase()]=e[i];return t},Ye=function(e,t){if(typeof e===L&&e.length>0){for(var i in e)if(it(t)==it(e[i]))return!0;return!1}return!!et(e)&&it(t)==it(e)},Ze=function(e,t){for(var i in e)return/^(browser|cpu|device|engine|os)$/.test(i)||!!t&&Ze(e[i])},et=function(e){return typeof e===P},tt=function(e){if(e){for(var t=[],i=st(/\\?\"/g,e).split(","),a=0;a<i.length;a++)if(i[a].indexOf(";")>-1){var r=nt(i[a]).split(";v=");t[a]={brand:r[0],version:r[1]}}else t[a]=nt(i[a]);return t}},it=function(e){return et(e)?e.toLowerCase():e},at=function(e){return et(e)?st(/[^\d\.]/g,e).split(".")[0]:void 0},rt=function(e){for(var t in e)if(e.hasOwnProperty(t)){var i=e[t];typeof i==L&&2==i.length?this[i[0]]=i[1]:this[i]=void 0}return this},st=function(e,t){return et(t)?t.replace(e,k):t},ot=function(e){return st(/\\?\"/g,e)},nt=function(e,t){return e=st(/^\s\s*/,String(e)),typeof t===O?e:e.substring(0,t)},lt=function(e,t){if(e&&t)for(var i,a,r,s,o,n,l=0;l<t.length&&!o;){var c=t[l],d=t[l+1];for(i=a=0;i<c.length&&!o&&c[i];)if(o=c[i++].exec(e))for(r=0;r<d.length;r++)n=o[++a],typeof(s=d[r])===L&&s.length>0?2===s.length?typeof s[1]==E?this[s[0]]=s[1].call(this,n):this[s[0]]=s[1]:s.length>=3&&(typeof s[1]!==E||s[1].exec&&s[1].test?3==s.length?this[s[0]]=n?n.replace(s[1],s[2]):void 0:4==s.length?this[s[0]]=n?s[3].call(this,n.replace(s[1],s[2])):void 0:s.length>4&&(this[s[0]]=n?s[3].apply(this,[n.replace(s[1],s[2])].concat(s.slice(4))):void 0):s.length>3?this[s[0]]=n?s[1].apply(this,s.slice(2)):void 0:this[s[0]]=n?s[1].call(this,n,s[2]):void 0):this[s]=n||void 0;l+=2}},ct=function(e,t){for(var i in t)if(typeof t[i]===L&&t[i].length>0){for(var a=0;a<t[i].length;a++)if(Ye(t[i][a],e))return"?"===i?void 0:i}else if(Ye(t[i],e))return"?"===i?void 0:i;return t.hasOwnProperty("*")?t["*"]:e},dt={ME:"4.90","NT 3.51":"3.51","NT 4.0":"4.0",2e3:["5.0","5.01"],XP:["5.1","5.2"],Vista:"6.0",7:"6.1",8:"6.2",8.1:"6.3",10:["6.4","10.0"],NT:""},pt={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},ut={Chrome:"Google Chrome",Edge:"Microsoft Edge","Edge WebView2":"Microsoft Edge WebView2","Chrome WebView":"Android WebView","Chrome Headless":"HeadlessChrome","Huawei Browser":"HuaweiBrowser","MIUI Browser":"Miui Browser","Opera Mobi":"OperaMobile",Yandex:"YaBrowser"},ht={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[q,[K,We+"Chrome"]],[/webview.+edge\/([\w\.]+)/i],[q,[K,Re+" WebView"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[q,[K,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[K,q],[/opios[\/ ]+([\w\.]+)/i],[q,[K,Ge+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[q,[K,Ge+" GX"]],[/\bopr\/([\w\.]+)/i],[q,[K,Ge]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[q,[K,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[q,[K,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser|palemoon)\/([-\w\.]+)/i,/(heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i,/(qwant)(?:ios|mobile)\/([\d\.]+)/i,/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i],[K,q],[/quark(?:pc)?\/([-\w\.]+)/i],[q,[K,"Quark"]],[/\bddg\/([\w\.]+)/i],[q,[K,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[q,[K,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[q,[K,"WeChat"]],[/konqueror\/([\w\.]+)/i],[q,[K,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[q,[K,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[q,[K,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[q,[K,"Smart "+Ae+Fe]],[/(avast|avg)\/([\w\.]+)/i],[[K,/(.+)/,"$1 Secure"+Fe],q],[/\bfocus\/([\w\.]+)/i],[q,[K,Ke+" Focus"]],[/\bopt\/([\w\.]+)/i],[q,[K,Ge+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[q,[K,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[q,[K,"Dolphin"]],[/coast\/([\w\.]+)/i],[q,[K,Ge+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[q,[K,"MIUI"+Fe]],[/fxios\/([\w\.-]+)/i],[q,[K,We+Ke]],[/\bqihoobrowser\/?([\w\.]*)/i],[q,[K,"360"]],[/\b(qq)\/([\w\.]+)/i],[[K,/(.+)/,"$1Browser"],q],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[K,/(.+)/,"$1"+Fe],q],[/samsungbrowser\/([\w\.]+)/i],[q,[K,Le+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[q,[K,qe+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[K,qe+" Mobile"],q],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[K,q],[/(lbbrowser|rekonq)/i],[K],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[q,K],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[K,je],q,[G,ie]],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(bing)(?:web|sapphire)\/([\w\.]+)/i,/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i],[K,q,[G,ie]],[/\bgsa\/([\w\.]+) .*safari\//i],[q,[K,"GSA"],[G,ie]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[q,[K,"TikTok"],[G,ie]],[/\[(linkedin)app\]/i],[K,[G,ie]],[/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i],[[K,/(.+)/,"Zalo"],q,[G,ie]],[/(chromium)[\/ ]([-\w\.]+)/i],[K,q],[/headlesschrome(?:\/([\w\.]+)| )/i],[q,[K,Ue+" Headless"]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[q,[K,Re+" WebView2"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[K,Ue+" WebView"],q],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[q,[K,"Android"+Fe]],[/chrome\/([\w\.]+) mobile/i],[q,[K,We+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[K,q],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[q,[K,We+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[K,We+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[q,K],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[K,[q,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[K,q],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[K,We+Ke],q],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[K,"Netscape"],q],[/(wolvic|librewolf)\/([\w\.]+)/i],[K,q],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[q,[K,Ke+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+(?= .+rv\:.+gecko\/\d+)|[0-4][\w\.]+(?!.+compatible))/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[K,[q,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[K,[q,/[^\d\.]+./,k]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[W,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[W,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[W,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[W,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[W,"arm"]],[/ sun4\w[;\)]/i],[[W,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,/((ppc|powerpc)(64)?)( mac|;|\))/i,/(?:osf1|[freopnt]{3,4}bsd) (alpha)/i],[[W,/ower/,k,it]],[/mc680.0/i],[[W,"68k"]],[/winnt.+\[axp/i],[[W,"alpha"]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[z,[j,Le],[G,Q]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,/sec-(sgh\w+)/i],[z,[j,Le],[G,J]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i],[z,[j,Ie],[G,J]],[/\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,/\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i],[z,[j,Ie],[G,Q]],[/(macintosh);/i],[z,[j,Ie]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[z,[j,Pe],[G,J]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[z,[j,Me],[G,Q]],[/honor([-\w ]+)[;\)]/i],[z,[j,Me],[G,J]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[z,[j,xe],[G,Q]],[/(?:huawei) ?([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i],[z,[j,xe],[G,J]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[z,/_/g," "],[j,Be],[G,Q]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,/ ([\w ]+) miui\/v?\d/i],[[z,/_/g," "],[j,Be],[G,J]],[/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-k]\w[1m]10)\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[z,[j,ke],[G,J]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[z,[j,Ee],[G,J]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[z,[j,ct,{OnePlus:["203","304","403","404","413","415"],"*":Ee}],[G,Q]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[z,[j,"BLU"],[G,J]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[z,[j,"Vivo"],[G,J]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[z,[j,"Realme"],[G,J]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[z,[j,Ae],[G,Q]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[z,[j,Ae],[G,J]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i],[z,[j,Ne],[G,J]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[z,[j,Ne],[G,Q]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[z,[j,Te],[G,Q]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[z,[j,Te],[G,J]],[/(nokia) (t[12][01])/i],[j,z,[G,Q]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i],[[z,/_/g," "],[G,J],[j,"Nokia"]],[/(pixel (c|tablet))\b/i],[z,[j,_e],[G,Q]],[/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i],[z,[j,_e],[G,J]],[/(google) (pixelbook( go)?)/i],[j,z],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[z,[j,Oe],[G,J]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[z,"Xperia Tablet"],[j,Oe],[G,Q]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[z,[j,be],[G,Q]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[z,/(.+)/g,"Fire Phone $1"],[j,be],[G,J]],[/(playbook);[-\w\),; ]+(rim)/i],[z,j,[G,Q]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/(?:blackberry|\(bb10;) (\w+)/i],[z,[j,De],[G,J]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[z,[j,ve],[G,Q]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[z,[j,ve],[G,J]],[/(nexus 9)/i],[z,[j,"HTC"],[G,Q]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[j,[z,/_/g," "],[G,J]],[/tcl (xess p17aa)/i,/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i],[z,[j,"TCL"],[G,Q]],[/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i],[z,[j,"TCL"],[G,J]],[/(itel) ((\w+))/i],[[j,it],z,[G,ct,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[z,[j,"Acer"],[G,Q]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[z,[j,"Meizu"],[G,J]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[z,[j,"Ulefone"],[G,J]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[z,[j,"Energizer"],[G,J]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[z,[j,"Cat"],[G,J]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[z,[j,"Smartfren"],[G,J]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[z,[j,"Nothing"],[G,J]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[z,[j,"Archos"],[G,Q]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[z,[j,"Archos"],[G,J]],[/; (n159v)/i],[z,[j,"HMD"],[G,J]],[/(imo) (tab \w+)/i,/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i],[j,z,[G,Q]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (blu|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(oppo) ?([\w ]+) bui/i,/(hisense) ([ehv][\w ]+)\)/i,/droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i],[j,z,[G,J]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[j,z,[G,Q]],[/(surface duo)/i],[z,[j,Ce],[G,Q]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[z,[j,"Fairphone"],[G,J]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[z,[j,Se],[G,Q]],[/(sprint) (\w+)/i],[j,z,[G,J]],[/(kin\.[onetw]{3})/i],[[z,/\./g," "],[j,Ce],[G,J]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[z,[j,$e],[G,Q]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[z,[j,$e],[G,J]],[/(philips)[\w ]+tv/i,/smart-tv.+(samsung)/i],[j,[G,Y]],[/hbbtv.+maple;(\d+)/i],[[z,/^/,"SmartTV"],[j,Le],[G,Y]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[j,z,[G,Y]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[j,Te],[G,Y]],[/(apple) ?tv/i],[j,[z,Ie+" TV"],[G,Y]],[/crkey.*devicetype\/chromecast/i],[[z,He+" Third Generation"],[j,_e],[G,Y]],[/crkey.*devicetype\/([^/]*)/i],[[z,/^/,"Chromecast "],[j,_e],[G,Y]],[/fuchsia.*crkey/i],[[z,He+" Nest Hub"],[j,_e],[G,Y]],[/crkey/i],[[z,He],[j,_e],[G,Y]],[/(portaltv)/i],[z,[j,je],[G,Y]],[/droid.+aft(\w+)( bui|\))/i],[z,[j,be],[G,Y]],[/(shield \w+ tv)/i],[z,[j,Se],[G,Y]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[z,[j,Pe],[G,Y]],[/(bravia[\w ]+)( bui|\))/i],[z,[j,Oe],[G,Y]],[/(mi(tv|box)-?\w+) bui/i],[z,[j,Be],[G,Y]],[/Hbbtv.*(technisat) (.*);/i],[j,z,[G,Y]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[j,/.+\/(\w+)/,"$1",ct,{LG:"lge"}],[z,nt],[G,Y]],[/(playstation \w+)/i],[z,[j,Oe],[G,X]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[z,[j,Ce],[G,X]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i],[j,z,[G,X]],[/droid.+; (shield)( bui|\))/i],[z,[j,Se],[G,X]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[z,[j,Le],[G,Z]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[j,z,[G,Z]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[z,[j,Ee],[G,Z]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[z,[j,Ie],[G,Z]],[/(opwwe\d{3})/i],[z,[j,ke],[G,Z]],[/(moto 360)/i],[z,[j,Ne],[G,Z]],[/(smartwatch 3)/i],[z,[j,Oe],[G,Z]],[/(g watch r)/i],[z,[j,Te],[G,Z]],[/droid.+; (wt63?0{2,3})\)/i],[z,[j,$e],[G,Z]],[/droid.+; (glass) \d/i],[z,[j,_e],[G,ee]],[/(pico) ([\w ]+) os\d/i],[j,z,[G,ee]],[/(quest( \d| pro)?s?).+vr/i],[z,[j,je],[G,ee]],[/mobile vr; rv.+firefox/i],[[G,ee]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[j,[G,te]],[/(aeobc)\b/i],[z,[j,be],[G,te]],[/(homepod).+mac os/i],[z,[j,Ie],[G,te]],[/windows iot/i],[[G,te]],[/droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i],[z,[G,Y]],[/\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i],[[G,Y]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i],[z,[G,ct,{mobile:"Mobile",xr:"VR","*":Q}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[G,Q]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[G,J]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[z,[j,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[q,[K,Re+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[K,q],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[q,[K,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[K,q],[/ladybird\//i],[[K,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[q,K]],os:[[/(windows nt) (6\.[23]); arm/i],[[K,/N/,"R"],[q,ct,dt]],[/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i],[K,q],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[q,/(;|\))/g,"",ct,dt],[K,ze]],[/(windows ce)\/?([\d\.]*)/i],[K,q],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w\.]+)/i,/cfnetwork\/.+darwin/i],[[q,/_/g,"."],[K,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[K,"macOS"],[q,/_/g,"."]],[/android ([\d\.]+).*crkey/i],[q,[K,He+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[q,[K,He+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[q,[K,He+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[q,[K,He+" Linux"]],[/crkey\/([\d\.]+)/i],[q,[K,He]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[q,K],[/(ubuntu) ([\w\.]+) like android/i],[[K,/(.+)/,"$1 Touch"],q],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[K,q],[/\(bb(10);/i],[q,[K,De]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[q,[K,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[q,[K,Ke+" OS"]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[q,[K,"webOS"]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[q,ct,{25:"120",24:"108",23:"94",22:"87",6:"79",5:"68",4:"53",3:"38",2:"538",1:"537","*":"TV"}],[K,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[q,[K,"watchOS"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[K,"Chrome OS"],q],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/(pico) .+os([\w\.]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/linux.+(mint)[\/\(\) ]?([\w\.]*)/i,/(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/\b(aix)[; ]([1-9\.]{0,4})/i,/(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) ?(r\d)?/i],[K,q],[/(sunos) ?([\d\.]*)/i],[[K,"Solaris"],q],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[K,q]]},gt=(rt.call((N={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}}).init,[[B,[K,q,F,G]],[$,[W]],[U,[G,z,j]],[V,[K,q]],[H,[K,q]]]),rt.call(N.isIgnore,[[B,[q,F]],[V,[q]],[H,[q]]]),rt.call(N.isIgnoreRgx,[[B,/ ?browser$/i],[H,/ ?os$/i]]),rt.call(N.toString,[[B,[K,q]],[$,[W]],[U,[j,z]],[V,[K,q]],[H,[K,q]]]),N),wt=function(e,t){var i=gt.init[t],a=gt.isIgnore[t]||0,r=gt.isIgnoreRgx[t]||0,s=gt.toString[t]||0;function o(){rt.call(this,i)}return o.prototype.getItem=function(){return e},o.prototype.withClientHints=function(){return Je?Je.getHighEntropyValues(ye).then(function(t){return e.setCH(new mt(t,!1)).parseCH().get()}):e.parseCH().get()},o.prototype.withFeatureCheck=function(){return e.detectFeature().get()},t!=R&&(o.prototype.is=function(e){var t=!1;for(var i in this)if(this.hasOwnProperty(i)&&!Ye(a,i)&&it(r?st(r,this[i]):this[i])==it(r?st(r,e):e)){if(t=!0,e!=O)break}else if(e==O&&t){t=!t;break}return t},o.prototype.toString=function(){var e=k;for(var t in s)typeof this[s[t]]!==O&&(e+=(e?" ":k)+this[s[t]]);return e||O}),Je||(o.prototype.then=function(e){var t=this,i=function(){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e])};i.prototype={is:o.prototype.is,toString:o.prototype.toString};var a=new i;return e(a),a}),new o};function mt(e,t){if(e=e||{},rt.call(this,ye),t)rt.call(this,[[ae,tt(e[ce])],[se,tt(e[de])],[J,/\?1/.test(e[ge])],[z,ot(e[we])],[oe,ot(e[me])],[ne,ot(e[fe])],[W,ot(e[pe])],[re,tt(e[he])],[le,ot(e[ue])]]);else for(var i in e)this.hasOwnProperty(i)&&typeof e[i]!==O&&(this[i]=e[i])}function ft(e,t,i,a){return this.get=function(e){return e?this.data.hasOwnProperty(e)?this.data[e]:void 0:this.data},this.set=function(e,t){return this.data[e]=t,this},this.setCH=function(e){return this.uaCH=e,this},this.detectFeature=function(){if(Xe&&Xe.userAgent==this.ua)switch(this.itemType){case B:Xe.brave&&typeof Xe.brave.isBrave==E&&this.set(K,"Brave");break;case U:!this.get(G)&&Je&&Je[J]&&this.set(G,J),"Macintosh"==this.get(z)&&Xe&&typeof Xe.standalone!==O&&Xe.maxTouchPoints&&Xe.maxTouchPoints>2&&this.set(z,"iPad").set(G,Q);break;case H:!this.get(K)&&Je&&Je[oe]&&this.set(K,Je[oe]);break;case R:var e=this.data,t=function(t){return e[t].getItem().detectFeature().get()};this.set(B,t(B)).set($,t($)).set(U,t(U)).set(V,t(V)).set(H,t(H))}return this},this.parseUA=function(){switch(this.itemType!=R&&lt.call(this.data,this.ua,this.rgxMap),this.itemType){case B:this.set(F,at(this.get(q)));break;case H:if("iOS"==this.get(K)&&"18.6"==this.get(q)){var e=/\) Version\/([\d\.]+)/.exec(this.ua);e&&parseInt(e[1].substring(0,2),10)>=26&&this.set(q,e[1])}}return this},this.parseCH=function(){var e=this.uaCH,t=this.rgxMap;switch(this.itemType){case B:case V:var i,a=e[se]||e[ae];if(a)for(var r=0;r<a.length;r++){var s=a[r].brand||a[r],o=a[r].version;this.itemType==B&&!/not.a.brand/i.test(s)&&(!i||/Chrom/.test(i)&&s!=Ve||i==Re&&/WebView2/.test(s))&&(s=ct(s,ut),(i=this.get(K))&&!/Chrom/.test(i)&&/Chrom/.test(s)||this.set(K,s).set(q,o).set(F,at(o)),i=s),this.itemType==V&&s==Ve&&this.set(q,o)}break;case $:var n=e[W];n&&(n&&"64"==e[le]&&(n+="64"),lt.call(this.data,n+";",t));break;case U:if(e[J]&&this.set(G,J),e[z]&&(this.set(z,e[z]),!this.get(G)||!this.get(j))){var l={};lt.call(l,"droid 9; "+e[z]+")",t),!this.get(G)&&l.type&&this.set(G,l.type),!this.get(j)&&l.vendor&&this.set(j,l.vendor)}if(e[re]){var c;if("string"!=typeof e[re])for(var d=0;!c&&d<e[re].length;)c=ct(e[re][d++],pt);else c=ct(e[re],pt);this.set(G,c)}break;case H:var p=e[oe];if(p){var u=e[ne];p==ze&&(u=parseInt(at(u),10)>=13?"11":"10"),this.set(K,p).set(q,u)}this.get(K)==ze&&"Xbox"==e[z]&&this.set(K,"Xbox").set(q,void 0);break;case R:var h=this.data,g=function(t){return h[t].getItem().setCH(e).parseCH().get()};this.set(B,g(B)).set($,g($)).set(U,g(U)).set(V,g(V)).set(H,g(H))}return this},rt.call(this,[["itemType",e],["ua",t],["uaCH",a],["rgxMap",i],["data",wt(this,e)]]),this}function yt(e,t,i){if(typeof e===L?(Ze(e,!0)?(typeof t===L&&(i=t),t=e):(i=e,t=void 0),e=void 0):typeof e!==P||Ze(t,!0)||(i=t,t=void 0),i)if(typeof i.append===E){var a={};i.forEach(function(e,t){a[String(t).toLowerCase()]=e}),i=a}else{var r={};for(var s in i)i.hasOwnProperty(s)&&(r[String(s).toLowerCase()]=i[s]);i=r}if(!(this instanceof yt))return new yt(e,t,i).getResult();var o=typeof e===P?e:i&&i[S]?i[S]:Xe&&Xe.userAgent?Xe.userAgent:k,n=new mt(i,!0),l=t?function(e,t){var i={},a=t;if(!Ze(t))for(var r in a={},t)for(var s in t[r])a[s]=t[r][s].concat(a[s]?a[s]:[]);for(var o in e)i[o]=a[o]&&a[o].length%2==0?a[o].concat(e[o]):e[o];return i}(ht,t):ht,c=function(e){return e==R?function(){return new ft(e,o,l,n).set("ua",o).set(B,this.getBrowser()).set($,this.getCPU()).set(U,this.getDevice()).set(V,this.getEngine()).set(H,this.getOS()).get()}:function(){return new ft(e,o,l[e],n).parseUA().get()}};return rt.call(this,[["getBrowser",c(B)],["getCPU",c($)],["getDevice",c(U)],["getEngine",c(V)],["getOS",c(H)],["getResult",c(R)],["getUA",function(){return o}],["setUA",function(e){return et(e)&&(o=nt(e,500)),this}]]).setUA(o),this}yt.VERSION="2.0.6",yt.BROWSER=Qe([K,q,F,G]),yt.CPU=Qe([W]),yt.DEVICE=Qe([z,j,G,X,J,Y,Q,Z,te]),yt.ENGINE=yt.OS=Qe([K,q]);const bt=(e,t,i)=>window.customI18nObject?.get(`${t}-${e}-${i}`)||e;function It(e){if(!e)return null;const t=e.match(/\$L\{([^}]+)\}/);return t?{fullMatch:t[0],key:t[1]}:null}const vt=e=>{const t={result:!1,innerHTMLMatch:null},i=e.classList;if(!i)return t;if(i.contains("ant-table-cell")){let i=e.innerHTML;if(i.includes("序号")||i.includes("Serial No.")){let e={oldValue:"$L{序号}"};return t.result=!0,t.innerHTMLMatch=e,t}if("操作"==i){let e={oldValue:"$L{操作}"};return t.result=!0,t.innerHTMLMatch=e,t}}if(i.contains("export_menu")){let i=e.innerHTML;if(i.includes("导出进度")||i.includes("Export progress")){let e={oldValue:"$L{导出进度}"};return t.result=!0,t.innerHTMLMatch=e,t}}if(i.contains("total_pag_num")){let i=e.innerHTML;if(i.includes("共")&&i.includes("条")||i.includes("Total")&&i.includes("pieces")){let i={isScriptAction:!0,scriptFunction:(t,i)=>{let a=null;for(let t of e.childNodes)"SPAN"===t.tagName&&(a=t);let r=[{nodeType:Node.TEXT_NODE,key:"共"},{nodeType:"SCRIPTNODE",node:a},{nodeType:Node.TEXT_NODE,key:"条"}];for(let t=0;t<e.childNodes.length;t++){let i=e.childNodes[t];i.nodeType===Node.TEXT_NODE&&e.removeChild(i)}for(let a=0;a<r.length;a++){let s=r[a];if(s.nodeType===Node.TEXT_NODE){let a=document.createTextNode(bt(s.key,t,i)||s.key);e.appendChild(a)}"SCRIPTNODE"===s.nodeType&&e.appendChild(s.node)}}};return t.result=!0,t.innerHTMLMatch=i,t}}if(i.contains("ant-pagination-options-quick-jumper")){let i=e.innerHTML;if(i.includes("跳至")&&i.includes("页")||i.includes("Go to")&&i.includes("Page")){let i={isScriptAction:!0,scriptFunction:(t,i)=>{let a=null;for(let t of e.childNodes)"INPUT"===t.tagName&&(a=t);let r=[{nodeType:Node.TEXT_NODE,key:"跳至"},{nodeType:"SCRIPTNODE",node:a},{nodeType:Node.TEXT_NODE,key:"页"}];for(let t=0;t<e.childNodes.length;t++){let i=e.childNodes[t];i.nodeType===Node.TEXT_NODE&&e.removeChild(i)}for(let a=0;a<r.length;a++){let s=r[a];if(s.nodeType===Node.TEXT_NODE){let a=document.createTextNode(bt(s.key,t,i)||s.key);e.appendChild(a)}"SCRIPTNODE"===s.nodeType&&e.appendChild(s.node)}}};return t.result=!0,t.innerHTMLMatch=i,t}}if(i.contains("ant-select-selection-item")||i.contains("ant-select-item-option-content")){let i=e.innerHTML;if(i.includes("/")&&i.includes("page")||i.includes("/")&&i.includes("条")&&i.includes("页")){let a=e.innerHTML;i.includes("page")&&(a=a.replace("page","$L{页}")),i.includes("页")&&(a=a.replace("页","$L{页}")),i.includes("条")&&(a=a.replace("条","$L{条}"));let r={oldValue:a};return t.result=!0,t.innerHTMLMatch=r,t}}if(i.contains("ant-popover-message-title")){let i=e.innerHTML;if(i.includes("确认执行:")||i.includes("Confirm Execution:")){let e={oldValue:"$L{操作确认:删除?}"};return t.result=!0,t.innerHTMLMatch=e,t}}if(i.contains("ant-btn")&&!i.contains("saveBtn")){let i=e.innerHTML;if(i.includes("Cancel")||i.includes("取消")){let e={oldValue:"$L{取消}"};return t.result=!0,t.innerHTMLMatch=e,t}if(i.includes("确定")||i.includes("OK")){let e={oldValue:"$L{确定}"};return t.result=!0,t.innerHTMLMatch=e,t}}return t},Dt=e=>{const t={result:!1,innerHTMLMatch:null},i=e.classList;if(!i)return t;let a=e.innerHTML,r=e.getAttribute("oldValue");if(r||(r=a),i.contains("catalog_name_content")){let i={oldValue:r,isScriptAction:!0,scriptFunction:(t,i)=>{for(let a=0;a<e.childNodes.length;a++){let r=e.childNodes[a];if(r.nodeType===Node.TEXT_NODE){let a=It(e.getAttribute("oldValue"));if(a){e.removeChild(r);let s=a.key,o=document.createTextNode(bt(s,t,i)||s);e.appendChild(o)}else e.appendChild(r)}else e.appendChild(r)}}};return t.result=!0,t.innerHTMLMatch=i,t}if(i.contains("catalog-tree-search")){let i={oldValue:r,isScriptAction:!0,scriptFunction:(t,i)=>{for(let t=0;t<e.childNodes.length;t++){let i=e.childNodes[t];if("INPUT"===i.tagName){if(!i.getAttribute("oldplaceholderValue")){let e=i.getAttribute("placeholder");e&&(e=`$L{${e}}`),i.setAttribute("placeholder",e)}}}}};return t.result=!0,t.innerHTMLMatch=i,t}return t};function _t(e,t){const i=document.createElement("div");i.innerHTML=e;return i.childNodes[t].textContent}const xt=e=>{const t={result:!1,innerHTMLMatch:null};if("BUTTON"===e.tagName||"P"===e.tagName){let i=e.innerHTML,a=e.getAttribute("oldValue");a||(a=i);let r=!!It(a),s=(t,i)=>{let a=[];for(let r=0;r<e.childNodes.length;r++){let s=e.childNodes[r];if(s.nodeType===Node.TEXT_NODE){let o=e.getAttribute("oldValue");const n=/\$L\{([^}]+)\}/g;if(It(o)){let e,s=_t(o,r);for(;null!==(e=n.exec(o));){const a=e[0],r=e[1],o=bt(r,t,i);s=s.replace(a,o)}let l=document.createTextNode(s);a.push(l)}else a.push(s)}else a.push(s)}e.innerHTML="",a.forEach(t=>{e.appendChild(t)})},o={oldValue:a,isScriptAction:!0,scriptFunction:s};return t.result=r,t.innerHTMLMatch=o,t}return t};function At(e){const t=e.trim().toLowerCase(),i={mon:"周一",monday:"周一",mondays:"周一",tue:"周二",tues:"周二",tuesday:"周二",tuesdays:"周二",wed:"周三",wednesday:"周三",wednesdays:"周三",thu:"周四",thur:"周四",thurs:"周四",thursday:"周四",thursdays:"周四",fri:"周五",friday:"周五",fridays:"周五",sat:"周六",saturday:"周六",saturdays:"周六",sun:"周日",sunday:"周日",sundays:"周日"};if(!/^(mon(day)?s?\.?|tue(sday)?s?\.?|wed(nesday)?s?\.?|thu(r(sday)?)?s?\.?|fri(day)?s?\.?|sat(urday)?s?\.?|sun(day)?s?\.?)$/i.test(t))return"未知日期";const a=t.replace(/\./g,"").replace(/s$/,"");return i[a.startsWith("thu")?"thu":a.slice(0,3)]||i[a]||"未知日期"}function Mt(e){const t=/(?:(\b(0?[1-9]|[12]\d|3[01])\b)(?=日))|(\b(0?[1-9]|[12]\d|3[01])\b)/g,i=[];let a;for(;null!==(a=t.exec(e));){const e=a[2]||a[4];if(e){const t=parseInt(e,10);t>=1&&t<=31&&i.push(t)}}return i}function Tt(e){const t=[];return[/Other\s+(\d+)\s+pieces of data/gi,/其他\s+(\d+)\s+条记录/g].forEach(i=>{let a;for(;null!==(a=i.exec(e));){const e=parseInt(a[1],10);t.push({scenario:a[0],number:e,type:i.source.includes("Other")?"English":"Chinese"})}}),t}const Ct=e=>{const t={result:!1,innerHTMLMatch:null},i=e.classList;if(!i)return t;if(i.contains("fc-toolbar-title")){let i=(t,i)=>{let a=function(e){const t=e.matchAll(/(\d{4})年(0?[1-9]|1[0-2])月/g),i=[];for(const e of t){const t=parseInt(e[1],10),a=parseInt(e[2],10);i.push({year:t,month:a})}return i}(e.getAttribute("oldValue"));if(a.length>0){let t=a[0],i=t.year,r=t.month,s=`${i}/${r}`;"zh-CN"===(window.localStorage.getItem("iportal_localID")||"zh-CN")&&(s=`${i}年${r}月`),e.innerHTML=s}},a=e.innerHTML;if(/^\d{4}年(0?[1-9]|1[0-2])月$/.test(a)){let e={oldValue:a,isScriptAction:!0,scriptFunction:i};return t.result=!0,t.innerHTMLMatch=e,t}}if(i.contains("fc-today-button")){let i=e.innerHTML;if(i.includes("今天")||i.includes("today")){let e={oldValue:"$L{今天}"};return t.result=!0,t.innerHTMLMatch=e,t}}if(i.contains("fullCalendar_title_value")){let i=e.innerHTML;const a=/周[一二三四五六日]/,r=/^(mon(day)?s?\.?|tue(sday)?s?\.?|wed(nesday)?s?\.?|thu(r(sday)?)?s?\.?|fri(day)?s?\.?|sat(urday)?s?\.?|sun(day)?s?\.?)$/i;let s=i.match(a);if(s){let e={oldValue:`$L{${s[0]}}`};return t.result=!0,t.innerHTMLMatch=e,t}if(s=i.match(r),s){let e={oldValue:`$L{${At(s[0])}}`};return t.result=!0,t.innerHTMLMatch=e,t}}if(i.contains("fc-daygrid-day-number")){let i=(t,i)=>{let a=Mt(e.getAttribute("oldValue"));if(a&&a.length>0){let t=a[0],i=`${t}`;"zh-CN"===(window.localStorage.getItem("iportal_localID")||"zh-CN")&&(i=`${t}日`),e.innerHTML=i}},a=e.innerHTML;if(Mt(a).length>0){let e={oldValue:a,isScriptAction:!0,scriptFunction:i};return t.result=!0,t.innerHTMLMatch=e,t}}if(i.contains("fc-daygrid-more-link")){let i=(t,i)=>{let a=Tt(e.getAttribute("oldValue"));if(a&&a.length>0){let r=a[0].number,s="另外${X}条数据";s=bt(s,t,i),s=s.replace("${X}",r),e.innerHTML=s}},a=e.innerHTML;if(Tt(a).length>0){let e={oldValue:a,isScriptAction:!0,scriptFunction:i};return t.result=!0,t.innerHTMLMatch=e,t}}if(i.contains("fc-popover-title")){const i=/(\d{4})年(\d{1,2})月(\d{1,2})日/g;let a=(t,a)=>{let r=e.getAttribute("oldValue");if(r.match(i)){const t=r.replace(i,function(e,t,i,a){const r=i.padStart(2,"0"),s=a.padStart(2,"0");let o=`${t}/${r}/${s}`;return"zh-CN"===(window.localStorage.getItem("iportal_localID")||"zh-CN")&&(o=`${t}年${r}月${s}日`),o});e.innerHTML=t}},r=e.innerHTML,s=r.match(i);if(s&&s.length>0){let e={oldValue:r,isScriptAction:!0,scriptFunction:a};return t.result=!0,t.innerHTMLMatch=e,t}}return t},Nt=e=>{const t={result:!1,innerHTMLMatch:null},i=e.classList;if(!i)return t;if(e.getAttribute("oldValue"),i.contains("ant-modal-title")){let i=e.innerHTML;if(i.includes("Select Data")||i.includes("选择数据")){let e={oldValue:"$L{选择数据}"};return t.result=!0,t.innerHTMLMatch=e,t}}return t},St=e=>{const t={result:!1},i=e.classList;if(!i)return t;if("DIV"===e.tagName&&i.contains("template-block")){let i=(t,i)=>{let a,r,s,o,n=e.parentNode;n&&"DIV"===n.tagName&&(a=n.parentNode,a&&"DIV"===a.tagName&&(r=a.parentNode,r&&"DIV"===r.tagName&&r.classList.contains("application-block")&&(s=r.parentNode,s&&"DIV"===s.tagName&&s.classList.contains("componentDiv")&&(o=s.parentNode,o&&"DIV"===o.tagName&&o.classList.contains("render-all-blocks")&&(o.style.height="100%",s.style.height="100%",r.style.height="100%",a.style.height="100%",n.style.height="100%",e.style.height="100%",e.setAttribute("viewDomID",`rjview_${Date.now()}`))))))};return t.result=!0,t.scriptFunction=i,t}return t};function kt(e){let t=d(),i=window.localStorage.getItem("iportal_localID")||"zh-CN";return bt(e,t,i)}function Et(e){return e&&e.children?.length>0}function Lt(e){if(!e)return!1;if(e&&e.nodeType!==Node.ELEMENT_NODE)return!1;const t=Et(e);if(t){let t=e.children;for(let e=0;e<t.length;e++){let i=t[e];if(i.nodeType===Node.ELEMENT_NODE){let e=i.getAttribute("localDomID");e&&window.i18nElementsMap&&!window.i18nElementsMap.has(e)&&Pt(i)}Lt(t[e])}}let i=null;const a=(e=>{const t={result:!1,innerHTMLMatch:null};if(!e)return t;const i=["placeholder","title"];for(let a=0;a<i.length;a++){let r=i[a],s=e.getAttribute(r)||e[r];s&&It(s)&&(e.setAttribute(`old${r}Value`,s),t.result=!0)}return t.scriptFunction=(t,a)=>{for(let r=0;r<i.length;r++){let s=i[r];const o=e.getAttribute(`old${s}Value`);if(o){const i=/\$L\{([^}]+)\}/g;let r,n=o;for(;null!==(r=i.exec(o));){const e=r[0],i=r[1],s=bt(i,t,a);n=n.replace(e,s)}e.setAttribute(s,n)}}},t})(e);a.result&&console.log("检查到属性匹配元素:",e);const r=function(e){let t=[vt,Dt,Ct,Nt,xt];for(let i=0;i<t.length;i++){let a=(0,t[i])(e);if(a.result)return a}return{result:!1,innerHTMLMatch:null}}(e);if(r.result)i=r.innerHTMLMatch,e.setAttribute("oldValue",i.oldValue);else if(!t){let t=e.innerHTML,a=It(t);a?i=a:(t=e.getAttribute("oldValue"),t||(t=e.innerHTML),i=It(t)),i&&e.setAttribute("oldValue",t)}if(!i&&!r.result&&!a.result)return!1;let s=e.getAttribute("localDomID");return!s&&(window.idCounter=window.idCounter||0,s=`i18n_${Date.now()}_${window.idCounter++}`,e.setAttribute("localDomID",s),window.i18nElementsMap||(window.i18nElementsMap=new Map),window.i18nElementsMap.set(s,{dom:e,id:s,isScriptAction:i&&i.isScriptAction||!1,scriptFunction:i&&i.scriptFunction||null,isAttibuteAction:a.result,attrFunction:a.scriptFunction||null}),Ot(e),!0)}function Pt(e){if(e&&1!==e.nodeType)return;if(Et(e)){let t=e.children;for(let e=0;e<t.length;e++)Pt(t[e])}const t=e.getAttribute("localDomID");t&&e.removeAttribute("localDomID"),t&&window.i18nElementsMap.has(t)&&window.i18nElementsMap.delete(t)}const Ot=async e=>{if(!e.parentNode)return Pt(e),void console.log("元素已无父节点,移除缓存");let t=window.localStorage.getItem("iportal_localID")||"zh-CN",a=d();const r=e.getAttribute("localDomID"),s=window.i18nElementsMap.get(r);if(s)if(s.isAttibuteAction&&s.attrFunction(a,t),s.isScriptAction)s.scriptFunction(a,t);else{const r=e.getAttribute("oldValue");if(r){const s=/\$L\{([^}]+)\}/g;let o,n=r;for(;null!==(o=s.exec(r));){const e=o[0],i=o[1],r=bt(i,a,t);n=n.replace(e,r)}i.nextTick(()=>{e.innerHTML=n})}}};function Bt(e){if(!e)return!1;if(e&&e.nodeType!==Node.ELEMENT_NODE)return!1;if(Et(e)){let t=e.children;for(let e=0;e<t.length;e++){Bt(t[e])}}if(e.getAttribute("viewDomID"))return!1;const t=St(e);return!!t.result&&(t.scriptFunction(),!0)}const $t=async e=>{let t=await c.get(`/system/authority/logout?isMobileLogout=${e}`),i=JSON.parse(t.request.response),a=i.code;return"10110020"==a?(window.sessionStorage.clear(),{code:a,message:kt(i.message)}):{code:a,message:kt(i.message)}},Ut=async e=>{let i=await Rt();return t.AES.decrypt(e,i).toString(t.enc.Utf8)},Vt=async e=>{let i=await Rt();return t.AES.encrypt(e,i).toString()},Ht=async(e,t)=>{let i=await Vt(e.password),a={param:{account_view:e.account_view,groupid:e.groupid,password:i,account:e.account,appid:t}},r=await c.post("/ext/loginAccount",JSON.stringify(a)),s=r.data.code,o=r.data.key_code,n=r.data.old_code,l=r.data.id,d=r.data.message;if(10110004==s){o=await Ut(o),o=window.appSdk.Encrypt(o),a.param.password=o,r=await c.post(`/system/authority/loginAccount4Application?authPicCode=${e.imageCode}&dataappId=${t}&mobileOrWeb=web`,a.param);let i=JSON.parse(r.request.response);if(s=i.code,d=i.message,10110004==s){let i=l;const a=(new yt).getBrowser();let r=(new Date).getTime(),o=a.name+"_"+a.version+"_"+r;return window.sessionStorage.setItem("iportal_login_user_id",i),window.sessionStorage.setItem("iportal_group_id",e.groupid),window.sessionStorage.setItem("iportal_login_user_key",n),window.sessionStorage.setItem("iportal_client_id",o),window.sessionStorage.setItem("iportal_app_id",t),{code:s,message:kt(d)}}return{code:s,message:kt(d)}}return{code:s,message:kt(d)}},Rt=async()=>(await c.post("/dataservice/rest/orchestration/getViewKey",{param:{}})).data.key,Kt=e=>{try{return new URL(e).pathname.split("/").pop()||"downloaded_file"}catch(e){return"downloaded_file"}},Gt=async e=>{try{const t=await fetch(e,{method:"GET",headers:{Range:"bytes=0-0"}});if(206!==t.status)throw new Error("不支持 Range 请求");const i=t.headers.get("Content-Range"),a=i?.match(/\/(\d+)$/)?.[1];return a?parseInt(a,10):-1}catch(e){return console.error("获取文件大小失败:",e),-1}},jt=(e,t)=>{window.sdataEventActions||(window.sdataEventActions={}),window.sdataEventActions[e]=t},qt=async(e,t,i,a,r)=>{let s=`${i}_${(new Date).getTime()}_${Math.floor(1e4*Math.random())+1}`;jt(s,r);let o={eventOperateKey:s,eventKey:i,data:a};e.postMessage(o,t)};exports.ChatClientMgr=class{constructor(e,t){this.handler=t,this.actionKey=e.actionKey,this.appSKID=e.appSKID,this.imType=e.imType,this.groupID=e.groupID,this.userID=e.userID,this.chatType=e.chatType||0,this.singleChatID=e.singleChatID||"",this.customParams=e.customParams||{},this.chartOrigin=e.chartOrigin}makeKey(e){return`${e}-${this.actionKey}`}async init(){this.handler.addChatListener(this.makeKey("sdata_get_access_token"),async e=>await this.handler.getPortalAccessToken(e)),this.handler.addChatListener(this.makeKey("sdata_get_portal_user_info"),async e=>await this.handler.getPortalUserInfo(e)),this.handler.addChatListener(this.makeKey("sdata_get_portal_user_sig"),async e=>{let t=e.userID,i=e.im_type,a=e.group_id;return await this.handler.getPortalUserSig(t,i,a)}),this.handler.addChatListener(this.makeKey("sdata_add_im_mapping"),async e=>{let t=e.userID,i=e.im_type,a=e.userSig;return await this.handler.addIMMapping(t,i,a,this.groupID)}),this.handler.addChatListener(this.makeKey("sdata_update_im_mapping"),async e=>await this.handler.updateIMMapping(e)),this.handler.addChatListener(this.makeKey("sdata_get_users_by_group_id"),async e=>await this.handler.getAllUserInfosByGroupID(e)),this.handler.addChatListener(this.makeKey("sdata_get_dpts_by_group_id"),async e=>await this.handler.getChildrenOfficeInfosByID(e)),this.handler.addChatListener(this.makeKey("sdata_get_project_dpts_by_user_group_id"),async e=>await this.handler.getPojectDptsByUserAndGroupID(e)),this.handler.addChatListener(this.makeKey("sdata_get_ai_robot_infos"),async e=>{let t=e.groupID,i=e.userID;return this.userID==i&&this.groupID==t?this.getAIRobotInfos():[]}),this.handler.addChatListener(this.makeKey("sdata_get_test_user_sig"),async e=>{let t=e.SDKAppID,i=e.userID;return(await this.handler.genTestUserSig({SDKAppID:t,userID:i})).userSig}),this.handler.addChatListener(this.makeKey("sdata_send_message_to_chat_server"),async(e,t)=>{let i=e.message,a=i.from;return await this.sendMessageToChatServer(a,i)}),this.handler.addChatListener(this.makeKey("sdata_close_frame_window"),async(e,t)=>this.handler.closeWindow()),this.handler.addChatListener(this.makeKey("sdata_get_portal_doc_info"),async(e,t)=>this.handler.getPortalDocmentInfo(e)),this.handler.addChatListener(this.makeKey("sdata_chat_aiAgent_event"),async(e,t)=>this.handler.onAIAgentEvent(e,t)),this.handler.addChatListener(this.makeKey("sdata_alllife_event_regist"),async(e,t)=>{console.log("recive chat regist event data:",e),this.appSKID=e.appid,this.imType=e.im_type,await this.initChatAIs();let i={type:this.getChatTypeKey(this.chatType),singleChatID:this.singleChatID,customParams:this.customParams};this.handler.fireEventToChatWindow(t,this.chartOrigin,this.makeKey("sdata_alllife_initChat"),i,e=>{e&&(console.log("chat init finished:",e),this.handler.onChatInitFinished())})})}getChatTypeKey(e){switch(e){case 0:default:return"IM_MULTIPLE_MODE";case 1:return"IM_SINGLE_MODE";case 2:return"IM_EMBED_MODE";case 3:return"IM_MOBILE_MULTIPLE_EMBED_MODE";case 4:return"IM_MOBILE_SINGLE_EMBED_MODE"}}async initChatAIs(){if(window.imClient)this.chatAIClient=window.imClient;else{let e=await this.handler.getChatClientClasses();const{TencentCloudChat:t,TIMUploadPlugin:i}=e;window.imClient=t.create({SDKAppID:this.appSKID,storage:{enable:!0}}),window.imClient.registerPlugin({"tim-upload-plugin":i}),window.imClient.on(t.EVENT.SDK_READY,this.onChatAIReady.bind(this)),window.imClient.charAIs={},this.chatAIClient=window.imClient}this.chatAIClient.charAIs||(this.chatAIClient.charAIs={});let e=await this.handler.getAIRobotInfos(this.userID,this.groupID);e&&e.length>0&&e.forEach(async e=>{let t=e.id;if(!this.chatAIClient.charAIs[t]){e.chatID=t;let i=await this.handler.getPortalUserSig(t,this.imType,this.groupID);i||(i=await this.generateUserSigAndAdd(t)),e.userSig=i,this.chatAIClient.charAIs[t]={robot:e,messageCache:[]}}})}async generateUserSigAndUpdate(e){let t=(await this.handler.genTestUserSig({SDKAppID:this.appSKID,userID:e})).userSig;if(t){await this.chatAIClient.login({userID:e,userSig:t}),await this.chatAIClient.logout();let i={userID:e,userSig:t,im_type:this.imType,group_id:this.groupID};await this.handler.updateIMMapping(i)}return t}async generateUserSigAndAdd(e){let t=(await this.handler.genTestUserSig({SDKAppID:this.appSKID,userID:e})).userSig;return t&&(await this.chatAIClient.login({userID:e,userSig:t}),await this.chatAIClient.logout(),await this.handler.addIMMapping(e,this.imType,t,this.groupID)),t}onChatAIReady(e){let t=this.chatAIClient.lastRobotID,i=this.getAIRobotInfoByID(t);if(console.log(`[AI chat] ${i.name}已经就绪:`,e),this.chatAIClient){let e=this.getAIRobotCacheMessagesByID(t);if(console.log(`[AI chat] ${i.name}就绪后查到的缓存信息:`,e),console.log(`[AI chat] ${i.name}所有信息仓:`,this.chatAIClient.charAIs),e&&e.length>0){const a=[...e];e.splice(0,e.length),a.forEach(e=>{console.log(`[AI chat] ${i.name}发送缓存消息:`,e),this.sendMessageToChatServer(t,e)})}}}getAIRobotInfos(){let e=[];for(let t in this.chatAIClient.charAIs)e.push(this.chatAIClient.charAIs[t].robot);return e}getAIRobotInfoByID(e){return this.chatAIClient.charAIs[e]?this.chatAIClient.charAIs[e].robot:null}getAIRobotCacheMessagesByID(e){return this.chatAIClient.charAIs[e]?this.chatAIClient.charAIs[e].messageCache:[]}async sendMessageToChatServer(e,t){let i=this.getAIRobotInfoByID(e);if(this.chatAIClient.lastRobotID!=e){console.log(`[AI chat]需要新机器人回答,切换到新机器人${i.name}`),this.chatAIClient.lastRobotID&&await this.chatAIClient.logout();try{await this.chatAIClient.login({userID:e,userSig:i.userSig})}catch(a){if(console.log(`[AI chat]${i.name}登录失败`,a),70001==a.code){console.log(`[AI chat]${i.name}UserSig过期,重新生成userSig`);let a=await this.generateUserSigAndUpdate(e);try{return await this.chatAIClient.login({userID:e,userSig:a}),void this.sendMessageToChatServer(e,t)}catch(e){return void console.log(`[AI chat]${i.name}重新登录失败`,e)}}}}if(this.chatAIClient.lastRobotID=e,this.chatAIClient&&this.chatAIClient.isReady()){let e=await this.chatAIClient.createTextMessage(t);this.chatAIClient.sendMessage(e).then(e=>{console.log(`[AI chat]${i.name}发送信息成功`,e)},e=>{console.log(`[AI chat]${i.name}发送失败`,e)})}else{let a=this.getAIRobotCacheMessagesByID(e);a.push(t),console.log(`[AI chat]${i.name}未就绪,缓存后消息:`,a)}}converToAIServerParams(e,t,i){let a="";if("TIMTextElem"===e.type)a=e.payload?.text||"";let r=(e.cloudCustomData||{}).conversation_id||"";return{prompt:a,params:i||{},robotKey:t.password,conversation_id:r||"",userID:e.from||""}}abort(){this.chatAIClient=null}},exports.addEventAction=jt,exports.addIMMapping=A,exports.addObjectUsedTimes=e=>{let t={param:{operateData:e}};return c.post("/dataservice/rest/orchestration/addObjectUsedTimes",t)},exports.addWindowTrustedOrigin=e=>{let t=window.SDATA_WINDOW_TRUSTED_ORIGINS;t||(window.SDATA_WINDOW_TRUSTED_ORIGINS=[]),t.includes(e)||t.push(e)},exports.checkTextFormat=It,exports.createFileFromUrl=async(e,t)=>{try{const i=await fetch(e);if(!i.ok)throw new Error(`网络请求失败: ${i.status} ${i.statusText}`);const a=await i.blob(),r=t||Kt(e);return new File([a],r,{type:a.type,lastModified:Date.now()})}catch(e){throw console.error("创建 File 失败:",e),e}},exports.createRegistApply=async e=>{let t={param:{registInfo:e}};return(await c.post("/dataservice/rest/orchestration/createRegistApply",t)).data.operateResult},exports.destroyEventCenter=()=>{window.rjEventCenter&&(window.rjEventCenter.clearAll(),window.rjEventCenter=null,console.log(`事件中心已清理:时间戳: ${(new Date).toLocaleString()}`))},exports.doRestPost=async(e,t)=>await c.post(e,t),exports.extractNewItems=(e,t)=>e.filter(e=>!t.includes(e)),exports.findClosestAncestorByClass=(e,t)=>{let i=e;for(;i;){if(i.classList&&i.classList.contains(t))return i;i=i.parentElement}return null},exports.fireEvent=(e,t)=>{let i=window.rjEventCenter;t.eventKey=e,i&&i.fireEvent&&i.fireEvent(e,t)},exports.getAIRobotInfos=M,exports.getAPPInfosByID=async e=>{let t={param:{id:e}};return(await c.post("/dataservice/rest/orchestration/getAPPInfosByID",t)).data.appInfo},exports.getAccountCountByName=async e=>{let t={param:{accountName:e}};return(await c.post("/dataservice/rest/orchestration/getAccountCountByName",t)).data.count},exports.getAllI18nTypes=async()=>(await c.post("/dataservice/rest/orchestration/getAllI18nTypes",{param:{}})).data.resultDatas,exports.getAllUserInfosByGroupID=D,exports.getAppCustomData=C,exports.getAppPortalMenuDatas=async(e,t,i,a)=>{let r=d(),s=await g(e,r,t),o=await u(t,s),n=window.appSdk.getAppId();return o.filter(e=>{if(i)return!0;if(e.app_id==r)return!0;{let t=e.children,i=!1;return t&&t.length>0&&t.forEach(e=>{let t=e.children;if(t&&t.length>0){let e=t.filter(e=>e.app_id===n);e&&e.length>0&&(i=!0)}}),i}})},exports.getAuthPic=()=>c.get("/system/authority/getAuthPic?module=loginPassword",{responseType:"arraybuffer"}),exports.getChildrenOfficeInfosByID=_,exports.getClientIp=async()=>{let e=await c.post("/ext/getClientIp"),t=e?.data?.clientIp;return t},exports.getCurrentAppID=p,exports.getCurrentUserPortalMapping=async e=>{let t={param:{userData:e}};return(await c.post("/dataservice/rest/orchestration/getPortalMappingInfo",t)).data.portal_info},exports.getCurrentUserPortalPageID=async e=>{let t={param:{userData:e}};return(await c.post("/dataservice/rest/orchestration/getPortalPageID",t)).data.portal_id},exports.getDifyFileType=e=>({DOCX:"document",TXT:"document",MD:"document",MARKDOWN:"document",MDX:"document",PDF:"document",HTML:"document",XLSX:"document",XLS:"document",VTT:"document",DOC:"document",CSV:"document",EML:"document",MSG:"document",PPTX:"document",PPT:"document",XML:"document",EPUB:"document",JPG:"image",JPEG:"image",PNG:"image",GIF:"image",WEBP:"image",MP3:"audio",M4A:"audio",WAV:"audio",WEBM:"audio",MPGA:"audio",MP4:"video",MOV:"video",MPEG:"video"}[e.toUpperCase()]||"custom"),exports.getFileSize=Gt,exports.getGourpMappingsByPhoneNumber=async e=>{let t={param:{phone:e}};return(await c.post("/dataservice/rest/orchestration/getGourpMappingsByPhoneNumber",t)).data.resultGroups},exports.getGroupMappingsByAccount=async e=>{let t={param:{account:e}};return(await c.post("/dataservice/rest/orchestration/getGourpMappingsByAccountName",t)).data.resultGroups},exports.getI18nKey=e=>{let t=/\$L\{([^}]+)\}/g.exec(e);return t?t[1]:e},exports.getIMHanlder=e=>{let t={genTestUserSig:async e=>{},getChatClientClasses:async()=>[],getAIRobotInfos:async(e,t)=>M(e,t),getPortalUserSig:async(e,t,i)=>I(e,t,i),addIMMapping:async(e,t,i,a)=>A(e,t,a,i),updateIMMapping:async e=>{let t=e.userID,i=e.im_type,a=e.group_id,r=e.userSig;return T(t,i,a,r)},getPortalAccessToken:async e=>{let t=e.appKey,i=e.appSecret;return y(t,i)},getPortalUserInfo:async e=>{let t=e.code,i=e.access_token;return b(t,i)},getAllUserInfosByGroupID:async e=>{let t=e.groupID;return D(t)},getChildrenOfficeInfosByID:async e=>{let t=e.groupID;return _(t)},getPojectDptsByUserAndGroupID:async e=>{let t=e.groupID,i=e.userID;return x(i,t)},closeWindow:()=>!0,addChatListener:async(e,t)=>{await jt(e,t)},fireEventToChatWindow:async(e,t,i,a,r)=>{await qt(e.source,t,i,a,r)},onChatInitFinished:async()=>{},onAIAgentEvent:async(e,t)=>{},getPortalDocmentInfo:async e=>{let t=e.kb_doc_id,i=await w(t),a=i?.summary;if(a){let e=JSON.parse(a);if(e){let t=e[0].url,a=`${window.smardaten_api_context_path}/storage_area/public${t}`,r=await Gt(a);i.fileSize=r}}return i}};return t={...t,...e},t},exports.getIntegrateAppInfoByID=async e=>{let t={param:{appID:e}};return(await c.post("/dataservice/rest/orchestration/getIntegrateAppInfoByID",t)).data.appInfo},exports.getLanguages=async e=>{let t={param:{appID:e}};return(await c.post("/dataservice/rest/orchestration/getAppLanguages",t)).data.resultDatas||[]},exports.getLoginPageNotices=async e=>{let t={param:{id:"1005",groupID:e}};return(await c.post("/dataservice/rest/orchestration/getNoticeInfosByAppTypeID",t)).data.resultDatas},exports.getMappingAppInfoByID=async(e,t)=>{let i={param:{appID:e,groupID:t}};return(await c.post("/dataservice/rest/orchestration/getPortalMappingAppInfoByID",i)).data.appInfo},exports.getMenuDatasByGroupID=u,exports.getMenuMappingDatasByRoleIDs=h,exports.getObjectUseTimes=e=>{let t={param:{objectInfo:e}};return c.post("/dataservice/rest/orchestration/getObjectUseTimes",t)},exports.getOfficeInfosByIDs=async e=>{let t={param:{ids:e}};return(await c.post("/dataservice/rest/orchestration/getOfficeInfosByIDs",t)).data.officeInfos},exports.getPageIDByComponentID=async e=>{let t={param:{componentID:e}};return(await c.post("/dataservice/rest/orchestration/getPageIDByComponentID",t)).data.page_id},exports.getPhoneNumberByAccountName=async(e,t)=>{let i={param:{accountName:e,groupID:t}};return(await c.post("/dataservice/rest/orchestration/getPhoneNumberByAccountName",i)).data.phone},exports.getPlatformBortherMenusByMenuID=async(e,t,i)=>{let a={param:{menu_id:e}},r=(await c.post("/dataservice/rest/orchestration/getPlatformBortherMenusByMenuID",a)).data.menuDatas||[],s=await m(t,i),o={};for(const e of s){o[e.menu_id]=e}let n={};for(const e of r){let t=e.id;if((1!==e.leaf_flag||o[t])&&!n[t]){let i="el-icon-menu",a={id:e.id,index:e.id,name:e.name,isSys:!0,iconClass:i,actionType:e.action_type||"1",app_id:e.datapp_id,menu_id:e.id,url:e.url||"",children:e.children||[],sort:e.sort||0};n[t]=a}}for(const e of r){let t=e.parent_id;if(!t)continue;let i=n[t];if(i){let t=n[e.id];if(!t)continue;i.children.push(t)}}let l=[];for(const e in n){let t=n[e];if(t.children&&t.children.length>0){l.push(t),t.children.sort((e,t)=>Number.isNaN(e.sort)?1:Number.isNaN(t.sort)?-1:e.sort-t.sort)}}if(0==l.length)for(const e in n){let t=n[e];t&&l.push(t)}return l.sort((e,t)=>Number.isNaN(e.sort)?1:Number.isNaN(t.sort)?-1:e.sort-t.sort),l},exports.getPlatformMenuMappingsByRoleIDs=m,exports.getPojectDptsByUserAndGroupID=x,exports.getPoratlAppID=d,exports.getPortalAccessToken=y,exports.getPortalAppCustomConfig=async e=>{let t={param:{groupID:e}};return(await c.post("/dataservice/rest/orchestration/getPortalAppCustomConfig",t)).data.configInfo},exports.getPortalDocmentInfo=w,exports.getPortalInfosByID=async e=>{let t={param:{id:e}};return(await c.post("/dataservice/rest/orchestration/getPortalInfosByID",t)).data.portalInfo},exports.getPortalNotices=async e=>{let t={param:{id:e}};return await c.post("/dataservice/rest/orchestration/getNoticesInfosByGroupID",t)},exports.getPortalPageConfig=async e=>{let t={param:{id:e}};return(await c.post("/dataservice/rest/orchestration/getPortalPageConfig",t)).data.portal_page_config||"[]"},exports.getPortalPageMenuID=async(e,t)=>{let i={param:{id:e,appid:t}};return(await c.post("/dataservice/rest/orchestration/getPortalPageMenuID",i)).data.menu_id},exports.getPortalUserInfo=b,exports.getPortalUserMappingInfos=async e=>{let t={param:{operateData:e}};return(await c.post("/dataservice/rest/orchestration/getPortalUserMappingInfos",t)).data.portalMapping},exports.getPortalUserSig=I,exports.getRobotInfoByID=async(e,t)=>{let i={param:{id:e,groupID:t}};return(await c.post("/dataservice/rest/orchestration/getRobotInfoByID",i)).data.robotInfo},exports.getRoleIDsByUserAndGroupID=g,exports.getTenetInfoByName=async e=>{let t={param:{name:e}};return(await c.post("/dataservice/rest/orchestration/getTenetInfoByName",t)).data.resultDatas},exports.getThirdAppPathByKey=async(e,t,i)=>{let a={param:{appKey:e,appSecret:t,groupID:i}};return(await c.post("/dataservice/rest/orchestration/getThirdAppPathByKey",a)).data.path},exports.getUrlParamValue=(e,t)=>{try{const i=new URL(e).searchParams.get(t);return i&&-1!==i.indexOf("#")?i.split("#")[0]:i}catch(e){return console.error("URL 格式错误:",e),""}},exports.getUserAllMappngPortal=e=>{let t={param:{userData:e}};return c.post("/dataservice/rest/orchestration/getUserAllMappngPortal",t)},exports.getViewKey=Rt,exports.hasListener=e=>{let t=window.rjEventCenter;return!(!t||!t.hasListener)&&t.hasListener(e)},exports.hasUrlParams=e=>{try{return new URL(e,window.location.href).search.length>0}catch(e){return!1}},exports.i18n=bt,exports.i18nText=kt,exports.initDomNodeI18NObserver=()=>{window.i18nElementsMap?window.i18nElementsMap.clear():window.i18nElementsMap=new Map,a("IPORTAL_LANGUAGE_CHANGE_EVENT",async e=>{console.log("语言切换事件触发,更新已处理元素的翻译:",e);for(const[e,t]of window.i18nElementsMap.entries())Ot(t.dom)});const e=new MutationObserver(e=>{e.forEach(e=>{if("childList"===e.type){if(e.addedNodes.length>0)for(let t=0;t<e.addedNodes.length;t++){let i=e.addedNodes[t];i.nodeType===Node.TEXT_NODE&&(i=i.parentNode),Lt(i)}if(e.removedNodes.length>0)for(let t=0;t<e.removedNodes.length;t++){Pt(e.removedNodes[t])}}else if("characterData"===e.type){const t=e.oldValue,i=e.target,a=i.data;console.log(`文本修改: ${t} → ${a}`);const r=i.parentNode;if(r){r.getAttribute("localDomID")&&Pt(r)}Lt(r)}})}),t=document.body;Lt(t),e.observe(t,{childList:!0,subtree:!0,attributes:!1,characterData:!0,characterDataOldValue:!0})},exports.initDomNodeViewObserver=()=>{const e=new MutationObserver(e=>{e.forEach(e=>{if("childList"===e.type&&e.addedNodes.length>0)for(let t=0;t<e.addedNodes.length;t++){Bt(e.addedNodes[t])}})}),t=document.body;Bt(t),e.observe(t,{childList:!0,subtree:!0,attributes:!1,characterData:!0,characterDataOldValue:!0})},exports.initEventCenter=r,exports.initFrameWindowListener=()=>{if(window.isFrameWindowInited)return;window.SDATA_WINDOW_TRUSTED_ORIGINS||(window.SDATA_WINDOW_TRUSTED_ORIGINS=[]),window.sdataEventActions||(window.sdataEventActions={}),window.addEventListener("message",async e=>{if(!window.SDATA_WINDOW_TRUSTED_ORIGINS.some(t=>e.origin===t||new RegExp(t).test(e.origin)))return void console.log("拒绝非可信源消息:",e.origin);let t=e.data?.eventKey;if(!t)return;let i=e.origin;if(console.log(`收到${i}页面消息:`,e.data),"sdata_alllife_event_response"===t){let t=e.data.eventOperateKey,i=window.sdataEventActions[t];delete window.sdataEventActions[t],i&&await i(e.data.data,e)}else{let a=window.sdataEventActions[t],r={eventKey:"sdata_alllife_event_response",eventOperateKey:e.data.eventOperateKey,data:{}};if(a){let t=await a(e.data.data,e);r.data=t}e.source.postMessage(r,i)}}),window.isFrameWindowInited=!0},exports.isSMSCodeValidate=async(e,t,i,a)=>{let r={param:{smsCode:e,sms_service_name_type:t,beyond_type_id:i,account_id:a}};return(await c.post("/ext/validateSMSCode",JSON.stringify(r))).data},exports.isSecurityAccount=async(e,t)=>{let i={param:{account_name:e,group_id:t}};return(await c.post("/dataservice/rest/orchestration/isSecurityAccount",i)).data.isSecurityAccount},exports.loadi18nTexts=async e=>{let t={param:{appID:e}},i=(await c.post("/dataservice/rest/orchestration/getAllTexts",t)).data.resultDatas||[];window.customI18nObject=new Map;for(let t of i)window.customI18nObject.set(`${e}-${t.key}-${t.lang}`,t.value)},exports.loginAccount=Ht,exports.logoutAccount=$t,exports.processElement=Lt,exports.processViewElement=Bt,exports.queryAndStoreAppVariable=(e,t)=>{let i=window.sessionStorage.getItem("isdata_app_variable_"+e);return i||(i=v(e,t),i&&window.sessionStorage.setItem("isdata_app_variable_"+e,i)),i},exports.queryAppVariable=v,exports.queryAssetById=(e,t=200)=>c.post(`/asset/getAssetData?asset_id=${e}&count=${t}`,{filters:[]}),exports.queryGroupIDByOfficeId=async e=>{let t={param:{id:e}};return(await c.post("/dataservice/rest/orchestration/getGroupIDByDptID",t)).data.resultDptData.id},exports.queryGroupInfosByOfficeId=async e=>{let t={param:{id:e}};return(await c.post("/dataservice/rest/orchestration/getGroupIDByDptID",t)).data.resultDptData},exports.queryOfficeInfosById=async e=>{let t={param:{id:e}};return(await c.post("/dataservice/rest/orchestration/getOfficeInfosByID",t)).data.officeData},exports.registerEventListener=a,exports.removeEventAction=e=>{window.sdataEventActions||(window.sdataEventActions={}),delete window.sdataEventActions[e]},exports.removeEventListener=(e,t)=>{let i=window.rjEventCenter;i&&i.unregister&&i.unregister(e,t)},exports.removeWindowTrustedOrigin=e=>{let t=window.SDATA_WINDOW_TRUSTED_ORIGINS;t||(window.SDATA_WINDOW_TRUSTED_ORIGINS=[]);let i=t.indexOf(e);i>-1&&t.splice(i,1)},exports.savePortalI18nText=async(e,t,i,a,r)=>{let s={param:{key:e,value:t,appID:d(),lang:i,beyondID:a,i18nType:r}};return(await c.post("/dataservice/rest/orchestration/savePortalI18nText",s)).data.resultData},exports.sendPostToAIAgent=async(e,t,i)=>{let a=d(),r=await C(a),s=r?.aiAgentServerIP||"";if(!s)return console.error("没有配置AI Agent服务地址,请联系管理员"),void(i&&i("没有配置AI Agent服务地址,请联系管理员"));let o=`${s}/addAndCleanDocument`;c.post(o,JSON.stringify(e)).then(e=>{console.log("发送消息成功:",e),t&&t(e)}).catch(e=>{console.error("发送消息失败:",e),i&&i(e)})},exports.sendSms=async(e,t,i)=>{let a={param:e};c.post("/ext/sendSms",JSON.stringify(a)).then(e=>{console.log("发送消息成功:",e),t&&t(e)}).catch(e=>{console.error("发送消息失败:",e),i&&i(e)})},exports.sendWindowMessage=qt,exports.serverDecrypt=async e=>{let t={param:{decryptStr:e}};return e=(await c.post("/ext/serverDecrypt",JSON.stringify(t))).data.decryptStr},exports.serverEncrypt=async e=>{let t={param:{encryptStr:e}};return e=(await c.post("/ext/serverEncrypt",JSON.stringify(t))).data.encryptStr},exports.setPortalPageConfig=e=>{let t={param:e};return c.post("/dataservice/rest/orchestration/setPortalPageConfig",t)},exports.switchPortalLogin=async(e,t,i)=>{let a=window.sessionStorage.getItem("iportal_login_user_key");a=await Ut(a),e.password=a;let r=await $t(i),s=r.code,o=r.message;if("10110020"==s){return await Ht(e,t)}return{code:s,message:kt(o)}},exports.transformPortalQuickMenuDatas=(e,t)=>{t=t||[];let i=(e=e||[]).concat(t),a={},r=[];for(const e of i){let t=e.id;a[t]||(a[t]=e,r.push(e))}let s={};for(const e of r){let t=e.id,i={id:t,label:e.title,sort:e.sort,children:[],parent_id:e.parent_id,type:e.type};s[t]=i}for(const e of r){let t=s[e.id];if("5"==t.type){let e=s[t.parent_id];if(e){e.children.push(t)}}}const o=[];for(const e of r){let t=s[e.id];if("4"==t.type){o.push(t),t.children.sort((e,t)=>Number.isNaN(e.sort)?1:Number.isNaN(t.sort)?-1:e.sort-t.sort)}}return o.sort((e,t)=>Number.isNaN(e.sort)?1:Number.isNaN(t.sort)?-1:e.sort-t.sort),o},exports.transformPortalSystemMenuDatas=e=>{let t={};for(const i of e){let e=i.id,a={id:e,label:i.name,sort:i.sort,icon:i.icon,children:[],app_id:i.datapp_id,parent_id:i.parent_id,leaf_flag:i.leaf_flag};t[e]=a}for(const i of e){if(1==i.leaf_flag){let e=t[i.id],a=t[i.parent_id];if(a){a.children.push(e)}}}const i=[];for(const a of e){if(0==a.leaf_flag){let e=t[a.id];i.push(e),e.children.sort((e,t)=>Number.isNaN(e.sort)?1:Number.isNaN(t.sort)?-1:e.sort-t.sort)}}return i.sort((e,t)=>Number.isNaN(e.sort)?1:Number.isNaN(t.sort)?-1:e.sort-t.sort),i},exports.updateI18nValue=(e,t,i,a)=>{let r=`${e}-${t}-${i}`;window.customI18nObject.set(r,a)},exports.updateIMMapping=T,exports.updateUserSelectPortal=e=>{let t={param:{portalMappingData:e}};return c.post("/dataservice/rest/orchestration/updateUserSelectPortal",t)},exports.validateSSOPageLoaded=async(e,t,i)=>{let a={param:{app_id:e,appSecret:t,returnUrl:i}};return(await c.post("/dataservice/rest/orchestration/validateSSOPageLoaded",a)).data.count},exports.viewDecrypt=Ut,exports.viewEncrypt=Vt;