851 lines
26 KiB
JavaScript
851 lines
26 KiB
JavaScript
|
/*
|
||
|
* APICloud JavaScript Library
|
||
|
* Copyright (c) 2014 apicloud.com
|
||
|
*/
|
||
|
(function(window) {
|
||
|
|
||
|
var u = {};
|
||
|
var isAndroid = (/android/gi).test(navigator.appVersion);
|
||
|
u.baseUrl = 'http://cdyapi.saas.dianwutong.com';
|
||
|
// u.baseUrl = 'https://api.dianwutong.com';
|
||
|
var uzStorage = function() {
|
||
|
var ls = window.localStorage;
|
||
|
if (isAndroid) {
|
||
|
ls = os.localStorage();
|
||
|
}
|
||
|
return ls;
|
||
|
};
|
||
|
|
||
|
function parseArguments(url, data, fnSuc, dataType) {
|
||
|
if (typeof(data) == 'function') {
|
||
|
dataType = fnSuc;
|
||
|
fnSuc = data;
|
||
|
data = undefined;
|
||
|
}
|
||
|
if (typeof(fnSuc) != 'function') {
|
||
|
dataType = fnSuc;
|
||
|
fnSuc = undefined;
|
||
|
}
|
||
|
return {
|
||
|
url: url,
|
||
|
data: data,
|
||
|
fnSuc: fnSuc,
|
||
|
dataType: dataType
|
||
|
};
|
||
|
}
|
||
|
u.trim = function(str) {
|
||
|
if (String.prototype.trim) {
|
||
|
return str == null ? "" : String.prototype.trim.call(str);
|
||
|
} else {
|
||
|
return str.replace(/(^\s*)|(\s*$)/g, "");
|
||
|
}
|
||
|
};
|
||
|
u.trimAll = function(str) {
|
||
|
return str.replace(/\s*/g, '');
|
||
|
};
|
||
|
u.isElement = function(obj) {
|
||
|
return !!(obj && obj.nodeType == 1);
|
||
|
};
|
||
|
u.isArray = function(obj) {
|
||
|
if (Array.isArray) {
|
||
|
return Array.isArray(obj);
|
||
|
} else {
|
||
|
return obj instanceof Array;
|
||
|
}
|
||
|
};
|
||
|
u.isEmptyObject = function(obj) {
|
||
|
if (JSON.stringify(obj) === '{}') {
|
||
|
return true;
|
||
|
}
|
||
|
return false;
|
||
|
};
|
||
|
u.addEvt = function(el, name, fn, useCapture) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.addEvt Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
useCapture = useCapture || false;
|
||
|
if (el.addEventListener) {
|
||
|
el.addEventListener(name, fn, useCapture);
|
||
|
}
|
||
|
};
|
||
|
u.rmEvt = function(el, name, fn, useCapture) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.rmEvt Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
useCapture = useCapture || false;
|
||
|
if (el.removeEventListener) {
|
||
|
el.removeEventListener(name, fn, useCapture);
|
||
|
}
|
||
|
};
|
||
|
u.one = function(el, name, fn, useCapture) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.one Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
useCapture = useCapture || false;
|
||
|
var that = this;
|
||
|
var cb = function() {
|
||
|
fn && fn();
|
||
|
that.rmEvt(el, name, cb, useCapture);
|
||
|
};
|
||
|
that.addEvt(el, name, cb, useCapture);
|
||
|
};
|
||
|
u.dom = function(el, selector) {
|
||
|
if (arguments.length === 1 && typeof arguments[0] == 'string') {
|
||
|
if (document.querySelector) {
|
||
|
return document.querySelector(arguments[0]);
|
||
|
}
|
||
|
} else if (arguments.length === 2) {
|
||
|
if (el.querySelector) {
|
||
|
return el.querySelector(selector);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
u.domAll = function(el, selector) {
|
||
|
if (arguments.length === 1 && typeof arguments[0] == 'string') {
|
||
|
if (document.querySelectorAll) {
|
||
|
return document.querySelectorAll(arguments[0]);
|
||
|
}
|
||
|
} else if (arguments.length === 2) {
|
||
|
if (el.querySelectorAll) {
|
||
|
return el.querySelectorAll(selector);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
u.byId = function(id) {
|
||
|
return document.getElementById(id);
|
||
|
};
|
||
|
u.first = function(el, selector) {
|
||
|
if (arguments.length === 1) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.first Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
return el.children[0];
|
||
|
}
|
||
|
if (arguments.length === 2) {
|
||
|
return this.dom(el, selector + ':first-child');
|
||
|
}
|
||
|
};
|
||
|
u.last = function(el, selector) {
|
||
|
if (arguments.length === 1) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.last Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
var children = el.children;
|
||
|
return children[children.length - 1];
|
||
|
}
|
||
|
if (arguments.length === 2) {
|
||
|
return this.dom(el, selector + ':last-child');
|
||
|
}
|
||
|
};
|
||
|
u.eq = function(el, index) {
|
||
|
return this.dom(el, ':nth-child(' + index + ')');
|
||
|
};
|
||
|
u.not = function(el, selector) {
|
||
|
return this.domAll(el, ':not(' + selector + ')');
|
||
|
};
|
||
|
u.prev = function(el) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.prev Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
var node = el.previousSibling;
|
||
|
if (node.nodeType && node.nodeType === 3) {
|
||
|
node = node.previousSibling;
|
||
|
return node;
|
||
|
}
|
||
|
};
|
||
|
u.next = function(el) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.next Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
var node = el.nextSibling;
|
||
|
if (node.nodeType && node.nodeType === 3) {
|
||
|
node = node.nextSibling;
|
||
|
return node;
|
||
|
}
|
||
|
};
|
||
|
u.closest = function(el, selector) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.closest Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
var doms, targetDom;
|
||
|
var isSame = function(doms, el) {
|
||
|
var i = 0,
|
||
|
len = doms.length;
|
||
|
for (i; i < len; i++) {
|
||
|
if (doms[i].isEqualNode(el)) {
|
||
|
return doms[i];
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
};
|
||
|
var traversal = function(el, selector) {
|
||
|
doms = u.domAll(el.parentNode, selector);
|
||
|
targetDom = isSame(doms, el);
|
||
|
while (!targetDom) {
|
||
|
el = el.parentNode;
|
||
|
if (el != null && el.nodeType == el.DOCUMENT_NODE) {
|
||
|
return false;
|
||
|
}
|
||
|
traversal(el, selector);
|
||
|
}
|
||
|
|
||
|
return targetDom;
|
||
|
};
|
||
|
|
||
|
return traversal(el, selector);
|
||
|
};
|
||
|
u.contains = function(parent, el) {
|
||
|
var mark = false;
|
||
|
if (el === parent) {
|
||
|
mark = true;
|
||
|
return mark;
|
||
|
} else {
|
||
|
do {
|
||
|
el = el.parentNode;
|
||
|
if (el === parent) {
|
||
|
mark = true;
|
||
|
return mark;
|
||
|
}
|
||
|
} while (el === document.body || el === document.documentElement);
|
||
|
|
||
|
return mark;
|
||
|
}
|
||
|
|
||
|
};
|
||
|
u.remove = function(el) {
|
||
|
if (el && el.parentNode) {
|
||
|
el.parentNode.removeChild(el);
|
||
|
}
|
||
|
};
|
||
|
u.attr = function(el, name, value) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.attr Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
if (arguments.length == 2) {
|
||
|
return el.getAttribute(name);
|
||
|
} else if (arguments.length == 3) {
|
||
|
el.setAttribute(name, value);
|
||
|
return el;
|
||
|
}
|
||
|
};
|
||
|
u.removeAttr = function(el, name) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.removeAttr Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
if (arguments.length === 2) {
|
||
|
el.removeAttribute(name);
|
||
|
}
|
||
|
};
|
||
|
u.hasCls = function(el, cls) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.hasCls Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
if (el.className.indexOf(cls) > -1) {
|
||
|
return true;
|
||
|
} else {
|
||
|
return false;
|
||
|
}
|
||
|
};
|
||
|
u.addCls = function(el, cls) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.addCls Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
if ('classList' in el) {
|
||
|
el.classList.add(cls);
|
||
|
} else {
|
||
|
var preCls = el.className;
|
||
|
var newCls = preCls + ' ' + cls;
|
||
|
el.className = newCls;
|
||
|
}
|
||
|
return el;
|
||
|
};
|
||
|
u.removeCls = function(el, cls) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.removeCls Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
if ('classList' in el) {
|
||
|
el.classList.remove(cls);
|
||
|
} else {
|
||
|
var preCls = el.className;
|
||
|
var newCls = preCls.replace(cls, '');
|
||
|
el.className = newCls;
|
||
|
}
|
||
|
return el;
|
||
|
};
|
||
|
u.toggleCls = function(el, cls) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.toggleCls Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
if ('classList' in el) {
|
||
|
el.classList.toggle(cls);
|
||
|
} else {
|
||
|
if (u.hasCls(el, cls)) {
|
||
|
u.removeCls(el, cls);
|
||
|
} else {
|
||
|
u.addCls(el, cls);
|
||
|
}
|
||
|
}
|
||
|
return el;
|
||
|
};
|
||
|
u.val = function(el, val) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.val Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
if (arguments.length === 1) {
|
||
|
switch (el.tagName) {
|
||
|
case 'SELECT':
|
||
|
var value = el.options[el.selectedIndex].value;
|
||
|
return value;
|
||
|
break;
|
||
|
case 'INPUT':
|
||
|
return el.value;
|
||
|
break;
|
||
|
case 'TEXTAREA':
|
||
|
return el.value;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
if (arguments.length === 2) {
|
||
|
switch (el.tagName) {
|
||
|
case 'SELECT':
|
||
|
el.options[el.selectedIndex].value = val;
|
||
|
return el;
|
||
|
break;
|
||
|
case 'INPUT':
|
||
|
el.value = val;
|
||
|
return el;
|
||
|
break;
|
||
|
case 'TEXTAREA':
|
||
|
el.value = val;
|
||
|
return el;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
};
|
||
|
u.prepend = function(el, html) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.prepend Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
el.insertAdjacentHTML('afterbegin', html);
|
||
|
return el;
|
||
|
};
|
||
|
u.append = function(el, html) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.append Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
el.insertAdjacentHTML('beforeend', html);
|
||
|
return el;
|
||
|
};
|
||
|
u.before = function(el, html) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.before Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
el.insertAdjacentHTML('beforebegin', html);
|
||
|
return el;
|
||
|
};
|
||
|
u.after = function(el, html) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.after Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
el.insertAdjacentHTML('afterend', html);
|
||
|
return el;
|
||
|
};
|
||
|
u.html = function(el, html) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.html Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
if (arguments.length === 1) {
|
||
|
return el.innerHTML;
|
||
|
} else if (arguments.length === 2) {
|
||
|
el.innerHTML = html;
|
||
|
return el;
|
||
|
}
|
||
|
};
|
||
|
u.text = function(el, txt) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.text Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
if (arguments.length === 1) {
|
||
|
return el.textContent;
|
||
|
} else if (arguments.length === 2) {
|
||
|
el.textContent = txt;
|
||
|
return el;
|
||
|
}
|
||
|
};
|
||
|
u.offset = function(el) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.offset Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
var sl = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
|
||
|
var st = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
|
||
|
|
||
|
var rect = el.getBoundingClientRect();
|
||
|
return {
|
||
|
l: rect.left + sl,
|
||
|
t: rect.top + st,
|
||
|
w: el.offsetWidth,
|
||
|
h: el.offsetHeight
|
||
|
};
|
||
|
};
|
||
|
u.css = function(el, css) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.css Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
if (typeof css == 'string' && css.indexOf(':') > 0) {
|
||
|
el.style && (el.style.cssText += ';' + css);
|
||
|
}
|
||
|
};
|
||
|
u.cssVal = function(el, prop) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.cssVal Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
if (arguments.length === 2) {
|
||
|
var computedStyle = window.getComputedStyle(el, null);
|
||
|
return computedStyle.getPropertyValue(prop);
|
||
|
}
|
||
|
};
|
||
|
u.jsonToStr = function(json) {
|
||
|
if (typeof json === 'object') {
|
||
|
return JSON && JSON.stringify(json);
|
||
|
}
|
||
|
};
|
||
|
u.strToJson = function(str) {
|
||
|
if (typeof str === 'string') {
|
||
|
return JSON && JSON.parse(str);
|
||
|
}
|
||
|
};
|
||
|
u.setStorage = function(key, value) {
|
||
|
if (arguments.length === 2) {
|
||
|
var v = value;
|
||
|
if (typeof v == 'object') {
|
||
|
v = JSON.stringify(v);
|
||
|
v = 'obj-' + v;
|
||
|
} else {
|
||
|
v = 'str-' + v;
|
||
|
}
|
||
|
var ls = uzStorage();
|
||
|
if (ls) {
|
||
|
ls.setItem(key, v);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
u.getStorage = function(key) {
|
||
|
var ls = uzStorage();
|
||
|
if (ls) {
|
||
|
var v = ls.getItem(key);
|
||
|
if (!v) {
|
||
|
return;
|
||
|
}
|
||
|
if (v.indexOf('obj-') === 0) {
|
||
|
v = v.slice(4);
|
||
|
return JSON.parse(v);
|
||
|
} else if (v.indexOf('str-') === 0) {
|
||
|
return v.slice(4);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
u.rmStorage = function(key) {
|
||
|
var ls = uzStorage();
|
||
|
if (ls && key) {
|
||
|
ls.removeItem(key);
|
||
|
}
|
||
|
};
|
||
|
u.clearStorage = function() {
|
||
|
var ls = uzStorage();
|
||
|
if (ls) {
|
||
|
ls.clear();
|
||
|
}
|
||
|
};
|
||
|
|
||
|
|
||
|
/*by king*/
|
||
|
u.fixIos7Bar = function(el) {
|
||
|
if (isAndroid) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.fixIos7Bar Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
var strDM = api.systemType;
|
||
|
if (strDM == 'ios') {
|
||
|
var strSV = api.systemVersion;
|
||
|
var numSV = parseInt(strSV, 10);
|
||
|
var fullScreen = api.fullScreen;
|
||
|
var iOS7StatusBarAppearance = api.iOS7StatusBarAppearance;
|
||
|
if (numSV >= 7 && !fullScreen && iOS7StatusBarAppearance) {
|
||
|
el.style.paddingTop = '20px';
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
return u.fixStatusBar(el);
|
||
|
}
|
||
|
|
||
|
};
|
||
|
u.fixStatusBar = function(el) {
|
||
|
if (isAndroid) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.fixStatusBar Function need el param, el param must be DOM Element');
|
||
|
return;
|
||
|
}
|
||
|
var sysType = api.systemType;
|
||
|
if (sysType == 'ios') {
|
||
|
u.fixIos7Bar(el);
|
||
|
} else if (sysType == 'android') {
|
||
|
var ver = api.systemVersion;
|
||
|
ver = parseFloat(ver);
|
||
|
if (ver >= 4.4) {
|
||
|
el.style.paddingTop = '25px';
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.fixStatusBar Function need el param, el param must be DOM Element');
|
||
|
return 0;
|
||
|
}
|
||
|
el.style.paddingTop = api.safeArea.top + 'px';
|
||
|
return el.offsetHeight;
|
||
|
}
|
||
|
|
||
|
};
|
||
|
|
||
|
// 解决底部标签栏被虚拟home键遮挡
|
||
|
u.fixTabBar = function(el) {
|
||
|
if (!u.isElement(el)) {
|
||
|
console.warn('$api.fixTabBar Function need el param, el param must be DOM Element');
|
||
|
return 0;
|
||
|
}
|
||
|
el.style.paddingBottom = api.safeArea.bottom + 'px';
|
||
|
return el.offsetHeight;
|
||
|
}
|
||
|
u.toast = function(title, text, time) {
|
||
|
var opts = {};
|
||
|
var show = function(opts, time) {
|
||
|
api.showProgress(opts);
|
||
|
setTimeout(function() {
|
||
|
api.hideProgress();
|
||
|
}, time);
|
||
|
};
|
||
|
if (arguments.length === 1) {
|
||
|
var time = time || 500;
|
||
|
if (typeof title === 'number') {
|
||
|
time = title;
|
||
|
} else {
|
||
|
opts.title = title + '';
|
||
|
}
|
||
|
show(opts, time);
|
||
|
} else if (arguments.length === 2) {
|
||
|
var time = time || 500;
|
||
|
var text = text;
|
||
|
if (typeof text === "number") {
|
||
|
var tmp = text;
|
||
|
time = tmp;
|
||
|
text = null;
|
||
|
}
|
||
|
if (title) {
|
||
|
opts.title = title;
|
||
|
}
|
||
|
if (text) {
|
||
|
opts.text = text;
|
||
|
}
|
||
|
show(opts, time);
|
||
|
}
|
||
|
if (title) {
|
||
|
opts.title = title;
|
||
|
}
|
||
|
if (text) {
|
||
|
opts.text = text;
|
||
|
}
|
||
|
time = time || 500;
|
||
|
show(opts, time);
|
||
|
};
|
||
|
u.post = function( /*url,data,fnSuc,dataType*/ ) {
|
||
|
var argsToJson = parseArguments.apply(null, arguments);
|
||
|
var json = {};
|
||
|
var fnSuc = argsToJson.fnSuc;
|
||
|
argsToJson.url && (json.url = argsToJson.url);
|
||
|
|
||
|
// 如果有token 自动加上token
|
||
|
var token = $api.getStorage("token");
|
||
|
// if (token) {
|
||
|
// argsToJson.data.token = token;
|
||
|
// }
|
||
|
|
||
|
argsToJson.data && (json.data = {
|
||
|
body: argsToJson.data
|
||
|
});
|
||
|
json.headers = argsToJson.headers
|
||
|
json.headers = {
|
||
|
'Content-Type':'application/json'
|
||
|
}
|
||
|
if (argsToJson.dataType) {
|
||
|
var type = argsToJson.dataType.toLowerCase();
|
||
|
if (type == 'text' || type == 'json') {
|
||
|
json.dataType = type;
|
||
|
}
|
||
|
} else {
|
||
|
json.dataType = 'json';
|
||
|
}
|
||
|
json.method = 'post';
|
||
|
//json.url = "https://api.dianwutong.com" + json.url+'?token=' + token;
|
||
|
if(token) {
|
||
|
json.url = u.baseUrl + json.url+'?token=' + token;
|
||
|
}else {
|
||
|
json.url = u.baseUrl + json.url;
|
||
|
}
|
||
|
|
||
|
//console.log(JSON.stringify(json));
|
||
|
api.ajax(json,
|
||
|
function(ret, err) {
|
||
|
fnSuc && fnSuc(ret, err);
|
||
|
//console.warn(JSON.stringify(ret));
|
||
|
}
|
||
|
);
|
||
|
};
|
||
|
u.uploadFile = function( url,data,fnSuc,dataType) {
|
||
|
var json = {};
|
||
|
var fnSuc = fnSuc;
|
||
|
url && (json.url = url);
|
||
|
|
||
|
// 如果有token 自动加上token
|
||
|
var token = $api.getStorage("token");
|
||
|
|
||
|
data && (json.data = {
|
||
|
stream: data
|
||
|
});
|
||
|
// json.headers = {
|
||
|
// 'Content-Type':'application/x-www-form-urlencoded;'
|
||
|
// }
|
||
|
json.method = 'post';
|
||
|
if(token) {
|
||
|
json.url = u.baseUrl + json.url+'?token=' + token;
|
||
|
}else {
|
||
|
json.url = u.baseUrl + json.url;
|
||
|
}
|
||
|
|
||
|
api.ajax(json,
|
||
|
function(ret, err) {
|
||
|
fnSuc && fnSuc(ret, err);
|
||
|
}
|
||
|
);
|
||
|
};
|
||
|
u.put = function( /*url,data,fnSuc,dataType*/ ) {
|
||
|
var argsToJson = parseArguments.apply(null, arguments);
|
||
|
var json = {};
|
||
|
var fnSuc = argsToJson.fnSuc;
|
||
|
argsToJson.url && (json.url = argsToJson.url);
|
||
|
|
||
|
// 如果有token 自动加上token
|
||
|
var token = $api.getStorage("token");
|
||
|
|
||
|
argsToJson.data && (json.data = {
|
||
|
body: argsToJson.data
|
||
|
});
|
||
|
json.headers = argsToJson.headers
|
||
|
json.headers = {
|
||
|
'Content-Type':'application/json'
|
||
|
}
|
||
|
if (argsToJson.dataType) {
|
||
|
var type = argsToJson.dataType.toLowerCase();
|
||
|
if (type == 'text' || type == 'json') {
|
||
|
json.dataType = type;
|
||
|
}
|
||
|
} else {
|
||
|
json.dataType = 'json';
|
||
|
}
|
||
|
json.method = 'put';
|
||
|
//json.url = "https://api.dianwutong.com" + json.url+'?token=' + token;
|
||
|
if(token) {
|
||
|
json.url = u.baseUrl + json.url+'?token=' + token;
|
||
|
}else {
|
||
|
json.url = u.baseUrl + json.url;
|
||
|
}
|
||
|
|
||
|
api.ajax(json,
|
||
|
function(ret, err) {
|
||
|
fnSuc && fnSuc(ret, err);
|
||
|
}
|
||
|
);
|
||
|
};
|
||
|
u.get = function( /*url,data,fnSuc,dataType*/ ) {
|
||
|
if (u.disabledRequest) {
|
||
|
return;
|
||
|
}
|
||
|
var argsToJson = parseArguments.apply(null, arguments);
|
||
|
var json = {};
|
||
|
var fnSuc = argsToJson.fnSuc;
|
||
|
argsToJson.url && (json.url = argsToJson.url);
|
||
|
// json.url = "https://api.dianwutong.com" + json.url;
|
||
|
json.url = u.baseUrl + json.url;
|
||
|
if (argsToJson.dataType) {
|
||
|
var type = argsToJson.dataType.toLowerCase();
|
||
|
if (type == 'text' || type == 'json') {
|
||
|
json.dataType = type;
|
||
|
}
|
||
|
} else {
|
||
|
json.dataType = 'json';
|
||
|
}
|
||
|
json.method = 'get';
|
||
|
|
||
|
// 如果参数不为空 将参数拼接到url后面
|
||
|
|
||
|
var queries = [];
|
||
|
|
||
|
// 如果已经登录 传入token
|
||
|
|
||
|
var token = $api.getStorage("token");
|
||
|
|
||
|
if (token) {
|
||
|
queries.push('token=' + token);
|
||
|
}
|
||
|
|
||
|
var data = argsToJson.data;
|
||
|
|
||
|
if (data) {
|
||
|
for (var i in data) {
|
||
|
if (data.hasOwnProperty(i) && data[i] != null && data[i] != undefined) {
|
||
|
queries.push(i + '=' + data[i]);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var queryString = queries.join('&');
|
||
|
|
||
|
if (queryString) {
|
||
|
json.url = json.url + '?' + queryString;
|
||
|
}
|
||
|
api.ajax(json,
|
||
|
function(ret, err) {
|
||
|
if (ret) {
|
||
|
// token失效的标志1006
|
||
|
if (ret.code == 1006) {
|
||
|
api.sendEvent({
|
||
|
name: 'loginout'
|
||
|
});
|
||
|
if (!u.disabledRequest) {
|
||
|
api.alert({
|
||
|
title: '登录过期,请重新登录。'
|
||
|
}, function() {
|
||
|
u.clearStorage();
|
||
|
api.closeWin({
|
||
|
name: 'index'
|
||
|
});
|
||
|
|
||
|
api.openWin({
|
||
|
name: 'login',
|
||
|
url: 'widget://html/user/login.html',
|
||
|
|
||
|
});
|
||
|
})
|
||
|
u.disabledRequest = true;
|
||
|
}
|
||
|
} else {
|
||
|
fnSuc && fnSuc(ret);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
};
|
||
|
|
||
|
u.getVersion = function(fnSuc) {
|
||
|
var json = {};
|
||
|
json.url = 'https://cdn.dianwutong.com/app/dianwutong_saas/version.json';
|
||
|
json.dataType = 'json';
|
||
|
json.method = 'get';
|
||
|
api.ajax(json,
|
||
|
function(ret, err) {
|
||
|
if (ret) {
|
||
|
fnSuc && fnSuc(ret);
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
};
|
||
|
|
||
|
var keys = u.getStorage("guestKeys");
|
||
|
if (keys) {
|
||
|
// 体验账号需要被替换掉的关键字的正则表达式
|
||
|
u.guestKeysPattern = new RegExp(keys.replace(/,/g, '|'), 'g');
|
||
|
} else {
|
||
|
// 瞎写一个 不然后面使用会抛错
|
||
|
u.guestKeysPattern = new RegExp('。%#@#@!@#');
|
||
|
}
|
||
|
|
||
|
u.guestName = u.getStorage("realName");
|
||
|
u.guestPrName = u.guestName + '配电室';
|
||
|
// 存储客户信息
|
||
|
u.setStorageOfCus = function(customer) {
|
||
|
u.setStorage("cusId", customer['cusId']);
|
||
|
$api.setStorage("userHead", u.prefix + customer['cusLogo']);
|
||
|
$api.setStorage("realName", customer['cusName']);
|
||
|
|
||
|
}
|
||
|
// 存储体验客户信息
|
||
|
u.setStorageOfExperCus = function(customer) {
|
||
|
u.setStorage("cusId", customer['cusId']);
|
||
|
|
||
|
}
|
||
|
u.getFormattedDate = function(format,time) {
|
||
|
var date;
|
||
|
if(time){
|
||
|
date = new Date(time);
|
||
|
} else {
|
||
|
date = new Date();
|
||
|
}
|
||
|
|
||
|
if (!format) {
|
||
|
format = "yyyy-MM-dd hh:mm:ss";
|
||
|
}
|
||
|
var o = {
|
||
|
"M+": date.getMonth() + 1, //month
|
||
|
"d+": date.getDate(), //day
|
||
|
"h+": date.getHours(), //hour
|
||
|
"m+": date.getMinutes(), //minute
|
||
|
"s+": date.getSeconds(), //second
|
||
|
"q+": Math.floor((date.getMonth() + 3) / 3), //quarter
|
||
|
"S": date.getMilliseconds() //millisecond
|
||
|
}
|
||
|
|
||
|
if (/(y+)/.test(format)) {
|
||
|
format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
|
||
|
}
|
||
|
|
||
|
for (var k in o) {
|
||
|
if (new RegExp("(" + k + ")").test(format)) {
|
||
|
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
|
||
|
}
|
||
|
}
|
||
|
return format;
|
||
|
}
|
||
|
/*end*/
|
||
|
window.$api = u;
|
||
|
|
||
|
})(window);
|
||
|
|
||
|
function _log(ob, tag) {
|
||
|
console.log(tag ? tag : '' + JSON.stringify(ob, null, 4));
|
||
|
}
|