jinlin
2024-08-19 150576686b456ac21f6a687a16ee26eb5eb80c07
修改
6个文件已修改
418 ■■■■ 已修改文件
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/taskReliability/ModelRbd.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/taskReliability/SchemeCompar.vue 150 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/taskReliability/SimulatAssess.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/taskReliability/SimulatCurve.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/taskReliability/TimeDiagram.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java
@@ -76,8 +76,6 @@
    @Autowired
    private TaskService taskService;
    @Autowired
    private XhProductModelService xhProductModelService;
    @Autowired
    private SimulatAssessTaskPhaseModelService simulatAssessTaskPhaseModelService;
    @Autowired
    private TaskPhaseDao taskPhaseDao;
@@ -184,7 +182,7 @@
        this.getPetsInfo();
        double x1 = 0;
        double x2 = 0;
        int y = 0;
        int y = -10;
        int groupY = 0;
        int spaceHeight = 20;
        int groupHeight = 20;
@@ -225,14 +223,13 @@
            JsonUtils2.setJsonValueByPath(textJson, "position/x".split("/"), 20);
            JsonUtils2.setJsonValueByPath(textJson, "position/y".split("/"), y - 15);
            jsonArray.add(textJson);
        }
        //图例
        int spaceWitdth = 80;
        x1 = -spaceWitdth;
        x2 = -11;
        y = -130;
        y = -110;
        String[] tlArr = "O,F,I,S,M".split(",");
        for (String s : tlArr) {
            JSONObject f = templetsMap.get(s);
@@ -245,12 +242,12 @@
        //阶段模型及刻度
        x1 = 0;
        x2 = 0;
        double y1 = -100;
        y = -70;
        double y1 = -80;
        y = -60;
        double y2 = -50;
        JSONObject modelJson = new JSONObject(templetsStrMap.get("model"));
        setlineXy(modelJson, 2, y1, 2, y2, null);
        setlineXy(modelJson, 1, y1, 1, y2, null);
        jsonArray.add(modelJson);
        double totalHours = 0;
        for (int i = 0; i < modelDtoList.size(); i++) {
@@ -274,17 +271,18 @@
                modelName = modelRbd.getModelName();
                modelId = modelRbd.getId().toString();
            }
            Map<String, Integer> mapSpace = GetStringSpace.getStringSpaceSize(modelName, null, 18);
            Map<String, Integer> mapSpace = GetStringSpace.getStringSpaceSize(modelName, null, 12);
            JSONObject textJson = new JSONObject(templetsStrMap.get("text"));
            JsonUtils2.setJsonValueByPath(textJson, "data/dataId".split("/"), modelId);
            JsonUtils2.setJsonValueByPath(textJson, "id".split("/"), UUIDUtil.generateId().toString());
            JsonUtils2.setJsonValueByPath(textJson, "attrs/label/textWrap/text".split("/"), modelName);
            JsonUtils2.setJsonValueByPath(textJson, "attrs/label/textWrap/text".split("/"), "模型"+(i+1));
            JsonUtils2.setJsonValueByPath(textJson, "attrs/label/textWrap/modelName".split("/"), modelName);
            JsonUtils2.setJsonValueByPath(textJson, "size/width".split("/"), mapSpace.get("width") + 20);
            JsonUtils2.setJsonValueByPath(textJson, "size/width".split("/"), mapSpace.get("width")+10);
            double x11 = x1 + ((gkPoint - mapSpace.get("width") - 20) / 2);
            double x11 = x1 + ((gkPoint - mapSpace.get("width")+12) / 2);
            JsonUtils2.setJsonValueByPath(textJson, "position/x".split("/"), x11);
            JsonUtils2.setJsonValueByPath(textJson, "position/y".split("/"), y1);
            JsonUtils2.setJsonValueByPath(textJson, "position/y".split("/"), y1-10);
            jsonArray.add(textJson);
            x1 = x2;
        }
@@ -292,7 +290,8 @@
        setlineXy(modelJson3, 0, y, x2, y, null);
        jsonArray.add(modelJson3);
        Integer curPointHour = 50, periodHour = 50;
        //刻度
        Integer curPointHour = 100, periodHour = 100;
        while (curPointHour < totalHours) {
            JSONObject modelJson4 = new JSONObject(templetsStrMap.get("model"));
            double x = curPointHour * pointNumPerHour;
@@ -308,7 +307,7 @@
            double x11 = x - mapSpace.get("width") / 2 - 5;
            JsonUtils2.setJsonValueByPath(textJson, "position/x".split("/"), x11);
            JsonUtils2.setJsonValueByPath(textJson, "position/y".split("/"), y2);
            JsonUtils2.setJsonValueByPath(textJson, "position/y".split("/"), y2-10);
            jsonArray.add(textJson);
            curPointHour += periodHour;
@@ -473,209 +472,6 @@
    public void updateDiagram(TimeDiagram diagram) {
        timeDiagramDao.updateById(diagram);
    }
/*    public void combineDiagram(TimeDiagram networkDiagram) {
        if (!networkDiagram.getDiagramId().equals(1L) && !networkDiagram.getDiagramId().equals(2L))
            return null;
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("projectId", networkDiagram.getProjectId());
        ProjectNetworkDiagram combineDiagram = null;
        params.put("diagramId", 100);
        List<ProjectNetworkDiagram> list = baseDao.getList(params);
        if (list.size() > 0) {
            combineDiagram = list.get(0);
        }
        ProjectNetworkDiagram phaseDiagram = null;
        params.put("diagramId", 1);
        List<ProjectNetworkDiagram> list1 = baseDao.getList(params);
        if (list1.size() > 0) {
            phaseDiagram = list1.get(0);
        }
        ProjectNetworkDiagram inspectDiagram = null;
        params.put("diagramId", 2);
        List<ProjectNetworkDiagram> list2 = baseDao.getList(params);
        if (list2.size() > 0) {
            inspectDiagram = list2.get(0);
        }
        String jsonStr = "";
        Map<String, Map<String, String>> leftMap = new Hashtable<>();
        Map<String, Map<String, String>> rightMap = new Hashtable<>();
        if (phaseDiagram != null && inspectDiagram != null) {
            String inspectJsonStr = inspectDiagram.getContent();
            JSONObject inspectJsonObj = new JSONObject(inspectJsonStr);
            JSONArray inspectJsonArray = inspectJsonObj.getJSONArray("cells");
            String phaseJsonStr = phaseDiagram.getContent();
            JSONObject phaseJsonObj = new JSONObject(phaseJsonStr);
            JSONArray phaseJsonArray = phaseJsonObj.getJSONArray("cells");
            JSONArray leftArray = inspectJsonArray.stream().filter(iter -> "edge".equals(((JSONObject) iter).get("shape"))
                    && "left".equals(((JSONObject) iter).get("phaseType"))).collect(Collectors.toCollection(JSONArray::new));
            int leftPhaseMaxX = 0;
            int phaseY = 0;
            String leftPhaseMaxId = "";
            for (int i = 0; i < leftArray.size(); i++) {
                Map<String, String> tmpMap = new Hashtable<>();
                JSONObject lineObject = (JSONObject) leftArray.get(i);
                String phaseId = lineObject.getStr("phaseId");
                JSONArray phaseArray = phaseJsonArray.stream().filter(iter -> "custom-circle".equals(((JSONObject) iter).get("shape"))
                        && phaseId.equals(((JSONObject) iter).get("id"))).collect(Collectors.toCollection(JSONArray::new));
                tmpMap.put("lineId", lineObject.getStr("id"));
                tmpMap.put("phaseId", phaseId);
                String portId = "";
                if (phaseArray.size() > 0) {
                    JSONObject phaseObject = (JSONObject) phaseArray.get(0);
                    Object portIdObject = JsonUtils2.getArrJsonValueByPath(phaseObject, "ports/items/".split("/"), "group", "right", "id");
                    //portId = portIdObject == null ? "" : portIdObject.toString();
                    Object xObject = JsonUtils2.getJsonValueByPath(phaseObject, "position/x".split("/"));
                    int x = xObject == null ? 0 : Convert.toInt(xObject.toString());
                    if (x > leftPhaseMaxX) {
                        leftPhaseMaxX = x;
                        leftPhaseMaxId = phaseObject.getStr("id");
                    }
                    if (phaseY == 0) {
                        Object yObject = JsonUtils2.getJsonValueByPath(phaseObject, "position/y".split("/"));
                        phaseY = yObject == null ? 0 : Convert.toInt(yObject.toString());
                    }
                }
                tmpMap.put("portId", portId);
                leftMap.put(lineObject.getStr("id"), tmpMap);
            }
            JSONArray rightArray = inspectJsonArray.stream().filter(iter -> "edge".equals(((JSONObject) iter).get("shape"))
                    && "right".equals(((JSONObject) iter).get("phaseType"))).collect(Collectors.toCollection(JSONArray::new));
            int rightPhaseMinX = 10000000;
            String rightPhaseMinId = "";
            for (int i = 0; i < rightArray.size(); i++) {
                Map<String, String> tmpMap = new Hashtable<>();
                JSONObject lineObject = (JSONObject) rightArray.get(i);
                String phaseId = lineObject.getStr("phaseId");
                JSONArray phaseArray = phaseJsonArray.stream().filter(iter -> "custom-circle".equals(((JSONObject) iter).get("shape"))
                        && phaseId.equals(((JSONObject) iter).get("id"))).collect(Collectors.toCollection(JSONArray::new));
                tmpMap.put("lineId", lineObject.getStr("id"));
                tmpMap.put("phaseId", phaseId);
                String portId = "";
                if (phaseArray.size() > 0) {
                    JSONObject phaseObject = (JSONObject) phaseArray.get(0);
                    Object portIdObject = JsonUtils2.getArrJsonValueByPath(phaseObject, "ports/items/".split("/"), "group", "left", "id");
                    //portId = portIdObject == null ? "" : portIdObject.toString();
                    Object xObject = JsonUtils2.getJsonValueByPath(phaseObject, "position/x".split("/"));
                    int x = xObject == null ? 100000000 : Convert.toInt(xObject.toString());
                    if (x < rightPhaseMinX) {
                        rightPhaseMinX = x;
                        rightPhaseMinId = phaseObject.getStr("id");
                    }
                }
                tmpMap.put("portId", portId);
                rightMap.put(lineObject.getStr("id"), tmpMap);
            }
            JSONArray startArray = inspectJsonArray.stream().filter(iter -> "custom-circle".equals(((JSONObject) iter).get("shape"))
                    && "10000".equals(((JSONObject) iter).get("id"))).collect(Collectors.toCollection(JSONArray::new));
            int inspectBeginX = 0;
            int inspectY = 0;
            if (startArray.size() > 0) {
                JSONObject inspectObject = (JSONObject) startArray.get(0);
                Object xObject = JsonUtils2.getJsonValueByPath(inspectObject, "position/x".split("/"));
                inspectBeginX = xObject == null ? 0 : Convert.toInt(xObject.toString());
                Object yObject = JsonUtils2.getJsonValueByPath(inspectObject, "position/y".split("/"));
                inspectY = yObject == null ? 0 : Convert.toInt(yObject.toString());
            }
            JSONArray endArray = inspectJsonArray.stream().filter(iter -> "custom-circle".equals(((JSONObject) iter).get("shape"))
                    && "20000".equals(((JSONObject) iter).get("id"))).collect(Collectors.toCollection(JSONArray::new));
            int inspectEndX = 10000000;
            if (endArray.size() > 0) {
                JSONObject inspectObject = (JSONObject) endArray.get(0);
                Object xObject = JsonUtils2.getJsonValueByPath(inspectObject, "position/x".split("/"));
                inspectEndX = xObject == null ? 100000000 : Convert.toInt(xObject.toString());
            }
            JSONObject beginObject = null;
            JSONObject endObject = null;
            for (int i = 0; i < inspectJsonArray.size(); i++) {
                JSONObject inspectObject = (JSONObject) inspectJsonArray.get(i);
                String inspectObjectId = inspectObject.getStr("id");
                if (leftMap.get(inspectObjectId) != null) {
                    JsonUtils2.setJsonValueByPath(inspectObject, "target/cell".split("/"), leftMap.get(inspectObjectId).get("phaseId"));
                    JsonUtils2.setJsonValueByPath(inspectObject, "target/port".split("/"), leftMap.get(inspectObjectId).get("portId"));
                }
                if (rightMap.get(inspectObjectId) != null) {
                    JsonUtils2.setJsonValueByPath(inspectObject, "target/cell".split("/"), rightMap.get(inspectObjectId).get("phaseId"));
                    JsonUtils2.setJsonValueByPath(inspectObject, "target/port".split("/"), rightMap.get(inspectObjectId).get("portId"));
                }
                if ("10000".equals(inspectObjectId)) {
                    //inspectJsonArray.remove(inspectObject);
                    beginObject = inspectObject;
                }
                if ("20000".equals(inspectObjectId)) {
                    //inspectJsonArray.remove(inspectObject);
                    endObject = inspectObject;
                }
            }
            if (endObject != null)
                inspectJsonArray.remove(endObject);
            if (beginObject != null)
                inspectJsonArray.remove(beginObject);
            for (int i = 0; i < phaseJsonArray.size(); i++) {
                JSONObject phaseObject = (JSONObject) phaseJsonArray.get(i);
                if ("custom-circle".equals(phaseObject.getStr("shape"))) {
                    Object xObject = JsonUtils2.getJsonValueByPath(phaseObject, "position/x".split("/"));
                    Object yObject = JsonUtils2.getJsonValueByPath(phaseObject, "position/y".split("/"));
                    int x = Convert.toInt(xObject.toString());
                    int y = Convert.toInt(yObject.toString());
                    if (x <= leftPhaseMaxX)
                        x = x + (inspectBeginX - leftPhaseMaxX);
                    else if (x >= rightPhaseMinX)
                        x = x + (inspectEndX - rightPhaseMinX);
                    y = y + (inspectY - phaseY);
                    JsonUtils2.setJsonValueByPath(phaseObject, "position/x".split("/"), x);
                    JsonUtils2.setJsonValueByPath(phaseObject, "position/y".split("/"), y);
                }
            }
            for (int i = 0; i < phaseJsonArray.size(); i++) {
                JSONObject phaseObject = (JSONObject) phaseJsonArray.get(i);
                if ("edge".equals(phaseObject.getStr("shape"))) {
                    Object sourceId = JsonUtils2.getJsonValueByPath(phaseObject, "source/cell".split("/"));
                    Object targetId = JsonUtils2.getJsonValueByPath(phaseObject, "target/cell".split("/"));
                    if (leftPhaseMaxId.equals(sourceId) && rightPhaseMinId.equals(targetId)) {
                        phaseJsonArray.remove(phaseObject);
                    }
                }
            }
            inspectJsonArray.addAll(phaseJsonArray);
            jsonStr = inspectJsonObj.toString();
        } else if (phaseDiagram != null) {
            jsonStr = phaseDiagram.getContent();
        } else if (inspectDiagram != null) {
            jsonStr = inspectDiagram.getContent();
        }
        if (combineDiagram != null) {
            combineDiagram.setContent(jsonStr);
            baseDao.updateById(combineDiagram);
        } else {
            combineDiagram = new ProjectNetworkDiagram();
            combineDiagram.setProjectId(networkDiagram.getProjectId());
            combineDiagram.setDiagramId(100L);
            combineDiagram.setContent(jsonStr);
            baseDao.insert(combineDiagram);
        }
        return combineDiagram;
    }*/
    @Transactional(rollbackFor = Exception.class)
    public Result simulate(SimulatAssess simulatAssess) {
@@ -1217,6 +1013,7 @@
            xml = IOUtils.toString(in);
        } catch (IOException e) {
            e.printStackTrace();
            throw new RenException("文件不存在或者文件打不开");
        } finally {
            try {
                in.close();
@@ -1302,8 +1099,8 @@
            simulatAssess = this.getByTaskId(taskModelId);
            SimulaDataDto resultData;
            if (showProductId!=null){
                simulatAssess.setShowProductId(showProductId);
                resultData =this.getResultData(simulatAssess);
                simulatAssess.setProductId(showProductId);
                resultData =this.getResultXML(simulatAssess);
            }else{
                resultData = this.getResultXML(simulatAssess);
            }
@@ -1330,7 +1127,7 @@
        if (simulatAssess.getDataType() != null && simulatAssess.getDataType().equals("fz")) {
            Integer num = this.getNumById(simulatAssess.getProductId(), simulatAssess.getTaskModelId());
            simulatAssess.setName("仿真记录" + (num + 1));
            this.insert(simulatAssess);
            this.update(simulatAssess);
        }
        String filePath = path + "/" + simulatAssess.getId() + "/" + "result.xml";
        String xml = null;
web/src/views/modules/taskReliability/ModelRbd.vue
@@ -44,7 +44,7 @@
            </el-table>
            <!-- 弹窗, 新增 / 修改 -->
            <add-or-update @refreshDataList="table.query" ref="AddOrUpdate"/>
            <el-dialog v-dialogDrag title="模型设计" top="1vh" width='95%' :visible.sync="dialogVisible2" v-if="dialogVisible2">
            <el-dialog v-dialogDrag :title="title" top="1vh" width='95%' :visible.sync="dialogVisible2" v-if="dialogVisible2">
              <RBDEditImg ref="rbdEditImg" @refreshDataList="table.query"></RBDEditImg>
            </el-dialog>
          </zt-table-wraper>
@@ -63,6 +63,7 @@
    data() {
      return {
        dialogVisible2: false,
        title:'',
        dataForm: {
          modelName: '',
          modelState:'',
@@ -94,6 +95,7 @@
      },
      drawRBD(row) {
        this.dialogVisible2 = true
        this.title=row.modelName + '模型设计'
        this.$nextTick(() => {
          this.$refs.rbdEditImg.init(row)
        })
web/src/views/modules/taskReliability/SchemeCompar.vue
@@ -2,72 +2,72 @@
  <div class="fa-card-a">
    <el-row :gutter="5">
      <el-form :inline="true" :model="dataForm" ref="dataForm" :disabled="dataForm.disabled">
          <zt-form-item label="产品节点" prop="productId" width="100px">
            <zt-select v-model="dataForm.productId" :datas="productList" @change="onProductSelected"/>
          </zt-form-item>
          <zt-form-item label="可靠性方案" prop="taskModelId" width="500px">
            <zt-select style="width: 400px" v-model="dataForm.taskModelId" :datas="schemeList"
                       @change="onTaskSelected" :multiple="true"/>
          </zt-form-item>
          <zt-form-item>
            <zt-button @click="compair()">方案对比</zt-button>
          </zt-form-item>
        </el-form>
          <el-col :span="4">
            <div style="margin-right: 5px;height: calc(100vh - 230px)" v-if="isSelect">
              <product-model-tree @on-selected="onTreeSelected" showXdy="false"
                                  ref="ProductModelTree" :isShow="false" basic="4" :productId="dataForm.productId"/>
        <zt-form-item label="产品节点" prop="productId" width="100px">
          <zt-select v-model="dataForm.productId" :datas="productList" @change="onProductSelected"/>
        </zt-form-item>
        <zt-form-item label="可靠性方案" prop="taskModelId" width="500px">
          <zt-select style="width: 400px" v-model="dataForm.taskModelId" :datas="schemeList"
                     @change="onTaskSelected" :multiple="true"/>
        </zt-form-item>
        <zt-form-item>
          <zt-button @click="compair()">方案对比</zt-button>
        </zt-form-item>
      </el-form>
      <el-col :span="4">
        <div style="margin-right: 5px;height: calc(100vh - 230px)" v-if="isSelect">
          <product-model-tree @on-selected="onTreeSelected" showXdy="false"
                              ref="ProductModelTree" :isShow="false" basic="4" :productId="dataForm.productId"/>
        </div>
      </el-col>
      <el-col :span="20">
        <div class="fa-card-a" style="position: relative;height: calc(100vh - 230px)">
          <div v-if="isShow">
            <el-button v-if="isZk" type="info" size="small" icon="el-icon-caret-bottom"
                       style="position: absolute;right: 10%;top: 10%;z-index: 1" @click="zk()"></el-button>
            <el-button v-if="!isZk" type="info" size="small" icon="el-icon-caret-right"
                       style="position: absolute;right: 10%;top: 10%;z-index: 1" @click="zk()"></el-button>
            <div v-if="isZk" style="position: absolute;right: 10%;top: 15%">
              <el-table :data="tableData" border style="width: 500px">
                <el-table-column
                  prop="name"
                  label="方案名称"
                >
                </el-table-column>
                <el-table-column
                  prop="mtbf"
                  label="MTBF"
                  width="100px"
                  align="right">
                  <template slot-scope="scope">
                    <span>{{  keepNumber(scope.row.mtbf) }}</span>
                  </template>
                </el-table-column>
                <el-table-column
                  prop="mttr"
                  label="MTTR"
                  width="100px"
                  align="right">
                  <template slot-scope="scope">
                    <span>{{  keepNumber(scope.row.mttr) }}</span>
                  </template>
                </el-table-column>
                <el-table-column
                  prop="msr"
                  label="MSR"
                  width="100px"
                  align="right">
                  <template slot-scope="scope">
                    <span>{{  keepNumber(scope.row.mttr) }}</span>
                  </template>
                </el-table-column>
              </el-table>
            </div>
          </el-col>
          <el-col :span="20">
            <div class="fa-card-a" style="position: relative;height: calc(100vh - 230px)">
              <div v-if="isShow">
                <el-button v-if="isZk" type="info" size="small" icon="el-icon-caret-bottom"
                           style="position: absolute;right: 10%;top: 10%;z-index: 1" @click="zk()"></el-button>
                <el-button v-if="!isZk" type="info" size="small" icon="el-icon-caret-right"
                           style="position: absolute;right: 10%;top: 10%;z-index: 1" @click="zk()"></el-button>
                <div v-if="isZk" style="position: absolute;right: 10%;top: 15%">
                  <el-table :data="tableData" border style="width: 500px">
                    <el-table-column
                      prop="name"
                      label="方案名称"
                    >
                    </el-table-column>
                    <el-table-column
                      prop="mtbf"
                      label="MTBF"
                      width="100px"
                      align="right">
                      <template slot-scope="scope">
                        <span>{{  keepNumber(scope.row.mtbf) }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      prop="mttr"
                      label="MTTR"
                      width="100px"
                      align="right">
                      <template slot-scope="scope">
                        <span>{{  keepNumber(scope.row.mttr) }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      prop="msr"
                      label="MSR"
                      width="100px"
                      align="right">
                      <template slot-scope="scope">
                        <span>{{  keepNumber(scope.row.mttr) }}</span>
                      </template>
                    </el-table-column>
                  </el-table>
                </div>
              </div>
              <div :disabled="isShow">
                <div class="echart" id="myChart" :style="myChartStyle"></div>
              </div>
            </div>
          </el-col>
          </div>
          <div :disabled="isShow">
            <div class="echart" id="myChart" :style="myChartStyle"></div>
          </div>
        </div>
      </el-col>
    </el-row>
  </div>
</template>
@@ -115,21 +115,14 @@
    },
    methods: {
      async onTreeSelected(data) {
      onTreeSelected(data) {
        if (this.dataForm.taskModelId.length > 0) {
          console.log(this.dataForm.taskModelId)
          console.log(data, 'onProductSelected')
          this.dataForm.showProductId = data.id
          let params = {
            taskList: this.dataForm.taskModelId,
            showProductId: this.dataForm.showProductId
          }
          console.log(this.dataForm.taskModelId, 'this.dataForm.taskModelId')
          let res = await this.$http.get('/taskReliability/SimulatAssess/SchemeCompar', {params: params})
          console.log(res.data, "res")
          this.xDataList = res.data.xdataList
          this.seriesList = res.data.curveList
          this.tableData = res.data.dataList
          this.$nextTick(() => {
            this.compair()
          })
        }
      },
      // 获取信息
@@ -167,7 +160,7 @@
      async compair() {
        let params = {
          taskList: this.dataForm.taskModelId,
          showProductId: null
          showProductId: this.dataForm.showProductId
        }
        console.log(this.dataForm.taskModelId, 'this.dataForm.taskModelId')
        let res = await this.$http.get('/taskReliability/SimulatAssess/SchemeCompar', {params: params})
@@ -176,7 +169,6 @@
        this.seriesList = res.data.curveList
        this.tableData = res.data.dataList
        this.isShow = true
        this.option = {
          xAxis: {
@@ -184,7 +176,7 @@
            name: '仿真总时长',
            type: 'category',
            axisLabel: {
              formatter: function(value) {
              formatter: function (value) {
                // 将 X 轴刻度值格式化为保留两位小数的字符串
                return parseFloat(value).toFixed(2);
              }
web/src/views/modules/taskReliability/SimulatAssess.vue
@@ -61,8 +61,8 @@
          showProductId: '',
          taskModelId: '',
          dataType: 'fz',
          samplPeriod: '',
          simulatFrequency: '',
          samplPeriod: '10',
          simulatFrequency: 500,
          simulatTime: ''
        }
      }
web/src/views/modules/taskReliability/SimulatCurve.vue
@@ -53,11 +53,18 @@
          },
          xAxis: {
            data: this.xDataList,
            name: '仿真总时长'
            name: '仿真总时长',
            type: 'category',
            axisLabel: {
              formatter: function(value) {
                // 将 X 轴刻度值格式化为保留两位小数的字符串
                return parseFloat(value).toFixed(2);
              }
            }
          },
          yAxis: {
            name: '',
            type:"value",
            name: '可靠度',
          },
          series: [
            {
web/src/views/modules/taskReliability/TimeDiagram.vue
@@ -42,7 +42,7 @@
        </div>
      </div>
    </el-row>
    <el-dialog v-dialogDrag title="模型设计" top="1vh" width='95%' :visible.sync="dialogVisible2" v-if="dialogVisible2">
    <el-dialog v-dialogDrag :title="title" top="1vh" width='95%' :visible.sync="dialogVisible2" v-if="dialogVisible2">
      <model-view ref="modelView"></model-view>
    </el-dialog>
  </div>
@@ -58,6 +58,7 @@
  export default {
    data() {
      return {
        title:'',
        knob:HTMLDivElement,
        dialogVisible2: false,
        timers: '',
@@ -136,7 +137,7 @@
          height: document.documentElement.clientHeight - 220,
          // async: true,
          grid: {
            visible: true,
            visible: false,
          },
          embedding: {
            enabled: true,
@@ -443,8 +444,9 @@
            this.dialogVisible2 = true
            let param = {
              id: node.getData().dataId,
              modelName: node.attr('label/textWrap/text'),
              modelName: node.attr('label/textWrap/modelName'),
            }
            this.title=node.attr('label/textWrap/modelName') + "模型设计"
            this.$nextTick(() => {
              this.$refs.modelView.init(param)
            })