whychdw
2019-10-22 855f20493d6fb90eb4ae35dec7f80183ae1800d0
修改内容
18个文件已修改
856 ■■■■■ 已修改文件
platforms/android/app/src/main/assets/www/css/common.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platforms/android/app/src/main/assets/www/js/common_functions.js 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platforms/android/app/src/main/assets/www/js/workers.js 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platforms/android/app/src/main/assets/www/pages/batttest/batttest.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platforms/android/app/src/main/assets/www/pages/batttest/batttest.js 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platforms/android/app/src/main/assets/www/pages/main/main.html 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platforms/android/app/src/main/assets/www/pages/main/main.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platforms/android/app/src/main/assets/www/pages/testdata/testdata.html 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platforms/android/app/src/main/assets/www/pages/testdata/testdata.js 251 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
www/css/common.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
www/js/common_functions.js 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
www/js/workers.js 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
www/pages/batttest/batttest.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
www/pages/batttest/batttest.js 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
www/pages/main/main.html 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
www/pages/main/main.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
www/pages/testdata/testdata.html 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
www/pages/testdata/testdata.js 251 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platforms/android/app/src/main/assets/www/css/common.css
@@ -107,4 +107,26 @@
}
.visitor-login:active {
    color: #2d8cf0;
}
.layout-flex-container {
    display: flex;
    width: 100%;
    height: 100%;
    flex-direction: column;
}
.layout-flex-content {
    flex: 1;
    background-color: #FFFFFF;
}
.flex-inner {
    padding: 8px;
}
.base-tbl {
    width: 100%;
}
.base-tbl td {
    padding-top: .25rem;
    padding-bottom: .25rem;
    border-bottom: 1px solid #eee;
}
platforms/android/app/src/main/assets/www/js/common_functions.js
@@ -7,4 +7,29 @@
        rs = $(rs).parent().get(0);
    }
    return rs;
}
}
// 定义设备状态对应关系
var devWorkerStates = [
    {
        value: 0,
        text: '停止状态',
    },
    {
        value: 1,
        text: '暂停放电',
    },
    {
        value: 2,
        text: '正在放电',
    },
    {
        value: 3,
        text: '暂停充电',
    },
    {
        value: 4,
        text: '正在充电'
    },
];
platforms/android/app/src/main/assets/www/js/workers.js
@@ -50,3 +50,48 @@
function setTestParamcalljs(content) {
    setTestParamWorker.postMessage(content);
}
// 建立一个获取电池实时测试信息的Worker线程
var getTestDataWorker = '';
function getTestDatacalljs(content) {
    getTestDataWorker.postMessage(content);
}
// 建立一个获取启动测试的线程
var startTestWorker = '';
// Android启动放电测试接口
function startDischargecalljs() {
    startTestWorker.postMessage(content);
}
// Android启动充电测试接口
function startChargecalljs() {
    startTestWorker.postMessage(content);
}
// 建立一个停止测试的线程
var stopTestWorker = '';
// Android停止放电测试接口
function stopDischargecalljs() {
    stopTestWorker.postMessage(content);
}
// Android停止充电测试接口
function stopChargecalljs() {
    stopTestWorker.postMessage(content);
}
// 建立一个暂停测试的线程
var pauseTestWorker = '';
// Android暂停放电测试接口
function pauseDischargecalljs() {
    pauseTestWorker.postMessage(content);
}
// Android暂停充电测试接口
function pauseChargecalljs() {
    pauseTestWorker.postMessage(content);
}
platforms/android/app/src/main/assets/www/pages/batttest/batttest.html
@@ -52,7 +52,7 @@
                    <div class="span6">
                        <div class="bui-input h-input">
                            <input 
                            v-model="testParams.monCount"
                            v-model="testParams.battStdCap"
                            type="number" 
                            class="bui-input"
                            placeholder="请输入标称容量">
@@ -65,7 +65,7 @@
                    <div class="span6">
                        <div class="bui-input h-input">
                            <input 
                            v-model="groupInfo.monNum"
                            v-model="testParams.monCount"
                            type="number" 
                            class="bui-input" 
                            placeholder="请输入单体节数">
platforms/android/app/src/main/assets/www/pages/batttest/batttest.js
@@ -48,6 +48,7 @@
                    battName: '',    // 电池组名称
                    byteName: 0,    // 电池组名称字节数组
                    param_index: 0,    // 预置索引号
                    mon_vol: 0,        // 单体电压
                    battStdCap: 0,    // 电池组标称容量
                    /* 放电参数 */
                    hourState: 1,     // 放电小时率
@@ -59,7 +60,7 @@
                    monCount: 0,    // 每组电池节数
                    groupCount: 0,    // 电池组组数
                    monVolLowCount: 0,    // 单体下限数量
                    dcVolHighLimit: 0,    // 升压上限
                    // dcVolHighLimit: 0,    // 升压上限
                    testType: 0,        // 测试类型(0:恒电流    1:恒功率      2:恒电阻)
                    dischargePower: 0,    // 预放功率
                    
@@ -135,13 +136,22 @@
                },
                routerTo: function() {
                    // 导航参数
                    var params = this.params;
                    // 测试信息
                    var testParams = this.testParams;
                    var url = getRouteUrl('testdata');
                    // 是否已经保存
                    var isSave = this.saveState.isDisabled?1:0;
                    router.load({
                        url: url,
                        param: {
                            name: params.name
                        }
                            name: params.name,        // 页面类型
                            monVol: testParams.mon_vol,        // 单体电压
                            monCount: testParams.monCount,    // 单体数量
                            groupCount: testParams.groupCount,    // 电池组数
                            isSave: isSave,            // 是否保存
                        }
                    });
                },
                getTestParam: function(loading) {
platforms/android/app/src/main/assets/www/pages/main/main.html
@@ -1,5 +1,12 @@
<div class="bui-page">
    <header class="bui-bar">
        <div class="bui-bar-left"></div>
        <div class="bui-bar-main">登陆</div>
        <div class="bui-bar-right">
            <div class="bui-btn" @click="openAndroidWifiUI"><i class="ivu-icon ivu-icon-ios-wifi"></i></div>
        </div>
    </header>
    <main>
        <div class="login-container">
            <div class="login-content">
platforms/android/app/src/main/assets/www/pages/main/main.js
@@ -72,6 +72,13 @@
                        bui.alert('请使用手机端登陆!');
                    }
                },
                openAndroidWifiUI: function() {
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.openAndroidWifiUI();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                }
            },
            mounted() {
                var self = this;
platforms/android/app/src/main/assets/www/pages/testdata/testdata.html
@@ -20,8 +20,53 @@
                <ul>
                    <li>
                        <div class="layout-flex-container">
                            <div class="layout-flex-content"></div>
                            <div class="layout-flex-footer"></div>
                            <div class="layout-flex-content">
                                <div class="flex-inner">
                                    <table class="base-tbl">
                                        <tbody>
                                            <tr>
                                                <td>组端电压:<span>{{testData.groupVol}}</span> V</td>
                                                <td>放电电流:<span>{{testData.chargeCurr}}</span> A</td>
                                            </tr>
                                            <tr>
                                                <td>已测时间:<span>{{testData.chageDate}}</span></td>
                                                <td>已测容量:<span>{{testData.testCap}}</span> AH</td>
                                            </tr>
                                            <tr>
                                                <td>已到单体个数:<span>{{testData.lowerCount}}</span> 个</td>
                                                <td>当前状态:<span>{{testData.btnState|btnStatesFilter}}</span> </td>
                                            </tr>
                                        </tbody>
                                    </table>
                                </div>
                            </div>
                            <div class="layout-flex-footer">
                                <div class="flex-inner" style="text-align:right;">
                                    <!-- 启动按钮  -->
                                    <i-button
                                    v-if="testData.btnState == 0"
                                    type="info"
                                    @click="startTest()">启动测试</i-button>
                                    <!-- 停止按钮 -->
                                    <i-button
                                    v-else
                                    type="warning"
                                    @click="stopTest()">停止测试</i-button>
                                    <!-- 继续按钮 -->
                                    <i-button
                                    v-if="testData.btnState == 1"
                                    type="success"
                                    @click="startTest()">继续测试</i-button>
                                    <!-- 暂停测试 -->
                                    <i-button
                                    v-else
                                    type="info"
                                    :disabled="isCanStop"
                                    @click="pauseTest()">暂停测试</i-button>
                                </div>
                            </div>
                        </div>
                    </li>
                    <li style="display: none;"><img src="images/placeholder-page.png" alt=""></li>
platforms/android/app/src/main/assets/www/pages/testdata/testdata.js
@@ -11,16 +11,53 @@
    },
    loaded: function loaded(require, exports, module) {
        var params = router.getPageParams();
        console.log(params);
        // 定义页面Worker线程
        getTestDataWorker = new Worker('worker/data.worker.js');
        startTestWorker = new Worker('worker/data.worker.js');
        stopTestWorker = new Worker('worker/data.worker.js');
        pauseTestWorker = new Worker('worker/data.worker.js');
        // 引入vue
        this.vm = new Vue({
            el: getPageRoot(module),
            data: {
                getTestDataTimer: '',
                getTestDataWorker: getTestDataWorker,    // 获取测试数据监控
                startTestWorker: startTestWorker,        // 启动测试Worker线程监控
                stopTestWorker: stopTestWorker,            // 停止测试Worker线程监控
                pauseTestWorker: pauseTestWorker,        // 暂停测试Worker线程监控
                params: params,
                pages: {
                    title: '活化测试'
                }
                },
                testData: {
                    groupVol: 0,    // 在线电压
                    tatalVol: 0,    // 总电压
                    nowDate: 0,        // 标准时间
                    chageDate: '00:00:00',    // 已测时间
                    btnState: 0,    // 按键状态(0:停止      1:暂停      2:放电       3:充电        4:等待充电)
                    lowerCount: 0,    // 已到下限单体数量
                    chargeCurr: 0,    // 充电电流
                    testCap: 0,        // 已放容量
                    maxVolNum: 0,    // 最高单体号
                    maxVol: 0,        // 最高单体电压
                    minVolNum: 0,    // 最低单体号
                    minVol: 0,        // 最低单体电压
                },
            },
            filters: {
                btnStatesFilter: function(state) {
                    var rs = '未知';
                    // 遍历devWorkState
                    for(var i=0; i<devWorkerStates.length; i++) {
                        var devWorkerState = devWorkerStates[i];
                        if(devWorkerState.value == state) {
                            rs = devWorkerState.text;
                            break;
                        }
                    }
                    return rs;
                }
            },
            methods: {
                setPages: function() {
                    var params = this.params;
@@ -33,17 +70,223 @@
                            this.pages.title = '放电测试';
                        break;
                    }
                }
                },
                regVol: function(vol) {        // 校验电压
                    var params = this.params;
                    var totalVol = params.monVol*params.monCount;
                    var rs = {
                        code: 1,
                        msg: ''
                    };
                    // 验证电压的取值范围
                    if(vol<1) {
                        rs.code = 0;
                        rs.msg = '电压过低!';
                    }else if(vol>285) {
                        rs.code = 0;
                        rs.msg = '电压过高!';
                    }
                    if(rs.code == 1) {
                        // 验证电压是否匹配
                        var min = totalVol*0.9;
                        var max = totalVol*1.18;
                        if(vol<min || vol>max) {
                            rs.code = 0;
                            rs.msg = '组端电压不匹配(范围'+min+'~'+max+')!';
                        }
                    }
                    return rs;
                },
                regSave: function() {    // 校验是否保存参数
                    var params = this.params;
                    var rs = {
                        code: 1,
                        msg: ''
                    };
                    if(!params.isSave) {
                        rs.code = 0;
                        rs.msg = '设置参数未保存!';
                    }
                    return rs;
                },
                regData: function(vol) {    // 检验数据
                    var rs = this.regSave();
                    if(rs.code == 1) {
                        rs = this.regVol(vol);
                    }
                    return rs;
                },
                // 启动测试
                startTest: function() {
                    var params = this.params;
                    var testData = this.testData;
                    var dataState = this.regData(testData.groupVol);
                    if(dataState.code == 1) {
                        switch(params.name) {
                            case 'charge':
                                // 启动充电测试
                                this.startCharge();
                            break;
                            case 'discharge':
                                // 启动放电测试
                                this.startDischarge();
                            break;
                        }
                    }else {
                        this.$Modal.warning({
                            title: '告警信息',
                            'mask-closable': true,
                            content: dataState.msg
                        });
                    }
                },
                startDischarge: function() {        // 启动放电测试
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.startDischarge();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                },
                startCharge: function() {
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.startCharge();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                },
                // 停止测试
                stopTest: function() {
                    var params = this.params;
                    switch(params.name) {
                        case 'charge':
                            // 停止充电测试
                            this.stopCharge();
                        break;
                        case 'discharge':
                            // 停止放电测试
                            this.stopDischarge();
                        break;
                    }
                },
                stopDischarge: function() {
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.stopDischarge();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                },
                stopCharge: function() {
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.stopCharge();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                },
                // 暂停测试
                pauseTest: function() {
                    var params = this.params;
                    switch(params.name) {
                        case 'charge':
                            // 停止充电测试
                            this.pauseCharge();
                        break;
                        case 'discharge':
                            // 停止放电测试
                            this.pauseDischarge();
                        break;
                    }
                },
                pauseDischarge: function() {
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.pauseDischarge();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                },
                pauseCharge: function() {
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.pauseCharge();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                },
                getTestData: function() {
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.getTestData();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                }
            },
            computed: {
                isCanStop: function() {
                    return this.testData.btnState == 0?true:false;
                }
            },
            mounted() {
                var self = this;
                // 设置页面内容
                this.setPages();
                // 选项卡
                var testDataUiTab = bui.tab({
                    id: "#testDataUiTab"
                });
                // 获取参数
                this.getTestData();
                // 监控获取测试数据返回结果
                this.getTestDataWorker.onmessage = function(res) {
                    var rs = res.data;
                    if(rs.code == 1) {
                        self.testData = rs.data;
                    }
                    // 设置延时请求
                    self.getTestDataTimer = setTimeout(function() {
                        self.getTestData();
                    }, 4000);
                }
                // 监控启动测试返回结果
                this.startTestWorker.onmessage = function(res) {
                    var rs = res.data(res);
                    if(rs.code == 1) {
                        bui.alert('启动成功!');
                    }else {
                        bui.alert('启动失败!');
                    }
                };
                // 监控停止测试返回结果
                this.stopTestWorker.onmessage = function(res) {
                    var rs = res.data(res);
                    if(rs.code == 1) {
                        bui.alert('停止成功!');
                    }else {
                        bui.alert('停止失败!');
                    }
                };
                // 监控暂停测试返回结果
                this.pauseTestWorker.onmessage = function(res) {
                    var rs = res.data(res);
                    if(rs.code == 1) {
                        bui.alert('暂停成功!');
                    }else {
                        bui.alert('暂停失败!');
                    }
                }
            },
            destroyed() {}
            destroyed() {
                // 关闭Worker线程
                this.getTestDataWorker.terminate();
                this.startTestWorker.terminate();
                this.stopTestWorker.terminate();
                // 关闭延时请求
                clearTimeout(this.getTestDataTimer);
            }
        });
    },
    destroyed: function destroyed() {
www/css/common.css
@@ -107,4 +107,26 @@
}
.visitor-login:active {
    color: #2d8cf0;
}
.layout-flex-container {
    display: flex;
    width: 100%;
    height: 100%;
    flex-direction: column;
}
.layout-flex-content {
    flex: 1;
    background-color: #FFFFFF;
}
.flex-inner {
    padding: 8px;
}
.base-tbl {
    width: 100%;
}
.base-tbl td {
    padding-top: .25rem;
    padding-bottom: .25rem;
    border-bottom: 1px solid #eee;
}
www/js/common_functions.js
@@ -7,4 +7,29 @@
        rs = $(rs).parent().get(0);
    }
    return rs;
}
}
// 定义设备状态对应关系
var devWorkerStates = [
    {
        value: 0,
        text: '停止状态',
    },
    {
        value: 1,
        text: '暂停放电',
    },
    {
        value: 2,
        text: '正在放电',
    },
    {
        value: 3,
        text: '暂停充电',
    },
    {
        value: 4,
        text: '正在充电'
    },
];
www/js/workers.js
@@ -50,3 +50,48 @@
function setTestParamcalljs(content) {
    setTestParamWorker.postMessage(content);
}
// 建立一个获取电池实时测试信息的Worker线程
var getTestDataWorker = '';
function getTestDatacalljs(content) {
    getTestDataWorker.postMessage(content);
}
// 建立一个获取启动测试的线程
var startTestWorker = '';
// Android启动放电测试接口
function startDischargecalljs() {
    startTestWorker.postMessage(content);
}
// Android启动充电测试接口
function startChargecalljs() {
    startTestWorker.postMessage(content);
}
// 建立一个停止测试的线程
var stopTestWorker = '';
// Android停止放电测试接口
function stopDischargecalljs() {
    stopTestWorker.postMessage(content);
}
// Android停止充电测试接口
function stopChargecalljs() {
    stopTestWorker.postMessage(content);
}
// 建立一个暂停测试的线程
var pauseTestWorker = '';
// Android暂停放电测试接口
function pauseDischargecalljs() {
    pauseTestWorker.postMessage(content);
}
// Android暂停充电测试接口
function pauseChargecalljs() {
    pauseTestWorker.postMessage(content);
}
www/pages/batttest/batttest.html
@@ -52,7 +52,7 @@
                    <div class="span6">
                        <div class="bui-input h-input">
                            <input 
                            v-model="testParams.monCount"
                            v-model="testParams.battStdCap"
                            type="number" 
                            class="bui-input"
                            placeholder="请输入标称容量">
@@ -65,7 +65,7 @@
                    <div class="span6">
                        <div class="bui-input h-input">
                            <input 
                            v-model="groupInfo.monNum"
                            v-model="testParams.monCount"
                            type="number" 
                            class="bui-input" 
                            placeholder="请输入单体节数">
www/pages/batttest/batttest.js
@@ -48,6 +48,7 @@
                    battName: '',    // 电池组名称
                    byteName: 0,    // 电池组名称字节数组
                    param_index: 0,    // 预置索引号
                    mon_vol: 0,        // 单体电压
                    battStdCap: 0,    // 电池组标称容量
                    /* 放电参数 */
                    hourState: 1,     // 放电小时率
@@ -59,7 +60,7 @@
                    monCount: 0,    // 每组电池节数
                    groupCount: 0,    // 电池组组数
                    monVolLowCount: 0,    // 单体下限数量
                    dcVolHighLimit: 0,    // 升压上限
                    // dcVolHighLimit: 0,    // 升压上限
                    testType: 0,        // 测试类型(0:恒电流    1:恒功率      2:恒电阻)
                    dischargePower: 0,    // 预放功率
                    
@@ -135,13 +136,22 @@
                },
                routerTo: function() {
                    // 导航参数
                    var params = this.params;
                    // 测试信息
                    var testParams = this.testParams;
                    var url = getRouteUrl('testdata');
                    // 是否已经保存
                    var isSave = this.saveState.isDisabled?1:0;
                    router.load({
                        url: url,
                        param: {
                            name: params.name
                        }
                            name: params.name,        // 页面类型
                            monVol: testParams.mon_vol,        // 单体电压
                            monCount: testParams.monCount,    // 单体数量
                            groupCount: testParams.groupCount,    // 电池组数
                            isSave: isSave,            // 是否保存
                        }
                    });
                },
                getTestParam: function(loading) {
www/pages/main/main.html
@@ -1,5 +1,12 @@
<div class="bui-page">
    <header class="bui-bar">
        <div class="bui-bar-left"></div>
        <div class="bui-bar-main">登陆</div>
        <div class="bui-bar-right">
            <div class="bui-btn" @click="openAndroidWifiUI"><i class="ivu-icon ivu-icon-ios-wifi"></i></div>
        </div>
    </header>
    <main>
        <div class="login-container">
            <div class="login-content">
www/pages/main/main.js
@@ -72,6 +72,13 @@
                        bui.alert('请使用手机端登陆!');
                    }
                },
                openAndroidWifiUI: function() {
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.openAndroidWifiUI();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                }
            },
            mounted() {
                var self = this;
www/pages/testdata/testdata.html
@@ -20,8 +20,53 @@
                <ul>
                    <li>
                        <div class="layout-flex-container">
                            <div class="layout-flex-content"></div>
                            <div class="layout-flex-footer"></div>
                            <div class="layout-flex-content">
                                <div class="flex-inner">
                                    <table class="base-tbl">
                                        <tbody>
                                            <tr>
                                                <td>组端电压:<span>{{testData.groupVol}}</span> V</td>
                                                <td>放电电流:<span>{{testData.chargeCurr}}</span> A</td>
                                            </tr>
                                            <tr>
                                                <td>已测时间:<span>{{testData.chageDate}}</span></td>
                                                <td>已测容量:<span>{{testData.testCap}}</span> AH</td>
                                            </tr>
                                            <tr>
                                                <td>已到单体个数:<span>{{testData.lowerCount}}</span> 个</td>
                                                <td>当前状态:<span>{{testData.btnState|btnStatesFilter}}</span> </td>
                                            </tr>
                                        </tbody>
                                    </table>
                                </div>
                            </div>
                            <div class="layout-flex-footer">
                                <div class="flex-inner" style="text-align:right;">
                                    <!-- 启动按钮  -->
                                    <i-button
                                    v-if="testData.btnState == 0"
                                    type="info"
                                    @click="startTest()">启动测试</i-button>
                                    <!-- 停止按钮 -->
                                    <i-button
                                    v-else
                                    type="warning"
                                    @click="stopTest()">停止测试</i-button>
                                    <!-- 继续按钮 -->
                                    <i-button
                                    v-if="testData.btnState == 1"
                                    type="success"
                                    @click="startTest()">继续测试</i-button>
                                    <!-- 暂停测试 -->
                                    <i-button
                                    v-else
                                    type="info"
                                    :disabled="isCanStop"
                                    @click="pauseTest()">暂停测试</i-button>
                                </div>
                            </div>
                        </div>
                    </li>
                    <li style="display: none;"><img src="images/placeholder-page.png" alt=""></li>
www/pages/testdata/testdata.js
@@ -11,16 +11,53 @@
    },
    loaded: function loaded(require, exports, module) {
        var params = router.getPageParams();
        console.log(params);
        // 定义页面Worker线程
        getTestDataWorker = new Worker('worker/data.worker.js');
        startTestWorker = new Worker('worker/data.worker.js');
        stopTestWorker = new Worker('worker/data.worker.js');
        pauseTestWorker = new Worker('worker/data.worker.js');
        // 引入vue
        this.vm = new Vue({
            el: getPageRoot(module),
            data: {
                getTestDataTimer: '',
                getTestDataWorker: getTestDataWorker,    // 获取测试数据监控
                startTestWorker: startTestWorker,        // 启动测试Worker线程监控
                stopTestWorker: stopTestWorker,            // 停止测试Worker线程监控
                pauseTestWorker: pauseTestWorker,        // 暂停测试Worker线程监控
                params: params,
                pages: {
                    title: '活化测试'
                }
                },
                testData: {
                    groupVol: 0,    // 在线电压
                    tatalVol: 0,    // 总电压
                    nowDate: 0,        // 标准时间
                    chageDate: '00:00:00',    // 已测时间
                    btnState: 0,    // 按键状态(0:停止      1:暂停      2:放电       3:充电        4:等待充电)
                    lowerCount: 0,    // 已到下限单体数量
                    chargeCurr: 0,    // 充电电流
                    testCap: 0,        // 已放容量
                    maxVolNum: 0,    // 最高单体号
                    maxVol: 0,        // 最高单体电压
                    minVolNum: 0,    // 最低单体号
                    minVol: 0,        // 最低单体电压
                },
            },
            filters: {
                btnStatesFilter: function(state) {
                    var rs = '未知';
                    // 遍历devWorkState
                    for(var i=0; i<devWorkerStates.length; i++) {
                        var devWorkerState = devWorkerStates[i];
                        if(devWorkerState.value == state) {
                            rs = devWorkerState.text;
                            break;
                        }
                    }
                    return rs;
                }
            },
            methods: {
                setPages: function() {
                    var params = this.params;
@@ -33,17 +70,223 @@
                            this.pages.title = '放电测试';
                        break;
                    }
                }
                },
                regVol: function(vol) {        // 校验电压
                    var params = this.params;
                    var totalVol = params.monVol*params.monCount;
                    var rs = {
                        code: 1,
                        msg: ''
                    };
                    // 验证电压的取值范围
                    if(vol<1) {
                        rs.code = 0;
                        rs.msg = '电压过低!';
                    }else if(vol>285) {
                        rs.code = 0;
                        rs.msg = '电压过高!';
                    }
                    if(rs.code == 1) {
                        // 验证电压是否匹配
                        var min = totalVol*0.9;
                        var max = totalVol*1.18;
                        if(vol<min || vol>max) {
                            rs.code = 0;
                            rs.msg = '组端电压不匹配(范围'+min+'~'+max+')!';
                        }
                    }
                    return rs;
                },
                regSave: function() {    // 校验是否保存参数
                    var params = this.params;
                    var rs = {
                        code: 1,
                        msg: ''
                    };
                    if(!params.isSave) {
                        rs.code = 0;
                        rs.msg = '设置参数未保存!';
                    }
                    return rs;
                },
                regData: function(vol) {    // 检验数据
                    var rs = this.regSave();
                    if(rs.code == 1) {
                        rs = this.regVol(vol);
                    }
                    return rs;
                },
                // 启动测试
                startTest: function() {
                    var params = this.params;
                    var testData = this.testData;
                    var dataState = this.regData(testData.groupVol);
                    if(dataState.code == 1) {
                        switch(params.name) {
                            case 'charge':
                                // 启动充电测试
                                this.startCharge();
                            break;
                            case 'discharge':
                                // 启动放电测试
                                this.startDischarge();
                            break;
                        }
                    }else {
                        this.$Modal.warning({
                            title: '告警信息',
                            'mask-closable': true,
                            content: dataState.msg
                        });
                    }
                },
                startDischarge: function() {        // 启动放电测试
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.startDischarge();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                },
                startCharge: function() {
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.startCharge();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                },
                // 停止测试
                stopTest: function() {
                    var params = this.params;
                    switch(params.name) {
                        case 'charge':
                            // 停止充电测试
                            this.stopCharge();
                        break;
                        case 'discharge':
                            // 停止放电测试
                            this.stopDischarge();
                        break;
                    }
                },
                stopDischarge: function() {
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.stopDischarge();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                },
                stopCharge: function() {
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.stopCharge();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                },
                // 暂停测试
                pauseTest: function() {
                    var params = this.params;
                    switch(params.name) {
                        case 'charge':
                            // 停止充电测试
                            this.pauseCharge();
                        break;
                        case 'discharge':
                            // 停止放电测试
                            this.pauseDischarge();
                        break;
                    }
                },
                pauseDischarge: function() {
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.pauseDischarge();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                },
                pauseCharge: function() {
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.pauseCharge();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                },
                getTestData: function() {
                    if(typeof(JSInterface) != 'undefined') {
                        JSInterface.getTestData();
                    }else {
                        bui.alert('请使用手机端登陆!');
                    }
                }
            },
            computed: {
                isCanStop: function() {
                    return this.testData.btnState == 0?true:false;
                }
            },
            mounted() {
                var self = this;
                // 设置页面内容
                this.setPages();
                // 选项卡
                var testDataUiTab = bui.tab({
                    id: "#testDataUiTab"
                });
                // 获取参数
                this.getTestData();
                // 监控获取测试数据返回结果
                this.getTestDataWorker.onmessage = function(res) {
                    var rs = res.data;
                    if(rs.code == 1) {
                        self.testData = rs.data;
                    }
                    // 设置延时请求
                    self.getTestDataTimer = setTimeout(function() {
                        self.getTestData();
                    }, 4000);
                }
                // 监控启动测试返回结果
                this.startTestWorker.onmessage = function(res) {
                    var rs = res.data(res);
                    if(rs.code == 1) {
                        bui.alert('启动成功!');
                    }else {
                        bui.alert('启动失败!');
                    }
                };
                // 监控停止测试返回结果
                this.stopTestWorker.onmessage = function(res) {
                    var rs = res.data(res);
                    if(rs.code == 1) {
                        bui.alert('停止成功!');
                    }else {
                        bui.alert('停止失败!');
                    }
                };
                // 监控暂停测试返回结果
                this.pauseTestWorker.onmessage = function(res) {
                    var rs = res.data(res);
                    if(rs.code == 1) {
                        bui.alert('暂停成功!');
                    }else {
                        bui.alert('暂停失败!');
                    }
                }
            },
            destroyed() {}
            destroyed() {
                // 关闭Worker线程
                this.getTestDataWorker.terminate();
                this.startTestWorker.terminate();
                this.stopTestWorker.terminate();
                // 关闭延时请求
                clearTimeout(this.getTestDataTimer);
            }
        });
    },
    destroyed: function destroyed() {