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.
 
 
 
 
 
 

138 lines
6.3 KiB

  1. (function () {
  2. var listData = [];
  3. var searchData = [];
  4. var isSearch = false;
  5. var page = {
  6. isScroll: true,
  7. init: function ($page, param) {
  8. // 加载数据(数据字典或者数据源)
  9. var $list = $page.find('#lr_select_layer_list');
  10. switch (param.op.type){
  11. case 'dataItem':
  12. learun.clientdata.getAll('dataItem', {
  13. code: param.op.code,
  14. callback: function (data) {
  15. listData = data;
  16. $.each(data, function (_index, _item) {
  17. var $item = $('<div class="lr-list-item lr-list-item-multi" data-value="' + _index + '" ></div>');
  18. $.each(param.op.layerData, function (_jindex, _jitem) {
  19. if (_jitem.hide !== 1) {
  20. var _id = _jitem.name === 'F_ItemName' ? 'text' : 'value';
  21. $item.append('<p class="lr-ellipsis"><span>' + _jitem.label + ":</span>" + _item[_id] + '</p>');
  22. }
  23. });
  24. $list.append($item);
  25. $item = null;
  26. });
  27. }
  28. });
  29. break;
  30. case 'sourceData':
  31. learun.clientdata('sourceData', {
  32. code: op.code,
  33. callback: function (data) {
  34. listData = data;
  35. $.each(data, function (_index, _item) {
  36. var $item = $('<div class="lr-list-item lr-list-item-multi" data-value="' + _index + '" ></div>');
  37. $.each(param.op.layerData, function (_jindex, _jitem) {
  38. if (_jitem.hide !== 1) {
  39. $item.append('<p class="lr-ellipsis"><span>' + _jitem.label + ":</span>" + _item[_jitem.name] + '</p>');
  40. }
  41. });
  42. $list.append($item);
  43. $item = null;
  44. });
  45. }
  46. });
  47. break;
  48. }
  49. // 点击事件
  50. $list.on('tap', function (e) {
  51. e = e || window.event;
  52. var et = e.target || e.srcElement;
  53. var $et = $(et);
  54. if ($et.hasClass('lr-ellipsis')) {
  55. $et = $et.parents('.lr-list-item');
  56. }
  57. if ($et.hasClass('lr-list-item')) {
  58. var _index = $et.attr('data-value');
  59. var item = null;
  60. if (!isSearch) {
  61. item = listData[_index];
  62. }
  63. else {
  64. item = searchData[_index];
  65. }
  66. if (param.op.type === 'dataItem') {// 如果是数据字典的话,为了与pc端的字段保持一致需要做一次转化
  67. item['F_ItemName'] = item.text;
  68. item['F_ItemValue'] = item.value;
  69. }
  70. param.callback(item, param.op, param.$this);
  71. learun.nav.closeCurrent();
  72. return false;
  73. }
  74. });
  75. $list = null;
  76. // 搜索框
  77. $page.find('input').on('input propertychange', function () {
  78. var keyword = $(this).val();
  79. var _$list = $('#lr_select_layer_list');
  80. if (keyword) {
  81. _$list.html("");
  82. searchData = [];
  83. $.each(listData, function (_index, _item) {
  84. var $item = $('<div class="lr-list-item lr-list-item-multi" data-value="' + _index + '" ></div>');
  85. var isAdd = false;
  86. $.each(param.op.layerData, function (_jindex, _jitem) {
  87. if (_jitem.hide !== 1) {
  88. var _id = '';
  89. if (param.op.type === 'dataItem') {
  90. _id = _jitem.name === 'F_ItemName' ? 'text' : 'value';
  91. }
  92. $item.append('<p class="lr-ellipsis"><span>' + _jitem.label + ":</span>" + _item[_id || _jitem.name] + '</p>');
  93. if (_item[_id || _jitem.name].indexOf(keyword) !== -1) {
  94. isAdd = true;
  95. }
  96. }
  97. });
  98. if (isAdd) {
  99. searchData.push(_item);
  100. _$list.append($item);
  101. }
  102. $item = null;
  103. });
  104. }
  105. else {
  106. _$list.html("");
  107. $.each(listData, function (_index, _item) {
  108. var $item = $('<div class="lr-list-item lr-list-item-multi" data-value="' + _index + '" ></div>');
  109. $.each(param.op.layerData, function (_jindex, _jitem) {
  110. if (_jitem.hide !== 1) {
  111. if (param.op.type === 'dataItem') {
  112. var _id = _jitem.name === 'F_ItemName' ? 'text' : 'value';
  113. $item.append('<p class="lr-ellipsis"><span>' + _jitem.label + ":</span>" + _item[_id] + '</p>');
  114. }
  115. else {
  116. $item.append('<p class="lr-ellipsis"><span>' + _jitem.label + ":</span>" + _item[_jitem.name] + '</p>');
  117. }
  118. }
  119. });
  120. _$list.append($item);
  121. $item = null;
  122. });
  123. }
  124. });
  125. },
  126. destroy: function (pageinfo) {
  127. listData = [];
  128. searchData = [];
  129. isSearch = false;
  130. }
  131. };
  132. return page;
  133. })();