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