网站
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 

313 líneas
11 KiB

  1. /**
  2. * Created by Administrator on 2021/4/5.
  3. */
  4. define(['jquery', "template", "Tools", "paging", 'dateTime', 'swiper'], function ($, template, Tools) {
  5. //数据存储
  6. var module = {
  7. data: {
  8. propertyList:'',
  9. treeselect:[{
  10. value:100,
  11. label:'全部'
  12. }],
  13. treeselectSecond:[{
  14. value:100,
  15. label:'全部'
  16. }],
  17. useType:[{
  18. dictValue:'',
  19. dictLabel:'全部'
  20. }],
  21. propertyDetail:{},
  22. map: '', // 地图图层
  23. homesteadLayer: '', // 宅基地图层
  24. },
  25. };
  26. var tools = new Tools();
  27. module.init = function (page) {
  28. tools.doGet(treeselect, {}, module.treeselect , true);
  29. tools.doGet(webList, {}, module.webList , true);
  30. // tools.doGet(webDeptType+'land_status', {}, module.webDeptType , true);
  31. };
  32. module.useContent = function (data) {
  33. if (data.code == 200) {
  34. module.data.phone = data.data.phone;
  35. module.data.leader = data.data.leader;
  36. var propertyDetailData = template('propertyDetailData', module.data);
  37. $("#propertyDetailContent").html(propertyDetailData);
  38. module.data.map.getView().setCenter(ol.proj.fromLonLat([data.data.lng, data.data.lat]));
  39. module.data.map.getView().setZoom(13);
  40. }
  41. }
  42. module.webDeptType = function (data) {
  43. if (data.code == 200) {
  44. var content = data.data;
  45. content.map(res=>{
  46. module.data.useType.push(res)
  47. })
  48. // module.data.useType = content;
  49. var useTypeData = template('useTypeData', module.data);
  50. $("#useTypeContent").html(useTypeData);
  51. }
  52. }
  53. module.webList = function (data) {
  54. if (data.code == 200) {
  55. var content = data.rows;
  56. module.data.webList = content;
  57. var webData = template('webData', module.data);
  58. $("#webContent").html(webData);
  59. var titData = template('titData', module.data);
  60. $("#titContent").html(titData);
  61. }
  62. }
  63. module.assetList = function (data) {
  64. if (data.code == 200) {
  65. var content = data.rows;
  66. if (module.data.propertyList == '') {
  67. var page_s1 = createPage('.page_s1');
  68. //设置分页
  69. setPage(page_s1, {
  70. pageTotal: data.total, // 数据总条数
  71. pageSize: 10, // 每页显示条数
  72. pageCurrent: 1, // 当前页
  73. maxBtnNum: 5, // 最多按钮个数 (最少5个)
  74. })
  75. }
  76. module.data.propertyList = content;
  77. // 添加宅基地图层
  78. addHomesteadLayer(content);
  79. // $('#page_s1').html('共' + 10 + '页')
  80. var propertyData = template('propertyData', module.data);
  81. $("#propertyContent").html(propertyData);
  82. }
  83. }
  84. // 添加宅基地图层
  85. addHomesteadLayer = function (content) {
  86. if (module.data.homesteadLayer) {
  87. module.data.map.removeLayer(module.data.homesteadLayer);
  88. module.data.homesteadLayer = '';
  89. }
  90. let features = [];
  91. content.forEach(item => {
  92. if (item.theGeomJson != null && item.theGeomJson !== '') {
  93. const iconFeature = new ol.Feature({
  94. geometry: new ol.geom.MultiPolygon(JSON.parse(item.theGeomJson).coordinates),
  95. // name: item.centerName,
  96. // centerDeptId: item.deptId,
  97. level: 'homestead',
  98. });
  99. features.push(iconFeature);
  100. }
  101. });
  102. const vectorSource = new ol.source.Vector({
  103. features: features,
  104. });
  105. module.data.homesteadLayer = new ol.layer.Vector({
  106. source: vectorSource,
  107. name: 'homesteadLayer',
  108. style: new ol.style.Style({
  109. fill: new ol.style.Fill({
  110. //矢量图层填充颜色,以及透明度
  111. color: "rgba(22, 233, 15, 0.3)",
  112. }),
  113. stroke: new ol.style.Stroke({
  114. //边界样式
  115. color: "#16E90F",
  116. width: 2,
  117. }),
  118. })
  119. });
  120. module.data.map.getLayers().insertAt(3, module.data.homesteadLayer);
  121. }
  122. openDialog = function(id){
  123. tools.doGet(zjdzdxxGet+id, {translate_dict: 1}, module.assetDetail , true);
  124. }
  125. closeDialog = function(id){
  126. $('#dialog').css('display','none');
  127. }
  128. module.assetDetail = function(data){
  129. if (data.code == 200) {
  130. var content = data.data;
  131. module.data.propertyDetail = content;
  132. tools.doGet(attachmentList, {
  133. tableId:content.id,
  134. tableName: 't_homestead_zjdzdxx',
  135. bizPath: 'home'
  136. }, module.attachmentDetail , true);
  137. // var propertyDetailData = template('propertyDetailData', module.data);
  138. // $("#propertyDetailContent").html(propertyDetailData);
  139. // $('#dialog').css('display','block');
  140. }
  141. }
  142. module.attachmentDetail = function(data){
  143. if (data.code == 200) {
  144. var content = data.rows;
  145. var attachmentList = [];
  146. content.map(res=>{
  147. if (res.fileName.indexOf('png')>-1||res.fileName.indexOf('jpg')>-1){
  148. attachmentList.push(res);
  149. }
  150. })
  151. module.data.attachment = attachmentList;
  152. var propertyDetailData = template('propertyDetailData', module.data);
  153. $("#propertyDetailContent").html(propertyDetailData);
  154. $('#dialog').css('display','block');
  155. }
  156. }
  157. module.treeselect = function(data){
  158. if (data.code == 200) {
  159. var content = data.data[0].children;
  160. content.map(res=>{
  161. module.data.treeselect.push(res)
  162. })
  163. // module.data.treeselect = content[0].children;
  164. var treeselectData = template('treeselectData', module.data);
  165. $("#treeselectContent").html(treeselectData);
  166. var treeselectSecondData = template('treeselectSecondData', module.data);
  167. $("#treeselectSecondContent").html(treeselectSecondData);
  168. initMap(data.data[0]);
  169. //资产列表
  170. tools.doGet(zjdzdxxList, {
  171. deptId: 100,
  172. translate_dict: 1,
  173. houseOwnership:1,
  174. pageNum: 1,
  175. pageSize: 10,
  176. }, module.assetList , true);
  177. tools.doGet(treeselectSecond+'100', {}, module.useContent, true);
  178. }
  179. }
  180. initMap = function (dept) {
  181. let mapCenterLocation;
  182. if (dept.lng && dept.lat) {
  183. mapCenterLocation = [dept.lng, dept.lat];
  184. } else {
  185. mapCenterLocation = [116.391461, 39.902359];
  186. }
  187. document.getElementById("container").innerHTML = "";
  188. // 定义地图投影
  189. let projection = new ol.proj.Projection({
  190. code: "EPSG:3857",
  191. units: "degrees",
  192. });
  193. // 定义地图图层
  194. let aerial = new ol.layer.Tile({
  195. source: new ol.source.XYZ({
  196. url: "http://t{0-7}.tianditu.com/img_w/wmts?" +
  197. "SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles" +
  198. "&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=cc4aba6e967096098249efa069733067",
  199. }),
  200. isGroup: true,
  201. name: "卫星影像图",
  202. });
  203. let yingxzi = new ol.layer.Tile({
  204. source: new ol.source.XYZ({
  205. url: "http://t{0-7}.tianditu.com/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=cc4aba6e967096098249efa069733067",
  206. }),
  207. isGroup: true,
  208. name: "天地图文字标注--卫星影像图",
  209. });
  210. //加载地图
  211. module.data.map = new ol.Map({
  212. controls: ol.control.defaults({attribution: false, zoom: false, rotate: false}).extend([new ol.control.FullScreen()]),
  213. layers: [aerial, yingxzi],
  214. projection: projection,
  215. target: "container",
  216. view: new ol.View({
  217. center: ol.proj.fromLonLat(mapCenterLocation), // 地图中心坐标
  218. zoom: 13,
  219. minZoom: 1, //地图缩小限制
  220. maxZoom: 18, //地图放大限制
  221. // extent: [13481224.75161,5667110.83528,13811063.06278,5880284.11416]
  222. }),
  223. /*interactions: ol.interaction.defaults({
  224. doubleClickZoom: false, // 双击放大地图
  225. // mouseWheelZoom: false, // 鼠标滚轮放大地图
  226. // shiftDragZoom: false, // shift + 鼠标左键拖拽 放大地图
  227. })*/
  228. });
  229. }
  230. selectChange = function(){
  231. // tools.doGet(treeselectSecond+$('#treeselectContent').val(), {}, module.selectSecondChange , true);
  232. if ($('#treeselectContent').val() == 100){
  233. module.data.treeselectSecond = [{
  234. value:100,
  235. label:'全部'
  236. }];
  237. tools.doGet(treeselectSecond+'100', {}, module.useContent , true);
  238. }else{
  239. module.data.treeselectSecond = module.data.treeselect.filter(function (e) { return e.value == $('#treeselectContent').val(); })[0].children;
  240. tools.doGet(treeselectSecond+$('#treeselectContent').val(), {}, module.useContent , true);
  241. }
  242. var treeselectSecondData = template('treeselectSecondData', module.data);
  243. $("#treeselectSecondContent").html(treeselectSecondData);
  244. selectSecondChange();
  245. }
  246. selectSecondChange = function(){
  247. $('.page_s1').html('');
  248. module.data.propertyList = "";
  249. tools.doGet(zjdzdxxList, {
  250. deptId: $('#treeselectSecondContent').val(),
  251. translate_dict: 1,
  252. houseOwnership:1,
  253. pageNum: 1,
  254. pageSize: 10,
  255. }, module.assetList , true);
  256. tools.doGet(treeselectSecond+$('#treeselectSecondContent').val(), {}, module.useContent , true);
  257. //资产列表
  258. // tools.doGet(assetList, {
  259. // deptId: $('#treeselectSecondContent').val(),
  260. // useType: $('#useTypeContent').val() == null ? 1 : $('#useTypeContent').val(),
  261. // operationType: 1,
  262. // translate_dict: 1,
  263. // pageNum: 1,
  264. // pageSize: 10,
  265. // orderByColumn: 'code',
  266. // isAsc: 'asc',
  267. // }, module.assetList , true);
  268. }
  269. useTypeChange = function () {
  270. $('.page_s1').html('');
  271. module.data.propertyList = "";
  272. tools.doGet(zjdzdxxList, {
  273. deptId: $('#treeselectSecondContent').val() == null ? 100 : $('#treeselectSecondContent').val(),
  274. translate_dict: 1,
  275. houseOwnership:1,
  276. landStatus:$('#useTypeContent').val(),
  277. pageNum: 1,
  278. pageSize: 10,
  279. }, module.assetList , true);
  280. // $('#useTypeContent').val(),
  281. }
  282. turnThePage = function (pageNum) {
  283. tools.doGet(zjdzdxxList, {
  284. deptId: 187,
  285. translate_dict: 1,
  286. pageNum: pageNum,
  287. pageSize: 10,
  288. }, module.assetList , true);
  289. }
  290. return module;
  291. });