소스 검색

1维瓦斯爆炸

huangxingxing 8 달 전
부모
커밋
11aab577e8
1개의 변경된 파일74개의 추가작업 그리고 0개의 파일을 삭제
  1. 74 0
      src/control/gassControl.js

+ 74 - 0
src/control/gassControl.js

@@ -0,0 +1,74 @@
+//火灾 控制类
+import vtkUnstructuredDataReader from "../reader/UnstructuredDataReader.js";
+import velocityDataReader from "../reader/VelocityDataReader.js";
+import { request, uploadFile } from "@/utils/request";
+
+export class gassControl {
+    constructor() {
+        //事故编号
+        this.aid = 5;
+        //当前步数
+        this.step;
+        //总步数
+        this.stepsum;
+        //url
+        this._url = import.meta.env.VITE_BASE_URL + "/TransServlet?channelNo=service&clientToken=e47b87eec69545559d1e81e56626da68&userId=5f06c8bc77234f969d13e160b54c27e3&aid=";
+        //几何数据
+        this.polydata;
+        //Scalars 数据 array[setp]=Map(scalars,value[points]=array),
+        this.scalars = new Map();
+        this.scalar = new Map();
+        this.reader = vtkUnstructuredDataReader.newInstance();
+    }
+    //获取总步数
+    async getStepsum(aid) {
+        this.aid =aid;
+        const params = {
+            transCode: 'D40003',
+            aid: this.aid,
+        }
+        request(params).then((res) => {
+             this.stepsum=res.steps;
+        });
+    }
+    //几何数据初始化
+    async initGemetry(aid) {
+        this.aid =aid;
+        const url = this._url + this.aid + "&transCode=D400001";
+        await this.reader.setUrl(url).then(() => {
+            this.polydata = this.reader.getOutputData(0);
+        });
+    }
+    //获取第几步标量数据
+    async getScalrsByStep(step) {
+        this.step = step;
+        if (this.scalars.get(step)) {
+            this.scalar = this.scalars.get(step);
+        } else {
+            const url = this._url + this.aid + "&transCode=D40002&step=" + this.step;
+            await this.reader.setUrl(url).then(() => {
+                const scalarMap = this.reader.getOutputData(1);
+                scalarMap.forEach(function(scalarVarry, skey) {
+                    const replacedNumbers = scalarVarry.map(
+                        value => {
+                                if(isNaN(value)){
+                                    return 0;
+                                }else{
+                                    return value 
+                                }
+                            }
+                    );
+                    scalarMap.set(skey,replacedNumbers);
+
+                });
+                this.scalar = scalarMap;
+                this.scalars.set(step, scalarMap);
+                // console.log("获取"+ this.scalar);
+            });
+        }
+    }
+}
+
+export function createGassControl() {
+    return new gassControl();
+}