var judge=false;
function ajax(obj){//ajax请求
$.ajax({
url:obj.url,//请求地址
type:obj.type||"POST",//请求方式
async:(function(){//obj.async||true,//是否异步
if(obj.async==false){
return false;
}else{
return true;
}
})(),
cache:obj.cache||true,//是否从浏览器缓存中加载请求信息
data:obj.data||"",//请求参数
dataType:obj.dataType||"json",//返回的数据类型
timeout:30000,
beforeSend : function(jqXHR, setting) {//数据查询过程中
if(!obj.noneOpen){//
$("#loading",parent.document).show();
}
},
complete : function(XMLHttpRequest, textStatus) {//数据查询超时
if(textStatus=="timeout"){
$("#loading",parent.document).hide();
msg({
layer:obj.layer,
title:"查询数据超时"
});
}
},
success : function(data) {//数据查询成功
if(obj.func){
obj.func(data);
}
$("#loading",parent.document).hide();
},
error : function(error) {//数据查询失败
if(obj.error){
obj.error(error);
}
$("#loading",parent.document).hide();
}
});
}
function addTreeTabs(treeData,callback){//添加树选项标签
//$(".treeBtn i").hide();
$(".treeBtn i").removeAttr("isClick");
for(var name in treeData){
//$(".treeBtn i[treeType='"+name+"']").show();
$(".treeBtn i[treeType='"+name+"']").attr("isClick","true").removeClass("noClick");//是否可以点击
}
$(".treeBtn i").unbind("click").on("click",function(){
if(!$(this).attr("isClick")){
return false;
}
$(".treeBtn i").removeClass("treeActive");
$(this).addClass("treeActive");
var _this=$(this);
$(".flexTabs").hide();
if($("."+$(this).attr("treeType")+"flexTabs").length != 0){//存在
$("."+_this.attr("treeType")+"flexTabs").show();
$("."+_this.attr("treeType")+"flexTabs .active").click();
}else{
var treeElem=$('<div class="flexTabs '+$(this).attr("treeType")+'flexTabs"></div>');
$(".treeList").append(treeElem);
for(var name in treeData[$(this).attr("treeType")]){
if(name != "mpTotal"){
var elem=$("<p>"+name+"</p>");
$("."+_this.attr("treeType")+"flexTabs").append(elem);
}
}
$("."+_this.attr("treeType")+"flexTabs p").unbind("click").click(function(){
$("."+_this.attr("treeType")+"flexTabs p").removeClass("active");
$(this).addClass("active");
if(callback){//点击标签后调用回调函数
var _thisText=$("."+_this.attr("treeType")+"flexTabs .active").text();
callback(treeData[_this.attr("treeType")][_thisText]);
}
});
$("."+_this.attr("treeType")+"flexTabs p:eq(0)").click();//默认选中第一个树标签
}
});
if($(".treeBtn i:eq(0)").attr("isClick")){
$(".treeBtn i:eq(0)").click();
}else if($(".treeBtn i:eq(1)").attr("isClick")){
$(".treeBtn i:eq(1)").click();
}else{
$(".treeBtn i:eq(2)").click();
}
}
function msg(obj){
obj.layer.open({
content:obj.title,
type:1,
closeBtn:0,
shade:0,
time:3000,
anim:2,
title:"操作信息",
skin:"layuiOPen",
area:["250px","150px"],
resize:false,
move:false,
offset:"rb"
});
}
function tree(obj){//动态添加树形菜单
/*
* 属性 意义
* check_get 有复选框的树,必须将此属性设为true,例如check_get:true;反之则不需要设置此属性
* numberNode 最多只能勾选numberNode个节点,例如numberNode:3,最多只能勾选3个节点;注意此属性只能用在有复选框的树的情况下,并且要将cascadeCheck属性设为false
* success 树加载成功后触发回调函数,例如success:function(node,data){}
* select 树节点选中后需单独处理的函数
* jdl 树只能选择计量点,例如:limit:"jld"
* group_jld 树只能选择组或计量点查询,例如:limit:"group_jld"
* */
var limitNode={
jld:["customerMeter","groupMeter"],
group_jld:["group","groupMeter","customerMeter"]
}
$(obj.id).tree({
data:obj.data,
lines : obj.lines == undefined ? true:obj.lines,//是否显示树线条
checkbox : obj.checkbox == undefined ? true : obj.checkbox,//是否显示复选框
cascadeCheck : obj.cascadeCheck == undefined ? true : obj.cascadeCheck,//是否级联检查
onlyLeafCheck : obj.onlyLeafCheck == undefined ? false : obj.onlyLeafCheck,//是否只在叶节点前显示复选框。
onBeforeCheck:function(node,checked){//点击复选框前触发
if(obj.limit){
switch(obj.limit){
case "jld":
if (node.layer != "customerMeter" && node.layer != "groupMeter") {
msg({
title:"请选择计量点查询",
layer:obj.layer
});
return false;
}
break;
case "group_jld":
if(node.layer != "group" && node.layer != "groupMeter" && node.layer != "customerMeter"){
msg({
title:"请选择组或计量点查询",
layer:obj.layer
});
return false;
}
break;
}
}
},
onCheck:function(node,checked){
if(obj.numberNode != undefined){
unCheck({//限制树最多只能选obj.three个
node:node,
element:obj.id,
length:obj.numberNode
});
}
var id = $(obj.id).tree('find', node.id);
$(obj.id).tree('select', id.target);
if(obj.check_get != undefined){//有复选框,执行这里的请求函数,避免发多次请求
getData(node);
}
},
onBeforeSelect:function(node){//节点被选中前触发
if(obj.limit){
switch(obj.limit){
case "jld":
if (node.layer != "customerMeter" && node.layer != "groupMeter") {
msg({
title:"请选择计量点查询",
layer:obj.layer
});
return false;
}
break;
case "group_jld":
if(node.layer != "group" && node.layer != "groupMeter" && node.layer != "customerMeter"){
msg({
title:"请选择组或计量点查询",
layer:obj.layer
});
return false;
}
break;
}
}
},
onSelect:function(node){//节点选中时触发
node instanceof Object&&localStorage.setItem("qzfNode",node.id);//记住当前选择的节点id
if(obj.check_get== undefined){//没有复选框,执行这里的请求函数,避免发多次请求
if(obj.select){
obj.select(node);
}else{
getData(node);
}
}
},
onLoadSuccess:function(node,data){//树加载成功时触发
scroll({id:"#tree",cursorwidth:"6px",cursorborderradius:"6px"});//滚动条
if(localStorage.getItem("qzfNode") && !obj.userNo){//优先取上次操作的节点,如果没有再选择用户选想选择的节点
var nodeId=$(obj.id).tree("find",localStorage.getItem("qzfNode"));
if(nodeId){//存在表示当前树下有此节点,否则没有
if(obj.limit){//存在限制,需要处理,避免跳转界面时,造成选不中节点,导致界面为空白
if(limitNode[obj.limit].indexOf(nodeId.layer)<0){//此节点被限制,需要重新定义新节点,避免界面空白
var thisNum=0;
judge=false;
findNode(data,obj,thisNum);
}else{
selectCheck(nodeId,obj.id);
}
}else{
selectCheck(nodeId,obj.id);
}
}else{
var thisNum=0;
judge=false;
findNode(data,obj,thisNum);
}
}else if(obj.defaultNode){//存在需要默认选中节点的字段,并展开特定节点
var thisNum=0;
judge=false;
findNode(data,obj,thisNum);
}
if(obj.success != undefined){
obj.success(node,data);
}
},
onExpand:function(node){//节点展开时触发
resizeScroll({id:"#tree"});
if(obj.expend){
obj.expend();
}
},
onCollapse:function(node){//节点折叠时触发
resizeScroll({id:"#tree"});
if(obj.collapse){
obj.collapse();
}
},
onClick:function(node){//当点击节点时触发,点击复选框不能触发这个事件
if (!node.checked) {
$(obj.id).tree("check", node.target);
} else {
$(obj.id).tree("uncheck", node.target);
}
}
})
}
unCheck.selectNodes = [];
unCheck.unChecking = false;
function unCheck(obj) {//树选择限制
if (!unCheck.unChecking) {
var index = $.inArray(obj.node, unCheck.selectNodes);
if (unCheck.selectNodes.length >= obj.length) {
if (index == -1) {// 选中新的节点,取消选中第一个选中的节点
var unCheckNode = unCheck.selectNodes.shift();
unCheck.unChecking = true;
var element = obj.element;
$(element).tree("uncheck", unCheckNode.target);
}
}
if (index != -1) {// 当前操作为取消选中
unCheck.selectNodes.splice(index, 1);
} else {
unCheck.selectNodes.push(obj.node);
}
unCheck.unChecking = false;
}
}
function selectNode(nodeArr,Arr,id){//查找符合条件的树节点
for(var i=0;i<nodeArr.length;i++){
if(nodeArr[i].layer == Arr){//找到第一个符合条件的节点
var nodeId = $(id).tree("find",nodeArr[i].id);
selectCheck(nodeId,id);
judge=true;
return true;
}else{
if(nodeArr[i].children){//存在子节点
selectNode(nodeArr[i].children,Arr,id);
}
}
}
}
function selectCheck(node,id){//树节点操作
$(id).tree('select', node.target);
$(id).tree('check', node.target);
$(id).tree('collapseAll');//先折叠全部节点
$(id).tree("expandTo",node.target);//然后从根部展开指定的节点
}
function findNode(data,obj,thisNum){
selectNode(data,obj.defaultNode[thisNum],obj.id);//返回判断是否有选中的节点,没有继续往下找
if(!judge){
thisNum++;
if(thisNum<obj.defaultNode.length){
findNode(data,obj,thisNum);//返回判断是否有选中的节点,没有继续往下找
}
}
}
Date.prototype.format=function(pattern){//日期格式化
var returnValue=pattern;
var format={
"y+":this.getFullYear(),
"M+":this.getMonth()+1,
"d+":this.getDate(),
"H+":this.getHours(),
"m+":this.getMinutes(),
"s+":this.getSeconds(),
"S":this.getMilliseconds(),
"h+":(this.getHours()%12),
"a":(this.getHours()/12)<=1?"AM":"PM"
};
for(var key in format){
var regExp=new RegExp("("+key+")");
if(regExp.test(returnValue)){
var zero="";
for(var i=0;i<RegExp.$1.length;i++){
zero+="0"
}
var replacement=RegExp.$1.length==1?format[key]:(zero+format[key]).substring(((""+format[key]).length));
returnValue=returnValue.replace(RegExp.$1,replacement)
}
}
return returnValue
};
function dateCallback(form,laydate,thisTab,defaultType,callback,needReady){//页面选择时间类型,设置对应显示时间框
form.on('select(timeType)', function(data){
$(".timeInput").hide();
if(data.value.split("_")[0] == -1){//时
$("#"+thisTab+"_date"+data.value.split("_")[0]).parent().show();
$('#'+thisTab+"_date"+data.value.split("_")[0]).attr("val",new Date().format("yyyy-MM-dd HH:00:00"));
laydate.render({
elem: '#'+thisTab+"_date"+data.value.split("_")[0],
theme:"#4CA6FF",
type:"datetime",
max:new Date().format("yyyy-MM-dd HH:mm:ss"),
value:new Date().format("yyyy-MM-dd HH:00:00"),
btns: ['confirm'],
done:function(value, date, endDate){
$('#'+thisTab+"_date"+data.value.split("_")[0]).attr("val",value);
}
});
}else if(data.value.split("_")[0] == 0){//日
$("#"+thisTab+"_date"+data.value.split("_")[0]).parent().show();
$('#'+thisTab+"_date"+data.value.split("_")[0]).attr("val",new Date().format("yyyy-MM-dd"));
laydate.render({
elem: '#'+thisTab+"_date"+data.value.split("_")[0],
theme:"#4CA6FF",
max:new Date().format("yyyy-MM-dd"),
value:new Date().format("yyyy-MM-dd"),
btns: ['confirm'],
done:function(value, date, endDate){
$('#'+thisTab+"_date"+data.value.split("_")[0]).attr("val",value);
},
ready:function(date){
if(needReady){
needReady(data.value.split("_")[0]);
}
}
});
}else if(data.value.split("_")[0] == 1){//周
$("#"+thisTab+"_date"+data.value.split("_")[0]).parent().show();
$('#'+thisTab+"_date"+data.value.split("_")[0]).attr("val",new Date().format("yyyy-MM-dd"));
laydate.render({
elem: '#'+thisTab+"_date"+data.value.split("_")[0],
theme:"#4CA6FF",
max:new Date().format("yyyy-MM-dd"),
value:new Date().format("yyyy-MM-dd"),
btns: ['confirm'],
done:function(value, date, endDate){
$('#'+thisTab+"_date"+data.value.split("_")[0]).attr("val",value);
}
});
}else if(data.value.split("_")[0] == 2){//月
$("#"+thisTab+"_date"+data.value.split("_")[0]).parent().show();
$('#'+thisTab+"_date"+data.value.split("_")[0]).attr("val",new Date().format("yyyy-MM"));
laydate.render({
elem: '#'+thisTab+"_date"+data.value.split("_")[0],
theme:"#4CA6FF",
type:"month",
max:new Date().format("yyyy-MM"),
value:new Date().format("yyyy-MM"),
btns: ['confirm'],
done:function(value, date, endDate){
$('#'+thisTab+"_date"+data.value.split("_")[0]).attr("val",value);
},
ready:function(date){
if(needReady){
needReady(data.value.split("_")[0]);
}
}
});
}else if(data.value.split("_")[0] == 3){//时段
$("#"+thisTab+"_dateStart"+data.value.split("_")[0]).parent().show().css("width","545px");
$("#"+thisTab+"_dateStart"+data.value.split("_")[0]).css("width","190px");
$("#"+thisTab+"_dateEnd"+data.value.split("_")[0]).css("width","190px");
$('#'+thisTab+"_dateStart"+data.value.split("_")[0]).attr("val",new Date(new Date().setDate(1)).format("yyyy-MM-dd"));
$('#'+thisTab+"_dateEnd"+data.value.split("_")[0]).attr("val",new Date().format("yyyy-MM-dd"));
var start=laydate.render({
elem: '#'+thisTab+"_dateStart"+data.value.split("_")[0],
theme:"#4CA6FF",
type:"date",
max:new Date().format("yyyy-MM-dd"),
value:new Date(new Date().setDate(1)).format("yyyy-MM-dd"),
btns: ['confirm'],
done:function(value, date, endDate){
$('#'+thisTab+"_dateStart"+data.value.split("_")[0]).attr("val",value);
end.config.min = {
year: date.year,
month: date.month - 1,
date: date.date/*,
hours: date.hours,
minutes: date.minutes,
seconds: date.seconds*/
}
}
});
var end=laydate.render({
elem: '#'+thisTab+"_dateEnd"+data.value.split("_")[0],
theme:"#4CA6FF",
type:"date",
min:new Date(new Date().setDate(1)).format("yyyy-MM-dd"),
max:new Date().format("yyyy-MM-dd"),
value:new Date().format("yyyy-MM-dd"),
btns: ['confirm'],
done:function(value, date, endDate){
$('#'+thisTab+"_dateEnd"+data.value.split("_")[0]).attr("val",value);
start.config.max = {
year: date.year,
month: date.month - 1,
date: date.date/*,
hours: date.hours,
minutes: date.minutes,
seconds: date.seconds*/
}
}
});
}else if(data.value.split("_")[0] == 5||data.value.split("_")[0] == 6){//年与年对比
$("#"+thisTab+"_date"+data.value.split("_")[0]).parent().show();
$('#'+thisTab+"_date"+data.value.split("_")[0]).attr("val",new Date().format("yyyy"));
laydate.render({
elem: '#'+thisTab+"_date"+data.value.split("_")[0],
theme:"#4CA6FF",
type:"year",
max:new Date().format("yyyy"),
value:new Date().format("yyyy"),
btns: ['confirm'],
done:function(value, date, endDate){
$('#'+thisTab+"_date"+data.value.split("_")[0]).attr("val",value);
},
ready:function(date){
if(needReady){
needReady(data.value.split("_")[0]);
}
}
});
}
if(callback){
callback(data.value.split("_")[0]);
}
if(data.value.split("_")[0] == 0){//电气运行分析查询类型
if($("#thisTab_btn").find("button.active").attr("type")=="frequency"||$("#thisTab_btn").find("button.active").attr("type")=="monitoring"||$("#thisTab_btn").find("button.active").attr("type")=="analysis"){
$("#querytype").hide();
}else{
$("#querytype").show();
}
}else{
$("#querytype").hide();
}
});
$(".timeInput").hide();
var defaultMax;var defaultValue;var defaultValue2;var defaultType_;
if(defaultType == "-1"){
$("#"+thisTab+"_date-1").parent().show();
defaultType_="datetime";
defaultMax=new Date().format("yyyy-MM-dd HH:mm:ss");
defaultValue=new Date().format("yyyy-MM-dd HH:00:00");
}else if(defaultType == "0"){
$("#"+thisTab+"_date0").parent().show();
defaultType_="date";
defaultMax=new Date().format("yyyy-MM-dd");
defaultValue=new Date().format("yyyy-MM-dd");
}else if(defaultType == "1"){
$("#"+thisTab+"_date1").parent().show();
defaultType_="date";
defaultMax=new Date().format("yyyy-MM-dd");
defaultValue=new Date().format("yyyy-MM-dd");
}else if(defaultType == "2"){
$("#"+thisTab+"_date2").parent().show();
defaultType_="month";
defaultMax=new Date().format("yyyy-MM");
defaultValue=new Date().format("yyyy-MM");
}else if(defaultType == "3"){
$("#"+thisTab+"_dateStart3").parent().show().css("width","545px");
$("#"+thisTab+"_dateStart3").css("width","190px");
$("#"+thisTab+"_dateEnd3").css("width","190px");
defaultType_="datetime";
defaultMax=new Date().format("yyyy-MM-dd");
defaultValue=new Date(new Date().setDate(1)).format("yyyy-MM-dd");
defaultValue2=new Date().format("yyyy-MM-dd");
}else if(defaultType == "5"||defaultType == "6"){
$("#"+thisTab+"_date"+defaultType).parent().show();
defaultType_="year";
defaultMax=new Date().format("yyyy");
defaultValue=new Date().format("yyyy");
}
if(defaultType=="3"){
laydate.render({
elem: '#'+thisTab+"_dateStart3",
theme:"#4CA6FF",
type:defaultType_,
max:defaultMax,
value:defaultValue,
btns: ['now','confirm'],
done:function(value, date, endDate){
$('#'+thisTab+"_dateStart3").attr("val",value);
}
});
$('#'+thisTab+"_dateStart3").attr("val",defaultMax);
laydate.render({
elem: '#'+thisTab+"_dateEnd3",
theme:"#4CA6FF",
type:defaultType_,
max:defaultMax,
value:defaultValue2,
btns: ['now','confirm'],
done:function(value, date, endDate){
$('#'+thisTab+"_dateEnd3").attr("val",value);
}
});
$('#'+thisTab+"_dateEnd3").attr("val",defaultMax);
}else{
laydate.render({
elem: '#'+thisTab+"_date"+defaultType,
theme:"#4CA6FF",
type:defaultType_,
max:defaultMax,
value:defaultValue,
btns: ['now','confirm'],
done:function(value, date, endDate){
$('#'+thisTab+"_date"+defaultType).attr("val",value);
},
ready:function(date){
if(needReady){
needReady(defaultType);
}
}
});
$('#'+thisTab+"_date"+defaultType).attr("val",defaultMax);
}
}
function getElem(obj){
var dateElem;
if(obj.timeTypeId == -1){//时
dateElem={
dateType:obj.timeTypeId,
fromDate:$(obj.inputId).attr("val"),
toDate:$(obj.inputId).attr("val")
}
}else if(obj.timeTypeId == 0){//日
dateElem={
dateType:obj.timeTypeId,
fromDate:$(obj.inputId).attr("val")+" 00:00:00",
toDate:$(obj.inputId).attr("val")+" 23:59:59"
}
}else if(obj.timeTypeId == 1){//周
var time=$(obj.inputId).attr("val");
var time_=new Date(Date.parse(time.replace(/-/g,"-")));
var now = new Date(time_);
var nowTime = now.getTime() ;
var day = now.getDay();
var oneDayLong = 24*60*60*1000 ;
var MondayTime = nowTime - (day)*oneDayLong ;
var SundayTime = nowTime + (6-day)*oneDayLong ;
var monday = new Date(MondayTime);
var sunday = new Date(SundayTime);
dateElem={
dateType:obj.timeTypeId,
fromDate:monday.format("yyyy-MM-dd")+" 00:00:00",
toDate:sunday.format("yyyy-MM-dd")+" 23:59:59"
}
}else if(obj.timeTypeId == 2){//月
var time=$(obj.inputId).attr("val");
var time_=new Date(Date.parse(time.replace(/-/g,"-")));
// 获取当前月的第一天
var start = new Date(time_);
start.setDate(1);
// 获取当前月的最后一天
var date = new Date(time_);
var currentMonth = date.getMonth();
var nextMonth = ++currentMonth;
var nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1);
var oneDay = 1000 * 60 * 60 * 24;
var end = new Date(nextMonthFirstDay - oneDay);
dateElem={
dateType:obj.timeTypeId,
fromDate:start.format("yyyy-MM-dd")+" 00:00:00",
toDate:end.format("yyyy-MM-dd")+" 23:59:59"
}
}else if(obj.timeTypeId == 3){//时段
dateElem={
dateType:obj.timeTypeId,
fromDate:$(obj.inputId[0]).attr("val")+" 00:00:00",
toDate:$(obj.inputId[1]).attr("val")+" 23:59:59"
}
}else if(obj.timeTypeId == 5||obj.timeTypeId == 6){//年
dateElem={
dateType:obj.timeTypeId,
fromDate:$(obj.inputId).attr("val")+"-01-01 00:00:00",
toDate:$(obj.inputId).attr("val")+"-12-31 23:59:59"
}
}
return dateElem;
}
/* clone 克隆对象
* */
function clone(obj) {
// Handle the 3 simple types, and null or undefined
if (null == obj || "object" != typeof obj) return obj;
// Handle Date
if (obj instanceof Date) {
var copy = new Date();
copy.setTime(obj.getTime());
return copy;
}
// Handle Array
if (obj instanceof Array) {
var copy = [];
for (var i=0; i<obj.length; ++i) {
copy[i] = clone(obj[i]);
}
return copy;
}
// Handle Object
if (obj instanceof Object) {
var copy = {};
for (var attr in obj) {
if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]);
}
return copy;
}
throw new Error("Unable to copy obj! Its type isn't supported.");
}
//不传d:默认四舍五入保留两位小数 (***解决舍入误差)
function round(num,d){
if(d==0){
d=d;
}else{
d=d||2;
}
//Step1:将num放大10的d次方倍
num*=Math.pow(10,d);
//Step2:对num四舍五入取整
num = Math.round(num);
//Step:返回num缩小10的d次方倍,获得最终结果
return num/Math.pow(10,d);
}
//滚动条
function scroll(obj){
$(obj.id).niceScroll({
cursorcolor: obj.color||"#59C7EF",
autohidemode:obj.autohidemode||false,
zindex:200,
cursorwidth:obj.cursorwidth||"10px",
cursorborderradius:obj.cursorborderradius||"10px",
cursorborder:obj.cursorborder||"1px solid #59C7EF"
});
};
//更新滚动条
function resizeScroll(obj){
$(obj.id).getNiceScroll().resize();
}
//定义serializeObject方法,序列化表单
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [ o[this.name] ];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
/*面向对象编程
* 特点:
* 1.封装
* 2.继承
* 3.多态
* */
/*继承的方法*/
//原型式继承
//原型式继承其实就是类式继承的封装,实现的功能是返回一个实例,改实例的原型继承了传入的o对象
function inheritObject(o) {
//声明一个过渡函数对象
function F() {};
//过渡对象的原型继承父对象
F.prototype = o;
//返回一个过渡对象的实例,该实例的原型继承了父对象
return new F();
}
//寄生式继承
//寄生式继承就是对原型继承的第二次封装,使得子类的原型等于父类的原型。并且在第二次封装的过程中对继承的对象进行了扩展
function inheritPrototype(subClass, superClass){
//复制一份父类的原型保存在变量中,使得p的原型等于父类的原型
var p = inheritObject(superClass.prototype);
//修正因为重写子类原型导致子类constructor属性被修改
p.constructor = subClass;
//设置子类的原型
subClass.prototype = p;
}
/*
* 继承使用方法:
//定义父类
var SuperClass = function (name) {
this.name = name;
this.books = ['javascript','html','css']
};
//定义父类原型方法
SuperClass.prototype.getBooks = function () {
console.log(this.books)
};
//定义子类
var SubClass = function (name) {
SuperClass.call(this,name)
}
inheritPrototype(SubClass,SuperClass);
var subclass1 = new SubClass('php')
*/
//函数用来解析来自URL的产讯传中的name = value参数对,并将其存储在一个对象的属性中,并且返回该对象
function urlArgs(){
var args = {};
var query = location.search.substring(1);
var pairs = query.split("&");
for(var i = 0;i < pairs.length; i++){
var pos = pairs[i].indexOf("=");
if(pos == -1) continue;
var name = pairs[i].substring(0, pos);
var value = pairs[i].substring(pos + 1);
value = decodeURIComponent(value);
args[name] = value;
}
return args;
}
/*
* 使用方法
* var args = urlArgs();
* var q = args.q || "";
* var n = args.n ? parseInt(args.n) : 10;
*/