网站
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 

378 wiersze
14 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. resourceLayer: '', // 资源图层
  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+'use_code', {}, module.webDeptType , true);
  31. };
  32. module.useContent = function (data) {
  33. if (data.code == 200) {
  34. module.data.treeselectA = data.data;
  35. module.data.phone = data.data.phone;
  36. module.data.leader = data.data.leader;
  37. var propertyDetailData = template('propertyDetailData', module.data);
  38. $("#propertyDetailContent").html(propertyDetailData);
  39. module.data.map.getView().setCenter(ol.proj.fromLonLat([data.data.lng, data.data.lat]));
  40. module.data.map.getView().setZoom(13);
  41. }
  42. }
  43. module.webDeptType = function (data) {
  44. if (data.code == 200) {
  45. var content = data.data;
  46. content.map(res=>{
  47. module.data.useType.push(res)
  48. })
  49. // module.data.useType = content;
  50. var useTypeData = template('useTypeData', module.data);
  51. $("#useTypeContent").html(useTypeData);
  52. }
  53. }
  54. module.webList = function (data) {
  55. if (data.code == 200) {
  56. var content = data.data;
  57. module.data.webList = content;
  58. var webData = template('webData', module.data);
  59. $("#webContent").html(webData);
  60. var titData = template('titData', module.data);
  61. $("#titContent").html(titData);
  62. $('#ewm').attr('src', 'static/images/'+content.top.bz);
  63. }
  64. }
  65. module.assetList = function (data) {
  66. if (data.code == 200) {
  67. var content = data.rows;
  68. if (module.data.propertyList == '') {
  69. var page_s1 = createPage('.page_s1');
  70. //设置分页
  71. setPage(page_s1, {
  72. pageTotal: data.total, // 数据总条数
  73. pageSize: 10, // 每页显示条数
  74. pageCurrent: 1, // 当前页
  75. maxBtnNum: 5, // 最多按钮个数 (最少5个)
  76. })
  77. }
  78. module.data.propertyList = content;
  79. // 添加资源图层
  80. addResourceLayer(content);
  81. // $('#page_s1').html('共' + 10 + '页')
  82. var propertyData = template('propertyData', module.data);
  83. $("#propertyContent").html(propertyData);
  84. }
  85. }
  86. // 添加资源图层
  87. addResourceLayer = function (content) {
  88. if (module.data.resourceLayer) {
  89. module.data.map.removeLayer(module.data.resourceLayer);
  90. module.data.resourceLayer = '';
  91. }
  92. let features = [];
  93. content.forEach(item => {
  94. if (item.theGeom != null && item.theGeom !== '') {
  95. const iconFeature = new ol.Feature({
  96. geometry: new ol.geom.MultiPolygon(JSON.parse(item.theGeom).coordinates),
  97. // name: item.centerName,
  98. // centerDeptId: item.deptId,
  99. level: 'resource',
  100. id: item.id
  101. });
  102. features.push(iconFeature);
  103. }
  104. });
  105. const vectorSource = new ol.source.Vector({
  106. features: features,
  107. });
  108. module.data.resourceLayer = new ol.layer.Vector({
  109. source: vectorSource,
  110. name: 'resourceLayer',
  111. style: new ol.style.Style({
  112. fill: new ol.style.Fill({
  113. //矢量图层填充颜色,以及透明度
  114. color: "rgba(255, 255, 0, 0.3)",
  115. }),
  116. stroke: new ol.style.Stroke({
  117. //边界样式
  118. color: "#ffff00",
  119. width: 2,
  120. }),
  121. })
  122. });
  123. module.data.map.getLayers().insertAt(3, module.data.resourceLayer);
  124. }
  125. openDialog = function(id){
  126. tools.doGet(assetresourceGet+id, {translate_dict: 1}, module.assetDetail , true);
  127. }
  128. closeDialog = function(id){
  129. $('#dialog').css('display','none');
  130. }
  131. module.assetDetail = function(data){
  132. if (data.code == 200) {
  133. var content = data.data;
  134. module.data.propertyDetail = content;
  135. tools.doGet(attachmentList, {
  136. tableId:content.id,
  137. tableName: 't_asset_resource',
  138. bizPath: 'asset'
  139. }, module.attachmentDetail , true);
  140. // var propertyDetailData = template('propertyDetailData', module.data);
  141. // $("#propertyDetailContent").html(propertyDetailData);
  142. // $('#dialog').css('display','block');
  143. }
  144. }
  145. module.attachmentDetail = function(data){
  146. if (data.code == 200) {
  147. var content = data.rows;
  148. var attachmentList = [];
  149. content.map(res=>{
  150. if (res.fileName.indexOf('png')>-1||res.fileName.indexOf('jpg')>-1){
  151. attachmentList.push(res);
  152. }
  153. })
  154. module.data.attachment = attachmentList;
  155. var propertyDetailData = template('propertyDetailData', module.data);
  156. $("#propertyDetailContent").html(propertyDetailData);
  157. $('#dialog').css('display','block');
  158. }
  159. }
  160. module.treeselect = function(data){
  161. if (data.code == 200) {
  162. var content = data.data[0].children;
  163. content.map(res=>{
  164. module.data.treeselect.push(res)
  165. })
  166. // module.data.treeselect = content[0].children;
  167. // module.data.treeselectA = data.data[0];
  168. var treeselectData = template('treeselectData', module.data);
  169. $("#treeselectContent").html(treeselectData);
  170. var treeselectSecondData = template('treeselectSecondData', module.data);
  171. $("#treeselectSecondContent").html(treeselectSecondData);
  172. initMap(data.data[0]);
  173. //资产列表
  174. tools.doGet(assetresourceList, {
  175. deptId: 100,
  176. translate_dict: 1,
  177. pageNum: 1,
  178. pageSize: 10,
  179. useType:'2'
  180. }, module.assetList , true);
  181. tools.doGet(treeselectSecond+'100', {}, module.useContent, true);
  182. }
  183. }
  184. initMap = function (dept) {
  185. let mapCenterLocation;
  186. if (dept.lng && dept.lat) {
  187. mapCenterLocation = [dept.lng, dept.lat];
  188. } else {
  189. mapCenterLocation = [116.391461, 39.902359];
  190. }
  191. document.getElementById("container").innerHTML = "";
  192. // 定义地图投影
  193. let projection = new ol.proj.Projection({
  194. code: "EPSG:3857",
  195. units: "degrees",
  196. });
  197. // 定义地图图层
  198. let aerial = new ol.layer.Tile({
  199. source: new ol.source.XYZ({
  200. url: "http://t{0-7}.tianditu.com/img_w/wmts?" +
  201. "SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles" +
  202. "&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=cc4aba6e967096098249efa069733067",
  203. }),
  204. isGroup: true,
  205. name: "卫星影像图",
  206. });
  207. let yingxzi = new ol.layer.Tile({
  208. source: new ol.source.XYZ({
  209. url: "http://t{0-7}.tianditu.com/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=cc4aba6e967096098249efa069733067",
  210. }),
  211. isGroup: true,
  212. name: "天地图文字标注--卫星影像图",
  213. });
  214. //加载地图
  215. module.data.map = new ol.Map({
  216. controls: ol.control.defaults({attribution: false, zoom: false, rotate: false}).extend([]),
  217. layers: [aerial, yingxzi],
  218. projection: projection,
  219. target: "container",
  220. view: new ol.View({
  221. center: ol.proj.fromLonLat(mapCenterLocation), // 地图中心坐标
  222. zoom: 13,
  223. minZoom: 1, //地图缩小限制
  224. maxZoom: 18, //地图放大限制
  225. // extent: [13481224.75161,5667110.83528,13811063.06278,5880284.11416]
  226. }),
  227. /*interactions: ol.interaction.defaults({
  228. doubleClickZoom: false, // 双击放大地图
  229. // mouseWheelZoom: false, // 鼠标滚轮放大地图
  230. // shiftDragZoom: false, // shift + 鼠标左键拖拽 放大地图
  231. })*/
  232. });
  233. // 地图点击事件
  234. module.data.map.on("click", (evt) => {
  235. let feature = module.data.map.forEachFeatureAtPixel(
  236. evt.pixel,
  237. (feature) => feature
  238. );
  239. if (feature) {
  240. if (feature.get('level') === 'resource') {
  241. openDialog(feature.get('id'));
  242. }
  243. }
  244. });
  245. // 鼠标指针移动到指定的feature上,改变鼠标指针的样式为 pointer(小手)
  246. module.data.map.on('pointermove', (evt) => {
  247. if (evt.dragging) {
  248. return ;
  249. }
  250. const pixel = module.data.map.getEventPixel(evt.originalEvent);
  251. // const hit = module.data.map.hasFeatureAtPixel(pixel);
  252. // let features = module.data.map.getFeaturesAtPixel(pixel);
  253. const hit = module.data.map.forEachFeatureAtPixel(pixel, function (feature) {
  254. if (feature && feature.get('level') === 'resource') {
  255. return true;
  256. }
  257. });
  258. module.data.map.getTargetElement().style.cursor = hit ? 'pointer' : '';
  259. });
  260. }
  261. selectChange = function(){
  262. // tools.doGet(treeselectSecond+$('#treeselectContent').val(), {}, module.selectSecondChange , true);
  263. if ($('#treeselectContent').val() == 100){
  264. module.data.treeselectSecond = [{
  265. value:100,
  266. label:'全部'
  267. }]
  268. tools.doGet(treeselectSecond+'100', {}, module.useContent , true);
  269. }else{
  270. module.data.treeselectSecond = module.data.treeselect.filter(function (e) { return e.value == $('#treeselectContent').val(); })[0].children;
  271. tools.doGet(treeselectSecond+$('#treeselectContent').val(), {}, module.useContent , true);
  272. }
  273. var treeselectSecondData = template('treeselectSecondData', module.data);
  274. $("#treeselectSecondContent").html(treeselectSecondData);
  275. selectSecondChange();
  276. }
  277. selectSecondChange = function(){
  278. $('.page_s1').html('');
  279. module.data.propertyList = "";
  280. tools.doGet(assetresourceList, {
  281. deptId: $('#treeselectSecondContent').val(),
  282. translate_dict: 1,
  283. useType:$('#useTypeContent').val(),
  284. pageNum: 1,
  285. pageSize: 10,
  286. }, module.assetList , true);
  287. tools.doGet(treeselectSecond+$('#treeselectSecondContent').val(), {}, module.useContent , true);
  288. //资产列表
  289. // tools.doGet(assetList, {
  290. // deptId: $('#treeselectSecondContent').val(),
  291. // useType: $('#useTypeContent').val() == null ? 1 : $('#useTypeContent').val(),
  292. // operationType: 1,
  293. // translate_dict: 1,
  294. // pageNum: 1,
  295. // pageSize: 10,
  296. // orderByColumn: 'code',
  297. // isAsc: 'asc',
  298. // }, module.assetList , true);
  299. }
  300. useTypeChange = function () {
  301. $('.page_s1').html('');
  302. module.data.propertyList = "";
  303. tools.doGet(assetresourceList, {
  304. deptId: $('#treeselectSecondContent').val() == null ? 100 : $('#treeselectSecondContent').val(),
  305. useType:$('#useTypeContent').val(),
  306. translate_dict: 1,
  307. pageNum: 1,
  308. pageSize: 10,
  309. }, module.assetList , true);
  310. }
  311. turnThePage = function (pageNum) {
  312. tools.doGet(assetresourceList, {
  313. deptId: $('#treeselectSecondContent').val() == null ? 100 : $('#treeselectSecondContent').val(),
  314. useType:$('#useTypeContent').val(),
  315. translate_dict: 1,
  316. pageNum: pageNum,
  317. pageSize: 10,
  318. }, module.assetList , true);
  319. }
  320. openBig = function () {
  321. $("#open").css('display','none');
  322. $(".table_main").css('display','none');
  323. $(".pageNum").css('display','none');
  324. $("#close").css('display','block');
  325. $("#map_main").css({
  326. 'height': '59vh',
  327. 'position': 'absolute',
  328. 'top': '1vh',
  329. 'width': 'calc(100% - 2vh)',
  330. })
  331. $("#container").css('height','59vh')
  332. initMap(module.data.treeselectA);
  333. // 添加资源图层
  334. addResourceLayer(module.data.propertyList);
  335. }
  336. closeBig = function () {
  337. $("#open").css('display','block');
  338. $(".table_main").css('display','block');
  339. $(".pageNum").css('display','block');
  340. $("#close").css('display','none');
  341. $("#map_main").css({
  342. 'height': '16vh',
  343. 'position': 'relative',
  344. 'width': '100%',
  345. 'top': '0vh',
  346. })
  347. $("#container").css('height','16vh')
  348. initMap(module.data.treeselectA);
  349. // 添加资源图层
  350. addResourceLayer(module.data.propertyList);
  351. }
  352. return module;
  353. });