| | |
| | | }
|
| | | .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;
|
| | | } |
| | |
| | | rs = $(rs).parent().get(0); |
| | | } |
| | | return rs; |
| | | } |
| | | } |
| | | |
| | | // 定义设备状态对应关系 |
| | | var devWorkerStates = [ |
| | | { |
| | | value: 0, |
| | | text: '停止状态', |
| | | }, |
| | | { |
| | | value: 1, |
| | | text: '暂停放电', |
| | | }, |
| | | { |
| | | value: 2, |
| | | text: '正在放电', |
| | | }, |
| | | { |
| | | value: 3, |
| | | text: '暂停充电', |
| | | }, |
| | | |
| | | { |
| | | value: 4, |
| | | text: '正在充电' |
| | | }, |
| | | ]; |
| | |
| | | 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);
|
| | | }
|
| | |
| | | <div class="span6">
|
| | | <div class="bui-input h-input">
|
| | | <input
|
| | | v-model="testParams.monCount"
|
| | | v-model="testParams.battStdCap"
|
| | | type="number"
|
| | | class="bui-input"
|
| | | placeholder="请输入标称容量">
|
| | |
| | | <div class="span6">
|
| | | <div class="bui-input h-input">
|
| | | <input
|
| | | v-model="groupInfo.monNum"
|
| | | v-model="testParams.monCount"
|
| | | type="number"
|
| | | class="bui-input"
|
| | | placeholder="请输入单体节数">
|
| | |
| | | battName: '', // 电池组名称
|
| | | byteName: 0, // 电池组名称字节数组
|
| | | param_index: 0, // 预置索引号
|
| | | mon_vol: 0, // 单体电压
|
| | | battStdCap: 0, // 电池组标称容量
|
| | | /* 放电参数 */
|
| | | hourState: 1, // 放电小时率
|
| | |
| | | monCount: 0, // 每组电池节数
|
| | | groupCount: 0, // 电池组组数
|
| | | monVolLowCount: 0, // 单体下限数量
|
| | | dcVolHighLimit: 0, // 升压上限
|
| | | // dcVolHighLimit: 0, // 升压上限
|
| | | testType: 0, // 测试类型(0:恒电流 1:恒功率 2:恒电阻)
|
| | | dischargePower: 0, // 预放功率
|
| | |
|
| | |
| | |
|
| | | },
|
| | | 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) {
|
| | |
| | |
|
| | | <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">
|
| | |
| | | bui.alert('请使用手机端登陆!'); |
| | | } |
| | | }, |
| | | openAndroidWifiUI: function() { |
| | | if(typeof(JSInterface) != 'undefined') { |
| | | JSInterface.openAndroidWifiUI(); |
| | | }else { |
| | | bui.alert('请使用手机端登陆!'); |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | var self = this; |
| | |
| | | <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>
|
| | |
| | | },
|
| | | 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;
|
| | |
| | | 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() {
|
| | |
| | | }
|
| | | .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;
|
| | | } |
| | |
| | | rs = $(rs).parent().get(0); |
| | | } |
| | | return rs; |
| | | } |
| | | } |
| | | |
| | | // 定义设备状态对应关系 |
| | | var devWorkerStates = [ |
| | | { |
| | | value: 0, |
| | | text: '停止状态', |
| | | }, |
| | | { |
| | | value: 1, |
| | | text: '暂停放电', |
| | | }, |
| | | { |
| | | value: 2, |
| | | text: '正在放电', |
| | | }, |
| | | { |
| | | value: 3, |
| | | text: '暂停充电', |
| | | }, |
| | | |
| | | { |
| | | value: 4, |
| | | text: '正在充电' |
| | | }, |
| | | ]; |
| | |
| | | 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);
|
| | | }
|
| | |
| | | <div class="span6">
|
| | | <div class="bui-input h-input">
|
| | | <input
|
| | | v-model="testParams.monCount"
|
| | | v-model="testParams.battStdCap"
|
| | | type="number"
|
| | | class="bui-input"
|
| | | placeholder="请输入标称容量">
|
| | |
| | | <div class="span6">
|
| | | <div class="bui-input h-input">
|
| | | <input
|
| | | v-model="groupInfo.monNum"
|
| | | v-model="testParams.monCount"
|
| | | type="number"
|
| | | class="bui-input"
|
| | | placeholder="请输入单体节数">
|
| | |
| | | battName: '', // 电池组名称
|
| | | byteName: 0, // 电池组名称字节数组
|
| | | param_index: 0, // 预置索引号
|
| | | mon_vol: 0, // 单体电压
|
| | | battStdCap: 0, // 电池组标称容量
|
| | | /* 放电参数 */
|
| | | hourState: 1, // 放电小时率
|
| | |
| | | monCount: 0, // 每组电池节数
|
| | | groupCount: 0, // 电池组组数
|
| | | monVolLowCount: 0, // 单体下限数量
|
| | | dcVolHighLimit: 0, // 升压上限
|
| | | // dcVolHighLimit: 0, // 升压上限
|
| | | testType: 0, // 测试类型(0:恒电流 1:恒功率 2:恒电阻)
|
| | | dischargePower: 0, // 预放功率
|
| | |
|
| | |
| | |
|
| | | },
|
| | | 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) {
|
| | |
| | |
|
| | | <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">
|
| | |
| | | bui.alert('请使用手机端登陆!'); |
| | | } |
| | | }, |
| | | openAndroidWifiUI: function() { |
| | | if(typeof(JSInterface) != 'undefined') { |
| | | JSInterface.openAndroidWifiUI(); |
| | | }else { |
| | | bui.alert('请使用手机端登陆!'); |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | var self = this; |
| | |
| | | <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>
|
| | |
| | | },
|
| | | 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;
|
| | |
| | | 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() {
|