whychdw
2019-07-02 d2f48914142e8e40f432aebb987529f08a22c407
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
<template>
    <Form>
        <FormItem label="烟雾告警阀值(100~10000PPM):" prop="smoke_alarm">
            <Input v-model="alarms.smoke_alarm" placeholder="请输入烟雾告警阀值" />
        </FormItem>
        <FormItem label="环境温度告警阀值(-40~80℃):" prop="airtmp_alarm">
            <Input v-model="alarms.airtmp_alarm" placeholder="请输入环境温度告警阀值" />
        </FormItem>
        <FormItem label="环境湿度告警阀值(0~100%RM):" prop="airhum_alarm">
            <Input v-model="alarms.airhum_alarm" placeholder="请输入环境湿度告警阀值" />
        </FormItem>
        <FormItem style="text-align: right">
            <Poptip
                style="text-align: left"
                confirm
                title="是否确认提交"
                @on-ok="ok">
                <Button type="primary">提交修改</Button>
            </Poptip>
        </FormItem>
    </Form>
</template>
<script>
import {checkObjIsGood, ajax} from '../libs/common';
export default {
    name: 'AlarmsSetting',
    props:{
        device_id: {
            type: [Number, String],
            required: true
        },
        alarmRange: {
            type: Object,
            required: true
        }
    },
    data: function() {
        return {
            modal1: this.isShow,
            alarms: {
                smoke_alarm: this.alarmRange.smoke_alarm.max,
                airtmp_alarm: this.alarmRange.airtmp_alarm.max,
                airhum_alarm: this.alarmRange.airhum_alarm.max
            },
            rules: {
                smoke_alarm: {
                    pattern: /^[0-9]{0,20}$/,
                    regVal: true,
                    min: 100,
                    max: 10000,
                    name: '烟感告警值',
                    msg: '取值范围100~10000整数'
                },
                airtmp_alarm:{
                    pattern: /^-?[0-9]{0,20}(\.[0-9]{0,1})?$/,
                    regVal: true,
                    min: -40,
                    max: 80,
                    name: '空气温度告警值',
                    msg: '取值范围-40~80(精确到0.1)'
                },
                airhum_alarm: {
                    pattern: /^[0-9]{0,20}(\.[0-9]{0,1})?$/,
                    regVal: true,
                    min: 0,
                    max: 100,
                    name: '空气湿度告警值',
                    msg: '取值范围0~100数值(精确到0.1)'
                },
            }
        }
    },
    watch: {
        alarmRange: {
            handler: function(range) {
                this.alarms = {
                    smoke_alarm: this.alarmRange.smoke_alarm.max,
                    airtmp_alarm: this.alarmRange.airtmp_alarm.max,
                    airhum_alarm: this.alarmRange.airhum_alarm.max
                };
            },
            deep: true
        }
    },
    methods: {
        ok: function() {
            var _self = this;
            checkObjIsGood(this.alarms, this.rules, function(res) {
                //console.log(res);
                if(res.code ==1) {
                    // 请求后台修改参数
                    //console.log(_self.device_id);
                    var data = res.data;
                    var updateParams = {    // 构造更新参数
                        sensor_dev_id: _self.device_id,
                        smoke_alarm: Number(data.smoke_alarm),
                        airhum_alarm: Number(data.airhum_alarm),
                        airtmp_alarm: Number(data.airtmp_alarm)
                    };
                    //console.log(updateParams);
                    ajax({
                        url: 'Sensor_infAction!replaceAlarm',
                        data: 'json='+JSON.stringify(updateParams),
                        success: function(res) {
                            var rs = JSON.parse(res.result);
                            if(rs.code==1) {
                                 _self.$Message.success('设置成功!');
                                 // 请求后台更新参数
                                _self.$bus.$emit('setAlarms', updateParams);
                                _self.$bus.$emit('closeModal');
                            }else {
                                _self.$Message.error('设置失败!');
                            }
                        }
 
                    });
                }else {
                    _self.$Message.warning(res.name+':'+res.msg);
                }
            });
            
        }
    }
}
</script>