|  |  |  | 
|---|
|  |  |  | import io.swagger.annotations.ApiModelProperty; | 
|---|
|  |  |  | import lombok.Data; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.math.BigDecimal; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Data | 
|---|
|  |  |  | public class ConditionDto { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private String tjlx; | 
|---|
|  |  |  | private Double specifiedValue; | 
|---|
|  |  |  | private Double minAccepValue; | 
|---|
|  |  |  | private Double productionRisk; | 
|---|
|  |  |  | private Double userRisk; | 
|---|
|  |  |  | private BigDecimal productionRisk; | 
|---|
|  |  |  | private BigDecimal userRisk; | 
|---|
|  |  |  | private Integer showFailureTime; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | import lombok.Data; | 
|---|
|  |  |  | import lombok.EqualsAndHashCode; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.math.BigDecimal; | 
|---|
|  |  |  | import java.util.Date; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | private Integer pc; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ApiModelProperty(value = "") | 
|---|
|  |  |  | private Double pa; | 
|---|
|  |  |  | private BigDecimal pa; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ApiModelProperty(value = "") | 
|---|
|  |  |  | private Double value; | 
|---|
|  |  |  | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import com.zt.common.db.query.QueryFilter; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.math.BigDecimal; | 
|---|
|  |  |  | import java.math.RoundingMode; | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.Formatter; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  | import java.util.stream.Stream; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | public List<ResultDto> getResult(ConditionDto dto) { | 
|---|
|  |  |  | List<ResultDto> result = new ArrayList<>(); | 
|---|
|  |  |  | List<TestScheme> list = baseDao.getList(); | 
|---|
|  |  |  | if (dto.getTjlx().equals("条件1")) { | 
|---|
|  |  |  | if (dto.getTjlx().equals("按风险名义值查询")) { | 
|---|
|  |  |  | result = this.getCondition1(dto, list); | 
|---|
|  |  |  | } else if (dto.getTjlx().equals("条件2")) { | 
|---|
|  |  |  | } else if (dto.getTjlx().equals("不限定生产方风险查询")) { | 
|---|
|  |  |  | result = this.getCondition2(dto, list); | 
|---|
|  |  |  | } else if (dto.getTjlx().equals("条件3")) { | 
|---|
|  |  |  | } else if (dto.getTjlx().equals("不限定规定值查询")) { | 
|---|
|  |  |  | result = this.getCondition3(dto, list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return result; | 
|---|
|  |  |  | 
|---|
|  |  |  | for (int i = 1; i <= 10; i++) { | 
|---|
|  |  |  | Integer finalI = i; | 
|---|
|  |  |  | TestScheme data1 = list.stream().filter(k -> k.getPa().equals(dto.getUserRisk()) && k.getPc() == (2 * finalI + 2)).findFirst().get();// | 
|---|
|  |  |  | TestScheme data2 = list.stream().filter(k -> k.getPa().equals(1 - dto.getUserRisk()) && k.getPc() == (2 * finalI + 2)).findFirst().get();// | 
|---|
|  |  |  | TestScheme data2 = list.stream().filter(k -> k.getPa().equals(BigDecimal.ONE.subtract(dto.getUserRisk())) && k.getPc() == (2 * finalI + 2)).findFirst().get();// | 
|---|
|  |  |  | if (data1 != null && data2 != null) { | 
|---|
|  |  |  | Double value = data2.getValue() / data1.getValue(); | 
|---|
|  |  |  | double strate = dto.getMinAccepValue() / dto.getSpecifiedValue(); | 
|---|
|  |  |  | 
|---|
|  |  |  | double TST1 = 0;  //T/θ1 | 
|---|
|  |  |  | double TST0 = 0;  //T/θ0 | 
|---|
|  |  |  | Integer finalC = C; | 
|---|
|  |  |  | TestScheme data3 = list.stream().filter(k -> k.getPa().equals(1 - dto.getUserRisk()) && k.getPc() == (2 * finalC + 2)).findFirst().get();// | 
|---|
|  |  |  | Stream<TestScheme> testSchemeStream = list.stream().filter(k -> k.getPa().equals(dto.getUserRisk()) && k.getPc() == (2 * finalC + 2)); | 
|---|
|  |  |  | TestScheme data3 = testSchemeStream.findFirst().get(); | 
|---|
|  |  |  | if (data3 != null) { | 
|---|
|  |  |  | TST1 = data3.getValue() / 2; //T/θ1 | 
|---|
|  |  |  | //TST1 = Convert.ToDouble(TST1.ToString("G2")); //取两位有效数字 | 
|---|
|  |  |  | if (TST1 < 10) TST1 = TST1 + 0.1; | 
|---|
|  |  |  | if (TST1 < 10) { | 
|---|
|  |  |  | TST1 = TST1 + 0.1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | T = TST1 * dto.getMinAccepValue();  //总试验时间 | 
|---|
|  |  |  | TST0 = T / dto.getSpecifiedValue(); //T/θ0    TST1 * minAccepValue / specifiedValue | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private List<ResultDto> getCondition3(ConditionDto dto, List<TestScheme> list) { | 
|---|
|  |  |  | List<ResultDto> result = new ArrayList<>(); | 
|---|
|  |  |  | for (int i = 0; i <= dto.getShowFailureTime(); i++) { | 
|---|
|  |  |  | for (int i = 0; i < dto.getShowFailureTime(); i++) { | 
|---|
|  |  |  | Integer finalI = i; | 
|---|
|  |  |  | List<TestScheme> data = list.stream().filter(k -> k.getPa().equals(dto.getUserRisk()) && k.getPc() == (2 * finalI + 2)).collect(Collectors.toList());// | 
|---|
|  |  |  | List<TestScheme> data2 = list.stream().filter(k -> k.getPa().equals(1 - dto.getProductionRisk()) && k.getPc() == (2 * finalI + 2)).collect(Collectors.toList());// | 
|---|
|  |  |  | List<TestScheme> data2 = list.stream().filter(k -> k.getPa().equals(BigDecimal.ONE.subtract(dto.getProductionRisk())) && k.getPc() == (2 * finalI + 2)).collect(Collectors.toList());// | 
|---|
|  |  |  | double T = 0; | 
|---|
|  |  |  | double TST1 = 0; //  T/θ1 | 
|---|
|  |  |  | double TST0 = 0;//  T/θ0 | 
|---|
|  |  |  | 
|---|
|  |  |  | userRisk = userRisk + Math.pow(TST1, r) * Math.pow(e, -TST1) / getjc(r); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ResultDto resultDto = new ResultDto(); | 
|---|
|  |  |  | resultDto.setAcceptNumber(i); | 
|---|
|  |  |  | resultDto.setAcceptNumber(i + 1); | 
|---|
|  |  |  | resultDto.setTotalTestTime(String.valueOf(Math.round(T))); | 
|---|
|  |  |  | resultDto.setNumber(String.valueOf(Math.round(ST0))); | 
|---|
|  |  |  | resultDto.setProductionRiskReal(new Formatter().format("%.2f", productionRisk * 100).toString()); | 
|---|
|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <div class="fa-card-b"> | 
|---|
|  |  |  | <el-table ref="table" :data="tjDataList" height="230px" border> | 
|---|
|  |  |  | <el-table-column align="center" prop="tjlx" width="100" label="条件类型"> | 
|---|
|  |  |  | <el-table-column align="center" prop="tjlx" label="查询类型"> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column align="center" prop="specifiedValue" label="已知规定值"> | 
|---|
|  |  |  | <template v-slot="{ row }"> | 
|---|
|  |  |  | <el-input v-model="row.specifiedValue" style="width:100%" :disabled="row.tjlx==='条件3'"></el-input> | 
|---|
|  |  |  | <el-input v-model="row.specifiedValue" style="width:100%" :disabled="row.tjlx==='不限定规定值查询'"></el-input> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column align="center" prop="minAccepValue" label="最低可接受值"> | 
|---|
|  |  |  | 
|---|
|  |  |  | <el-table-column align="center" prop="productionRisk" label="生产方风险"> | 
|---|
|  |  |  | <template v-slot="{ row }"> | 
|---|
|  |  |  | <el-select style="width: 100%" :value-key="key" v-model="row.productionRisk" | 
|---|
|  |  |  | @change="onChange()" :disabled="row.tjlx==='条件2'"> | 
|---|
|  |  |  | :disabled="row.tjlx==='不限定生产方风险查询'"> | 
|---|
|  |  |  | <el-option v-for="item in riskList" :key="item.value" :label="item.label" | 
|---|
|  |  |  | :value="item.value"></el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column align="center" prop="userRisk" label="使用方风险"> | 
|---|
|  |  |  | <template v-slot="{ row }"> | 
|---|
|  |  |  | <el-select style="width: 100%" :value-key="key" v-model="row.userRisk" | 
|---|
|  |  |  | @change="onChange()"> | 
|---|
|  |  |  | <el-select style="width: 100%" :value-key="key" v-model="row.userRisk"> | 
|---|
|  |  |  | <el-option v-for="item in riskList" :key="item.value" :label="item.label" | 
|---|
|  |  |  | :value="item.value"></el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column align="center" prop="showFailureTime" label="故障接受值最大显示"> | 
|---|
|  |  |  | <template v-slot="{ row }"> | 
|---|
|  |  |  | <el-input v-model="row.showFailureTime" style="width:100%" :disabled="row.tjlx==='条件1'"></el-input> | 
|---|
|  |  |  | <el-input v-model="row.showFailureTime" style="width:100%" :disabled="row.tjlx==='按风险名义值查询'"></el-input> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column align="center" width="100" label="操作"> | 
|---|
|  |  |  | 
|---|
|  |  |  | dataList: [], | 
|---|
|  |  |  | isShow: false, | 
|---|
|  |  |  | tjDataList: [{ | 
|---|
|  |  |  | tjlx: '条件1', | 
|---|
|  |  |  | tjlx: '按风险名义值查询', | 
|---|
|  |  |  | specifiedValue: null, | 
|---|
|  |  |  | minAccepValue: null, | 
|---|
|  |  |  | productionRisk: null, | 
|---|
|  |  |  | 
|---|
|  |  |  | showFailureTime: null | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | tjlx: '条件2', | 
|---|
|  |  |  | tjlx: '不限定生产方风险查询', | 
|---|
|  |  |  | specifiedValue: null, | 
|---|
|  |  |  | minAccepValue: null, | 
|---|
|  |  |  | productionRisk: null, | 
|---|
|  |  |  | 
|---|
|  |  |  | showFailureTime: null | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | tjlx: '条件3', | 
|---|
|  |  |  | tjlx: '不限定规定值查询', | 
|---|
|  |  |  | specifiedValue: null, | 
|---|
|  |  |  | minAccepValue: null, | 
|---|
|  |  |  | productionRisk: null, | 
|---|
|  |  |  | 
|---|
|  |  |  | this.$tip.alert("最低可接受值不能大于规定值") | 
|---|
|  |  |  | flag =false | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (row.tjlx === "条件1"){ | 
|---|
|  |  |  | if (!row.specifiedValue ||!row.minAccepValue || !row.productionRisk||!userRisk) { | 
|---|
|  |  |  | if (row.tjlx === "按风险名义值查询"){ | 
|---|
|  |  |  | if (!row.specifiedValue ||!row.minAccepValue || !row.productionRisk||!row.userRisk) { | 
|---|
|  |  |  | this.$tip.alert("有未填写的值") | 
|---|
|  |  |  | flag =false | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (row.tjlx === "条件2"){ | 
|---|
|  |  |  | if (row.tjlx === "不限定生产方风险查询"){ | 
|---|
|  |  |  | if (!row.specifiedValue ||!row.minAccepValue || !row.showFailureTime||!row.userRisk) { | 
|---|
|  |  |  | this.$tip.alert("有未填写的值") | 
|---|
|  |  |  | flag =false | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (row.tjlx === "条件3"){ | 
|---|
|  |  |  | if (!row.showFailureTime ||!row.minAccepValue || !row.productionRisk||!userRisk) { | 
|---|
|  |  |  | if (row.tjlx === "不限定规定值查询"){ | 
|---|
|  |  |  | if (!row.showFailureTime ||!row.minAccepValue || !row.productionRisk||!row.userRisk) { | 
|---|
|  |  |  | this.$tip.alert("有未填写的值") | 
|---|
|  |  |  | flag =false | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | let res = await this.$http.get(`/TestScheme/TestScheme/condition`, {params: row}) | 
|---|
|  |  |  | this.dataList = res.data | 
|---|
|  |  |  | if (row.tjlx === "条件3") { | 
|---|
|  |  |  | if (row.tjlx === "不限定规定值查询") { | 
|---|
|  |  |  | this.isShow = true | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
| New file | 
|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <div class="fa-card-a"> | 
|---|
|  |  |  | <el-row :gutter="5"> | 
|---|
|  |  |  | <div class="mod-taskReliability-simulatAssess"> | 
|---|
|  |  |  | <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.name" :datas="schemeList" | 
|---|
|  |  |  | @change="onSchemeSelected" :multiple="true"/> | 
|---|
|  |  |  | </zt-form-item> | 
|---|
|  |  |  | <zt-form-item> | 
|---|
|  |  |  | <zt-button @click="compair()">方案对比</zt-button> | 
|---|
|  |  |  | </zt-form-item> | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | <div> | 
|---|
|  |  |  | <el-col :span="4"> | 
|---|
|  |  |  | <div style="margin-right: 5px;height: calc(88vh - 100px)" 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 style="margin-top: 20px;position: relative;height: 600px"> | 
|---|
|  |  |  | <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: 400px"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="name" | 
|---|
|  |  |  | label="方案名称" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="MTBF" | 
|---|
|  |  |  | label="MTBF" | 
|---|
|  |  |  | width="80px" | 
|---|
|  |  |  | align="right"> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="MTTR" | 
|---|
|  |  |  | label="MTTR" | 
|---|
|  |  |  | width="80px" | 
|---|
|  |  |  | align="right"> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="MSR" | 
|---|
|  |  |  | label="MSR" | 
|---|
|  |  |  | width="80px" | 
|---|
|  |  |  | align="right"> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | </el-table> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div :disabled="isShow"> | 
|---|
|  |  |  | <div class="echart" id="myChart" :style="myChartStyle"></div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <script> | 
|---|
|  |  |  | import ProductModelTree from "../basicInfo/ProductModelTree"; | 
|---|
|  |  |  | import echart from "echarts"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | myChartStyle: {float: "left", width: "100%", height: "600px"}, //图表样式 | 
|---|
|  |  |  | isSelect: false, | 
|---|
|  |  |  | isShow: false, | 
|---|
|  |  |  | isZk: true, | 
|---|
|  |  |  | productList: [], | 
|---|
|  |  |  | schemeList: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | id: 1, | 
|---|
|  |  |  | name: '方案一' | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | id: 2, | 
|---|
|  |  |  | name: '方案二' | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | id: 3, | 
|---|
|  |  |  | name: '方案三' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | dataForm: { | 
|---|
|  |  |  | id: '', | 
|---|
|  |  |  | pid: '', | 
|---|
|  |  |  | productId: '', | 
|---|
|  |  |  | showProductId: '', | 
|---|
|  |  |  | taskModelId: '', | 
|---|
|  |  |  | dataType: 'fz', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | tableData: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | name: '方案一', | 
|---|
|  |  |  | MTBF: '68.74', | 
|---|
|  |  |  | MTTR: '0.43', | 
|---|
|  |  |  | MSR: '0.85' | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | name: '方案二', | 
|---|
|  |  |  | MTBF: '78.74', | 
|---|
|  |  |  | MTTR: '0.52', | 
|---|
|  |  |  | MSR: '0.86' | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | name: '方案三', | 
|---|
|  |  |  | MTBF: '69.84', | 
|---|
|  |  |  | MTTR: '0.62', | 
|---|
|  |  |  | MSR: '0.88' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | mounted() { | 
|---|
|  |  |  | this.getProductList() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | components: { | 
|---|
|  |  |  | ProductModelTree, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | onTreeSelected(data) { | 
|---|
|  |  |  | if (this.dataForm.id) { | 
|---|
|  |  |  | console.log(data, 'onProductSelected') | 
|---|
|  |  |  | this.dataForm.showProductId = data.id | 
|---|
|  |  |  | this.$refs.SimulatCurve.getProductEcharts(this.dataForm); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 获取信息 | 
|---|
|  |  |  | onProductSelected(data) { | 
|---|
|  |  |  | this.isSelect = true | 
|---|
|  |  |  | console.log(data, ' onProductSelected(data)') | 
|---|
|  |  |  | this.dataForm.productId = data.id | 
|---|
|  |  |  | this.$nextTick(() => { | 
|---|
|  |  |  | this.$refs.ProductModelTree.getProductList() | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onSchemeSelected(data) { | 
|---|
|  |  |  | this.dataForm.id = data.id | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | zk() { | 
|---|
|  |  |  | this.isZk = !this.isZk; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | async getProductList() { | 
|---|
|  |  |  | let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList') | 
|---|
|  |  |  | this.productList = res.data | 
|---|
|  |  |  | this.onProductSelected(this.productList[0]) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | compair() { | 
|---|
|  |  |  | this.isShow = true | 
|---|
|  |  |  | this.option = { | 
|---|
|  |  |  | xAxis: { | 
|---|
|  |  |  | data: [0.0, 50.0, 100.0, 150.0, 200.0, 250.0, 300.0, 350.0, 400.0, 450.0, 500.0, 550.0], | 
|---|
|  |  |  | name: '仿真总时长' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | yAxis: { | 
|---|
|  |  |  | type: 'value', | 
|---|
|  |  |  | name: '可靠度', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | legend: { | 
|---|
|  |  |  | data: ['方案一', '方案二', '方案三'] | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | series: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | name: '方案一', | 
|---|
|  |  |  | type: 'line', | 
|---|
|  |  |  | smooth: true, | 
|---|
|  |  |  | data: [1.0, 0.6, 0.39, 0.39, 0.24, 0.14, 0.08, 0.06, 0.06, 0.04, 0.02, 0.01, 0.01, 0.0, 0.0] | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | name: '方案二', | 
|---|
|  |  |  | type: 'line', | 
|---|
|  |  |  | smooth: true, | 
|---|
|  |  |  | data: [1.0, 0.8, 0.59, 0.58, 0.34, 0.35, 0.18, 0.16, 0.16, 0.04, 0.04, 0.02, 0.01, 0.1, 0.0] | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | name: '方案三', | 
|---|
|  |  |  | type: 'line', | 
|---|
|  |  |  | smooth: true, | 
|---|
|  |  |  | data: [1.0, 0.7, 0.45, 0.44, 0.38, 0.38, 0.15, 0.08, 0.08, 0.02, 0.02, 0.01, 0.01, 0.1, 0.0] | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | this.myChart = echart.init(document.getElementById("myChart")); | 
|---|
|  |  |  | console.log(this.option, ' this.option ') | 
|---|
|  |  |  | this.myChart.setOption(this.option); | 
|---|
|  |  |  | //随着屏幕大小调节图表 | 
|---|
|  |  |  | window.addEventListener("resize", () => { | 
|---|
|  |  |  | this.myChart.resize(); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  | <style> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </style> | 
|---|