From d0bff7a4d7e0bd53f11ea629df20e48c3f72a0e6 Mon Sep 17 00:00:00 2001 From: xyc <jc_xiong@hotmail.com> Date: 星期一, 14 十月 2024 10:09:00 +0800 Subject: [PATCH] 修改RBD识别算法 --- web/src/views/modules/taskReliability/SimulatAssess.vue | 195 +++++++++++++++++++++++------------------------- 1 files changed, 92 insertions(+), 103 deletions(-) diff --git a/web/src/views/modules/taskReliability/SimulatAssess.vue b/web/src/views/modules/taskReliability/SimulatAssess.vue index 327cb12..e8c100b 100644 --- a/web/src/views/modules/taskReliability/SimulatAssess.vue +++ b/web/src/views/modules/taskReliability/SimulatAssess.vue @@ -1,100 +1,113 @@ <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> - </el-col> - <el-col :span="18"> - <div class="fa-card-a"> - <SimulatCurve ref="SimulatCurve"></SimulatCurve> - <SimulatData ref="SimulatData"></SimulatData> - </div> - </el-col> + <div class="fa-card-a"> + <el-row :gutter="5"> + <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> + <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="height: calc(100vh - 230px)"> + <SimulatCurve ref="SimulatCurve"></SimulatCurve> + </div> + </el-col> </el-row> </div> </template> <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: '', - dataType: '', - isRepair: '', - samplPeriod: '', - simulatFrequency: '', - simulatTime:'' + showProductId: '', + taskModelId: '', + dataType: 'fz', + samplPeriod: '10', + simulatFrequency: 500, + simulatTime: '' } } }, mounted() { this.getProductList() }, + watch: { + percentage() { + if (this.percentage === 100) { + this.$refs.SimulatCurve.initEcharts(this.dataForm); + } + } + }, components: { + ProductModelTree, SimulatCurve, - SimulatData }, 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.getTaskList() + this.$nextTick(() => { + this.$refs.ProductModelTree.getProductList() + }) }, 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') this.productList = res.data + this.onProductSelected(this.productList[0]) }, async getTaskList() { let params = { @@ -104,60 +117,36 @@ console.log(res.data) this.taskList = res.data }, - getresult(){ - this.$refs.SimulatData.init(); + getStroke() { + if (this.percentage < 100) { + this.$http.get(`/taskReliability/SimulatAssess/getCalcProgress?taskId=${this.dataForm.id}`).then( + res => { + if (res.data) { + this.percentage = parseFloat(res.data) + } + } + ) + } else { + clearInterval(this.timers) + this.percentage = 0 + } }, async analyze() { - /* let res = await this.$http.post('/taskReliability/SimulatAssess/analyze', this.dataForm) + this.isShow = true + let result = await this.$http.get(`/basicInfo/TyProductModel/getUuid`) + this.dataForm.id = result.data + 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 - // 涓杞 - clearInterval(timer) - alert('鏁版嵁鏈夎锛岄噸鏂拌緭鍏�') - } - } - }, 400) - } - - }*/ + // let chkResult = res.data + // console.log(chkResult) + // if (chkResult.length == 0) { + this.timers = window.setInterval(this.getStroke, 1000) + // } + } } } } </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> -- Gitblit v1.9.1