From 3da7053984cc807976c1557214904b87abdfa611 Mon Sep 17 00:00:00 2001 From: haha Date: Fri, 26 Jul 2024 22:56:44 +0800 Subject: [PATCH] update code --- package.json | 1 + public/onnx/main.js | 58 +- public/onnx/onnx.html | 1763 +++++++++++++++---- src/api/task/index.js | 53 +- src/views/connection/detail.vue | 517 +++--- src/views/connection/index.vue | 84 +- src/views/connection/nodePanel.vue | 317 ++-- src/views/model/modelDetail.vue | 265 +-- src/views/simulationEvaluation/addStep2.vue | 93 +- src/views/simulationEvaluation/addStep3.vue | 1 + yarn.lock | 5 + 11 files changed, 2122 insertions(+), 1035 deletions(-) diff --git a/package.json b/package.json index 58a3593..6cb8f9b 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "color": "^4.2.3", "echarts": "^5.5.0", "element-plus": "^2.7.2", + "js-md5": "^0.8.3", "lodash-es": "^4.17.21", "net": "^1.0.2", "nprogress": "^0.2.0", diff --git a/public/onnx/main.js b/public/onnx/main.js index 1321dd4..a88fee9 100644 --- a/public/onnx/main.js +++ b/public/onnx/main.js @@ -1 +1,57 @@ -function init(){var s=location.search;var url="";var onnxModelName="";if(s.indexOf("=")>=0){url=s.substring(s.indexOf("=")+1);if(url.toLocaleLowerCase().indexOf(".onnx")>=0){onnxModelName=url.substring(url.lastIndexOf("/")+1)}else{console.error("使用方法:onnx.html?url=[onnx路径]");return}}else{console.error("使用方法:onnx.html?url=[onnx路径]");return}document.body.title=onnxModelName;var http=new XMLHttpRequest;http.responseType="arraybuffer";http.open("GET",url);http.onload=function(){if(http.status==200){var reader=proto.protobuf.Reader.create(new Uint8Array(http.response));var onnxProtoModel=window.proto.onnx.ModelProto.decode(reader);let{locations,graphs}=window.getExternalLocations(onnxProtoModel);let model=new window.onnx.Model(onnxProtoModel,graphs,new Map);let host=window;let view=new window.View(host);view.start().then(data=>{view.open(model,onnxModelName)}).catch(err=>{console.log(err)});window.mainView=view}};http.send()}function exportImg(file,blob){const element=this.document.createElement("a");element.download=file;element.href=URL.createObjectURL(blob);this.document.body.appendChild(element);element.click();this.document.body.removeChild(element)}function toggleMenu(){let el=document.getElementById("menu");if(el.style.display=="none"){el.style.display="block";updateState()}else{el.style.display="none"}}function doToggle(att){mainView.toggle(att);updateState()}function updateState(){var op=mainView.options;document.getElementById("opAtt").innerText=op.attributes?"Hide Attributes":"Show Attributes";document.getElementById("opWeight").innerText=op.weights?"Hide Weights":"Show Weights";document.getElementById("opName").innerText=op.names?"Hide Names":"Show Names";document.getElementById("opDir").innerText=op.direction=="vertical"?"Show Horizontal":"Show Vertical";document.getElementById("opMouse").innerText=op.mousewheel=="scroll"?"Mouse Wheel: Zoom":"Mouse Wheel: Scroll"}init(); \ No newline at end of file +function init() { + var s = location.search; + var url = ""; + var onnxModelName = ""; + if (s.indexOf("=") >= 0) { + url = s.substring(s.indexOf("=") + 1); + } else { + console.error("使用方法:onnx.html?id=[模型ID]") + return; + } + + document.body.title = onnxModelName; + var accessToken = localStorage.getItem("accessToken"); + var http = new XMLHttpRequest(); + http.responseType = "json" + + http.open('GET', MODELDOWNLOADAPI + `${url}/download`); + http.setRequestHeader("Authorization", accessToken); + http.onload = function () { + if (http.status == 200) { + var reader = proto.protobuf.Reader.create(base64ToUint8Array(http.response.data.file_content)); + var onnxProtoModel = window.proto.onnx.ModelProto.decode(reader); + let { locations, graphs } = window.getExternalLocations(onnxProtoModel); + let model = new window.onnx.Model(onnxProtoModel, graphs, new Map()); + + let host = window; + let view = new window.View(host); + view.start().then((data) => { + view.open(model, onnxModelName); + }).catch((err) => { + console.log(err); + }) + window.mainView = view; + } + }; + http.send(); +} + +function base64ToUint8Array(base64String) { + try { + let padding = '='.repeat((4 - base64String.length % 4) % 4); + let base64 = (base64String + padding) + .replace(/\-/g, '+') + .replace(/_/g, '/'); + let rawData = atob(base64); + let outputArray = new Uint8Array(rawData.length); + for (let i = 0; i < rawData.length; ++i) { + outputArray[i] = rawData.charCodeAt(i); + } + return outputArray; + } + catch (e) { + throw e; + } +} + +init(); \ No newline at end of file diff --git a/public/onnx/onnx.html b/public/onnx/onnx.html index ca8d9df..67fade4 100644 --- a/public/onnx/onnx.html +++ b/public/onnx/onnx.html @@ -2,392 +2,1403 @@ - onnx_viewer - - + onnx_viewer + + - - + + - - - - - + + + + + - + -
- +
+ +
+ +
+ + + +
+
- +