jinlin
2024-03-12 c400e8082b202fbf20ea0e740a306aa3c62e8fb5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<template>
  <zt-dialog ref="dialog"  @confirm="formSubmit" append-to-body>
    <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
      <zt-form-item label="上级系统" prop="pid" >
        <zt-select v-model="dataForm.pid" placeholder=" " :datas="productList"/>
      </zt-form-item>
      <zt-form-item label="名称" prop="name" rules="required">
        <el-input v-model="dataForm.name"></el-input>
      </zt-form-item>
      <zt-form-item label="节点类型" prop="nodeType" rules="required">
        <zt-dict v-model="dataForm.nodeType" dict="product"></zt-dict>
      </zt-form-item>
      <zt-form-item label="基本计算" prop="baseCompute">
        <zt-dict v-model="dataForm.baseCompute" dict="is_or_not" placeholder="基本计算"></zt-dict>
      </zt-form-item>
      <zt-form-item label="任务计算" prop="taskCompute">
        <zt-dict v-model="dataForm.taskCompute" dict="is_or_not" placeholder="任务计算"></zt-dict>
      </zt-form-item>
      <zt-form-item label="可靠性分布" prop="reliabDistrib">
        <zt-dict v-model="dataForm.reliabDistrib" dict="ReliabDistribType" placeholder="请选择可靠性分布类型"></zt-dict>
      </zt-form-item>
      <zt-form-item label="维修分布" prop="repairDistrib">
        <zt-dict v-model="dataForm.repairDistrib" dict="RepairDistribType" placeholder="请选择维修分布类型"></zt-dict>
      </zt-form-item>
      <zt-form-item label="运行状态图" prop="operationalStatus">
        <el-input v-model="dataForm.operationalStatus" @focus="selectPicture('operational')"   :readonly="readonly"></el-input>
      </zt-form-item>
      <zt-form-item label="待机状态图" prop="standbyState">
        <el-input v-model="dataForm.standbyState" @focus="selectPicture('standby')"   :readonly="readonly"></el-input>
      </zt-form-item>
      <zt-form-item label="故障状态图" prop="faultState">
        <el-input v-model="dataForm.faultState" @focus="selectPicture('fault')"   :readonly="readonly"></el-input>
      </zt-form-item>
      <zt-form-item label="排序" prop="sort">
        <el-input v-model="dataForm.sort" :readonly="readonly"></el-input>
      </zt-form-item>
    </el-form>
    <PictureSelect ref="pictureSelect" @setPicture="openAddWin">
    </PictureSelect>
  </zt-dialog>
</template>
 
<script>
  import PictureSelect from "@/views/modules/basicInfo/SelectPicture";
 
  export default {
    data() {
      return {
        map: new Map(),
        fileId:'',
        productList:[],
        dataForm: {
          id: '',
          pid: '',
          name: '',
          nodeType: '',
          baseCompute: '',
          taskCompute: '',
          reliabDistrib: '',
          repairDistrib: '',
          operationalStatus:'',
          standbyState:'',
          faultState:'',
          sort: '',
        }
      }
    },
    components:{
      PictureSelect
    },
    methods: {
      init() {
        this.getProductList()
      },
      // 获取系统列表
      async getProductList() {
        let res = await this.$http.get('/basicInfo/TyProductModel/getProductList')
        this.productList = res.data
        console.log(this.productList,'getProductList')
      },
      selectPicture(type){
        this.$refs.pictureSelect.$refs.dialog.init(type)
      },
      openAddWin(row,type){
        console.log(type,'openAddWin(row)')
        if (type==='operational'){
          this.dataForm.operationalStatus = row.name
          for (let key in row.accessoryMap) {
            let id = /_zt_oss_id=(\d+)/.exec(key)
            this.fileId = id ? id[1] : ''
          }
          this.map.set(this.dataForm.operationalStatus,this.fileId);
          console.log(this.map,'openAddWin(row)')
        }else if(type==='standby'){
          this.dataForm.standbyState = row.name
          for (let key in row.accessoryMap) {
            let id = /_zt_oss_id=(\d+)/.exec(key)
            this.fileId = id ? id[1] : ''
          }
          this.map.set(this.dataForm.standbyState,this.fileId);
          console.log(this.map,'openAddWin(row)')
        }else if(type==='fault'){
          this.dataForm.faultState = row.name
          for (let key in row.accessoryMap) {
            let id = /_zt_oss_id=(\d+)/.exec(key)
            this.fileId = id ? id[1] : ''
          }
          this.map.set(this.dataForm.faultState,this.fileId);
          console.log(this.map,'openAddWin(row)')
        }
      },
      // 获取信息
      async getInfo() {
        let res = await this.$http.get(`/basicInfo/TyProductModel/${this.dataForm.id}`)
        this.dataForm = {
          ...this.dataForm,
          ...res.data
        }
        console.log(this.map,'getInfo')
      },
      // 表单提交
      async formSubmit() {
        this.dataForm.operationalStatus = this.map.get(this.dataForm.operationalStatus)
        this.dataForm.standbyState = this.map.get(this.dataForm.standbyState)
        this.dataForm.faultState = this.map.get(this.dataForm.faultState)
        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/basicInfo/TyProductModel/', this.dataForm)
        if (res.success) {
          await this.$tip.success()
          this.$refs.dialog.close()
          this.$emit('refreshDataList')
          this.map.clear()
        }
      }
    }
  }
</script>