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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
<script>
import exceptionSetting from '@/api/setting/exceptionSetting.js'
import { useCommonFunction } from '@/utils/common.js'
export default {
  props: {
    userName: {
      type: String,
      default: ''
    }
  },
 
  computed: {
    formDataAfterCal() {
      return {
        user: this.userName,
        region: this.form.region,
        // 是修改状态-->该记录的版本号  是新增状态--> 配置表表最大的版本号
        version: this.modify ? this.form.version : this.maxVersion,
 
        missDataMinutes: this.form.missDataMinutes,
        dataLow: this.form.dataLow,
        longTimeNoChange: this.form.longTimeNoChange,
        mutationNum: this.form.mutationNum,
        mutationRate: this.form.mutationRate,
        nearExceedLowValue: this.form.nearExceedLowValue,
        nearExceedHighValue: this.form.nearExceedHighValue,
        nearExceedNum: this.form.nearExceedNum,
        dayExceedBorderlineLowNum: this.form.dayExceedBorderlineLowNum,
        dayExceedBorderlineHighNum: this.form.dayExceedBorderlineHighNum,
        changeTrendGroup: this.form.changeTrendGroup,
        changeTrendInterval: this.form.changeTrendInterval,
        changeTrendRate: this.form.changeTrendRate,
        changeTrendTimes: this.form.changeTrendTimes,
        exceedingStandard: this.form.exceedingStandard
      }
    }
  },
  watch: {
    formData: {
      handler() {
        if (Object.keys(this.formData).length != 0)
          this.form = JSON.parse(JSON.stringify(this.formData))
      },
      deep: true
    }
  },
  data() {
    return {
      form: {},
      // 最高的版本号
      maxVersion: null,
      loading: false,
      // 修改状态
      modify: false
    }
  },
  setup() {
    const { findMaxValue } = useCommonFunction()
    return { findMaxValue }
  },
  mounted() {
    this.queryException()
  },
 
  methods: {
    // 提交
    async submitForm() {
      // 发送修改的请求
      await exceptionSetting.submitExceptionSetting(this.formDataAfterCal)
 
      this.$message.success('提交成功')
 
      // 数据提交后刷新表单
      this.queryException()
    },
 
    /**
     * 回退到默认配置
     * @param:
     * @returns:
     */
    async defaultSetting() {
      if (this.form.version == '1.0') {
        this.$message.info('当前已经是默认的版本')
        return
      }
      this.loading = true
      await exceptionSetting.queryDefaultSetting().then((Response) => {
        this.form = {}
        this.form = Response.data.data[0]
      })
 
      this.modify = true
      // 设置版本1.0 的更新时间
      exceptionSetting.alertExceptionSetting(this.formDataAfterCal)
      this.modify = false
      this.loading = false
 
      this.$message.success('回退成功')
    },
 
    /**
     * 查询请求设置的数据
     * @param:
     * @returns:
     */
    queryException() {
      this.loading = true
      exceptionSetting.queryExceptionSetting().then((Response) => {
        this.loading = false
        this.form = Response.data.data[0]
 
        // 找到最大的版本
        const versions = Response.data.data.map((item) => item.version)
        this.maxVersion = this.findMaxValue(versions)
      })
    },
    /**
     * 取消按钮
     * @param:
     * @returns:
     */
    cancelEvent() {
      this.$message.info('已取消')
    }
 
  }
}
</script>
<template>
 
  <div class="my-header">
    <el-text tag="b"> 正在使用的版本:{{ form.version }}</el-text>
  </div>
  <el-form :model="form" label-width="230px" v-loading="loading">
    <el-form-item label="用户名">
      <el-input :value="userName" disabled />
    </el-form-item>
 
    <el-form-item label="区县">
      <el-input :value="form.region" disabled />
    </el-form-item>
 
    <el-form-item label="(数据缺失)缺失的分钟数">
      <el-input v-model.number="form.missDataMinutes">
        <template #append>分钟</template>
      </el-input>
    </el-form-item>
    <el-form-item label="(数据超低)颗粒物浓度值小于X">
      <el-input v-model="form.dataLow">
        <template #append>mg/m³</template>
      </el-input>
    </el-form-item>
    <el-form-item label="(数据长时间无波动)连续X个值相等">
      <el-input v-model.number="form.longTimeNoChange">
        <template #append>个</template>
      </el-input>
    </el-form-item>
    <el-form-item label="(量级突变)连续N个15分钟">
      <el-input v-model.number="form.mutationNum">
        <template #append>分钟</template>
      </el-input>
    </el-form-item>
    <el-form-item label="(量级突变)变化率超过X">
      <el-input v-model="form.mutationRate">
        <template #append>比率</template>
      </el-input>
    </el-form-item>
    <el-form-item label="(临近超标异常)处于[a,b]的左边界">
      <el-input v-model="form.nearExceedLowValue">
        <template #append>mg/m³</template>
      </el-input>
    </el-form-item>
    <el-form-item label="(临近超标)处于[a,b]的右边界">
      <el-input v-model="form.nearExceedHighValue">
        <template #append>mg/m³</template>
      </el-input>
    </el-form-item>
    <el-form-item label="(临近超标)次数超过X个">
      <el-input v-model.number="form.nearExceedNum">
        <template #append>次</template>
      </el-input>
    </el-form-item>
    <el-form-item label="(单日超标次数临界)超标次数达X次">
      <el-input v-model.number="form.dayExceedBorderlineLowNum">
        <template #append>次</template>
      </el-input>
    </el-form-item>
    <el-form-item label="(单日超标次数临界)但未达到Y次">
      <el-input v-model.number="form.dayExceedBorderlineHighNum">
        <template #append>次</template>
      </el-input>
    </el-form-item>
    <el-form-item label="(变化趋势异常)N个一组">
      <el-input v-model.number="form.changeTrendGroup">
        <template #append>个</template>
      </el-input>
    </el-form-item>
    <el-form-item label="(变化趋势异常)间隔M">
      <el-input v-model.number="form.changeTrendInterval">
        <template #append>个</template>
      </el-input>
    </el-form-item>
    <el-form-item label="(变化趋势异常)平均值相差Y">
      <el-input v-model="form.changeTrendRate">
        <template #append>mg/m³</template>
      </el-input>
    </el-form-item>
 
    <el-form-item label="(变化趋势异常)连续的次数">
      <el-input v-model.number="form.changeTrendTimes">
        <template #append>次</template>
      </el-input>
    </el-form-item>
 
    <el-form-item label="(超标)超过标准值">
      <el-input v-model="form.exceedingStandard">
        <template #append>mg/m³</template>
      </el-input>
    </el-form-item>
  </el-form>
 
  <el-popconfirm
    confirm-button-text="确定"
    cancel-button-text="取消"
    icon-color="#626AEF"
    title="确认回退吗?"
    @confirm="defaultSetting"
    @cancel="cancelEvent"
  >
    <template #reference>
      <el-button  :disabled="form.version=='1.0'">回退到默认设置</el-button>
    </template>
  </el-popconfirm>
 
  <el-popconfirm
    confirm-button-text="确定"
    cancel-button-text="取消"
    icon-color="#626AEF"
    title="确认修改吗?"
    @confirm="submitForm"
    @cancel="cancelEvent"
  >
    <template #reference>
      <el-button type="primary">修改</el-button>
    </template>
  </el-popconfirm>
</template>
 
<style scoped>
.my-header {
  margin-bottom: 20px;
}
span {
  font-size: 16px;
  color: #0a0a0a;
}
.version-text {
  margin-left: 20px;
}
.el-input {
  width: 50%;
}
</style>