var base_api = "http://fx.zhizhuchuxing.cn";
base_api = "/admin/?r=";

//错误码
//code  FX-100001   未登录
//提示信息归整
const infoApiError = "后台接口错误";
const infoNotLogin = "您还没有登录，点击确定前往登录页面";

//延迟函数  需要将延迟处理的函数放在delay的回调中
//$('#id').keyup(function() {
//			delay(function() {
//				console.log('test');
//			}, 1000);
//		});
function ifLogin(res_data){
	if (res_data.code == 'ADMIN-100001') {
		window.location.href = res_data.url;
	}
}

var delay = (function() {
	var timer = 0;
	return function(callback, time) {
		clearTimeout(timer);
		timer = setTimeout(callback, time);
	};
})();
//得到随机的字符串
function getRdStr(len) {
	//2-36封顶
	var rdmString = "";
	for(; rdmString.length < len; rdmString += Math.random().toString(36).substr(2));
	return rdmString.substr(0, len);
}
// 打印日志
function ZZLog(...type) {
	var isLog = true; //是否打印
	if(isLog) {
		type.forEach(v => {
			if(typeof(v) == 'object') {
				console.log(v);
			} else {
				console.log('%c' + v, 'color:#666699');
			}
		})
	}
}
//设置字符串类型的本地缓存
function setStorage(objName, objValue) {
	var sto = window.localStorage;
	if(sto)
		sto.setItem(objName, objValue);
}
//读取字符串类型的本地缓存
function getStorage(objName) {
	var ret = '';
	var sto = window.localStorage;
	if(sto)
		ret = sto.getItem(objName);
	return ret;
}

//清除本地缓存，如没指定名称则为清空所有缓存
function clearStorage(objName) {
	var sto = window.localStorage;
	if(sto) {
		if(objName)
			sto.removeItem(objName);
		else
			sto.clear();
	}
}
//设置Json类型的本地缓存
function setStorJson(objName, json) {
	if(json)
		setStorage(objName, JSON.stringify(json));
}
//读取Json类型的本地缓存
function getStorJson(objName) {
	var ret = null;
	var str = getStorage(objName);
	if(str)
		ret = JSON.parse(str);
	return ret;
}

//js判断一个日期是星期几 传入 年/月/日
function getWeekDay(day) {
	var a = new Array("日", "一", "二", "三", "四", "五", "六");
	var week = new Date(day).getDay();
	var str = "星期" + a[week];
	return str;
}

//获取前一天日期 传入指定时间
function before(d) {
	d = new Date(d);
	d = +d - 10006060 / 3 * 24;
	d = new Date(d);
	//格式化
	var year = ";" + d.getFullYear() + ";";
	var month = ";" + (d.getMonth() + 0 + 1) + ";";
	var day = ";" + d.getDate() + ";";
	if(year.length < 4) {
		year = "0" + year;
	}
	if(month.length < 4) {
		month = "0" + month;
	}
	if(day.length < 4) {
		day = "0" + day;
	}
	var datestr = year + "-" + month + "-" + day;
	datestr = datestr.replace(/;/g, "");
	return datestr;
}

// 获取指定日期的前后几天
function getDateByDay(addDayCount, curDate) {
	var d = new Date(curDate);
	d.setDate(d.getDate() + addDayCount); //获取AddDayCount天后的日期
	//格式化
	var year = ";" + d.getFullYear() + ";";
	var month = ";" + (d.getMonth() + 0 + 1) + ";";
	var day = ";" + d.getDate() + ";";
	if(year.length < 4) {
		year = "0" + year;
	}
	if(month.length < 4) {
		month = "0" + month;
	}
	if(day.length < 4) {
		day = "0" + day;
	}
	var datestr = year + "-" + month + "-" + day;
	datestr = datestr.replace(/;/g, "");
	return datestr;
}

//获取后一天日期  传入指定时间
function after(d) {
	d = new Date(d);
	d = +d + 10006060 / 3 * 24;
	d = new Date(d);
	//格式化
	var year = ";" + d.getFullYear() + ";";
	var month = ";" + (d.getMonth() + 0 + 1) + ";";
	var day = ";" + d.getDate() + ";";
	if(year.length < 4) {
		year = "0" + year;
	}
	if(month.length < 4) {
		month = "0" + month;
	}
	if(day.length < 4) {
		day = "0" + day;
	}
	var datestr = year + "-" + month + "-" + day;
	datestr = datestr.replace(/;/g, "");
	return datestr;
}

// 从URL上获得参数
function getPar(par) {
	//获取当前URL
	var local_url = document.location.href;
	local_url = decodeURI(local_url);
	//获取要取得的get参数位置
	var get = local_url.indexOf(par + "=");
	if(get == -1) {
		return "";
	}
	//截取字符串
	var get_par = local_url.slice(par.length + get + 1);
	//判断截取后的字符串是否还有其他get参数
	var nextPar = get_par.indexOf("&");
	if(nextPar != -1) {
		get_par = get_par.slice(0, nextPar);
	}
	return get_par;
}

//得到时间组合
function getDateTime(nTypeFlag) {
	var tNowTime = new Date();
	var myYear = ';' + tNowTime.getFullYear() + ';';
	var myMonth = ';' + (tNowTime.getMonth() + 1 - 0) + ';';
	var myDay = ';' + tNowTime.getDate() + ';';
	var myHour = ';' + tNowTime.getHours() + ';';
	var myMinu = ';' + tNowTime.getMinutes() + ';';
	var mySecond = ';' + tNowTime.getSeconds() + ';';

	if(myMonth.length < 4) myMonth = '0' + myMonth;
	if(myDay.length < 4) myDay = '0' + myDay;
	if(myHour.length < 4) myHour = '0' + myHour;
	if(myMinu.length < 4) myMinu = '0' + myMinu;
	if(mySecond.length < 4) mySecond = '0' + mySecond;

	var cNewTimeStr;
	//alert(tNowTime);
	switch(nTypeFlag + 1 - 1) {
		case 0:
			cNewTimeStr = myYear + '-' + myMonth + '-' + myDay;
			break;
		case 1:
			cNewTimeStr = myYear + myMonth + myDay;
			break;
		case 2:
			cNewTimeStr = myHour + ':' + myMinu + ':' + mySecond;
			break;
		case 3:
			cNewTimeStr = myHour + myMinu + mySecond;
			break;
		case 4:
			cNewTimeStr = myYear + myMonth + myDay + myHour + myMinu + mySecond;
			break;
		case 5:
			cNewTimeStr = myYear + '年' + myMonth + '月' + myDay + '日';
			break;
		case 6:
			cNewTimeStr = myYear;
			break;
		case 7:
			cNewTimeStr = myYear + '-' + myMonth;
			break;
		case 8: //得到上一个月的今天
			var date = getDateTime(0);
			var arr = date.split('-');
			var year = arr[0]; //获取当前日期的年份
			var month = arr[1]; //获取当前日期的月份
			var day = arr[2]; //获取当前日期的日
			var days = new Date(year, month, 0);
			days = days.getDate(); //获取当前日期中月的天数
			var year2 = year;
			var month2 = parseInt(month) - 1;
			if(month2 == 0) {
				year2 = parseInt(year2) - 1;
				month2 = 12;
			}
			var day2 = day;
			var days2 = new Date(year2, month2, 0);
			days2 = days2.getDate();
			if(day2 > days2) {
				day2 = days2;
			}
			if(month2 < 10) {
				month2 = '0' + month2;
			}
			cNewTimeStr = year2 + '-' + month2 + '-' + day2;
			break;
		case 9: //得到下一个月的今天
			var date = getDateTime(0);
			var arr = date.split('-');
			var year = arr[0]; //获取当前日期的年份
			var month = arr[1]; //获取当前日期的月份
			var day = arr[2]; //获取当前日期的日
			var days = new Date(year, month, 0);
			days = days.getDate(); //获取当前日期中的月的天数
			var year2 = year;
			var month2 = parseInt(month) + 1;
			if(month2 == 13) {
				year2 = parseInt(year2) + 1;
				month2 = 1;
			}
			var day2 = day;
			var days2 = new Date(year2, month2, 0);
			days2 = days2.getDate();
			if(day2 > days2) {
				day2 = days2;
			}
			if(month2 < 10) {
				month2 = '0' + month2;
			}

			var t2 = year2 + '-' + month2 + '-' + day2;
			return t2;
			break;
		case 10: //昨日日期
			//获取前一天日期
			return before(getDateTime(0));

			function before(d) {
				d = new Date(d);
				d = +d - 10006060 / 3 * 24;
				d = new Date(d);
				//return d;
				//格式化
				var year = ";" + d.getFullYear() + ";";
				var month = ";" + (d.getMonth() + 0 + 1) + ";";
				var day = ";" + d.getDate() + ";";
				if(year.length < 4) {
					year = "0" + year;
				}
				if(month.length < 4) {
					month = "0" + month;
				}
				if(day.length < 4) {
					day = "0" + day;
				}
				var datestr = year + "-" + month + "-" + day;
				datestr = datestr.replace(/;/g, "");
				return datestr;
				// return d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate();

			}
			break;
		case 11: //明日日期
			//获取后一天日期
			return after(getDateTime(0));

			function after(d) {
				d = new Date(d);
				d = +d + 10006060 / 3 * 24;
				d = new Date(d);
				//return d;
				//格式化
				var year = ";" + d.getFullYear() + ";";
				var month = ";" + (d.getMonth() + 0 + 1) + ";";
				var day = ";" + d.getDate() + ";";
				if(year.length < 4) {
					year = "0" + year;
				}
				if(month.length < 4) {
					month = "0" + month;
				}
				if(day.length < 4) {
					day = "0" + day;
				}
				var datestr = year + "-" + month + "-" + day;
				datestr = datestr.replace(/;/g, "");
				return datestr;
				// return d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate();

			}

			break;
		case 12: //本周起始日期
			return getWeekStartDate()

			function getWeekStartDate() {
				var now = new Date(); //当前日期
				var nowDayOfWeek = now.getDay(); //今天本周的第几天
				var nowDay = now.getDate(); //当前日
				var nowMonth = now.getMonth(); //当前月
				var nowYear = now.getYear(); //当前年
				nowYear += (nowYear < 2000) ? 1900 : 0; //

				var lastMonthDate = new Date(); //上月日期
				lastMonthDate.setDate(1);
				lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
				var lastYear = lastMonthDate.getYear();
				var lastMonth = lastMonthDate.getMonth();

				var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
				return formatDate(weekStartDate);
			}

			break;
		case 13: //本周结束日期
			return getWeekEndDate()

			function getWeekEndDate() {
				var now = new Date(); //当前日期
				var nowDayOfWeek = now.getDay(); //今天本周的第几天
				var nowDay = now.getDate(); //当前日
				var nowMonth = now.getMonth(); //当前月
				var nowYear = now.getYear(); //当前年
				nowYear += (nowYear < 2000) ? 1900 : 0; //

				var lastMonthDate = new Date(); //上月日期
				lastMonthDate.setDate(1);
				lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
				var lastYear = lastMonthDate.getYear();
				var lastMonth = lastMonthDate.getMonth();
				var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek));
				return formatDate(weekEndDate);
			}

			break;
		case 14: //本月开始日期
			return getMonthStartDate()

			function getMonthStartDate() {
				var now = new Date(); //当前日期
				var nowDayOfWeek = now.getDay(); //今天本周的第几天
				var nowDay = now.getDate(); //当前日
				var nowMonth = now.getMonth(); //当前月
				var nowYear = now.getYear(); //当前年
				nowYear += (nowYear < 2000) ? 1900 : 0; //

				var lastMonthDate = new Date(); //上月日期
				lastMonthDate.setDate(1);
				lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
				var lastYear = lastMonthDate.getYear();
				var lastMonth = lastMonthDate.getMonth();
				var monthStartDate = new Date(nowYear, nowMonth, 1);
				return formatDate(monthStartDate);
			}

			break;

		case 15: //本月结束日期
			return getMonthEndDate();

			function getMonthEndDate() {
				var now = new Date(); //当前日期
				var nowDayOfWeek = now.getDay(); //今天本周的第几天
				var nowDay = now.getDate(); //当前日
				var nowMonth = now.getMonth(); //当前月
				var nowYear = now.getYear(); //当前年
				nowYear += (nowYear < 2000) ? 1900 : 0; //

				var lastMonthDate = new Date(); //上月日期
				lastMonthDate.setDate(1);
				lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
				var lastYear = lastMonthDate.getYear();
				var lastMonth = lastMonthDate.getMonth();
				//获得某月的天数
				function getMonthDays(myMonth) {
					var monthStartDate = new Date(nowYear, myMonth, 1);
					var monthEndDate = new Date(nowYear, myMonth + 1, 1);
					var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
					return days;
				}
				var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth));
				return formatDate(monthEndDate);
			}

			break;

		default:
			cNewTimeStr = myYear + '-' + myMonth + '-' + myDay + ' ' + myHour + ':' + myMinu + ':' + mySecond;
			break;
	}

	cNewTimeStr = cNewTimeStr.replace(/;/g, "");

	return cNewTimeStr;
}
//case 12,13的规整函数
function formatDate(date) {
	var myyear = date.getFullYear();
	var mymonth = date.getMonth() + 1;
	var myweekday = date.getDate();

	if(mymonth < 10) {
		mymonth = "0" + mymonth;
	}
	if(myweekday < 10) {
		myweekday = "0" + myweekday;
	}
	return(myyear + "-" + mymonth + "-" + myweekday);
}

//html存入json
function setJsonHtml(data) {
	if(typeof(data) == "object") {
		var jsonArrayFinal = JSON.stringify(data);
		jsonArrayFinal = jsonArrayFinal.replace(/ /g, '');
		//		jsonArrayFinal = jsonArrayFinal.replace(/"/g, '&quot;');
		return jsonArrayFinal;
	}
}

//取出html存入的json
function getJsonHtml(data) {
	if(data) {
		var data_info = JSON.parse(data);
		return data_info;
	}
}

//解决冒泡
function solveBubbing() {
	var e = getEvent();
	if(window.event) {
		e.cancelBubble = true; //阻止冒泡
	} else if(e.preventDefault) {
		e.stopPropagation(); //阻止冒泡
	}
}
//得到事件
function getEvent() {
	if(window.event) {
		return window.event;
	}
	func = getEvent.caller;
	while(func != null) {
		var arg0 = func.arguments[0];
		if(arg0) {
			if((arg0.constructor == Event || arg0.constructor == MouseEvent ||
					arg0.constructor == KeyboardEvent) ||
				(typeof(arg0) == "object" && arg0.preventDefault &&
					arg0.stopPropagation)) {
				return arg0;
			}
		}
		func = func.caller;
	}
	return null;
}
//得到浏览器
function myBrowser() {
	var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
	var isOpera = userAgent.indexOf("Opera") > -1;
	//判断是否Opera浏览器
	if(isOpera) {
		return "Opera"
	};
	//判断是否Firefox浏览器
	if(userAgent.indexOf("Firefox") > -1) {
		return "Firefox";
	}
	//判断是否Chrome浏览器
	if(userAgent.indexOf("Chrome") > -1) {
		return "Chrome";
	}
	//判断是否Safari浏览器
	if(userAgent.indexOf("Safari") > -1) {
		return "Safari";
	}
	if(userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {
		return "IE";
	}; //判断是否IE浏览器
}

//需要成功回调的弹出框
function ZZAlertInfo(info, callok) {
	window.wxc.xcConfirm(info, window.wxc.xcConfirm.typeEnum.info, {
		onOk: function() {
			if(callok) {
				callok();
			}
		}
	});
}

//确认框（提示信息，成功回调，取消回调，关闭回调）
function ZZConfirm(info, callok, callcancel, callclose) {
	window.wxc.xcConfirm(info, window.wxc.xcConfirm.typeEnum.confirm, {
		onOk: function() {
			if(callok) {
				callok();
			}
		},
		onCancel: function() {
			if(callcancel) {
				callcancel();
			}
		},
		onClose: function() {
			if(callclose) {
				callclose();
			}
		}
	})
}

//输入框（输入的信息，成功回调，关闭的回调）
function ZZInput(info, callok, callclose) {
	window.wxc.xcConfirm(info, window.wxc.xcConfirm.typeEnum.input, {
		onOk: function(ok) {
			if(callok) {
				callok(ok);
			}
		},
		onClose: function(close) {
			if(callclose) {
				callclose(close);
			}

		}
	});
}