UNPKG

jdc_dkh_jxicustomer

Version:

JDC_dkh_jxicustomer ==== 产品经理:田宇,弥磊 设计:罗婷 交互:张钊

171 lines (166 loc) 6.86 kB
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: '&lt;', // “上一页”分页按钮上显示的文字 nextText: '&gt;', // “下一页”分页按钮上显示的文字 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; });