From 43a85ad899a3b0b27b50967ff7e11f25d93edd4b Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期三, 24 七月 2024 10:41:17 +0800
Subject: [PATCH] 修改
---
web/src/views/modules/basicInfo/ProductModelTree.vue | 4
web/src/views/modules/taskReliability/SimulatAssess.vue | 181 +++++++++++++++++++++++---------------------
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/SimulatAssess.java | 7 +
web/src/views/modules/taskReliability/SimulatCurve.vue | 38 +++++++--
4 files changed, 129 insertions(+), 101 deletions(-)
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/SimulatAssess.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/SimulatAssess.java
index 9b1e5b1..cb1ef09 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/SimulatAssess.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/SimulatAssess.java
@@ -28,8 +28,11 @@
@ApiModelProperty(value = "浜у搧鑺傜偣ID")
private Long productId;
- @ApiModelProperty(value = "鎬讳綋浠诲姟")
- private String task;
+ @ApiModelProperty(value = "鎬讳綋浠诲姟妯″瀷ID")
+ private Long taskModelId;
+
+ @ApiModelProperty(value = "浠跨湡ID")
+ private Long taskId;
@ApiModelProperty(value = "鏁版嵁绫诲瀷")
private Integer dataType;
diff --git a/web/src/views/modules/basicInfo/ProductModelTree.vue b/web/src/views/modules/basicInfo/ProductModelTree.vue
index 9f59fb1..0484c40 100644
--- a/web/src/views/modules/basicInfo/ProductModelTree.vue
+++ b/web/src/views/modules/basicInfo/ProductModelTree.vue
@@ -1,12 +1,12 @@
<template>
<div class="product-tree-container">
- <el-input
+ <!-- <el-input
placeholder="杈撳叆鍚嶇О杩涜杩囨护"
style="width: 60%"
v-model="filterText"
size="small"
clearable
- ></el-input>
+ ></el-input>-->
<el-button v-if="isShow" type="primary" @click="add()" style="margin: 10px 0 0 10px;padding: 9px 18px !important;">鏂板鍨嬪彿</el-button>
<el-divider></el-divider>
<el-tree
diff --git a/web/src/views/modules/taskReliability/SimulatAssess.vue b/web/src/views/modules/taskReliability/SimulatAssess.vue
index 327cb12..0e8dc14 100644
--- a/web/src/views/modules/taskReliability/SimulatAssess.vue
+++ b/web/src/views/modules/taskReliability/SimulatAssess.vue
@@ -1,51 +1,48 @@
<template>
- <div>
- <el-row :gutter="10">
- <el-col :span="6">
- <div class="fa-card-a">
- <div class="mod-taskReliability-simulatAssess">
- <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="80px">
- <zt-form-item label="浜у搧鑺傜偣" prop="productId">
- <zt-select v-model="dataForm.productId" :datas="productList" @change="onProductSelected"/>
- </zt-form-item>
- <zt-form-item label="鎬讳綋浠诲姟" prop="task">
- <zt-select v-model="dataForm.task" :datas="taskList" @change="onTaskSelected"/>
- </zt-form-item>
- <!-- <zt-form-item label="浠诲姟鏃堕暱" prop="simulatTime">
- <el-input type="number" :min="1" v-model="dataForm.simulatTime">
- <template slot="append">灏忔椂</template>
- </el-input>
- </zt-form-item>-->
- <zt-form-item label="鏁版嵁绫诲瀷" prop="dataType">
- <zt-dict v-model="dataForm.dataType" dict="dataType"></zt-dict>
- </zt-form-item>
- <zt-form-item label="鏄惁鍙慨" prop="isRepair">
- <zt-dict v-model="dataForm.isRepair" dict="is_or_not"></zt-dict>
- </zt-form-item>
- <zt-form-item label="閲囨牱鍛ㄦ湡" prop="samplPeriod">
- <el-input type="number" :min="1" v-model="dataForm.samplPeriod">
- <template slot="append">鍒嗛挓</template>
- </el-input>
- </zt-form-item>
- <zt-form-item label="浠跨湡娆℃暟" prop="simulatFrequency">
- <el-input type="number" :min="1" v-model="dataForm.simulatFrequency">
- <template slot="append">娆℃暟</template>
- </el-input>
- </zt-form-item>
- <zt-form-item>
- <zt-button @click="analyze()">浠跨湡鍒嗘瀽</zt-button>
- <zt-button @click="getresult()">鍒嗘瀽缁撴灉</zt-button>
- </zt-form-item>
- </el-form>
- </div>
+ <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" label-width="80px">
+ <zt-form-item label="浜у搧鑺傜偣" prop="productId">
+ <zt-select v-model="dataForm.productId" :datas="productList" @change="onProductSelected"/>
+ </zt-form-item>
+ <zt-form-item label="鎬讳綋浠诲姟" prop="taskModelId">
+ <zt-select v-model="dataForm.taskModelId" :datas="taskList" @change="onTaskSelected"/>
+ </zt-form-item>
+ <zt-form-item label="閲囨牱鍛ㄦ湡" prop="samplPeriod">
+ <el-input type="number" :min="1" v-model="dataForm.samplPeriod">
+ <template slot="append">鍒嗛挓</template>
+ </el-input>
+ </zt-form-item>
+ <zt-form-item label="浠跨湡娆℃暟" prop="simulatFrequency">
+ <el-input type="number" :min="1" v-model="dataForm.simulatFrequency">
+ <template slot="append">娆℃暟</template>
+ </el-input>
+ </zt-form-item>
+ <zt-form-item>
+ <zt-button @click="analyze()">浠跨湡鍒嗘瀽</zt-button>
+ </zt-form-item>
+ </el-form>
+ <el-progress v-if="isShow" :percentage="percentage"></el-progress>
+ <div>
+ <el-col :span="4">
+ <div style="margin-right: 5px;height: calc(88vh - 100px)" v-if="isSelect">
+ <product-model-tree :isShow="false" ></product-model-tree>
+ </div>
+ </el-col>
+ <el-col :span="20">
+ <div style="margin-top: 20px">
+ <div style="margin-left: 400px" v-if="isShow">
+ <el-tag type="info" effect="dark" style="font-size: 20px">MTBF:{{MTBF}}</el-tag>
+ <el-tag type="info" effect="dark" style="margin-left: 50px;font-size: 20px">MTTR:{{MTTR}}</el-tag>
+ </div>
+ <div>
+ <SimulatCurve ref="SimulatCurve"></SimulatCurve>
+ </div>
+ </div>
+ </el-col>
</div>
- </el-col>
- <el-col :span="18">
- <div class="fa-card-a">
- <SimulatCurve ref="SimulatCurve"></SimulatCurve>
- <SimulatData ref="SimulatData"></SimulatData>
- </div>
- </el-col>
+ </div>
</el-row>
</div>
</template>
@@ -53,30 +50,46 @@
<script>
import SimulatCurve from "./SimulatCurve";
import SimulatData from "./SimulatData";
+ import ProductModelTree from "../basicInfo/ProductModelTree";
export default {
data() {
return {
+ timers: '',
+ isSelect: false,
+ isShow: false,
+ percentage: 0,
productList: [],
taskList: [],
+ MTBF: '',
+ MTTR: '',
dataForm: {
id: '',
pid: '',
productId: '',
- task: '',
+ taskId: '',
+ taskModelId: '',
dataType: '',
isRepair: '',
samplPeriod: '',
simulatFrequency: '',
- simulatTime:''
+ simulatTime: ''
}
}
},
mounted() {
this.getProductList()
},
+ watch: {
+ percentage() {
+ if (this.percentage === 100) {
+ this.$refs.SimulatCurve.initEcharts(this.dataForm.taskId,this.dataForm.samplPeriod);
+ }
+ }
+ },
components: {
+ ProductModelTree,
SimulatCurve,
SimulatData
},
@@ -84,16 +97,17 @@
methods: {
// 鑾峰彇淇℃伅
onProductSelected(data) {
+ this.isSelect = true
console.log(data, ' onProductSelected(data)')
this.dataForm.productId = data.id
this.getTaskList()
},
onTaskSelected(data) {
console.log(data, ' onProductSelected(data)')
- this.dataForm.task = data.id
+ this.dataForm.taskModelId = data.id
},
async getProductList() {
- let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList')
+ let res = await this.$http.get('/taskReliability/Task/getTaskProductList')
this.productList = res.data
},
async getTaskList() {
@@ -104,24 +118,38 @@
console.log(res.data)
this.taskList = res.data
},
- getresult(){
- this.$refs.SimulatData.init();
+ getStroke() {
+ //console.log('getStroke:',this.progress.start,"锛�",this.progress.speed)
+ if (this.percentage < 100) {
+ //console.log('getStroke2')
+ /* this.$http.get(`sys/common/stroke?progressId=${this.progress.id}`).then(
+ res => {
+ if (res.success) {
+ this.percentage = parseFloat(res.data.percentage)
+ }
+ }
+ )*/
+ } else {
+ clearInterval(this.timers)
+ }
},
async analyze() {
- /* let res = await this.$http.post('/taskReliability/SimulatAssess/analyze', this.dataForm)
- if (res.success) {
- let stopPolling = false
- if (!stopPolling) {
- let timer = setInterval(async () => {
- let res2 = await this.$http.get(`/taskReliability/SimulatAssess/${res.data}`)
- if (res2.data) {
- if (res2.data.code === '0' || res2.data.errorMsg === '0') {
- stopPolling = true
- // 涓杞
- clearInterval(timer)
- alert('宸茶幏鍙�')*/
- this.$refs.SimulatCurve.initEcharts();
- // 娓呴櫎瀹氭椂鍣�
+ this.isShow = true
+ this.timers = window.setInterval(this.getStroke, 1000)
+ /* let res = await this.$http.post('/taskReliability/SimulatAssess/analyze', this.dataForm)
+ if (res.success) {
+ let stopPolling = false
+ if (!stopPolling) {
+ let timer = setInterval(async () => {
+ let res2 = await this.$http.get(`/taskReliability/SimulatAssess/${res.data}`)
+ if (res2.data) {
+ if (res2.data.code === '0' || res2.data.errorMsg === '0') {
+ stopPolling = true
+ // 涓杞
+ clearInterval(timer)
+ alert('宸茶幏鍙�')*/
+ //this.$refs.SimulatCurve.initEcharts();
+ // 娓呴櫎瀹氭椂鍣�
/* } else {
stopPolling = true
// 涓杞
@@ -138,26 +166,5 @@
}
</script>
<style>
- .mod-taskReliability-simulatAssess {
- height: calc(100vh - 175px);
- }
- .mod-taskReliability-simulatAssess .el-form-item__label {
- line-height: calc((100vh - 175px) / 7);
- }
-
- .mod-taskReliability-simulatAssess .el-form-item__content {
- line-height: calc((100vh - 175px) / 7);
- }
-
- .mod-taskReliability-simulatAssess .el-form-item__content > .el-input-group--append {
- vertical-align: baseline;
- }
-
- div.el-col.el-col-17 {
- background: white;
- }
- div.el-select-dropdown.el-popper{
- /*top: calc((100vh - 155px) / 4) !important;*/
- }
</style>
diff --git a/web/src/views/modules/taskReliability/SimulatCurve.vue b/web/src/views/modules/taskReliability/SimulatCurve.vue
index 75ea122..b748c28 100644
--- a/web/src/views/modules/taskReliability/SimulatCurve.vue
+++ b/web/src/views/modules/taskReliability/SimulatCurve.vue
@@ -11,17 +11,19 @@
name: 'SimulatCurve',
data() {
return {
+ xDataList: [],
+ yDataList: [],
myChart: {},
- myChartStyle: {float: "left", width: "100%", height: "400px"} //鍥捐〃鏍峰紡
+ myChartStyle: {float: "left", width: "100%", height: "600px"}, //鍥捐〃鏍峰紡
+ option: {}
}
},
components: {},
methods: {
- initEcharts(CurveData) {
- console.log(eval(CurveData), 'initEcharts(CurveData)')
- const option = {
- title:{
- text:'浠跨湡鍙潬搴︽敹鏁涙洸绾垮浘',
+ initEcharts(taskId, samplPeriod) {
+ this.option = {
+ title: {
+ text: '',
textStyle: { // 涓绘爣棰樻枃鏈牱寮弡"fontSize": 18,"fontWeight": "bolder","color": "#333"}
fontFamily: 'Arial',
fontSize: 20,
@@ -30,20 +32,36 @@
}
},
xAxis: {
- data: [10, 30, 50, 70, 90, 110, 130,150,170],
- name:'浠跨湡娆℃暟'
+ data: [],
+ name: '浠跨湡娆℃暟'
},
yAxis: {},
series: [
{
- data: [15, 85, 75, 25, 65,35,55,45,50],
+ data: [],
type: 'line',
smooth: true
}
]
};
+ this.getEchart(taskId, samplPeriod)
+
+ },
+ async getEchart(taskId, samplPeriod) {
+ let task = await this.$http.get(`/taskReliability/Task/${taskId}`)
+ samplPeriod = samplPeriod / 60
+ let i = 0
+ for (i = 0; i + samplPeriod <= task.taskDuration; i += samplPeriod) {
+ this.series[0].data.push(i);
+ }
+ if (i !== task.taskDuration) {
+ this.series[0].data.push(task.taskDuration);
+ }
+
+
+
this.myChart = echarts.init(document.getElementById("mychart"));
- this.myChart.setOption(option);
+ this.myChart.setOption(this.option);
//闅忕潃灞忓箷澶у皬璋冭妭鍥捐〃
window.addEventListener("resize", () => {
this.myChart.resize();
--
Gitblit v1.9.1