266 lines
10 KiB
JavaScript
266 lines
10 KiB
JavaScript
function getDateDaysBefore(daysAgo) {
|
|
let dateStr = new Date().toISOString().substring(0, 10);
|
|
return new Date(dateStr).getTime() - daysAgo * 24 * 3600 * 1000;
|
|
}
|
|
|
|
let primaryColor = "#2E324C";
|
|
|
|
// ======Vue start
|
|
let headerVue = "";
|
|
let pubkeyDialogVue = "";
|
|
let mainVue = "";
|
|
let toastVue = "";
|
|
let select = "";
|
|
|
|
function initVue() {
|
|
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 {
|
|
let sm2Key = JSON.parse(this.sm2KeyStr);
|
|
if (!sm2Key.publicKey || !sm2Key.privateKey) {
|
|
this.sm2KeyStr = (JSON.stringify(global.sm2Key));
|
|
} else {
|
|
if (sm2Key.publicKey.search("\\.") !== -1 ||
|
|
sm2Key.publicKey.search("\\.\\.") !== -1 ||
|
|
sm2Key.publicKey.search("/") !== -1 ||
|
|
sm2Key.publicKey.search("\\\\") !== -1) {
|
|
myToast("导入失败", "不是合法的公钥!");
|
|
return;
|
|
}
|
|
if (sm2Key.privateKey.search("\\.") !== -1 ||
|
|
sm2Key.privateKey.search("\\.\\.") !== -1 ||
|
|
sm2Key.privateKey.search("/") !== -1 ||
|
|
sm2Key.privateKey.search("\\\\") !== -1) {
|
|
myToast("导入失败", "不是合法的私钥!");
|
|
return;
|
|
}
|
|
global.sm2Key = sm2Key;
|
|
localStorage.setItem("PrivKey", JSON.stringify(sm2Key));
|
|
headerVue.shortName = global.sm2Key.publicKey.substr(0, 5);
|
|
let newKey = {};
|
|
newKey.id = this.sm2KeyList.length;
|
|
newKey.title = headerVue.shortName;
|
|
newKey.sm2Key = this.sm2KeyStr;
|
|
var exist = false;
|
|
for (var i=0;i<this.sm2KeyList.length;i++){
|
|
var iterKey = this.sm2KeyList[i];
|
|
if (iterKey.sm2Key==newKey.sm2Key)
|
|
exist = true;
|
|
}
|
|
if (!exist)
|
|
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");
|
|
let 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);
|
|
let 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 () {
|
|
let role = this.productList[this.test];
|
|
// console.log("applyRole, " + role);
|
|
applyRole(role.title);
|
|
|
|
}, changeSM2Key: function (event) {
|
|
let 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();
|
|
location.reload();
|
|
}, deletePubkey: function (event) {
|
|
let order = this.selectedSM2Key;
|
|
// var obj = this.sm2KeyList[order];
|
|
if (this.sm2KeyList.length === 1) {
|
|
alert("最后一对密钥不可以删除");
|
|
return;
|
|
}
|
|
let newList = [];
|
|
for (let i = 0; i < order; i++) {
|
|
newList.push(this.sm2KeyList[i]);
|
|
}
|
|
|
|
for (let i = order / 1 + 1; i < this.sm2KeyList.length; i++) {
|
|
newList.push(this.sm2KeyList[i]);
|
|
}
|
|
|
|
this.sm2KeyList = newList;
|
|
for (let 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) {
|
|
let uri = "data:text/html,";
|
|
uri += localStorage.getItem("PrivKeyList");
|
|
let 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"
|
|
}]
|
|
|
|
}
|
|
});
|
|
toastVue = new Vue({
|
|
el: "#alertDiv",
|
|
data: {
|
|
toastTitle: "提示",
|
|
toastMessage: "消息"
|
|
}
|
|
})
|
|
}
|
|
|
|
// ======Vue done
|
|
|
|
function initGlobal(urlParams) {
|
|
window.global = {};
|
|
global.result = "";
|
|
if (isBaaS) {
|
|
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;
|
|
let keyListStr = localStorage.getItem("PrivKeyList");
|
|
let 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++) {
|
|
let 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;
|
|
|
|
}
|
|
}
|