jdc_dkh_jxicustomer
Version:
JDC_dkh_jxicustomer ==== 产品经理:田宇,弥磊 设计:罗婷 交互:张钊
171 lines (166 loc) • 6.86 kB
JavaScript
define(function(require, exports, module) {
require('./jquery.ztree.all.min.js');
var MAP = require('./../private/map');
/**
* 提供了公用的工具函数集合
* @exports Utils
*/
var common = {
/**
* 获取数据
* @example
* Utils.io({
* url:'url',
* data: {},
* type: 'type',
* success: function(data) {}
* })
* @param {string} param.url 请求路径
* @param {object} param.data 请求参数
* @param {string} param.type 请求类型,默认值:get
* @param {string} param.contentType 发送信息至服务器时内容编码类型,默认值: "application/x-www-form-urlencoded"
* @param {object} param.success 请求成功回掉
* @param {string} param.error 请求失败回掉
* @param {object} $container jquery对象
*/
io: function(param) {
$.ajax({
url: param.url,
data: param.data,
type: param.type || 'POST',
dataType: 'json',
// traditional: true,
success: function(data) {
if (param.success) {
param.success(data);
}
},
error: function(data, b, c) {
if (param.error) {
param.error(data);
}
}
});
},
log: function(msg) {
var isdebug = location.href.indexOf('isdebug') > -1;
// TODO 需要联调时取消isdebug的非运算。
if (isdebug) {
if (window.console || console) {
console.log(msg);
}
}
},
getParamFromUrl: function(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
},
getPicLink: function(url, width, height) {
var imgPathArray = [10, 11, 12, 13, 14, 20, 30];
var randomItem = imgPathArray[Math.floor(Math.random() * imgPathArray.length)];
var link = '';
if (width && height) {
link = '//img' + randomItem + '.360buyimg.com/da/s' + width + 'x' + height + '_' + url;
} else {
link = '//img' + randomItem + '.360buyimg.com/da/' + url;
}
return link;
},
/**
* 分页
* $con 分页容器
* objPage 分页相关参数
*/
page: function($con, objPage) {
require('//misc.360buyimg.com/virtuals/popui/2.1.6/js/pagination/pagination');
var pager = $con.pagination($.extend({
pageSize: 10, // 每页显示的条目数
currentPage: 0,
viewSize: 5, // 连续分页主体部分显示的分页条目数
edgeSize: 1, // 与起点的间隔
prevText: '<', // “上一页”分页按钮上显示的文字
nextText: '>', // “下一页”分页按钮上显示的文字
linkTo: 'javascript:;', // 分页的链接,默认是"#"
ellipseText: '...', // 省略的页数用什么文字表示,默认是"..."
callback: function(index, el) {}
}, objPage));
},
/**
* DNS 预加载
* dnslist dns列表
*/
dnsPrefetch: function(dnslist) {
for (var i = 0; i < dnslist.length; i++) {
var dns = dnslist[i].replace(/http:|https:/, '');
var head = document.getElementsByTagName('head')[0];
var dnsTag = document.createElement('link');
dnsTag.setAttribute('rel', 'dns-prefetch');
dnsTag.setAttribute('href', dns);
head.appendChild(dnsTag);
}
},
/**
* 资源预加载
* 资源列表,可以为js,css,图片
*/
preload: function(srcList) {
for (var i = 0; i < srcList.length; i++) {
var resource = srcList[i].replace(/http:|https:/, '');
var head = document.getElementsByTagName('head')[0];
var rsTag = document.createElement('link');
rsTag.setAttribute('rel', 'prefetch');
rsTag.setAttribute('href', resource);
head.appendChild(rsTag);
}
},
/**
* 树形结构渲染
* data: 数据来源
* dom: tree的id
* setting: 初始配置数据项
*/
renderTree: function(opts) {
var zNodes = [];
var leaf = opts.leafIcon ? opts.leafIcon : '//static.360buyimg.com/jdcdkh/jximanager/css/i/icon_Employee@2x.png';
if(opts.data && opts.data.length > 0) {
$.each(opts.data, function (index,value) {
let obj = { id: value.id, pId: value.parentId, name: value.departmentName,no: value.orderNo, icon: '//static.360buyimg.com/jdcdkh/jximanager/css/i/icon_section.png'};
zNodes.push(obj);
if(value.list.length) {
let list = value.list;
(function forEach(list){
for(var i = 0; i < list.length; i++) {
let child = list[i];
if(child.list.length) {
let obj1 = { id: child.id, pId: child.parentId, name: child.departmentName,no: child.orderNo, icon: '//static.360buyimg.com/jdcdkh/jximanager/css/i/icon_section.png'};
zNodes.push(obj1);
forEach(child.list);
} else {
let obj1 = { id: child.id, pId: child.parentId, name: child.departmentName,no: child.orderNo, icon: leaf};
zNodes.push(obj1);
}
}
})(list);
}
});
$.fn.zTree.init(opts.dom, opts.setting, zNodes);
}
},
/**
* 组织名称校验
* 中文,英文,“-”,不能超过20个字
*/
verifyDep: function(val) {
var reg = /^([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[a-zA-Z-]){1,20}$/;
if(reg.test(val)) {
return true;
}
return false;
}
};
return common;
});