From 0091dd076ed7d6dfb06fa820dabd9cf5e738514c Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期四, 07 十一月 2024 17:15:13 +0800
Subject: [PATCH] 仿真评估检查模型时,总体工况模型里未使用的节点,不检查其模型是否存在。
---
web/src/views/modules/taskReliability/SimulatAssess.vue | 200 +++++++++++++++++++++++++++++++++----------------
1 files changed, 134 insertions(+), 66 deletions(-)
diff --git a/web/src/views/modules/taskReliability/SimulatAssess.vue b/web/src/views/modules/taskReliability/SimulatAssess.vue
index 5eb45bd..7b59686 100644
--- a/web/src/views/modules/taskReliability/SimulatAssess.vue
+++ b/web/src/views/modules/taskReliability/SimulatAssess.vue
@@ -1,60 +1,89 @@
<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" 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 @on-selected="onTreeSelected" showXdy="false"
- ref="ProductModelTree" :isShow="false"/>
- </div>
- </el-col>
- <el-col :span="20">
-
- <div style="margin-top: 20px">
- <div>
- <SimulatCurve ref="SimulatCurve"></SimulatCurve>
- </div>
- </div>
- </el-col>
+ <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"
+ style="width: 150px;vertical-align: baseline;">
+ <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"
+ style="width: 150px;vertical-align: baseline;">
+ <template slot="append">娆℃暟</template>
+ </el-input>
+ </zt-form-item>
+ <el-form-item prop="repairDiracFlag" label-width="150px" style="margin-left: 20px">
+ <el-checkbox v-model="dataForm.repairDiracFlag">鍙慨璁惧鍙潬搴︿负1</el-checkbox>
+ </el-form-item>
+ <zt-form-item style="margin-left: 10px">
+ <zt-button @click="analyze()">浠跨湡鍒嗘瀽</zt-button>
+ <zt-button @click="displayProcess()">绠楁硶搴撹繘绋�</zt-button>
+ <el-dropdown style="margin-left: 10px" @command="download">
+ <el-button type="primary">
+ 涓嬭浇xml<i class="el-icon-arrow-down el-icon--right"></i>
+ </el-button>
+ <el-dropdown-menu slot="dropdown">
+ <el-dropdown-item command="1">杈撳叆xml</el-dropdown-item>
+ <el-dropdown-item command="2">杈撳嚭xml</el-dropdown-item>
+ </el-dropdown-menu>
+ </el-dropdown>
+ </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>
- </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>
+ <el-dialog v-dialogDrag :close-on-click-modal="false" top="8vh" :visible.sync="dialogVisible" title="妯″瀷妫�鏌�"
+ width="60%" @close="dialogVisible = false">
+ <el-tag type="danger" style="margin-bottom: 10px">妯″瀷瀹氫箟/鍙傛暟閰嶇疆閲屽瓨鍦ㄤ互涓嬮棶棰橈細</el-tag>
+ <el-table :data="modelCheckResult" height="350"
+ :header-cell-style="{'text-align':'center'}">
+ <el-table-column prop="category" label="妫�鏌ョ粨鏋�" align="center" width="150"/>
+ <el-table-column prop="taskName" label="浠诲姟鍚嶇О" align="center"/>
+ <el-table-column prop="taskPhaseName" label="浠诲姟闃舵鍚嶇О" align="center"/>
+ <el-table-column prop="gkName" label="宸ュ喌鍚嶇О" align="center"/>
+ <el-table-column prop="nodeName" label="鑺傜偣鍚嶇О" align="center"/>
+ <el-table-column prop="modelName" label="妯″瀷鍚嶇О" align="center"/>
+ <el-table-column prop="deviceName" label="璁惧鍚嶇О" align="center"/>
+ <el-table-column prop="paramName" label="鍙傛暟鍚嶇О" align="center"/>
+ </el-table>
+ <div slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="dialogVisible = false">鍏� 闂�</el-button>
+ </div>
+ </el-dialog>
+ <Process ref="process"></Process>
</div>
</template>
<script>
import SimulatCurve from "./SimulatCurve";
- import SimulatData from "./SimulatData";
import ProductModelTree from "../basicInfo/ProductModelTree";
+ import Process from "./Process";
+ import qs from "qs";
+ import Cookies from "js-cookie";
export default {
data() {
return {
- timers: '',
+ timers: null,
isSelect: false,
isShow: false,
percentage: 0,
@@ -69,33 +98,38 @@
showProductId: '',
taskModelId: '',
dataType: 'fz',
- samplPeriod: '',
- simulatFrequency: '',
- simulatTime: ''
- }
+ samplPeriod: '10',
+ simulatFrequency: 500,
+ simulatTime: '',
+ repairDiracFlag: false
+ },
+ dialogVisible: false,
+ modelCheckResult: [],
}
},
mounted() {
this.getProductList()
},
watch: {
- percentage() {
- if (this.percentage === 100) {
- this.$refs.SimulatCurve.initEcharts(this.dataForm);
- }
- }
+ // percentage() {
+ // if (this.percentage === 100) {
+ // this.$refs.SimulatCurve.initEcharts(this.dataForm);
+ // }
+ // }
},
components: {
ProductModelTree,
SimulatCurve,
- SimulatData
+ Process,
},
methods: {
onTreeSelected(data) {
- console.log(data, 'onProductSelected')
- this.dataForm.showProductId = data.id
- this.$refs.SimulatCurve.getProductEcharts(this.dataForm);
+ if (this.dataForm.id) {
+ console.log(data, 'onProductSelected')
+ this.dataForm.showProductId = data.id
+ this.$refs.SimulatCurve.getProductEcharts(this.dataForm);
+ }
},
// 鑾峰彇淇℃伅
onProductSelected(data) {
@@ -103,6 +137,10 @@
console.log(data, ' onProductSelected(data)')
this.dataForm.productId = data.id
this.getTaskList()
+ this.dataForm.taskModelId = ''
+ this.$nextTick(() => {
+ this.$refs.ProductModelTree.getProductList()
+ })
},
onTaskSelected(data) {
console.log(data, ' onProductSelected(data)')
@@ -111,6 +149,7 @@
async getProductList() {
let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList')
this.productList = res.data
+ this.onProductSelected(this.productList[0])
},
async getTaskList() {
let params = {
@@ -120,31 +159,60 @@
console.log(res.data)
this.taskList = res.data
},
- getStroke() {
- //console.log('getStroke:',this.progress.start,"锛�",this.progress.speed)
- if (this.percentage < 100) {
- //console.log('getStroke2')
- this.$http.get(`/taskReliability/SimulatAssess/getCalcProgress?taskId=${this.dataForm.id}`).then(
- res => {
- // console.log(res.data, 'res.data')
- if (res.data) {
- this.percentage = parseFloat(res.data)
- }
+ async getStroke() {
+ let param = {
+ taskList: [this.dataForm.id]
+ }
+ let res = await this.$http.get(`/taskReliability/SimulatAssess/getCalcProgress`, {params: param})
+ if (res.success) {
+ if (res.data) {
+ this.percentage = parseFloat(res.data)
+ if (this.percentage >= 100) {
+ clearInterval(this.timers)
+ this.percentage = 0
+ this.$refs.SimulatCurve.initEcharts(this.dataForm);
}
- )
+ }
} else {
clearInterval(this.timers)
this.percentage = 0
}
},
async analyze() {
+ this.dialogVisible = false
+ this.modelCheckResult = []
this.isShow = true
let result = await this.$http.get(`/basicInfo/TyProductModel/getUuid`)
this.dataForm.id = result.data
+ this.percentage = 0
let res = await this.$http.post('/taskReliability/SimulatAssess/analyze', this.dataForm)
if (res.success) {
- this.timers = window.setInterval(this.getStroke, 1000)
+ console.log(res.data, 'res.data')
+ if (res.data && res.data.length > 0) {
+ this.modelCheckResult = res.data
+ this.dialogVisible = true
+ } else {
+ this.timers = window.setInterval(this.getStroke, 1000)
+ }
}
+ },
+ async download(selsect) {
+ if(this.dataForm.id){
+ let param = qs.stringify({
+ 'token': Cookies.get('token'),
+ type: 'fz',
+ xml:selsect,
+ id: this.dataForm.id
+ })
+ let apiURL = `/taskReliability/SimulatAssess/downloadXml`
+ window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${param}`
+ }else{
+ this.$alert('杩樻湭杩涜浠跨湡鎿嶄綔')
+ }
+
+ },
+ displayProcess() {
+ this.$refs.process.$refs.dialog.init()
}
}
}
--
Gitblit v1.9.1