/**
|
*显示等待
|
*/
|
function loadshow(){
|
$.mobile.loading('show',{text:'数据加载中...',textVisible:'true',theme:'a',textonly:false,html:''});
|
addMask();
|
}
|
|
/**
|
* 移除等待
|
*/
|
function loadclose() {
|
$.mobile.loading('hide');
|
$('div[data-role="page"]').find('.loading-mask').remove();
|
};
|
|
// 给加载等待添加遮罩层
|
function addMask() {
|
var mask = $('<div class="loading-mask" style="position: fixed; z-index: 999999;top: 0; left:0; width: 100%; height: 100%;background-color: #000; opacity: 0.1"></div>')
|
$('div[data-role="page"]').append(mask);
|
}
|
|
//写cookies
|
function setCookie(name,value)
|
{
|
var Days = 30;
|
var exp = new Date();
|
exp.setTime(exp.getTime() + Days*24*60*60*1000);
|
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
|
}
|
|
// 读cookies
|
function getCookie(name)
|
{
|
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
|
if(arr = document.cookie.match(reg))
|
return unescape(arr[2]);
|
else
|
return null;
|
}
|
|
// 删除cookie
|
function delCookie(name)
|
{
|
var exp = new Date();
|
exp.setTime(exp.getTime() - 1);
|
var cval=getCookie(name);
|
if(cval!=null)
|
document.cookie= name + "="+cval+";expires="+exp.toGMTString();
|
}
|
|
var CapType_Rest = 0; //当查询剩余容量时传递
|
var CapType_Real = 1; //当查询实际容量时传递
|
var STDAH; //标纯容量
|
var MonomerVolType; //电池电压类型
|
// 获取标纯电流
|
function GetFDCurrent(stdcap,hourrate)
|
{
|
var res = 0.055;
|
switch(hourrate)
|
{
|
case 1: res = 0.514; break;
|
case 2: res = 0.306; break;
|
case 3: res = 0.250; break;
|
case 4: res = 0.200; break;
|
case 5: res = 0.166; break;
|
case 6: res = 0.146; break;
|
case 7: res = 0.131; break;
|
case 8: res = 0.118; break;
|
case 9: res = 0.108; break;
|
case 10: res = 0.100; break;
|
case 20: res = 0.055; break;
|
default: res = 0.055; break;
|
}
|
|
return (stdcap * res);
|
}
|
|
// 获取放电小时率 stdah:标纯容量 current:当前电流
|
function GetHourRate(stdah,current)
|
{
|
var index = 0;
|
var value=[5.14, 3.06, 2.50, 2.00, 1.66, 1.46, 1.31, 1.18, 1.08, 1.00, 0.55, 0.40];
|
var res;
|
current = Math.abs(current);
|
res = current/(stdah/10);
|
if(res >= 5.14) return 1;
|
else if(res <= 0.55) return 20;
|
else
|
{
|
for(var index=0; index<10; index++)
|
{
|
if((res<=value[index]) && (res>value[index+1]))
|
break;
|
else continue;
|
}
|
if((value[index]-res) < (res-value[index+1]))
|
{
|
return (index+1);
|
}
|
else
|
{
|
if(index+2 > 10) return (20);
|
else return (index+2);
|
}
|
}
|
}
|
|
function N_TO_10H(n_H)
|
{
|
switch(n_H)
|
{
|
case 1 : return(1/0.55);
|
case 2 : return(1/0.61);
|
case 3 : return(1/0.75);
|
case 4 : return(1/0.79);
|
case 5 : return(1/0.833);
|
case 6 : return(1/0.876);
|
case 7 : return(1/0.917);
|
case 8 : return(1/0.944);
|
case 9 : return(1/0.974);
|
case 10: return(1/1);
|
case 20: return(1/1.1);
|
}
|
return 1.0;
|
}
|
|
//获取剩余容量 STDAH:标称容量 HourRate:放电小时率 SumAH:测试容量 MaxMonomerVol:最大电池电压 MonomerVol:当前电池组的最低单体电压
|
//MonomerVolType:电池电压类型 CapType:容量类型(定值是常量)
|
function GetMonomerCap(STDAH,HourRate,SumAH,MaxMonomerVol,
|
MonomerVol,MonomerVolType,CapType)
|
{
|
if((MaxMonomerVol - MonomerVolType*0.9) <= 0)
|
return 0;
|
if(SumAH < 0)
|
SumAH *= (-1);
|
var tmp_cap;
|
tmp_cap = MonomerVol - MonomerVolType * 0.9;
|
tmp_cap *= (STDAH - SumAH * N_TO_10H(HourRate));
|
var dt_vol = MaxMonomerVol - MonomerVolType*0.9;
|
if(dt_vol < 0.01)
|
dt_vol = 0.01;
|
tmp_cap = tmp_cap/dt_vol;
|
if(tmp_cap < 0)
|
tmp_cap = 0;
|
|
if(CapType == CapType_Rest)
|
return tmp_cap;
|
else if(CapType == CapType_Real)
|
return (tmp_cap + SumAH * N_TO_10H(HourRate));
|
else
|
return ((tmp_cap + SumAH * N_TO_10H(HourRate))*100 / STDAH);
|
}
|
|
/* 获取电池组续航时间
|
* 续航时长=实际容量/(放电小时率*实际电流(45))
|
* @param int moncapstd 电池组标称容量
|
* @param int realcap 电池组实际容量
|
* @param int curr53 实时电流(53)
|
*
|
*/
|
function getGruopEndurTimeLong(moncapstd, realcap, curr53) {
|
var endurTimeLong = 0;
|
var real_curr45 = curr53*53/45;
|
var hourRate = N_TO_10H(GetHourRate(moncapstd, real_curr45));
|
endurTimeLong = realcap/(hourRate*real_curr45);
|
|
return endurTimeLong;
|
}
|
|
|
//获取后备时间
|
function GetRestTimeSecond(restcap,curr)
|
{
|
var tmp_curr = Math.abs(curr);
|
if(tmp_curr < 0.1)
|
tmp_curr = 0.1;
|
|
var rest_time = ((restcap / tmp_curr) * 3600);
|
if(rest_time > (99*3600))
|
rest_time = (99*3600);
|
return rest_time;
|
}
|
|
//将秒转化成时:分:秒
|
function formatSeconds(value) {
|
if(value > 0){
|
|
}else{
|
value = 0;
|
}
|
var theTime = parseInt(value); // 秒
|
var theTime1 = 0; // 分
|
var theTime2 = 0; // 小时
|
//alert(theTime);
|
if(theTime >= 60) {
|
theTime1 = parseInt(theTime/60);
|
theTime = parseInt(theTime%60);
|
//alert(theTime1+"-"+theTime);
|
if(theTime1 >= 60) {
|
theTime2 = parseInt(theTime1/60);
|
theTime1 = parseInt(theTime1%60);
|
}
|
}
|
var result = (theTime<10?"0":"")+parseInt(theTime);
|
if(theTime1 >= 0) {
|
result =(theTime1<10?"0":"")+parseInt(theTime1)+":"+result;
|
}
|
if(theTime2 >= 0) {
|
result =(theTime2<10?"0":"")+parseInt(theTime2)+":"+result;
|
}
|
return result;
|
}
|
|
/*从多维数组中获取最大值*/
|
function getMaxFromArr(arr) {
|
var newArray = arr.join(",").split(",");
|
return Math.max.apply({},newArray);
|
}
|
|
/*从多维数组中获取最小值*/
|
function getMinFromArr (arr) {
|
var newArray = arr.join(",").split(",");
|
return Math.min.apply({},newArray);
|
}
|
|
|
|
/**
|
* @param d
|
* the delimiter
|
* @param p
|
* the pattern of your date
|
* @author meizz
|
* @author kimsoft add w+ pattern
|
*/
|
Date.prototype.format = function(style) {
|
var o = {
|
"M+" : this.getMonth() + 1, // month
|
"d+" : this.getDate(), // day
|
"h+" : this.getHours(), // hour
|
"m+" : this.getMinutes(), // minute
|
"s+" : this.getSeconds(), // second
|
"w+" : "\u65e5\u4e00\u4e8c\u4e09\u56db\u4e94\u516d".charAt(this
|
.getDay()), // week
|
"q+" : Math.floor((this.getMonth() + 3) / 3), // quarter
|
"S" : this.getMilliseconds()
|
// millisecond
|
}
|
if (/(y+)/.test(style)) {
|
style = style.replace(RegExp.$1, (this.getFullYear() + "")
|
.substr(4 - RegExp.$1.length));
|
}
|
for ( var k in o) {
|
if (new RegExp("(" + k + ")").test(style)) {
|
style = style.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]
|
: ("00" + o[k]).substr(("" + o[k]).length));
|
}
|
}
|
return style;
|
};
|
|
/**
|
* @param d
|
* the delimiter
|
* @param p
|
* the pattern of your date
|
* @rebuilder kimsoft
|
* @version build 2006.12.15
|
*/
|
String.prototype.toDate = function(delimiter, pattern) {
|
delimiter = delimiter || "-";
|
pattern = pattern || "ymd";
|
var a = this.split(delimiter);
|
var y = parseInt(a[pattern.indexOf("y")], 10);
|
// remember to change this next century ;)
|
if (y.toString().length <= 2)
|
y += 2000;
|
if (isNaN(y))
|
y = new Date().getFullYear();
|
var m = parseInt(a[pattern.indexOf("m")], 10) - 1;
|
var d = parseInt(a[pattern.indexOf("d")], 10);
|
if (isNaN(d))
|
d = 1;
|
return new Date(y, m, d);
|
};
|
|
/*
|
添加导航条
|
@param array data 生成面包屑导航内容的数据
|
data为一个对象数组,每个对象包含基本属性url,txt
|
url存储的为要跳转的连接, txt为文本值
|
data[i].url, data[i].txt
|
*/
|
function addBreadCrumb(breadcrumb, data) {
|
// 清理导航内容
|
breadcrumb.text("");
|
// 遍历data向容器中添加内容
|
for(var i = 0; i < data.length; i++) {
|
var li;
|
if(data[i].txt.trim().length > 0) {
|
if(i == data.length-1) {
|
li= $('<li><a href="'+data[i].url+'" class="active">'+data[i].txt+'</a></li>');
|
}else{
|
li= $('<li><a href="'+data[i].url+'" target="_top">'+data[i].txt+'</a></li>');
|
}
|
breadcrumb.append(li);
|
}
|
}
|
}
|
|
$(document).on('pagebeforecreate',function() {
|
|
addCont();
|
});
|
|
/*
|
给页面中添加查询内容失败,查询内容为空的提示
|
该函数要要在页面增强之前调用,使用方式为:
|
$(document).on('pagebeforecreate',function() {
|
addCont();
|
});
|
查询内容失败调用:$('#searchErr').popup('open');
|
查询内容为空调用:$('#searchNull').popup('open');
|
*/
|
function addCont() {
|
var container = $('div[data-role="content"]');
|
if(container.length == 0) {
|
container = $('div[data-role="main"]');
|
}
|
|
// 查询内容失败
|
var searchErr = $('<div data-role="popup" data-theme="b" id="searchErr" class="ui-content">'+
|
'<p>查询数据失败!!!</p>'+'</div>');
|
container.append(searchErr).trigger("create");
|
|
// 查询内容为空
|
var searchNull = $('<div data-role="popup" data-theme="b" id="searchNull" class="ui-content">'+
|
'<p>查询数据内容为空!!!</p>'+'</div>');
|
container.append(searchNull).trigger("create");
|
//操作成功
|
var changeSuc = $('<div data-role="popup" data-theme="b" id="changeSuc" class="ui-content">'+
|
'<p>操作成功!!!</p>'+'</div>');
|
container.append(changeSuc).trigger("create");
|
var changeErr = $('<div data-role="popup" data-theme="b" id="changeErr" class="ui-content">'+
|
'<p>操作失败!!!</p>'+'</div>');
|
container.append(changeErr).trigger("create");
|
}
|
|
|
/*
|
更新select的内容
|
@param object element select的jquery对象
|
@param object opts 存储option的value和文本值
|
opts两个必备属性 val和 txt
|
*/
|
function updataSel(element, opts) {
|
//console.warn(3636);
|
element.siblings('span').text(opts[0].txt); // 设置默认显示的内容
|
|
// 清理element的option
|
element.text('');
|
//console.warn(opts);
|
// 根据vals和txt值生成option
|
for(var i = 0; i < opts.length; i++) {
|
|
var opt = $('<option value="'+opts[i].val+'">'+opts[i].txt+'</option>');
|
element.append(opt);
|
}
|
}
|
|
|
function updataSelStation(element, opts) {
|
|
element.siblings('span').text(opts[0].txt); // 设置默认显示的内容
|
|
// 清理element的option
|
element.text('');
|
//console.warn(opts);
|
// 根据vals和txt值生成option
|
for(var i = 0; i < opts.length; i++) {
|
|
var opt = $('<option value="'+opts[i].val+'" stationid="'+opts[i].stationid+'">'+opts[i].txt+'</option>');
|
element.append(opt);
|
}
|
}
|
|
function updataSelStationdev(element, opts) {
|
|
element.siblings('span').text(opts[0].txt); // 设置默认显示的内容
|
|
// 清理element的option
|
element.text('');
|
//console.warn(opts);
|
// 根据vals和txt值生成option
|
for(var i = 0; i < opts.length; i++) {
|
|
var opt = $('<option value="'+opts[i].val+'"dev_id="'+opts[i].dev_id+'" stationid="'+opts[i].stationid+'">'+opts[i].txt+'</option>');
|
element.append(opt);
|
}
|
}
|
/**
|
*ele JQuery对象
|
*input 默认值
|
*/
|
function setTimes(ele,value){
|
var currYear = (new Date()).getFullYear();
|
var opt={'default': {
|
theme:'android-ics light',
|
display: 'modal',
|
mode: 'scroller',
|
lang:'zh',
|
startYear:1970,
|
endYear:currYear + 50
|
}};
|
opt.date = {preset : 'date'};
|
opt.datetime = {preset : 'datetime'};
|
opt.time = {preset : 'time'};
|
ele.val(value).scroller('destroy').scroller($.extend(opt['date'], opt['default']));
|
}
|
|
//字符串的替换全部的方法
|
String.prototype.replaceAll = function(s1,s2){
|
return this.replace(new RegExp(s1,"gm"),s2);
|
};
|