buildingView.jsp 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <%@ page language="java" contentType="text/html; charset=utf-8"
  2. pageEncoding="utf-8"%>
  3. <%
  4. String basePath = request.getScheme() + "://"
  5. + request.getServerName() + ":" + request.getServerPort()
  6. + request.getContextPath();
  7. %>
  8. <style>
  9. .view td {
  10. height: 24px;
  11. line-height: 24px;
  12. font-size: 12px;
  13. font-family: arial, "Microsoft Yahei", sans-serif;
  14. text-align: center;
  15. }
  16. .view_unit_title {
  17. width: 100px;
  18. height: 24px;
  19. background-color: #043a66;
  20. }
  21. .view_unit_item {
  22. color:white;
  23. width: 100px;
  24. height: 24px;
  25. color: #444;
  26. background-color: #184e8b;
  27. }
  28. .view_unit_floor {
  29. width: 100px;
  30. height: 24px;
  31. color: #444;
  32. background-color: #d7d7d7;
  33. }
  34. .view_unit {
  35. width: 100px;
  36. height: 24px;
  37. color: #444;
  38. background-color:#5cadef;
  39. }
  40. .view_unit_pre {
  41. width: 100px;
  42. height: 24px;
  43. color: #444;
  44. background:#5cadef url("images/star.png") no-repeat;
  45. background-position: 2;
  46. }
  47. .view_unit_not {
  48. width: 100px;
  49. height: 24px;
  50. background-color: #a2a1a1;
  51. color:#444;
  52. text-align: center;
  53. }
  54. .building_tb{
  55. margin-left: auto;
  56. margin-right: auto;
  57. border-spacing: 1px;
  58. }
  59. </style>
  60. <div class="view" style="width:100%;margin-top: 10px;">
  61. <div style="margin-left: auto; margin-right: auto; width: 100%; text-align: center;font-family: arial, 'Microsoft Yahei', sans-serif;font-weight: bolder;font-size: 18px; font-weight: bolder;">
  62. <span id="view_buildingTitle"></span>楼层分布图
  63. </div>
  64. <div id="remark" style="margin-left: auto; margin-right: auto; width: 100%; text-align: center; color:red; font-size: 12px; font-weight: bolder;">
  65. </div>
  66. <div style="margin-left: auto; margin-right: auto; width: 100%; text-align: center;">
  67. <div style="width: 350px; height:16px; margin-top:5px;margin-bottom:5px; line-height:16px; font-size: 12px; font-weight: bolder; margin-left: auto;margin-right: auto;text-align: center;">
  68. <div style="float: left;width: 50px;">图例:</div>
  69. <div style="width: 100px;height: 16px;float: left;overflow: hidden;">
  70. <div style="width: 16px;height: 16px;float:left;background-color: #5cadef;overflow: hidden;"></div><div style="float: left;">&nbsp;已有合同 </div>
  71. </div>
  72. <div style="width: 100px;height: 16px;float: left;overflow: hidden;">
  73. <div style="width: 16px;height: 16px;float:left;background-color: #a2a1a1;"></div><div style="float: left;">&nbsp;没有合同</div>
  74. </div>
  75. <div style="width: 100px;height: 16px;float: left;overflow: hidden;">
  76. <div style="width: 16px;height: 16px;float:left;background:#5cadef url('images/star.png') no-repeat;"></div><div style="float: left;">&nbsp;已预收费</div>
  77. </div>
  78. </div>
  79. </div>
  80. <div id="layer_tb" style="margin-left: auto; margin-right: auto; width: 100%; text-align: center;"></div>
  81. </div>
  82. <script>
  83. function draw(buildingName,maptype) {
  84. parent.$.messager.progress({
  85. title : '提示',
  86. text : '拼命加载中,请稍候....'
  87. });
  88. $("#layer_tb").empty();
  89. $.ajax({
  90. type : "post",//使用get方法访问后台
  91. dataType : "json",//返回json格式的数据
  92. url : "houseAction_findAllQuery",//要访问的后台地址
  93. data : "house.buildingName=" + buildingName,//要发送的数据
  94. complete : function() {
  95. $("#load").hide();
  96. },//AJAX请求完成时隐藏loading提示
  97. success : function(data) {//msg为返回的数据,在这里做数据绑定
  98. if (data.success) {
  99. var unitsLen = data.unitList.length;
  100. var floorHtml = "";
  101. if (unitsLen > 0) {//有单元
  102. floorHtml = '<tr>';
  103. floorHtml += '<td class="view_unit_title">&nbsp;</td>';
  104. var t = 0;
  105. for(var uItem = 0; uItem < unitsLen; uItem++) {
  106. var unit = data.unitList[uItem];
  107. t = t + unit.houses;
  108. }
  109. if(t < (data.col-1)){
  110. for(var uItem = 0; uItem < data.col-1; uItem++) {
  111. floorHtml += '<td class="view_unit_floor" style="font-size:16px;">'+(uItem+1)+'</td>';
  112. }
  113. }else{
  114. for ( var uItem = 0; uItem < unitsLen; uItem++) {
  115. var unit = data.unitList[uItem];
  116. floorHtml += '<td class="view_unit_item" style="font-size:16px;color:white;" colspan='+unit.houses+'>'+ unit.unit + '</td>';
  117. }
  118. }
  119. floorHtml += '</tr>';
  120. }else{
  121. floorHtml = '<tr>';
  122. floorHtml += '<td class="view_unit_title">&nbsp;</td>';
  123. for(var uItem = 0; uItem < data.col-1; uItem++) {
  124. floorHtml += '<td class="view_unit_floor" style="font-size:16px;">'+(uItem+1)+'</td>';
  125. }
  126. floorHtml += '</tr>';
  127. }
  128. var layerHtml = "";
  129. for ( var row = data.row; row > 0; row--) {
  130. layerHtml += '<tr>';
  131. if(maptype == "1"){
  132. layerHtml += '<td class="view_unit_floor">' + row + '</td>';
  133. }else{
  134. layerHtml += '<td class="view_unit_floor">' + row + '楼</td>';
  135. }
  136. for ( var col = 1; col < data.col; col++) {
  137. var location = row + "-" + col;
  138. layerHtml += '<td id = "f-'+location+'" class="view_unit_not">&nbsp;</td>';
  139. }
  140. layerHtml += '</tr>';
  141. }
  142. $("#layer_tb").append('<table id="view_tb" class="building_tb" border=0 style="width:'+60*(Number(data.col))+'px">' + floorHtml + layerHtml + '</table>');
  143. for ( var iItem = 0; iItem < data.obj.length; iItem++) {//根据坐标寻找值
  144. var floor = data.obj[iItem].location.split("-")[0];
  145. var x = data.obj[iItem].location.split("-")[1];
  146. var layer = data.obj[iItem].location.split("-")[2];
  147. var col = 0;
  148. var loc = floor + "-"+ x;
  149. if(data.obj[iItem].location.split("-").length == 4){
  150. col = data.obj[iItem].location.split("-")[3];
  151. }
  152. if(layer>1 && col>1){//多层一户
  153. $("#f-"+loc).attr("rowspan",layer);
  154. $("#f-"+loc).attr("colspan",col);
  155. $("#f-"+floor+"-"+x).html(spanFormat(data.obj[iItem].id,data.obj[iItem].houseNumber));
  156. for(var j = 0;j<layer;j++){
  157. for(var i=0;i<col;i++){//删除单元格
  158. var id = "";
  159. if(!(j == 0 && i ==0)){//第一个不删除
  160. id = "#f-"+(floor-j)+"-"+(Number(x)+i);
  161. }
  162. var roomToRemove = $(id);
  163. roomToRemove.remove();
  164. }
  165. }
  166. }else if(layer>1){//纵向
  167. $("#f-"+loc).attr("rowspan",layer);
  168. $("#f-"+floor+"-"+x).html(spanFormat(data.obj[iItem].id,data.obj[iItem].houseNumber));
  169. for(var i=1;i<layer;i++){//删除单元格
  170. var roomToRemove = $("#f-"+(floor-i)+"-"+x);
  171. roomToRemove.remove();
  172. }
  173. }else if(col>1){//横向
  174. $("#f-"+loc).attr("colspan",col);
  175. $("#f-"+floor+"-"+x).html(spanFormat(data.obj[iItem].id,data.obj[iItem].houseNumber));
  176. for(var i=1;i<col;i++){//删除单元格
  177. var roomToRemove = $("#f-"+floor+"-"+(Number(x)+i));
  178. roomToRemove.remove();
  179. }
  180. }else{//正常
  181. $("#f-"+floor+"-"+x).html(spanFormat(data.obj[iItem].id,data.obj[iItem].houseNumber));
  182. }
  183. //处理状态
  184. if(data.obj[iItem].status == "1"){
  185. if(data.obj[iItem].preStatus == "1"){
  186. $("#f-"+floor+"-"+x).removeClass("view_unit_not");
  187. $("#f-"+floor+"-"+x).addClass("view_unit_pre");
  188. }else{
  189. $("#f-"+floor+"-"+x).removeClass("view_unit_not");
  190. $("#f-"+floor+"-"+x).addClass("view_unit");
  191. }
  192. }
  193. }
  194. parent.$.messager.progress('close');
  195. } else {
  196. parent.$.messager.progress('close');
  197. $.messager.alert("提示", data.message);
  198. }
  199. }
  200. });
  201. }
  202. var spanFormat = function(id,name){
  203. return "<span onclick='detail("+ id +")' style='cursor:pointer'> " + name + " </span>"
  204. }
  205. </script>