New file |
| | |
| | | import config from "@/assets/js/config.js"; |
| | | |
| | | import jobApi from "./middleGround/api/job"; // newJobWithNewView // newSession, |
| | | |
| | | export function setSessionGuid(type, id) { |
| | | var cityCode = null; |
| | | var SnIp = null; |
| | | try { |
| | | // eslint-disable-next-line |
| | | SnIp = window.returnCitySN; |
| | | } catch (error) { |
| | | SnIp = null; |
| | | console.log(error); |
| | | } |
| | | if (SnIp != undefined && SnIp != null) { |
| | | cityCode = SnIp; |
| | | } else { |
| | | cityCode = { |
| | | cip: "0.0.0.0", |
| | | cname: "未知", |
| | | }; |
| | | } |
| | | const _city = cityCode.cname.substring(3); |
| | | const _province = cityCode.cname.substring(0, 3); |
| | | const params = { |
| | | appRefCode: config.appRefCode, |
| | | hostName: config.requestCtx, |
| | | ipAddress: cityCode.cip, |
| | | browser: myBrowser(), |
| | | os: navigator.platform, |
| | | device: "pc", |
| | | province: _province, |
| | | city: _city ? _city : _province, |
| | | }; |
| | | |
| | | jobApi.newSession(params).then(res => { |
| | | storage.set("sessionGuid", res, 30); |
| | | setNewView(type, id); |
| | | }); |
| | | } |
| | | |
| | | export const storage = { |
| | | /* |
| | | * set 存储方法 |
| | | * @ param {String} key 键 |
| | | * @ param {String} value 值, |
| | | * @ param {String} expired 过期时间,以分钟为单位,非必须 |
| | | */ |
| | | set(key, val, expired) { |
| | | if (typeof val !== "string") { |
| | | val = JSON.stringify(val); |
| | | } |
| | | window.sessionStorage.setItem(key, val); |
| | | if (expired) { |
| | | window.sessionStorage.setItem( |
| | | `${key}__expires__`, |
| | | `${Date.now() + 1000 * 60 * expired}` |
| | | ); |
| | | } |
| | | }, |
| | | /* |
| | | * get 获取方法 |
| | | * @ param {String} key 键 |
| | | * @ param {String} expired 存储时为非必须字段,所以有可能取不到,默认为 Date.now+1 |
| | | */ |
| | | get(key) { |
| | | const expired = |
| | | window.sessionStorage.getItem(`${key}__expires__`) || Date.now + 1; |
| | | const now = Date.now(); |
| | | |
| | | if (now >= expired) { |
| | | window.sessionStorage.removeItem(key); |
| | | return; |
| | | } |
| | | let val = window.sessionStorage.getItem(key); |
| | | try { |
| | | val = JSON.parse(val); |
| | | } catch (e) { |
| | | return e; |
| | | } |
| | | return val; |
| | | }, |
| | | }; |
| | | |
| | | function myBrowser() { |
| | | const userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 |
| | | const isOpera = userAgent.indexOf("Opera") > -1; |
| | | if (isOpera) { |
| | | //判断是否Opera浏览器 |
| | | return "Opera"; |
| | | } |
| | | if (userAgent.indexOf("Firefox") > -1) { |
| | | //判断是否Firefox浏览器 |
| | | return "Firefox"; |
| | | } |
| | | if (userAgent.indexOf("Chrome") > -1) { |
| | | return "Chrome"; |
| | | } |
| | | if (userAgent.indexOf("Safari") > -1) { |
| | | //判断是否Safari浏览器 |
| | | return "Safari"; |
| | | } |
| | | if ( |
| | | userAgent.indexOf("compatible") > -1 && |
| | | userAgent.indexOf("MSIE") > -1 && |
| | | !isOpera |
| | | ) { |
| | | //判断是否IE浏览器 |
| | | return "IE"; |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | export function setNewView(type, id) { |
| | | if (!sessionStorage.getItem("sessionGuid")) { |
| | | setSessionGuid(type, id); |
| | | } |
| | | |
| | | const sessionGuid = sessionStorage.getItem("sessionGuid"); |
| | | const fromPath = sessionStorage.getItem("fromPath"); |
| | | const toPath = sessionStorage.getItem("toPath"); |
| | | if (sessionGuid) { |
| | | let params = { |
| | | sessionGuid: sessionGuid, |
| | | appRefCode: config.appRefCode, |
| | | type: "View", |
| | | url: toPath == null ? "/" : toPath, |
| | | ref: fromPath == null ? "/" : fromPath, |
| | | }; |
| | | if (id) { |
| | | params[type] = id; |
| | | } |
| | | jobApi.newJobWithNewView(params).then(res => {}); |
| | | } |
| | | } |