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.
 
 
 
 
 
 

168 lines
5.1 KiB

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