jinlin
2024-12-02 18f682f736914e427070b9bb769df538ad9f6d1c
web/src/views/modules/taskReliability/SimulatHistory.vue
@@ -1,7 +1,6 @@
<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"/>
@@ -12,31 +11,45 @@
          <zt-form-item label="仿真记录" prop="simulatHis">
            <zt-select v-model="dataForm.id" :datas="simulatList" @change="onSimulatSelected"/>
          </zt-form-item>
          <zt-form-item label="时间分片" prop="samplPeriod">
            <el-input v-model="dataForm.samplPeriod" readonly="false" style="width: 150px;vertical-align: baseline;">
              <template slot="append">分钟</template>
            </el-input>
          </zt-form-item>
          <zt-form-item label="仿真次数" prop="simulatFrequency">
            <el-input v-model="dataForm.simulatFrequency" readonly="false" style="width: 150px;vertical-align: baseline;">
            </el-input>
          </zt-form-item>
          <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>
        </el-form>
        <div>
          <el-col :span="4">
            <div style="margin-right: 5px;height: calc(88vh - 100px)" v-if="isSelect">
            <div style="margin-right: 5px;height: calc(100vh - 230px)" v-if="isSelect">
              <product-model-tree @on-selected="onTreeSelected" showXdy="false"
                                  ref="ProductModelTree" :isShow="false"/>
                                  ref="ProductModelTree" :isShow="false" basic="5" :productId="dataForm.productId"/>
            </div>
          </el-col>
          <el-col :span="20">
            <div style="margin-top: 20px">
              <div>
            <div class="fa-card-a" style="height: calc(100vh - 230px)">
                <SimulatCurve ref="SimulatCurve"></SimulatCurve>
              </div>
            </div>
          </el-col>
        </div>
      </div>
    </el-row>
  </div>
</template>
<script>
  import SimulatCurve from "./SimulatCurve";
  import SimulatData from "./SimulatData";
  import ProductModelTree from "../basicInfo/ProductModelTree";
  import qs from "qs";
  import Cookies from "js-cookie";
  export default {
@@ -48,10 +61,9 @@
        productList: [],
        simulatList: [],
        taskList: [],
        MTBF: '',
        MTTR: '',
        dataForm: {
          id: '',
          taskDuration: '',
          pid: '',
          productId: '',
          showProductId: '',
@@ -69,13 +81,13 @@
    components: {
      ProductModelTree,
      SimulatCurve,
      SimulatData
    },
    methods: {
      async getProductList() {
        let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList')
        this.productList = res.data
        this.onProductSelected(this.productList[0])
      },
      async getTaskList() {
        let params = {
@@ -87,7 +99,6 @@
      },
      async getSimulatList() {
        let params = {
          productId: this.dataForm.productId,
          taskModelId: this.dataForm.taskModelId
        }
        let res = await this.$http.get('/taskReliability/SimulatAssess/getSimulatList', {params: params})
@@ -95,9 +106,11 @@
        this.simulatList = res.data
      },
      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.dataId
          this.$refs.SimulatCurve.getProductEcharts(this.dataForm);
        }
      },
      // 获取信息
      onProductSelected(data) {
@@ -106,6 +119,9 @@
        this.dataForm.productId = data.id
        this.getTaskList()
        this.dataForm.taskModelId = ''
        this.$nextTick(() => {
          this.$refs.ProductModelTree.getProductList()
        })
      },
      onTaskSelected(data) {
        console.log(data, ' onProductSelected(data)')
@@ -113,10 +129,34 @@
        this.getSimulatList()
        this.dataForm.id = ''
      },
      onSimulatSelected(data) {
      async onSimulatSelected(data) {
        this.dataForm.id = data.id
        this.dataForm.samplPeriod = data.samplPeriod
        this.$refs.SimulatCurve.initEcharts(this.dataForm);
        let params = {
          id: this.dataForm.id,
          taskModelId: this.dataForm.taskModelId
        }
        let res = await this.$http.get('/taskReliability/SimulatAssess/getSimulatParams', {params: params})
        console.log(res.data.samplPeriod)
        this.dataForm.samplPeriod = res.data.samplPeriod
        this.dataForm.simulatFrequency = res.data.simulatFrequency
        this.$nextTick(() => {
          this.$refs.SimulatCurve.initEcharts(this.dataForm)
        })
      },
      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('还未选择仿真记录')
        }
      },
    }
  }