jinlin
2024-11-19 195bb5267a6ece13363303e177fee7d1fa3941aa
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<template>
  <zt-dialog ref="dialog" @confirm="formSubmit" :hasConfirm="true">
    <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
      <zt-form-item label="上级节点" prop="pid" v-if="isShow">
        <zt-combo-tree v-model="dataForm.pid" :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 v-if="dataForm.productType==='5'||dataForm.productType===5" prop="equipType" label="设备类型">
        <el-input v-model="dataForm.equipType"></el-input>
      </zt-form-item>
      <zt-form-item label="节点类型" prop="productType" rules="required">
        <zt-dict v-model="dataForm.productType" dict="product" @input="changeType"
                 :disabled="disabled"></zt-dict>
      </zt-form-item>
      <zt-form-item v-if="dataForm.productType!=='1'" label="运行状态图" prop="operatImg">
        <el-input v-model="dataForm.operatImgName" @focus="selectPicture()"></el-input>
        <el-image v-if="dataForm.operatImg" :src="url+dataForm.operatImg" style="height: 50px;width: 50px"></el-image>
      </zt-form-item>
      <zt-form-item label="排序" prop="sort">
        <el-input v-model="dataForm.sort" readonly="false"></el-input>
      </zt-form-item>
    </el-form>
    <PictureSelect ref="pictureSelect" @setPicture="openAddWin">
    </PictureSelect>
  </zt-dialog>
</template>
 
<script>
  import PictureSelect from "@/views/modules/basicInfo/SelectPicture";
  import Cookies from "js-cookie";
 
  export default {
    data() {
      return {
        disabled: false,
        url: `${window.SITE_CONFIG['apiURL']}/sysPictureBase/getSvgImage?token=${Cookies.get('token')}&id=`,
        isShow: true,
        fileId: '',
        productList: [],
        dataForm: {
          id: '',
          pid: '',
          name: '',
          shipId: '',
          productType: '',
          operatImg: '',
          operatImgName: '',
          sort: '',
          equipType: '',
          namePath:'',
          status: ''
        }
      }
    },
    components: {
      PictureSelect
    },
    methods: {
      init(id, params) {
        console.log(params)
        if (params.shipId) {
          this.dataForm.shipId = params.shipId
        }
        if (params.type === 'xh') {
          this.isShow = false
          this.dataForm.pid = null
          this.dataForm.productType = '1'
          this.getDefaultImg(this.dataForm.productType)
        } else if (params.type === 'zt') {
          this.dataForm.pid = params.pid
          this.dataForm.productType = '2'
          this.getDefaultImg(this.dataForm.productType)
        } else {
          this.dataForm.pid = params.pid
          this.dataForm.productType = parseInt(params.productType)
          this.dataForm.namePath= params.namePath
          this.getDefaultImg(this.dataForm.productType)
        }
        if (this.dataForm.productType === '10' && id == null) {
          this.isShow = false
          this.getDefaultImg(this.dataForm.productType)
        }
        this.getProductList()
      },
      // 获取系统列表
      async getProductList() {
        let params = {
          productType: this.dataForm.productType,
          shipId: this.dataForm.shipId
        }
        let res = await this.$http.get('/basicInfo/XhProductModel/getProductList', {params: params})
        this.productList = res.data
        console.log(this.productList, 'getProductList')
      },
      changeType(selected) {
        this.dataForm.productType = selected
        this.getDefaultImg(selected)
        this.getProductList()
      },
      async getDefaultImg(selected) {
        console.log(selected, 'async getDefaultImg')
        let params = {
          productType: selected
        }
        let res = await this.$http.get(`/sysPictureBase/getDefaultImg`, {params: params})
        if (res.data) {
          this.dataForm.operatImgName = res.data.name
          this.dataForm.operatImg = res.data.id
        }
      },
      selectPicture() {
        this.$refs.pictureSelect.$refs.dialog.init(this.dataForm.productType)
      },
      openAddWin(row) {
        this.dataForm.operatImgName = row.name
        this.dataForm.operatImg = row.id
        console.log(row, 'openAddWin(row)')
      },
      // 获取信息
      async getInfo() {
        let res = await this.$http.get(`/basicInfo/XhProductModel/${this.dataForm.id}`)
        this.dataForm = {
          ...this.dataForm,
          ...res.data
        }
      },
      // 表单提交
      async formSubmit() {
        let flag = true
        if (this.isShow) {
          if (this.dataForm.productType === '1') {
            this.$alert("不支持新增此节点")
            flag = false
          }
        }
        if (!flag) {
          return
        }
        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/basicInfo/XhProductModel/', this.dataForm)
        if (res.success) {
          await this.$tip.success()
          this.$refs.dialog.close()
          this.$emit('refreshDataList')
        }
      }
    }
  }
</script>