wms-layerselect.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. /*
  2. * 描 述:弹层选择控件
  3. */
  4. (function ($, learun) {
  5. "use strict";
  6. $.lrlayerselect = {
  7. init: function ($self) {
  8. var dfop = $self[0].dfop;
  9. $self.addClass('lr-layerselect');
  10. $self.attr('type', 'lrlayerselect');
  11. var $input = $('<span>' + dfop.placeholder + '</span><i class="fa ' + dfop.icon + '"></i><div class="clear-btn" >清空</div>');
  12. $self.on('click', $.lrlayerselect.click);
  13. $self.html($input);
  14. },
  15. click: function (e) {
  16. var $self = $(this);
  17. var dfop = $self[0].dfop;
  18. var et = e.target || e.srcElement;
  19. var $et = $(et);
  20. if ($et.hasClass('clear-btn')) {
  21. dfop._itemValue = { value: "", text: dfop.placeholder };
  22. $self.removeClass('selected');
  23. $self.find('span').text(dfop._itemValue.text);
  24. if (!!dfop.select) {
  25. dfop.select(dfop._itemValue);
  26. }
  27. }
  28. else {
  29. var value = dfop._itemValue ? dfop._itemValue.value : "";
  30. var _url = top.$.rootUrl + '/Utility/TreeSelectIndex?dfopid=' + dfop.id + '&selectValue=' + value;
  31. top.lrlayerSelect = top.lrlayerSelect || {};
  32. top.lrlayerSelect[dfop.id] = dfop;
  33. learun.layerForm({
  34. id: dfop.id,
  35. title: dfop.placeholder,
  36. url: _url,
  37. width: 800,
  38. height: 520,
  39. maxmin: true,
  40. callBack: function (id) {
  41. return top[id].acceptClick($.lrlayerselect.callback);
  42. }
  43. });
  44. }
  45. },
  46. callback: function (data, id) {
  47. var $self = $('#' + id);
  48. var op = $self[0].dfop;
  49. var _value = [];
  50. var _text = [];
  51. $.each(data, function (_index, _item) {
  52. _value.push(_index);
  53. _text.push(_item);
  54. });
  55. if (op._value != String(_value)) {
  56. op.select && op.select(_value, _text);
  57. }
  58. op._value = String(_value);
  59. op._text = String(_text);
  60. if (op._value == '') {
  61. op._text = '';
  62. $self.removeClass('selected');
  63. $self.find('span').text(op.placeholder);
  64. }
  65. else {
  66. $self.addClass('selected');
  67. $self.find('span').text(op._text);
  68. }
  69. }
  70. };
  71. $.fn.lrlayerselect = function (op) {
  72. var dfop = {
  73. placeholder: "请选择",
  74. icon: 'fa-plus',
  75. treeCode: '',
  76. treeUrl: '',
  77. treeParentId: '',
  78. treeValueId: '',
  79. treeTextId: '',
  80. dataCode: '',
  81. dataUrl: '',
  82. dataTreeId: '',
  83. dataValueId:'',
  84. dataTextId:'',
  85. grid: [],
  86. isMultiple: true,
  87. select: false, // 选择事件
  88. _value: '',
  89. _text:'',
  90. };
  91. $.extend(dfop, op || {});
  92. var $self = $(this);
  93. dfop.id = $self.attr('id');
  94. if (!dfop.id) {
  95. return false;
  96. }
  97. if (!!$self[0].dfop) {
  98. return $self;
  99. }
  100. $self[0].dfop = dfop
  101. $.lrlayerselect.init($self);
  102. return $self;
  103. };
  104. $.fn.lrlayerselectGet = function () {
  105. var $self = $(this);
  106. return $self[0].dfop._value;
  107. };
  108. $.fn.lrlayerselectSet = function (value) {
  109. var $self = $(this);
  110. var op = $self[0].dfop;
  111. if (value == '') {
  112. op._value = '';
  113. op._text = '';
  114. $self.removeClass('selected');
  115. $self.find('span').text(dfop.placeholder);
  116. op.select && op.select([],[]);
  117. return;
  118. }
  119. if (value != undefined && value != null) {
  120. op._value = value;
  121. var values = value.split(',');
  122. var valueMap = {};
  123. $.each(values, function (_index,_item) {
  124. valueMap[_item] = '1';
  125. });
  126. learun.clientdata.getAllAsync('sourceData', {
  127. code: op.dataCode,
  128. callback: function (_data) {
  129. var _text = [];
  130. $.each(_data, function (_index, _item) {
  131. if (valueMap[_item[op.dataValueId]]) {
  132. _text.push(_item[op.dataTextId]);
  133. }
  134. });
  135. op._text = String(_text);
  136. op.select && op.select(values, _text);
  137. $self.addClass('selected');
  138. $self.find('span').text(op._text);
  139. }
  140. });
  141. }
  142. };
  143. })(window.jQuery, top.learun);