wms-custmerquery.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. /*
  2. * 描 述:learunISearch 输入搜索框,支持input输入框,数据异步加载,本地查询
  3. */
  4. (function ($, learun) {
  5. "use strict";
  6. $.lrcustmerquery = {
  7. init: function ($self) {
  8. var dfop = $self[0]._lrcustmerquery.dfop;
  9. $self.parent().append('<div class="learun-isearch-panel" style="max-height:' + dfop.maxHeight + 'px;" ><ul id="learunisearch_' + dfop.id + '" ></ul></div>');
  10. },
  11. bind: function ($self) {
  12. $self.on('input propertychange', function () {
  13. var $this = $(this);
  14. $.learunisearch.triggerSearch($self);
  15. });
  16. },
  17. triggerSearch: function ($self) {
  18. var dfop = $self[0]._lrcustmerquery.dfop;
  19. var $showPanel = $('#learunisearch_' + dfop.id);
  20. $showPanel.parent().hide();
  21. var _value = $self.val();
  22. if (_value) {
  23. if (!dfop._isload) {
  24. dfop._isSearchneed = true;
  25. }
  26. else {
  27. dfop._first = true;
  28. dfop._value = _value;
  29. dfop._begin = 0;
  30. dfop._end = 100 > dfop.data.length ? dfop.data.length : 100;
  31. if (dfop._isSearched) {
  32. dfop._isSearched = false;
  33. setTimeout(function () {
  34. $.learunisearch.search($self);
  35. });
  36. }
  37. }
  38. }
  39. else {
  40. dfop._isSearchneed = false;
  41. $showPanel.html("");
  42. }
  43. },
  44. search: function ($self) {// 每次搜索100条
  45. var dfop = $self[0]._lrcustmerquery.dfop;
  46. var value = dfop._value;
  47. var begin = dfop._begin;
  48. var end = dfop._end;
  49. var data = dfop.data;
  50. for (var i = begin; i < end; i++) {
  51. var _item = data[i];
  52. if (item[dfop.text].indexOf(value) != -1) {
  53. $.learunisearch.renderNone($self, item[dfop.text]);
  54. }
  55. }
  56. if (end < data.length) {
  57. dfop._begin = end;
  58. dfop._end = end + 100;
  59. if (dfop._end > data.length) {
  60. dfop._end = data.length;
  61. }
  62. setTimeout(function () {
  63. $.learunisearch.search($self);
  64. });
  65. }
  66. else {
  67. dfop._isSearched = true;
  68. }
  69. },
  70. renderNone: function ($self, text) {// 刷新一条数据
  71. var dfop = $self[0]._lrcustmerquery.dfop;
  72. var $showPanel = $('#learunisearch_' + dfop.id);
  73. if (dfop._first) {
  74. dfop._first = false;
  75. $showPanel.html("");
  76. $showPanel.parent().show();
  77. }
  78. $showPanel.append('<li>' + text + '</li>');
  79. }
  80. };
  81. $.fn.lrcustmerquery = function (op) {
  82. var dfop = {
  83. // 默认查询条件项;[{fields:[{name:'',value:'',condition:''}],Formula:'',name:''}]
  84. dfData: [],
  85. // 字段列表[{name:'',value:''}]
  86. Fields: [],
  87. // 所属功能地址url
  88. moduleUrl: '',
  89. // 加载自定义查询地址
  90. url: top.$.rootUrl + '/LR_SystemModule/CustmerQuery/GetList',
  91. // 自定义查询数据
  92. data: [],
  93. // 标记性参数
  94. _isload:false
  95. };
  96. $.extend(dfop, op || {});
  97. var $self = $(this);
  98. dfop.id = $self.attr('id');
  99. if (!dfop.id) {
  100. return false;
  101. }
  102. $self[0]._lrcustmerquery = { "dfop": dfop };
  103. $.lrcustmerquery.init($self);
  104. //加载数据
  105. if (!!dfop.url) {
  106. learun.httpAsync('GET', dfop.url, dfop.param, function (data) {
  107. $self[0]._lrcustmerquery.dfop.data = data || [];
  108. dfop._isload = true;
  109. });
  110. }
  111. return $self;
  112. };
  113. })(jQuery, top.learun);