whychdw
2019-08-31 74d8534a366850995e2403ebe4af58097eb67843
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
/**
 * 电池信息监控模块
 * 默认模块名: battery
 * @return {[object]}  [ 返回一个对象 ]
 */
loader.define({
    data: {
        vm: ''
    },
    loaded: function(require,exports,module) {
        var bs = bui.store({
            scope: 'page',
            data: {}
        });
        var vm = this.vm = new Vue({
            el: bs.$parent[0],
            data: {
                uiSidebar: '',
                devInfos: {
                    page: {
                        pageSize: 6,
                        pageCurr: 1
                    },
                    title: '设备信息',
                    list: []
                },
                devInfo: {
                    fbsName: "??",              // 设备名称
                    groupNum: '??',             // 电池组数
                    monCount: '??',             // 单体个数
                    nomCap: '??',               // 标称容量
                    battProducer: '未知',       // 电池品牌
                    nomGroupVol: '??',          // 标称组端电压
                    nomVol: '??',               // 标称单体电压
                    nomRes: '??',               // 标称内阻
                    battModel: '未知',          // 型号
                },
                eleTbl: {
                    timer: new Timeout(),
                    columns: [
                        {
                            title: '电池组',
                            key: 'BattGroupName',
                            minWidth: 120,
                            align: 'center',
                        },
                        {
                            title: '状态',
                            key: 'state',
                            minWidth: 180,
                            align: 'center',
                        },
                        {
                            title: '组端电压',
                            key: 'MonVolLowToAvg',
                            minWidth: 120,
                            align: 'center',
                        },
                        {
                            title: '电流',
                            key: 'Load_curr',
                            minWidth: 120,
                            align: 'center',
                        },
                        {
                            title: '告警信息',
                            key: 'SignalName',
                            minWidth: 120,
                            align: 'center',
                        },
                        {
                            title: '查看实时监控数据',
                            key: 'see',
                            minWidth: 120,
                            align: 'center',
                            render: (h, params) => {
                                return h('div', [
                                    h('i-button', {
                                        props: {
                                            type: 'success',
                                            size: 'small'
                                        },
                                        style: {
                                            marginRight: '5px'
                                        },
                                        on: {
                                            click: function(){
                                                // console.log(vm);
                                                vm.showBatteryInfo(params);
                                            }
                                        }
                                    }, '实时数据'),
                                ])
                            }
                        }
                    ],
                    data: []
                }
            },
            methods: {
                initDevInfo: function() {
                    this.devInfo = {
                        fbsName: "??",              // 设备名称
                        groupNum: '??',             // 电池组数
                        monCount: '??',             // 单体个数
                        nomCap: '??',               // 标称容量
                        battProducer: '未知',       // 电池品牌
                        nomGroupVol: '??',          // 标称组端电压
                        nomVol: '??',               // 标称单体电压
                        nomRes: '??',               // 标称内阻
                        battModel: '未知',          // 型号
                    };
                },
                setDevInfo: function(data){
                    this.initDevInfo();
                    this.devInfo = $.extend({}, this.devInfo, data);
                },
                handlerTr: function(data) {
                    router.load({url: '../battery/batteryInfo.html', param: data,reload:true});
                },
                searchDevice: function() {
                    var self = this;
                    var page = this.devInfos.page;
                    var json = JSON.stringify(page);
                    // 请求后台获取告警
                    ajax({
                        type: 'post',
                        async: true,
                        url: 'BattInfAction!serchDevice',
                        data: 'json='+json,
                        dataType: 'json',
                        success: function(res) {
                            var rs = JSON.parse(res.result);
                            if(rs.code == 1) {
                                var data = rs.data;
                                for(var i=0; i<data.length; i++) {
                                    var _data = data[i];
                                    _data.title = _data.FBSDeviceName;
                                }
                                self.devInfos.list = data;
                            }
                        }
                    });
                },
                startBattInfo: function(id) {
                    var self = this;
                    this.eleTbl.timer.start(function() {
                        self.searchBattInfo(id);
                    }, 6000);
                },
                searchBattInfo: function(id) {
                    var self = this;
                    var json = JSON.stringify({
                        FBSDeviceId: id
                    });
                    // 请求后台获取告警
                    ajax({
                        type: 'post',
                        async: true,
                        url: 'BattInfAction!serchByCondition',
                        data: 'json='+json,
                        dataType: 'json',
                        success: function(res) {
                            var rs = JSON.parse(res.result);
                            if(rs.code == 1) {
                                var data = rs.data;
                                for(var i=0; i<data.length; i++) {
                                    var _data = data[i];
                                    _data.FBSDeviceId = id;
                                    _data.state = getBattstate(_data.num);
                                }
                                self.eleTbl.data = data;
                            }
                        },
                        complete: function() {
                            self.eleTbl.timer.open();
                        }
                    });
                },
                handlerListClick: function(item) {
                    this.setDevInfo(this.formateListData(item));
                    this.startBattInfo(item.FBSDeviceId);
                    this.uiSidebar.close();
                },
                formateListData: function(data) {
                    var result = {
                        fbsName: "??",              // 设备名称
                        groupNum: '??',             // 电池组数
                        monCount: '??',             // 单体个数
                        nomCap: '??',               // 标称容量
                        battProducer: '未知',       // 电池品牌
                        nomGroupVol: '??',          // 标称组端电压
                        nomVol: '??',               // 标称单体电压
                        nomRes: '??',               // 标称内阻
                        battModel: '未知',          // 型号
                    };
                    result.fbsName = data.FBSDeviceName;
                    result.groupNum = data.BattGroupNum;
                    result.monCount = data.MonCount;
                    result.nomCap = data.MonCapStd;
                    result.battProducer = data.BattProducer;
                    
                    result.nomGroupVol = data.MonCount*data.MonVolStd;
                    result.nomVol = data.MonVolStd;
                    result.nomRes = data.MonResStd;
                    result.battModel = data.BattModel;
                    return result;
                },
                showBatteryInfo: function(params) {
                    var row = params.row;
                    var param = {
                        battGroupId: row.BattGroupId,
                        battGroupName: row.BattGroupName, 
                        devId: row.FBSDeviceId,
                    };
                    // 加载路由
                    router.load({
                        url: '../battery/batteryInfo.html',
                        param: param
                    });
                },
                stopTimers: function() {
                    this.eleTbl.timer.stop();
                }
            },
            mounted() {
                // 获取所有设备的信息
                this.searchDevice();
    
                // 脚本都需要在这里执行
                var uiTab = bui.tab({
                    id:"#uiTab"
                });
    
                // 侧边栏
                this.uiSidebar = bui.sidebar({
                    id: "#sidebarWrap", //菜单的ID(必须)
                    width: 500,
                    trigger: "#menu",
                    isActive: true,
                });
                this.uiSidebar.open();
            },
            beforeDestroy() {
                // 关闭页面计时器
                this.stopTimers();
            },
        });
    },
    destroyed() {
        // 销毁vue实例
        this.vm.$destroy();
    },
})