iconPicker.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491
  1. layui.define(['laypage', 'form'], function(exports) {
  2. "use strict";
  3. var IconPicker = function() {
  4. this.v = '1.1';
  5. },
  6. _MOD = 'iconPicker',
  7. _this = this,
  8. $ = layui.jquery,
  9. laypage = layui.laypage,
  10. form = layui.form,
  11. BODY = 'body',
  12. TIPS = '请选择图标';
  13. /**
  14. * 渲染组件
  15. */
  16. IconPicker.prototype.render = function(options) {
  17. var opts = options,
  18. // DOM选择器
  19. elem = opts.elem,
  20. // 数据类型:fontClass/unicode
  21. type = opts.type == null ? 'fontClass' : opts.type,
  22. // 是否分页:true/false
  23. page = opts.page == null ? true : opts.page,
  24. // 每页显示数量
  25. limit = opts.limit == null ? 12 : opts.limit,
  26. // 是否开启搜索:true/false
  27. search = opts.search == null ? true : opts.search,
  28. // 每个图标格子的宽度:'43px'或'20%'
  29. cellWidth = opts.cellWidth,
  30. // 点击回调
  31. click = opts.click,
  32. // 渲染成功后的回调
  33. success = opts.success,
  34. // json数据
  35. data = {},
  36. // 唯一标识
  37. tmp = new Date().getTime(),
  38. // 是否使用的class数据
  39. isFontClass = opts.type === 'fontClass',
  40. // 初始化时input的值
  41. ORIGINAL_ELEM_VALUE = $(elem).val(),
  42. TITLE = 'layui-select-title',
  43. TITLE_ID = 'layui-select-title-' + tmp,
  44. ICON_BODY = 'layui-iconpicker-' + tmp,
  45. PICKER_BODY = 'layui-iconpicker-body-' + tmp,
  46. PAGE_ID = 'layui-iconpicker-page-' + tmp,
  47. LIST_BOX = 'layui-iconpicker-list-box',
  48. selected = 'layui-form-selected',
  49. unselect = 'layui-unselect';
  50. var a = {
  51. init: function() {
  52. data = common.getData[type]();
  53. a.hideElem().createSelect().createBody().toggleSelect();
  54. a.preventEvent().inputListen();
  55. common.loadCss();
  56. if (success) {
  57. success(this.successHandle());
  58. }
  59. return a;
  60. },
  61. successHandle: function() {
  62. var d = {
  63. options: opts,
  64. data: data,
  65. id: tmp,
  66. elem: $('#' + ICON_BODY)
  67. };
  68. return d;
  69. },
  70. /**
  71. * 隐藏elem
  72. */
  73. hideElem: function() {
  74. $(elem).hide();
  75. return a;
  76. },
  77. /**
  78. * 绘制select下拉选择框
  79. */
  80. createSelect: function() {
  81. var oriIcon = '<i class="layui-icon">';
  82. // 默认图标
  83. if (ORIGINAL_ELEM_VALUE === '') {
  84. if (isFontClass) {
  85. ORIGINAL_ELEM_VALUE = 'layui-icon-circle-dot';
  86. } else {
  87. ORIGINAL_ELEM_VALUE = '&#xe617;';
  88. }
  89. }
  90. if (isFontClass) {
  91. oriIcon = '<i class="layui-icon ' + ORIGINAL_ELEM_VALUE + '">';
  92. } else {
  93. oriIcon += ORIGINAL_ELEM_VALUE;
  94. }
  95. oriIcon += '</i>';
  96. var selectHtml =
  97. '<div class="layui-iconpicker layui-unselect layui-form-select" id="' +
  98. ICON_BODY + '">' +
  99. '<div class="' + TITLE + '" id="' + TITLE_ID + '">' +
  100. '<div class="layui-iconpicker-item">' +
  101. '<span class="layui-iconpicker-icon layui-unselect">' +
  102. oriIcon +
  103. '</span>' +
  104. '<i class="layui-edge"></i>' +
  105. '</div>' +
  106. '</div>' +
  107. '<div class="layui-anim layui-anim-upbit" style="">' +
  108. '123' +
  109. '</div>';
  110. $(elem).after(selectHtml);
  111. return a;
  112. },
  113. /**
  114. * 展开/折叠下拉框
  115. */
  116. toggleSelect: function() {
  117. var item = '#' + TITLE_ID + ' .layui-iconpicker-item,#' + TITLE_ID +
  118. ' .layui-iconpicker-item .layui-edge';
  119. a.event('click', item, function(e) {
  120. var $icon = $('#' + ICON_BODY);
  121. if ($icon.hasClass(selected)) {
  122. $icon.removeClass(selected).addClass(unselect);
  123. } else {
  124. // 隐藏其他picker
  125. $('.layui-form-select').removeClass(selected);
  126. // 显示当前picker
  127. $icon.addClass(selected).removeClass(unselect);
  128. }
  129. e.stopPropagation();
  130. });
  131. return a;
  132. },
  133. /**
  134. * 绘制主体部分
  135. */
  136. createBody: function() {
  137. // 获取数据
  138. var searchHtml = '';
  139. if (search) {
  140. searchHtml = '<div class="layui-iconpicker-search">' +
  141. '<input class="layui-input">' +
  142. '<i class="layui-icon">&#xe615;</i>' +
  143. '</div>';
  144. }
  145. // 组合dom
  146. var bodyHtml = '<div class="layui-iconpicker-body" id="' + PICKER_BODY + '">' +
  147. searchHtml +
  148. '<div class="' + LIST_BOX + '"></div> ' +
  149. '</div>';
  150. $('#' + ICON_BODY).find('.layui-anim').eq(0).html(bodyHtml);
  151. a.search().createList().check().page();
  152. return a;
  153. },
  154. /**
  155. * 绘制图标列表
  156. * @param text 模糊查询关键字
  157. * @returns {string}
  158. */
  159. createList: function(text) {
  160. var d = data,
  161. l = d.length,
  162. pageHtml = '',
  163. listHtml = $(
  164. '<div class="layui-iconpicker-list">') //'<div class="layui-iconpicker-list">';
  165. // 计算分页数据
  166. var _limit = limit, // 每页显示数量
  167. _pages = l % _limit === 0 ? l / _limit : parseInt(l / _limit + 1), // 总计多少页
  168. _id = PAGE_ID;
  169. // 图标列表
  170. var icons = [];
  171. for (var i = 0; i < l; i++) {
  172. var obj = d[i];
  173. // 判断是否模糊查询
  174. if (text && obj.indexOf(text) === -1) {
  175. continue;
  176. }
  177. // 是否自定义格子宽度
  178. var style = '';
  179. if (cellWidth !== null) {
  180. style += ' style="width:' + cellWidth + '"';
  181. }
  182. // 每个图标dom
  183. var icon = '<div class="layui-iconpicker-icon-item" title="' + obj + '" ' +
  184. style + '>';
  185. if (isFontClass) {
  186. icon += '<i class="layui-icon ' + obj + '"></i>';
  187. } else {
  188. icon += '<i class="layui-icon">' + obj.replace('amp;', '') + '</i>';
  189. }
  190. icon += '</div>';
  191. icons.push(icon);
  192. }
  193. // 查询出图标后再分页
  194. l = icons.length;
  195. _pages = l % _limit === 0 ? l / _limit : parseInt(l / _limit + 1);
  196. for (var i = 0; i < _pages; i++) {
  197. // 按limit分块
  198. var lm = $(
  199. '<div class="layui-iconpicker-icon-limit" id="layui-iconpicker-icon-limit-' +
  200. tmp + (i + 1) + '">');
  201. for (var j = i * _limit; j < (i + 1) * _limit && j < l; j++) {
  202. lm.append(icons[j]);
  203. }
  204. listHtml.append(lm);
  205. }
  206. // 无数据
  207. if (l === 0) {
  208. listHtml.append('<p class="layui-iconpicker-tips">无数据</p>');
  209. }
  210. // 判断是否分页
  211. if (page) {
  212. $('#' + PICKER_BODY).addClass('layui-iconpicker-body-page');
  213. pageHtml = '<div class="layui-iconpicker-page" id="' + PAGE_ID + '">' +
  214. '<div class="layui-iconpicker-page-count">' +
  215. '<span id="' + PAGE_ID + '-current">1</span>/' +
  216. '<span id="' + PAGE_ID + '-pages">' + _pages + '</span>' +
  217. ' (<span id="' + PAGE_ID + '-length">' + l + '</span>)' +
  218. '</div>' +
  219. '<div class="layui-iconpicker-page-operate">' +
  220. '<i class="layui-icon" id="' + PAGE_ID +
  221. '-prev" data-index="0" prev>&#xe603;</i> ' +
  222. '<i class="layui-icon" id="' + PAGE_ID +
  223. '-next" data-index="2" next>&#xe602;</i> ' +
  224. '</div>' +
  225. '</div>';
  226. }
  227. $('#' + ICON_BODY).find('.layui-anim').find('.' + LIST_BOX).html('').append(
  228. listHtml).append(pageHtml);
  229. return a;
  230. },
  231. // 阻止Layui的一些默认事件
  232. preventEvent: function() {
  233. var item = '#' + ICON_BODY + ' .layui-anim';
  234. a.event('click', item, function(e) {
  235. e.stopPropagation();
  236. });
  237. return a;
  238. },
  239. // 分页
  240. page: function() {
  241. var icon = '#' + PAGE_ID + ' .layui-iconpicker-page-operate .layui-icon';
  242. $(icon).unbind('click');
  243. a.event('click', icon, function(e) {
  244. var elem = e.currentTarget,
  245. total = parseInt($('#' + PAGE_ID + '-pages').html()),
  246. isPrev = $(elem).attr('prev') !== undefined,
  247. // 按钮上标的页码
  248. index = parseInt($(elem).attr('data-index')),
  249. $cur = $('#' + PAGE_ID + '-current'),
  250. // 点击时正在显示的页码
  251. current = parseInt($cur.html());
  252. // 分页数据
  253. if (isPrev && current > 1) {
  254. current = current - 1;
  255. $(icon + '[prev]').attr('data-index', current);
  256. } else if (!isPrev && current < total) {
  257. current = current + 1;
  258. $(icon + '[next]').attr('data-index', current);
  259. }
  260. $cur.html(current);
  261. // 图标数据
  262. $('#' + ICON_BODY + ' .layui-iconpicker-icon-limit').hide();
  263. $('#layui-iconpicker-icon-limit-' + tmp + current).show();
  264. e.stopPropagation();
  265. });
  266. return a;
  267. },
  268. /**
  269. * 搜索
  270. */
  271. search: function() {
  272. var item = '#' + PICKER_BODY + ' .layui-iconpicker-search .layui-input';
  273. a.event('input propertychange', item, function(e) {
  274. var elem = e.target,
  275. t = $(elem).val();
  276. a.createList(t);
  277. });
  278. return a;
  279. },
  280. /**
  281. * 点击选中图标
  282. */
  283. check: function() {
  284. var item = '#' + PICKER_BODY + ' .layui-iconpicker-icon-item';
  285. a.event('click', item, function(e) {
  286. var el = $(e.currentTarget).find('.layui-icon'),
  287. icon = '';
  288. if (isFontClass) {
  289. var clsArr = el.attr('class').split(/[\s\n]/),
  290. cls = clsArr[1],
  291. icon = cls;
  292. $('#' + TITLE_ID).find('.layui-iconpicker-item .layui-icon').html(
  293. '').attr('class', clsArr.join(' '));
  294. } else {
  295. var cls = el.html(),
  296. icon = cls;
  297. $('#' + TITLE_ID).find('.layui-iconpicker-item .layui-icon').html(
  298. icon);
  299. }
  300. $('#' + ICON_BODY).removeClass(selected).addClass(unselect);
  301. $(elem).val(icon).attr('value', icon);
  302. // 回调
  303. if (click) {
  304. click({
  305. icon: icon
  306. });
  307. }
  308. });
  309. return a;
  310. },
  311. // 监听原始input数值改变
  312. inputListen: function() {
  313. var el = $(elem);
  314. a.event('change', elem, function() {
  315. var value = el.val();
  316. })
  317. // el.change(function(){
  318. // });
  319. return a;
  320. },
  321. event: function(evt, el, fn) {
  322. $(BODY).on(evt, el, fn);
  323. }
  324. };
  325. var common = {
  326. /**
  327. * 加载样式表
  328. */
  329. loadCss: function() {
  330. var css =
  331. '.layui-iconpicker {max-width: 280px;}.layui-iconpicker .layui-anim{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #d2d2d2;max-height:300px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12);box-sizing:border-box;}.layui-iconpicker-item{border:1px solid #e6e6e6;width:90px;height:38px;border-radius:4px;cursor:pointer;position:relative;}.layui-iconpicker-icon{border-right:1px solid #e6e6e6;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;width:60px;height:100%;float:left;text-align:center;background:#fff;transition:all .3s;}.layui-iconpicker-icon i{line-height:38px;font-size:18px;}.layui-iconpicker-item > .layui-edge{left:70px;}.layui-iconpicker-item:hover{border-color:#D2D2D2!important;}.layui-iconpicker-item:hover .layui-iconpicker-icon{border-color:#D2D2D2!important;}.layui-iconpicker.layui-form-selected .layui-anim{display:block;}.layui-iconpicker-body{padding:6px;}.layui-iconpicker .layui-iconpicker-list{background-color:#fff;border:1px solid #ccc;border-radius:4px;}.layui-iconpicker .layui-iconpicker-icon-item{display:inline-block;width:21.1%;line-height:36px;text-align:center;cursor:pointer;vertical-align:top;height:36px;margin:4px;border:1px solid #ddd;border-radius:2px;transition:300ms;}.layui-iconpicker .layui-iconpicker-icon-item i.layui-icon{font-size:17px;}.layui-iconpicker .layui-iconpicker-icon-item:hover{background-color:#eee;border-color:#ccc;-webkit-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;-moz-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;box-shadow:0 0 2px #aaa,0 0 2px #fff inset;text-shadow:0 0 1px #fff;}.layui-iconpicker-search{position:relative;margin:0 0 6px 0;border:1px solid #e6e6e6;border-radius:2px;transition:300ms;}.layui-iconpicker-search:hover{border-color:#D2D2D2!important;}.layui-iconpicker-search .layui-input{cursor:text;display:inline-block;width:86%;border:none;padding-right:0;margin-top:1px;}.layui-iconpicker-search .layui-icon{position:absolute;top:11px;right:4%;}.layui-iconpicker-tips{text-align:center;padding:8px 0;cursor:not-allowed;}.layui-iconpicker-page{margin-top:6px;margin-bottom:-6px;font-size:12px;padding:0 2px;}.layui-iconpicker-page-count{display:inline-block;}.layui-iconpicker-page-operate{display:inline-block;float:right;cursor:default;}.layui-iconpicker-page-operate .layui-icon{font-size:12px;cursor:pointer;}.layui-iconpicker-body-page .layui-iconpicker-icon-limit{display:none;}.layui-iconpicker-body-page .layui-iconpicker-icon-limit:first-child{display:block;}';
  332. var $style = $('head').find('style[iconpicker]');
  333. if ($style.length === 0) {
  334. $('head').append('<style rel="stylesheet" iconpicker>' + css + '</style>');
  335. }
  336. },
  337. /**
  338. * 获取数据
  339. */
  340. getData: {
  341. fontClass: function() {
  342. var arr = ["layui-icon-rate-half", "layui-icon-rate", "layui-icon-rate-solid",
  343. "layui-icon-cellphone", "layui-icon-vercode", "layui-icon-login-wechat",
  344. "layui-icon-login-qq", "layui-icon-login-weibo", "layui-icon-password",
  345. "layui-icon-username", "layui-icon-refresh-3", "layui-icon-auz",
  346. "layui-icon-spread-left", "layui-icon-shrink-right",
  347. "layui-icon-snowflake", "layui-icon-tips", "layui-icon-note",
  348. "layui-icon-home", "layui-icon-senior", "layui-icon-refresh",
  349. "layui-icon-refresh-1", "layui-icon-flag", "layui-icon-theme",
  350. "layui-icon-notice", "layui-icon-website", "layui-icon-console",
  351. "layui-icon-face-surprised", "layui-icon-set", "layui-icon-template-1",
  352. "layui-icon-app", "layui-icon-template", "layui-icon-praise",
  353. "layui-icon-tread", "layui-icon-male", "layui-icon-female",
  354. "layui-icon-camera", "layui-icon-camera-fill", "layui-icon-more",
  355. "layui-icon-more-vertical", "layui-icon-rmb", "layui-icon-dollar",
  356. "layui-icon-diamond", "layui-icon-fire", "layui-icon-return",
  357. "layui-icon-location", "layui-icon-read", "layui-icon-survey",
  358. "layui-icon-face-smile", "layui-icon-face-cry",
  359. "layui-icon-cart-simple", "layui-icon-cart", "layui-icon-next",
  360. "layui-icon-prev", "layui-icon-upload-drag", "layui-icon-upload",
  361. "layui-icon-download-circle", "layui-icon-component",
  362. "layui-icon-file-b", "layui-icon-user", "layui-icon-find-fill",
  363. "layui-icon-loading", "layui-icon-loading-1", "layui-icon-add-1",
  364. "layui-icon-play", "layui-icon-pause", "layui-icon-headset",
  365. "layui-icon-video", "layui-icon-voice", "layui-icon-speaker",
  366. "layui-icon-fonts-del", "layui-icon-fonts-code",
  367. "layui-icon-fonts-html", "layui-icon-fonts-strong", "layui-icon-unlink",
  368. "layui-icon-picture", "layui-icon-link", "layui-icon-face-smile-b",
  369. "layui-icon-align-left", "layui-icon-align-right",
  370. "layui-icon-align-center", "layui-icon-fonts-u", "layui-icon-fonts-i",
  371. "layui-icon-tabs", "layui-icon-radio", "layui-icon-circle",
  372. "layui-icon-edit", "layui-icon-share", "layui-icon-delete",
  373. "layui-icon-form", "layui-icon-cellphone-fine", "layui-icon-dialogue",
  374. "layui-icon-fonts-clear", "layui-icon-layer", "layui-icon-date",
  375. "layui-icon-water", "layui-icon-code-circle", "layui-icon-carousel",
  376. "layui-icon-prev-circle", "layui-icon-layouts", "layui-icon-util",
  377. "layui-icon-templeate-1", "layui-icon-upload-circle", "layui-icon-tree",
  378. "layui-icon-table", "layui-icon-chart", "layui-icon-chart-screen",
  379. "layui-icon-engine", "layui-icon-triangle-d", "layui-icon-triangle-r",
  380. "layui-icon-file", "layui-icon-set-sm", "layui-icon-add-circle",
  381. "layui-icon-404", "layui-icon-about", "layui-icon-up",
  382. "layui-icon-down", "layui-icon-left", "layui-icon-right",
  383. "layui-icon-circle-dot", "layui-icon-search", "layui-icon-set-fill",
  384. "layui-icon-group", "layui-icon-friends", "layui-icon-reply-fill",
  385. "layui-icon-menu-fill", "layui-icon-log", "layui-icon-picture-fine",
  386. "layui-icon-face-smile-fine", "layui-icon-list", "layui-icon-release",
  387. "layui-icon-ok", "layui-icon-help", "layui-icon-chat", "layui-icon-top",
  388. "layui-icon-star", "layui-icon-star-fill", "layui-icon-close-fill",
  389. "layui-icon-close", "layui-icon-ok-circle", "layui-icon-add-circle-fine"
  390. ];
  391. return arr;
  392. },
  393. unicode: function() {
  394. return ["&amp;#xe6c9;", "&amp;#xe67b;", "&amp;#xe67a;", "&amp;#xe678;",
  395. "&amp;#xe679;", "&amp;#xe677;", "&amp;#xe676;", "&amp;#xe675;",
  396. "&amp;#xe673;", "&amp;#xe66f;", "&amp;#xe9aa;", "&amp;#xe672;",
  397. "&amp;#xe66b;", "&amp;#xe668;", "&amp;#xe6b1;", "&amp;#xe702;",
  398. "&amp;#xe66e;", "&amp;#xe68e;", "&amp;#xe674;", "&amp;#xe669;",
  399. "&amp;#xe666;", "&amp;#xe66c;", "&amp;#xe66a;", "&amp;#xe667;",
  400. "&amp;#xe7ae;", "&amp;#xe665;", "&amp;#xe664;", "&amp;#xe716;",
  401. "&amp;#xe656;", "&amp;#xe653;", "&amp;#xe663;", "&amp;#xe6c6;",
  402. "&amp;#xe6c5;", "&amp;#xe662;", "&amp;#xe661;", "&amp;#xe660;",
  403. "&amp;#xe65d;", "&amp;#xe65f;", "&amp;#xe671;", "&amp;#xe65e;",
  404. "&amp;#xe659;", "&amp;#xe735;", "&amp;#xe756;", "&amp;#xe65c;",
  405. "&amp;#xe715;", "&amp;#xe705;", "&amp;#xe6b2;", "&amp;#xe6af;",
  406. "&amp;#xe69c;", "&amp;#xe698;", "&amp;#xe657;", "&amp;#xe65b;",
  407. "&amp;#xe65a;", "&amp;#xe681;", "&amp;#xe67c;", "&amp;#xe601;",
  408. "&amp;#xe857;", "&amp;#xe655;", "&amp;#xe770;", "&amp;#xe670;",
  409. "&amp;#xe63d;", "&amp;#xe63e;", "&amp;#xe654;", "&amp;#xe652;",
  410. "&amp;#xe651;", "&amp;#xe6fc;", "&amp;#xe6ed;", "&amp;#xe688;",
  411. "&amp;#xe645;", "&amp;#xe64f;", "&amp;#xe64e;", "&amp;#xe64b;",
  412. "&amp;#xe62b;", "&amp;#xe64d;", "&amp;#xe64a;", "&amp;#xe64c;",
  413. "&amp;#xe650;", "&amp;#xe649;", "&amp;#xe648;", "&amp;#xe647;",
  414. "&amp;#xe646;", "&amp;#xe644;", "&amp;#xe62a;", "&amp;#xe643;",
  415. "&amp;#xe63f;", "&amp;#xe642;", "&amp;#xe641;", "&amp;#xe640;",
  416. "&amp;#xe63c;", "&amp;#xe63b;", "&amp;#xe63a;", "&amp;#xe639;",
  417. "&amp;#xe638;", "&amp;#xe637;", "&amp;#xe636;", "&amp;#xe635;",
  418. "&amp;#xe634;", "&amp;#xe633;", "&amp;#xe632;", "&amp;#xe631;",
  419. "&amp;#xe630;", "&amp;#xe62f;", "&amp;#xe62e;", "&amp;#xe62d;",
  420. "&amp;#xe62c;", "&amp;#xe629;", "&amp;#xe628;", "&amp;#xe625;",
  421. "&amp;#xe623;", "&amp;#xe621;", "&amp;#xe620;", "&amp;#xe61f;",
  422. "&amp;#xe61c;", "&amp;#xe60b;", "&amp;#xe619;", "&amp;#xe61a;",
  423. "&amp;#xe603;", "&amp;#xe602;", "&amp;#xe617;", "&amp;#xe615;",
  424. "&amp;#xe614;", "&amp;#xe613;", "&amp;#xe612;", "&amp;#xe611;",
  425. "&amp;#xe60f;", "&amp;#xe60e;", "&amp;#xe60d;", "&amp;#xe60c;",
  426. "&amp;#xe60a;", "&amp;#xe609;", "&amp;#xe605;", "&amp;#xe607;",
  427. "&amp;#xe606;", "&amp;#xe604;", "&amp;#xe600;", "&amp;#xe658;",
  428. "&amp;#x1007;", "&amp;#x1006;", "&amp;#x1005;", "&amp;#xe608;"
  429. ];
  430. }
  431. }
  432. };
  433. a.init();
  434. return new IconPicker();
  435. };
  436. /**
  437. * 选中图标
  438. * @param filter lay-filter
  439. * @param iconName 图标名称,自动识别fontClass/unicode
  440. */
  441. IconPicker.prototype.checkIcon = function(filter, iconName) {
  442. var el = $('*[lay-filter=' + filter + ']'),
  443. p = el.next().find('.layui-iconpicker-item .layui-icon'),
  444. c = iconName;
  445. if (c.indexOf('#xe') > 0) {
  446. p.html(c);
  447. } else {
  448. p.html('').attr('class', 'layui-icon ' + c);
  449. }
  450. el.attr('value', c).val(c);
  451. };
  452. var iconPicker = new IconPicker();
  453. exports(_MOD, iconPicker);
  454. });