You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

пре 4 година
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. (function () {
  2. var companyMap = {};
  3. var companyData = {};
  4. var page = {
  5. isScroll: true,
  6. loadCompany: function (map, id, $list) {
  7. $.each(map[id], function (_index, _item) {
  8. companyData[_item.id] = _item;
  9. var _$html = $('\
  10. <div class="lr-list-item" >\
  11. <a class="lr-nav-left company" data-value="'+ _item.id + '" >' + _item.name + '</a>\
  12. </div>');
  13. $list.append(_$html);
  14. if (map[_item.id] && map[_item.id].length > 0) {
  15. _$html.find('a').addClass('bottom');
  16. var _$list = $('<div class="lr-user-list" ></div>');
  17. $list.css({ 'padding-left': '10px' });
  18. page.loadCompany(map, _item.id, _$list);
  19. _$html.append(_$list);
  20. }
  21. });
  22. },
  23. init: function ($page, param) {
  24. learun.clientdata.getAll('company', {
  25. callback: function (data) {
  26. $.each(data, function (_id, _item) {
  27. companyMap[_item.parentId] = companyMap[_item.parentId] || [];
  28. _item.id = _id;
  29. companyMap[_item.parentId].push(_item);
  30. });
  31. var $list = $page.find('#lr_select_company_list');
  32. page.loadCompany(companyMap, param.op.companyId || '0', $list);
  33. }
  34. });
  35. // 注册点击事件
  36. $page.find('#lr_select_company_list').on('tap', function (e) {
  37. e = e || window.event;
  38. var et = e.target || e.srcElement;
  39. var $et = $(et);
  40. if (et.tagName === 'IMG' || et.tagName === 'SPAN') {
  41. $et = $et.parent();
  42. }
  43. if ($et.hasClass('company')) {
  44. var id = $et.attr('data-value');
  45. param.callback(companyData[id], param.op, param.$this);
  46. learun.nav.closeCurrent();
  47. return false;
  48. }
  49. });
  50. $page.find('input').on('input propertychange', function () {
  51. var keyword = $(this).val();
  52. var $list = $('#lr_select_company_list');
  53. if (keyword) {
  54. $list.html("");
  55. $.each(companyData, function (_index, _item) {
  56. if (_item.name.indexOf(keyword) !== -1) {
  57. var _html = '\
  58. <div class="lr-list-item" >\
  59. <a class="lr-nav-left company" data-value="'+ _item.id + '" >' + _item.name + '</a>\
  60. </div>';
  61. $list.append(_html);
  62. }
  63. });
  64. }
  65. else {
  66. $list.html("");
  67. page.loadCompany(companyMap, param.op.companyId || '0', $list);
  68. }
  69. });
  70. },
  71. destroy: function (pageinfo) {
  72. companyMap = {};
  73. companyData = {};
  74. }
  75. };
  76. return page;
  77. })();