Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 
 

234 righe
8.5 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. var dfopid = request('dfopid');
  9. var acceptClick;
  10. var bootstrap = function ($, learun) {
  11. "use strict";
  12. var selectItem;
  13. var gridData = null;
  14. var op = null;
  15. var treeValue = '';
  16. var selectData = {};
  17. var page = {
  18. init: function () {
  19. page.bind();
  20. },
  21. bind: function () {
  22. op = top.lrlayerSelect[dfopid];
  23. var _value = op._value.split(',');
  24. var _text = op._text.split(',');
  25. $.each(_value, function (_index, _item) {
  26. if (_item != "") {
  27. selectData[_item] = _text[_index] || '';
  28. }
  29. });
  30. //未登记在册资产点击事件
  31. if (op.unknowselect) {
  32. $("#item_selected_unknow").on("click",
  33. function() {
  34. learun.layerClose(top['layer_' + op.id].name);
  35. op.unknowselect();
  36. });
  37. } else {
  38. $("#item_selected_unknow").hide();
  39. }
  40. // 初始化表格
  41. $('#gridtable').jfGrid({
  42. headData: op.grid,
  43. isMultiselect: op.isMultiple,
  44. mainId: op.dataValueId,
  45. multiselectfield: 'lrcheck',
  46. onSelectRow: function (data, isCheck) {
  47. page.setSelect(data, isCheck);
  48. },
  49. url: op.dataUrl
  50. });
  51. //url数据
  52. if (op.treeUrl) {
  53. learun.httpAsync("Get", op.treeUrl, {}, function (data) {
  54. $('#tree').lrtree({
  55. data: data,
  56. nodeClick: function (item) {
  57. treeValue = item.value;
  58. page.search("");
  59. }
  60. });
  61. });
  62. } else {
  63. // 设置树形数据
  64. learun.clientdata.getAllAsync('sourceData', {
  65. code: op.treeCode,
  66. callback: function (_data) {
  67. var treeData = $.lrtree.listTotree(_data, op.treeParentId, op.treeValueId, op.treeTextId, op.treeValueId, false);
  68. $('#tree').lrtree({
  69. data: treeData,
  70. nodeClick: function (item) {
  71. treeValue = item.value;
  72. page.search("");
  73. }
  74. });
  75. }
  76. });
  77. }
  78. if (op.dataUrl) {
  79. page.search();
  80. } else {
  81. // 获取表格数据
  82. learun.clientdata.getAllAsync('sourceData', {
  83. code: op.dataCode,
  84. callback: function (_data) {
  85. //gridData = _data;
  86. gridData = [];
  87. var $list = $('#selected_item_list');
  88. $.each(_data, function (_index, _item) {
  89. if (selectData[_item[op.dataValueId]]) {
  90. selectData[_item[op.dataValueId]] = _item[op.dataTextId];
  91. _item.lrcheck = 1;
  92. var _html = '<div class="item-selected-box" data-value="' + _item[op.dataValueId] + '" >';
  93. _html += '<p><span>' + _item[op.dataTextId] + '</span></p>';
  94. _html += '<span class="item-reomve" title="移除选中项"></span>';
  95. _html += '</div>';
  96. $list.append($(_html));
  97. } else {
  98. _item.lrcheck = 0;
  99. }
  100. gridData.push(_item);
  101. });
  102. $('#gridtable').jfGridSet('refreshdata', _data);
  103. }
  104. });
  105. }
  106. // 搜索框初始化
  107. $('#txt_keyword').on("keypress", function (e) {
  108. if (event.keyCode == "13") {
  109. var $this = $(this);
  110. var keyword = $this.val();
  111. page.search(keyword);
  112. }
  113. });
  114. $('.input-query').on('click', function () {
  115. var keyword = $('#txt_keyword').val();
  116. page.search(keyword);
  117. });
  118. // 已选项
  119. if (op.isMultiple) {
  120. $('#item_selected_btn').on('click', function () {
  121. $('#form_warp_right').animate({ right: '0px' }, 300);
  122. });
  123. $('#item_selected_btn_close').on('click', function () {
  124. $('#form_warp_right').animate({ right: '-180px' }, 300);
  125. });
  126. }
  127. else {
  128. $('#item_selected_btn').remove();
  129. $('.input-query').css('right', '10px');
  130. if (op.unknowselect) {
  131. $('.input-query').css('right', '85px');
  132. $("#item_selected_unknow").css("right","0px");
  133. }
  134. }
  135. $('.selected-item-list-warp').lrscroll();
  136. var $warp = $('#selected_item_list');
  137. $warp.on('click', function (e) {
  138. var et = e.target || e.srcElement;
  139. var $et = $(et);
  140. if ($et.hasClass('item-reomve')) {
  141. var id = $et.parent().attr('data-value');
  142. $et.parent().remove();
  143. delete selectData[id];
  144. var keyword = $('#txt_keyword').val();
  145. page.search(keyword);
  146. }
  147. });
  148. },
  149. search: function (text) {
  150. if (op.dataUrl) {
  151. var param = {};
  152. if (op.dataTreeId) {
  153. param[op.dataTreeId] = treeValue;
  154. }
  155. param.keyword = text;
  156. $('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) });
  157. } else {
  158. if (gridData == null) {
  159. setTimeout(function () {
  160. page.search(text);
  161. }, 100);
  162. }
  163. else {
  164. var _data = [];
  165. $.each(gridData, function (_index, _item) {
  166. if (!!selectData[_item[op.dataValueId]]) {
  167. _item.lrcheck = 1;
  168. }
  169. else {
  170. _item.lrcheck = 0;
  171. }
  172. if (_item[op.dataTreeId] == treeValue || treeValue == "") {
  173. if (text == "" || _item[op.dataTextId].indexOf(text) != -1) {
  174. _data.push(_item);
  175. }
  176. }
  177. });
  178. $('#gridtable').jfGridSet('refreshdata', _data);
  179. }
  180. }
  181. },
  182. setSelect: function (data, ischeck) {
  183. var $list = $('#selected_item_list');
  184. if (ischeck) {
  185. if ($list.find('[data-value="' + data[op.dataValueId] + '"]').length == 0) {
  186. selectData[data[op.dataValueId]] = data[op.dataTextId];
  187. var _html = '<div class="item-selected-box" data-value="' + data[op.dataValueId] + '" >';
  188. _html += '<p><span>' + data[op.dataTextId] + '</span></p>';
  189. _html += '<span class="item-reomve" title="移除选中项"></span>';
  190. _html += '</div>';
  191. $list.append($(_html));
  192. }
  193. }
  194. else {
  195. $list.find('[data-value="' + data[op.dataValueId] + '"]').remove();
  196. delete selectData[data[op.dataValueId]];
  197. }
  198. }
  199. };
  200. // 保存数据
  201. acceptClick = function (callBack) {
  202. if (op.isMultiple) {
  203. callBack(selectData, dfopid);
  204. } else {
  205. var item = $('#gridtable').jfGridGet('rowdata');
  206. selectData = {};
  207. if (item) {
  208. selectData[item[op.dataValueId]] = item[op.dataTextId];
  209. }
  210. callBack(selectData, dfopid);
  211. }
  212. return true;
  213. };
  214. page.init();
  215. }