areaSelect.jsp 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@include file="/context/mytags.jsp"%>
  3. <t:base type="jquery,easyui,tools,DatePicker"></t:base>
  4. <link rel="stylesheet" type="text/css" href="plug-in/ztree/css/zTreeStyle.css">
  5. <script type="text/javascript" src="plug-in/ztree/js/jquery.ztree.core-3.5.min.js"></script>
  6. <script type="text/javascript" src="plug-in/ztree/js/jquery.ztree.excheck-3.5.min.js"></script>
  7. <script type="text/javascript">
  8. //编写自定义JS代码获得输入框中的值等父级页面调用取值
  9. function getReason(){
  10. var code="";
  11. var name="";
  12. var managerId="";
  13. var mobilePhone="";
  14. var position="";
  15. var longitude="";
  16. var latitude="";
  17. var height = "";
  18. var areaRegion="";
  19. var selectRows = $("#areaList1").datagrid('getSelections');
  20. for(var i=0;i<selectRows.length;i++){
  21. for(var key in selectRows[i]){
  22. if(key === "code"){
  23. code += code === "" ? selectRows[i][key] : "," + selectRows[i][key];
  24. }else if(key === "name"){
  25. name += name === "" ? selectRows[i][key] : "," + selectRows[i][key];
  26. }else if(key === "manageMan"){
  27. managerId += managerId === "" ? selectRows[i][key] : "," + selectRows[i][key];
  28. }else if(key === "managePhone"){
  29. mobilePhone += mobilePhone === "" ? selectRows[i][key] : "," + selectRows[i][key];
  30. }else if(key === "areaLocation"){
  31. position += position === "" ? selectRows[i][key] : "," + selectRows[i][key];
  32. }else if(key === "point" && $("#queryPoint").val() === "true"){
  33. if(selectRows[i][key].indexOf(" ") > 0){
  34. longitude = selectRows[i][key].split(" ")[0];
  35. latitude = selectRows[i][key].split(" ")[1];
  36. height = selectRows[i][key].split(" ")[2];
  37. }
  38. }else if(key === "areaRegion"){
  39. areaRegion += areaRegion === "" ? selectRows[i][key] : "," + selectRows[i][key];
  40. }
  41. }
  42. }
  43. var strData='[{"code":"'+code+'","name":"'+name+'","managerId":"'+managerId+'","mobilePhone":"'+mobilePhone+'","position":"'+position+'","longitude":"'+longitude+'","latitude":"'+latitude+'","height":"'+height+'","areaRegion":"'+areaRegion+'"}]';
  44. return strData;
  45. }
  46. </script>
  47. <body style="overflow-y: hidden" scroll="no">
  48. <div id="mainlist" class="easyui-layout" fit="true">
  49. <div region="center" style="padding:0px;border:0px">
  50. <input type="text" id="ids" readonly style="display: none;" value="${ids}">
  51. <input type="text" id="queryPoint"readonly style="display: none;" value="${queryPoint}">
  52. <t:datagrid checkbox="${checkbox}" name="areaList1" title="元素列表" actionUrl="" autoLoadData="false"
  53. fit="true" idField="id" pagination="true" sortName="name" sortOrder="desc">
  54. <t:dgCol title="主键" field="id" hidden="true" width="100"></t:dgCol>
  55. <t:dgCol title="元素编码" field="code" width="80"></t:dgCol>
  56. <t:dgCol title="元素名称" field="name" width="100"></t:dgCol>
  57. <t:dgCol title="管理人员" field="manageMan" width="100"></t:dgCol>
  58. <t:dgCol title="电话号码" field="managePhone" width="100"></t:dgCol>
  59. <t:dgCol title="元素位置" field="areaLocation" width="100"></t:dgCol>
  60. <t:dgCol title="元素类型" field="areaType" width="40" dictionary="areaType" ></t:dgCol>
  61. <t:dgCol title="经纬度" field="point" align="center" width="200"></t:dgCol>
  62. <t:dgCol title="所属网格化区域" field="areaRegion" align="center" dictionary="areaRegion" width="80"></t:dgCol>
  63. </t:datagrid>
  64. <div style="padding: 3px; height: 65px;">
  65. <div style="width: 250px;float: left;">
  66. <span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 80px;text-align:right;" title="元素编码">
  67. 元素编码:
  68. </span>
  69. <input type="text" name="code" id="code" style="width: 160px; height: 24px;" class="text">
  70. </div>
  71. <div style="width: 250px;float: left;">
  72. <span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 80px;text-align:right;" title="元素名称">
  73. 元素名称:
  74. </span>
  75. <input type="text" name="name" id="name" style="width: 160px; height: 24px;" class="text">
  76. </div>
  77. <div style="width: 250px;float: left;">
  78. <span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 80px;text-align:right;" title="管理人员">
  79. 管理人员:
  80. </span>
  81. <input type="text" name="manageMan" id="manageMan" style="width: 160px; height: 24px;" class="text">
  82. </div>
  83. <div style="width: 250px;float: left;">
  84. <span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 80px;text-align:right;" title="元素类型">
  85. 元素类型:
  86. </span>
  87. <%-- <t:dictSelect field="type" id="type" dictTable="t_s_type" dictField="typecode" dictText="typename" dictCondition=" where typegroupid = '2c9358a86dbeda88016dbee52d0f0031'"/>--%>
  88. <t:dictSelect id="areaType" field="areaType" type="list" typeGroupCode="areaType" hasLabel="false" title="元素类型"></t:dictSelect>
  89. </div>
  90. <div style="width: 250px;float: left;">
  91. <span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 80px;text-align:right;" title="所属网格化区域">
  92. 所属网格化区域:
  93. </span>
  94. <%-- <t:dictSelect field="type" id="type" dictTable="t_s_type" dictField="typecode" dictText="typename" dictCondition=" where typegroupid = '2c9358a86dbeda88016dbee52d0f0031'"/>--%>
  95. <t:dictSelect id="areaRegion" field="areaRegion" type="list" typeGroupCode="areaRegion" hasLabel="false" title="所属网格化区域"></t:dictSelect>
  96. </div>
  97. <br>
  98. <div style="width: 200px;float: right;">
  99. <a href="#" class="easyui-linkbutton" iconCls="icon-reload" onclick="clearSearch();" style="float: right;"><t:mutiLang langKey="重置"/></a>
  100. <a href="#" class="easyui-linkbutton" iconCls="icon-search" onclick="getResult();" style="float: right;"><t:mutiLang langKey="common.query"/></a>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. </body>
  106. <script>
  107. // datagrid组件name属性值
  108. const datagridName = "#areaList1";
  109. // 监听行点击事件并更新选中行信息
  110. $(function(){
  111. getResult();
  112. $(datagridName).datagrid({
  113. onClickRow : function() {
  114. getSelectedRow();
  115. }
  116. });
  117. })
  118. function clearSearch() {
  119. $('#code').val("");
  120. $('#name').val("");
  121. $('#manageMan').val("");
  122. $('#areaType').val("");
  123. $('#areaRegion').val("");
  124. getResult();
  125. }
  126. function getResult() {
  127. var options = $(datagridName).datagrid("getPager").data("pagination").options;
  128. var curr = options.pageNumber;
  129. var size = options.pageSize;
  130. let queryUrl = "archivesAreaController.do?datagridToBody&ids="+$("#ids").val();
  131. if($("#queryPoint").val() === 'true'){
  132. queryUrl += "&pointStatus=true";
  133. }else{
  134. queryUrl += "&pointStatus=false";
  135. }
  136. $.ajax({
  137. url:queryUrl,
  138. data:{
  139. pageNum:curr,
  140. pageSize:size,
  141. code:$('#code').val(),
  142. name:$('#name').val(),
  143. manageMan:$('#manageMan').val(),
  144. areaType:$('#areaType').val(),
  145. areaRegion:$('#areaRegion').val()
  146. },
  147. type:"post",
  148. success:function(data){
  149. if(data){
  150. loadSuccess(data);
  151. }
  152. }
  153. });
  154. }
  155. // 返回选中的行信息
  156. function getSelectedRow(){
  157. let selectRowsData = $(datagridName).datagrid('getSelections');
  158. localStorage.setItem("selectRowsData",JSON.stringify(selectRowsData));
  159. if(selectRowsData.length > 0){
  160. let codes = "";
  161. selectRowsData.forEach(item=>{
  162. codes += codes === "" ? item.code : "," + item.code;
  163. })
  164. $('#ids').val(codes);
  165. }else{
  166. $('#ids').val("");
  167. }
  168. }
  169. // 处理返回数据
  170. function loadSuccess(data){
  171. let selectRecordIds = [];
  172. if(localStorage.getItem("selectRowsData")) {
  173. let selectRowsData = JSON.parse(localStorage.getItem("selectRowsData"));
  174. if(selectRowsData && selectRowsData.length > 0){
  175. let selectRowsData_ = [];
  176. let newLoad = false;
  177. // 检查上一次选中行和当前数据差距
  178. selectRowsData.forEach(item=>{
  179. let hasId = false;
  180. for (let i = 0; i < data.list.length ; i++) {
  181. let item2 = data.list[i];
  182. if(item2.id === item.id){
  183. selectRecordIds.push(item.id);
  184. hasId = true;
  185. break;
  186. }
  187. }
  188. if(!hasId){
  189. newLoad = true;
  190. selectRecordIds.push(item.id);
  191. selectRowsData_.push(item);
  192. }
  193. })
  194. // 追加上一次选择行
  195. if(newLoad && selectRowsData_.length > 0){
  196. data.list = data.list.concat(selectRowsData_);
  197. }
  198. }
  199. }
  200. if($("#ids").val() != ""){
  201. data.list.forEach(item=>{
  202. if($("#ids").val().indexOf(item.code) != -1 && selectRecordIds.indexOf(item.id) == -1){
  203. selectRecordIds.push(item.id);
  204. }
  205. })
  206. }
  207. $(datagridName).datagrid({
  208. data: data,
  209. loadFilter:function(data){
  210. return {
  211. rows: data.list,
  212. total: data.totalCount
  213. }
  214. },
  215. onBeforeLoad:function(val){
  216. return false;
  217. }
  218. });
  219. // 恢复选中行
  220. if(selectRecordIds.length > 0){
  221. for(let i=0;i<selectRecordIds.length;i++){
  222. if(selectRecordIds[i] !== ""){
  223. $(datagridName).datagrid("selectRecord",selectRecordIds[i]);
  224. }
  225. }
  226. }
  227. }
  228. </script>