|
@@ -28,7 +28,9 @@
|
|
|
<table style="margin-left: 10px">
|
|
|
<tbody id="wt">
|
|
|
<tr class="th">
|
|
|
- <td style="border: none"><input type="button" value="导出配置"></td>
|
|
|
+ <td style="border: none"><input type="button" value="导出配置" onclick="exportConfig()"></td>
|
|
|
+ <td style="border: none" colspan="4"><input type="file" value="选择配置文件" id="configFileInput"></td>
|
|
|
+ <td style="border: none"><input type="button" value="导入配置" onclick="uploadConfig()"></td>
|
|
|
</tr>
|
|
|
<tr style="height: 10px">
|
|
|
<td colspan="8" style="text-align: left;color: red;background-color: white">
|
|
@@ -136,15 +138,14 @@
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
function getTd(child) {
|
|
|
- var td=document.createElement("td")
|
|
|
+ var td = document.createElement("td")
|
|
|
td.appendChild(child)
|
|
|
return td
|
|
|
|
|
|
}
|
|
|
|
|
|
- function getInputPointEle(){
|
|
|
+ function getInputPointEle() {
|
|
|
var inputE = document.createElement("input")
|
|
|
inputE.type = "text"
|
|
|
inputE.placeholder = "输入值或公式"
|
|
@@ -154,7 +155,7 @@
|
|
|
return inputE
|
|
|
}
|
|
|
|
|
|
- function getInputValueEle(){
|
|
|
+ function getInputValueEle() {
|
|
|
var inputE = document.createElement("input")
|
|
|
inputE.type = "text"
|
|
|
inputE.placeholder = "输入值或公式"
|
|
@@ -195,8 +196,8 @@
|
|
|
success: function (msg) {
|
|
|
var ps = JSON.parse(msg)
|
|
|
for (var p in ps) {
|
|
|
- if( document.getElementById("td_" + p)!=null){
|
|
|
- document.getElementById("td_" + p).innerText = ps[p]
|
|
|
+ if (document.getElementById("td_" + p) != null) {
|
|
|
+ document.getElementById("td_" + p).innerText = ps[p]
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -213,7 +214,7 @@
|
|
|
var points = JSON.parse(msg)
|
|
|
var tr;
|
|
|
var td;
|
|
|
- var i=0;
|
|
|
+ var i = 0;
|
|
|
for (var p in points) {
|
|
|
if (i % 4 == 0) {
|
|
|
tr = wTable.appendChild(document.createElement("tr"))
|
|
@@ -221,12 +222,12 @@
|
|
|
td = document.createElement("td");
|
|
|
td.id = td.id = "tdp_" + p
|
|
|
td.innerHTML = p;
|
|
|
- td.ondblclick=dbChickOnPoint
|
|
|
+ td.ondblclick = dbChickOnPoint
|
|
|
tr.appendChild(td);
|
|
|
td = document.createElement("td");
|
|
|
td.id = "td_" + p
|
|
|
- td.title=points[p]
|
|
|
- td.ondblclick=dbChickOnValue
|
|
|
+ td.title = points[p]
|
|
|
+ td.ondblclick = dbChickOnValue
|
|
|
tr.appendChild(td);
|
|
|
i++;
|
|
|
}
|
|
@@ -242,16 +243,16 @@
|
|
|
setInterval(getValues, 10);
|
|
|
|
|
|
function savePoint() {
|
|
|
- var pointE=document.getElementsByClassName("open-point")[0];
|
|
|
- var valueE=document.getElementsByClassName("open-value")[0];
|
|
|
- if(pointE==null ){
|
|
|
+ var pointE = document.getElementsByClassName("open-point")[0];
|
|
|
+ var valueE = document.getElementsByClassName("open-value")[0];
|
|
|
+ if (pointE == null) {
|
|
|
return;
|
|
|
}
|
|
|
if (checkPoint() != null) {
|
|
|
if (checkValue() == 1) {
|
|
|
ajax({
|
|
|
type: "GET",
|
|
|
- url: "/addConstantPoint?point=" + checkPoint() + "&value=" +escape(valueE.value).replace(/\+/g,'%2B'),
|
|
|
+ url: "/addConstantPoint?point=" + checkPoint() + "&value=" + escape(valueE.value).replace(/\+/g, '%2B'),
|
|
|
success: function (msg) {
|
|
|
location.reload();
|
|
|
},
|
|
@@ -259,10 +260,10 @@
|
|
|
console.log("error")
|
|
|
}
|
|
|
})
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
ajax({
|
|
|
type: "GET",
|
|
|
- url: "/addCalculatorPoint?point=" + checkPoint() + "&value=" + escape(valueE.value).replace(/\+/g,'%2B'),
|
|
|
+ url: "/addCalculatorPoint?point=" + checkPoint() + "&value=" + escape(valueE.value).replace(/\+/g, '%2B'),
|
|
|
success: function (msg) {
|
|
|
location.reload();
|
|
|
},
|
|
@@ -271,17 +272,17 @@
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
- }else{
|
|
|
- if(pointE.id==null ||pointE.id==""){
|
|
|
- var grand=pointE.parentNode.parentNode
|
|
|
+ } else {
|
|
|
+ if (pointE.id == null || pointE.id == "") {
|
|
|
+ var grand = pointE.parentNode.parentNode
|
|
|
grand.removeChild(pointE.parentNode)
|
|
|
grand.removeChild(valueE.parentNode)
|
|
|
isInput = false;
|
|
|
return;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
ajax({
|
|
|
type: "GET",
|
|
|
- url: "/deletePoint?point=" + pointE.id.substr(6,pointE.id.length-6) ,
|
|
|
+ url: "/deletePoint?point=" + pointE.id.substr(6, pointE.id.length - 6),
|
|
|
success: function (msg) {
|
|
|
location.reload();
|
|
|
},
|
|
@@ -292,32 +293,89 @@
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- function dbChickOnPoint(){
|
|
|
- modifyPoint(this.id.substr(4,this.id.length-4))
|
|
|
+
|
|
|
+ function dbChickOnPoint() {
|
|
|
+ modifyPoint(this.id.substr(4, this.id.length - 4))
|
|
|
}
|
|
|
- function dbChickOnValue(){
|
|
|
- modifyPoint(this.id.substr(3,this.id.length-3))
|
|
|
+
|
|
|
+ function dbChickOnValue() {
|
|
|
+ modifyPoint(this.id.substr(3, this.id.length - 3))
|
|
|
}
|
|
|
- function modifyPoint(point){
|
|
|
- if(!isInput){
|
|
|
- var fe =document.getElementById("tdp_"+point);
|
|
|
- var ch=getInputPointEle();
|
|
|
- fe.innerText=""
|
|
|
+
|
|
|
+ function modifyPoint(point) {
|
|
|
+ if (!isInput) {
|
|
|
+ var fe = document.getElementById("tdp_" + point);
|
|
|
+ var ch = getInputPointEle();
|
|
|
+ fe.innerText = ""
|
|
|
fe.appendChild(ch);
|
|
|
- ch.value=point
|
|
|
- ch.id="input_"+point;
|
|
|
- fe =document.getElementById("td_"+point);
|
|
|
- ch=getInputValueEle();
|
|
|
- ch.value=fe.title;
|
|
|
- fe.innerText=""
|
|
|
- fe.id=""
|
|
|
+ ch.value = point
|
|
|
+ ch.id = "input_" + point;
|
|
|
+ fe = document.getElementById("td_" + point);
|
|
|
+ ch = getInputValueEle();
|
|
|
+ ch.value = fe.title;
|
|
|
+ fe.innerText = ""
|
|
|
+ fe.id = ""
|
|
|
fe.appendChild(ch);
|
|
|
- isInput=true;
|
|
|
+ isInput = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
document.getElementById("addBut").addEventListener("click", addPoint);
|
|
|
document.getElementById("save").addEventListener("click", savePoint);
|
|
|
|
|
|
+ function downloadFile(fileName, context) {
|
|
|
+ var link = document.createElement('a');
|
|
|
+ link.download = fileName;
|
|
|
+ link.style.display = 'none';
|
|
|
+ link.href = URL.createObjectURL(new Blob([context]));
|
|
|
+ document.body.appendChild(link);
|
|
|
+ link.click();
|
|
|
+ document.body.removeChild(link);
|
|
|
+ }
|
|
|
+
|
|
|
+ function exportConfig() {
|
|
|
+ ajax({
|
|
|
+ type: "GET",
|
|
|
+ url: "/getAllPoints",
|
|
|
+ success: function (msg) {
|
|
|
+ downloadFile("104slaver.conf", msg)
|
|
|
+ },
|
|
|
+ error: function () {
|
|
|
+ alert("获取配置失败")
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ function uploadConfig() {
|
|
|
+ var f = document.getElementById("configFileInput");
|
|
|
+ var file = f.files[0]
|
|
|
+ if (file != null && file.size < 1024 * 1024) {
|
|
|
+ var fileReader = new FileReader()
|
|
|
+ fileReader.readAsText(file)
|
|
|
+ fileReader.onload = function () {
|
|
|
+ try {
|
|
|
+ var str = fileReader.result
|
|
|
+ var re = JSON.parse(str);
|
|
|
+ ajax({
|
|
|
+ type: "POST",
|
|
|
+ url: "/uploadConfig",
|
|
|
+ data: str,
|
|
|
+ dataType: 'json',
|
|
|
+ contentType: 'application/json',
|
|
|
+ success: function (msg) {
|
|
|
+ location.reload();
|
|
|
+ },
|
|
|
+ error: function () {
|
|
|
+ alert("获取配置失败")
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } catch (e) {
|
|
|
+ alert(e)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
</script>
|