sd
2025-08-01 9823ceec16b88213b6b742937b3d8562961bcc0e
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
<template>
  <div class="device-manage">
    <div class="cluster-content" >
      <div class="cluster-right" v-if="config=='device'">
        <el-form :model="deviceForm" :rules="rules" ref="deviceForm">
          <el-form-item prop="devId">
            <div class="p-title">设备ID</div>
            <el-input v-model="deviceForm.devId" disabled size="small"></el-input>
          </el-form-item>
          <el-form-item prop="name">
            <div class="p-title">设备名称</div>
            <el-input v-model="deviceForm.name" placeholder="" size="small"></el-input>
          </el-form-item>
          <el-form-item>
            <div class="p-title">设备地址</div>
            <el-input v-model="deviceForm.addr" placeholder="小区位置" size="small"></el-input>
          </el-form-item>
          <el-form-item prop="position">
            <div class="p-title">安装位置</div>
            <el-input v-model="deviceForm.position" placeholder="楼号/单元号" size="small">
            </el-input>
          </el-form-item>
          <el-form-item prop="org">
            <div class="p-title">所属机构</div>
            <el-input v-model="deviceForm.org" placeholder=""    size="small"></el-input>
          </el-form-item>
          <el-form-item prop="org">
            <div class="p-title">经度</div>
            <el-input v-model="deviceForm.longitude" placeholder="" size="small"></el-input>
          </el-form-item>
          <el-form-item prop="org">
            <div class="p-title">纬度</div>
            <el-input v-model="deviceForm.latitude" placeholder="" size="small"></el-input>
          </el-form-item>
          <el-form-item prop="org">
            <div class="p-title">备注</div>
            <el-input v-model="deviceForm.desc" placeholder="" size="small"></el-input>
          </el-form-item>
        </el-form>
        <div class="btns">
          <div class="ok" @click="saveDevice()">保存</div>
        </div>
      </div>
 
      <div class="cluster-right" v-if="config=='report'">
        <el-form :model="reportForm" :rules="rules" ref="reportForm">
          <el-form-item prop="devId">
            <div class="p-title">云服接口</div>
            <el-input v-model="reportForm.serverAddr" size="small"></el-input>
          </el-form-item>
          <el-form-item prop="name">
            <div class="p-title">上报间隔</div>
            <el-input v-model.number="reportForm.interval" placeholder="" size="small">
              <template slot="append">秒</template>
            </el-input>
          </el-form-item  >
        </el-form>
        <div class="btns">
          <div class="ok" @click="saveReport()">保存</div>
        </div>
      </div>
    </div>
  </div>
</template>
 
<script>
import {
  getDeviceClientInfo,
  setDeviceClientInfo,
  getDeviceReportConfig,
  setDeviceReportConfig
} from "@/api/device"
 
export default {
  props: {
    config: {
      type: String,
      defalut: ""
    },
  },
  data() {
    return {
      deviceForm: {
      },
      reportForm: {
      },         
      rules: {
      },
    }
  },
  mounted() {
    this.findDeviceConf();
    this.findReportConf();
  },
  methods: {   
    saveDevice() {
      this.$refs["deviceForm"].validate(async (valid) => {
        if (valid) {
          let res = await setDeviceClientInfo(this.deviceForm)
          if (res && res.success) { 
            this.$message.success("保存成功")
          }
        } else {
          return false
        }
      })
    },
 
    saveReport() {
      this.$refs["reportForm"].validate(async (valid) => {
        if (valid) {
          let res = await setDeviceReportConfig(this.reportForm)
          if (res && res.success) { 
            this.$message.success("保存成功")
          }
        } else {
          return false
        }
      })
    },
    async findDeviceConf() {
      let res = await getDeviceClientInfo()
      if (res && res.success) {
          this.deviceForm = res.data
        }
    },
    async findReportConf() {
      let res = await getDeviceReportConfig()
      if (res && res.success) {
          this.reportForm = res.data
        }
    }
  }
}
</script>
<style lang="scss" scoped>
.device-manage {
  width: 100%;
  background: #f2f2f7;
}
 
</style>