var getDateDaysBefore = function (daysAgo) { var dateStr = new Date().toISOString().substring(0, 10); return new Date(dateStr).getTime() - daysAgo * 24 * 3600 * 1000; }; let primaryColor = "#2E324C"; // ======Vue start var headerVue = ""; var pubkeyDialogVue = ""; var mainVue = ""; var select = ""; var initVue = function () { console.log("[nodePortal.js] initVue : "); headerVue = new Vue({ el: 'header', data: { shortName: "00000" } }); pubkeyDialogVue = new Vue({ el: '#pubkeyDialog', data: { sm2KeyStr: "00000", myRole: "匿名用户", test: "0", selectedSM2Key: "0", productList: [{id: 0, title: "ContractProvider"}, {id: 1, title: "ContractUser"}, { id: 2, title: "ContractInstanceManager" }], sm2KeyList: [] }, methods: { importPubkey: function () { console.log("importkey trigged"); try { var sm2Key = JSON.parse(this.sm2KeyStr); if (!sm2Key.publicKey || !sm2Key.privateKey) { this.sm2KeyStr = (JSON.stringify(global.sm2Key)); } else { global.sm2Key = sm2Key; localStorage.setItem("PrivKey", JSON .stringify(sm2Key)); headerVue.shortName = global.sm2Key.publicKey .substr(0, 5); var newKey = {}; newKey.id = this.sm2KeyList.length; newKey.title = headerVue.shortName; newKey.sm2Key = this.sm2KeyStr; this.sm2KeyList.push(newKey); localStorage.setItem("PrivKeyList", JSON.stringify(this.sm2KeyList)); getSession(); listProjects("priv"); } } catch (e) { console.log(e); this.sm2KeyStr = (JSON.stringify(global.sm2Key)); } }, generatePubkey: function () { console.log("generate pubkey trigged"); var sm2Key = sm2.generateKeyPairHex(); this.sm2KeyStr = JSON.stringify(sm2Key); global.sm2Key = sm2Key; localStorage.setItem("PrivKey", JSON .stringify(sm2Key)); headerVue.shortName = global.sm2Key.publicKey .substr(0, 5); var newKey = {}; newKey.id = this.sm2KeyList.length; newKey.title = headerVue.shortName; newKey.sm2Key = this.sm2KeyStr; this.sm2KeyList.push(newKey); this.selectedSM2Key = newKey.id; localStorage.setItem("PrivKeyList", JSON.stringify(this.sm2KeyList)); getSession(); }, changeProduct(event) { this.test = event.target.value; // 获取option对应的value值 this.role = this.productList[this.test].title; console.log("选了", this.role); global.role = this.role; }, apply: function () { console.log("apply"); global.wssocket .send("{\"action\":\"applyNet\",\"role\":\"NodeManager\"}"); }, applyRole: function () { var role = this.productList[this.test]; console.log("applyRole, " + role); applyRole(role.title); }, changeSM2Key: function (event) { var order = event.target.value; // 获取option对应的value值 if (!order) return; console.log("changeSM2Key, -->" + order); headerVue.shortName = this.sm2KeyList[order].title; this.selectedSM2Key = order; this.sm2KeyStr = this.sm2KeyList[order].sm2Key; global.sm2Key = JSON.parse(this.sm2KeyStr); localStorage.setItem("PrivKey", this.sm2KeyStr); getSession(); }, deletePubkey: function (event) { var order = this.selectedSM2Key; var obj = this.sm2KeyList[order]; if (this.sm2KeyList.length === 1) { alert("最后一对密钥不可以删除"); return; } var newList = []; for (var i = 0; i < order; i++) { newList.push(this.sm2KeyList[i]); } for (var i = order / 1 + 1; i < this.sm2KeyList.length; i++) { newList.push(this.sm2KeyList[i]); } this.sm2KeyList = newList; for (var i = 0; i < newList.length; i++) { newList[i].id = i; } if (order >= newList.length) { order--; } console.log("after delete, size:" + newList.length + " order:" + order); localStorage.setItem("PrivKeyList", JSON.stringify(newList)); headerVue.shortName = this.sm2KeyList[order].title; this.selectedSM2Key = order + ""; this.sm2KeyStr = this.sm2KeyList[order].sm2Key; global.sm2Key = JSON.parse(this.sm2KeyStr); localStorage.setItem("PrivKey", this.sm2KeyStr); getSession(); }, exportPubkey: function (event) { var uri = "data:text/html,"; uri += localStorage.getItem("PrivKeyList"); var link = document.createElement("a"); link.download = "sm2keyList.json"; link.href = uri; document.body.appendChild(link); link.click(); document.body.removeChild(link); delete link; } } }); mainVue = new Vue({ el: "#main", data: { licenceDueDate: "已过期", licenceNodes: 0, offlineLicence: undefined, licenceRemark: undefined, userCount: ".", contractCount: ".", nodeCount: ".", eventCount: ".", unitCount: ".", pubDialogVue: {}, projects: [], contracts: [], contractFunctions: [], openedFiles: [{ isDir: false, val: "Please Checkout code from left side!", path: "Hello", name: "Hello" }] } }); }; // ======Vue done function initGlobal(urlParams) { if (!window.global) { window.global = {}; } global.result = ""; if (location.href.indexOf("BaaSClient") !== -1) { global.isBaaS = true primaryColor = '#08263a' } if (urlParams) { global.urlparam = urlParams; } if (urlParams && urlParams.keys) { global.sm2Key = urlParams.keys; } else { global.sm2Key = localStorage.getItem("PrivKey"); if (!global.sm2Key || global.sm2Key.length < 100) { generate(); } else { global.sm2Key = JSON.parse(global.sm2Key); } } headerVue.shortName = global.sm2Key.publicKey.substr(0, 5); pubkeyDialogVue.sm2KeyStr = JSON.stringify(global.sm2Key); mainVue.pubDialogVue = pubkeyDialogVue; const keyListStr = localStorage.getItem("PrivKeyList"); const keyObj = {}; if (!keyListStr) { keyObj.id = 0; keyObj.title = headerVue.shortName; keyObj.sm2Key = pubkeyDialogVue.sm2KeyStr; pubkeyDialogVue.sm2KeyList = []; pubkeyDialogVue.sm2KeyList.push(keyObj); pubkeyDialogVue.selectedSM2Key = 0; // mainVue.sm2KeyList = pubkeyDialogVue.sm2KeyList; // mainVue.selectedSM2Key = 0; } else { pubkeyDialogVue.sm2KeyList = JSON.parse(keyListStr); pubkeyDialogVue.selectedSM2Key = -1; for (let i = 0; i < pubkeyDialogVue.sm2KeyList.length; i++) { const obj = pubkeyDialogVue.sm2KeyList[i]; if (obj.sm2Key === pubkeyDialogVue.sm2KeyStr) { pubkeyDialogVue.selectedSM2Key = i; // mainVue.sm2KeyList = pubkeyDialogVue.sm2KeyList; // mainVue.selectedSM2Key = pubkeyDialogVue.selectedSM2Key; return; } } keyObj.id = pubkeyDialogVue.sm2KeyList.length; keyObj.title = headerVue.shortName; keyObj.sm2Key = pubkeyDialogVue.sm2KeyStr; pubkeyDialogVue.sm2KeyList.push(keyObj); pubkeyDialogVue.selectedSM2Key = keyObj.id; // mainVue.sm2KeyList = pubkeyDialogVue.sm2KeyList; // mainVue.selectedSM2Key = pubkeyDialogVue.selectedSM2Key; } }