网站
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 

314 linhas
12 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. permanentLayer: '', // 资产图层
  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_type', {}, 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. var useTypeData = template('useTypeData', module.data);
  49. $("#useTypeContent").html(useTypeData);
  50. }
  51. }
  52. module.webList = function (data) {
  53. if (data.code == 200) {
  54. var content = data.rows;
  55. module.data.webList = content;
  56. var webData = template('webData', module.data);
  57. $("#webContent").html(webData);
  58. var titData = template('titData', module.data);
  59. $("#titContent").html(titData);
  60. }
  61. }
  62. module.assetList = function (data) {
  63. if (data.code == 200) {
  64. var content = data.rows;
  65. if (module.data.propertyList == '') {
  66. var page_s1 = createPage('.page_s1');
  67. //设置分页
  68. setPage(page_s1, {
  69. pageTotal: data.total, // 数据总条数
  70. pageSize: 10, // 每页显示条数
  71. pageCurrent: 1, // 当前页
  72. maxBtnNum: 5, // 最多按钮个数 (最少5个)
  73. })
  74. }
  75. module.data.propertyList = content;
  76. // 添加资产图层
  77. addPermanentLayer(content);
  78. // $('#page_s1').html('共' + 10 + '页')
  79. var propertyData = template('propertyData', module.data);
  80. $("#propertyContent").html(propertyData);
  81. }
  82. }
  83. // 添加资产图层
  84. addPermanentLayer = function (content) {
  85. if (module.data.permanentLayer) {
  86. module.data.map.removeLayer(module.data.permanentLayer);
  87. module.data.permanentLayer = '';
  88. }
  89. let features = [];
  90. content.forEach(item => {
  91. if (item.theGeom != null && item.theGeom !== '') {
  92. const iconFeature = new ol.Feature({
  93. geometry: new ol.geom.Point(JSON.parse(item.theGeom).coordinates),
  94. // name: item.centerName,
  95. // centerDeptId: item.deptId,
  96. level: 'permanent',
  97. });
  98. features.push(iconFeature);
  99. }
  100. });
  101. const vectorSource = new ol.source.Vector({
  102. features: features,
  103. });
  104. module.data.permanentLayer = new ol.layer.Vector({
  105. source: vectorSource,
  106. name: 'permanentLayer',
  107. style: new ol.style.Style({
  108. image: new ol.style.Icon({
  109. //设置图标偏移
  110. anchor: [0.5, 1],
  111. //标注样式的起点位置
  112. anchorOrigin: "top-right",
  113. //X方向单位:分数
  114. anchorXUnits: "fraction",
  115. //Y方向单位:像素
  116. anchorYUnits: "pixels",
  117. //偏移起点位置的方向
  118. offsetOrigin: "top-right",
  119. //透明度
  120. opacity: 0.9,
  121. //图片路径
  122. src: '/infoport/static/images/zc_icon.png',
  123. }),
  124. })
  125. });
  126. module.data.map.getLayers().insertAt(3, module.data.permanentLayer);
  127. }
  128. openDialog = function(id){
  129. tools.doGet(assetGet+id, {translate_dict: 1}, module.assetDetail , true);
  130. }
  131. closeDialog = function(id){
  132. $('#dialog').css('display','none');
  133. }
  134. module.assetDetail = function(data){
  135. if (data.code == 200) {
  136. var content = data.data;
  137. module.data.propertyDetail = content;
  138. tools.doGet(attachmentList, {
  139. tableId:content.id,
  140. tableName: 't_asset_permanent',
  141. bizPath: 'asset'
  142. }, module.attachmentDetail , true);
  143. // var propertyDetailData = template('propertyDetailData', module.data);
  144. // $("#propertyDetailContent").html(propertyDetailData);
  145. // $('#dialog').css('display','block');
  146. }
  147. }
  148. module.attachmentDetail = function(data){
  149. if (data.code == 200) {
  150. var content = data.rows;
  151. var attachmentList = [];
  152. content.map(res=>{
  153. if (res.fileName.indexOf('png')>-1||res.fileName.indexOf('jpg')>-1){
  154. attachmentList.push(res);
  155. }
  156. })
  157. module.data.attachment = attachmentList;
  158. var propertyDetailData = template('propertyDetailData', module.data);
  159. $("#propertyDetailContent").html(propertyDetailData);
  160. $('#dialog').css('display','block');
  161. }
  162. }
  163. module.treeselect = function(data){
  164. if (data.code == 200) {
  165. var content = data.data[0].children;
  166. content.map(res=>{
  167. module.data.treeselect.push(res)
  168. })
  169. // module.data.treeselect = content[0].children;
  170. var treeselectData = template('treeselectData', module.data);
  171. $("#treeselectContent").html(treeselectData);
  172. var treeselectSecondData = template('treeselectSecondData', module.data);
  173. $("#treeselectSecondContent").html(treeselectSecondData);
  174. initMap(data.data[0]);
  175. //资产列表
  176. tools.doGet(assetList, {
  177. deptId: 100,
  178. useType: '',
  179. operationType: 1,
  180. translate_dict: 1,
  181. pageNum: 1,
  182. pageSize: 10,
  183. orderByColumn: 'code',
  184. isAsc: 'asc',
  185. }, module.assetList , true);
  186. tools.doGet(treeselectSecond+'100', {}, module.useContent , true);
  187. }
  188. }
  189. initMap = function (dept) {
  190. let mapCenterLocation;
  191. if (dept.lng && dept.lat) {
  192. mapCenterLocation = [dept.lng, dept.lat];
  193. } else {
  194. mapCenterLocation = [116.391461, 39.902359];
  195. }
  196. document.getElementById("container").innerHTML = "";
  197. // 定义地图投影
  198. let projection = new ol.proj.Projection({
  199. code: "EPSG:3857",
  200. units: "degrees",
  201. });
  202. // 定义地图图层
  203. let aerial = new ol.layer.Tile({
  204. source: new ol.source.XYZ({
  205. url: "http://t{0-7}.tianditu.com/img_w/wmts?" +
  206. "SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles" +
  207. "&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=cc4aba6e967096098249efa069733067",
  208. }),
  209. isGroup: true,
  210. name: "卫星影像图",
  211. });
  212. let yingxzi = new ol.layer.Tile({
  213. source: new ol.source.XYZ({
  214. url: "http://t{0-7}.tianditu.com/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=cc4aba6e967096098249efa069733067",
  215. }),
  216. isGroup: true,
  217. name: "天地图文字标注--卫星影像图",
  218. });
  219. //加载地图
  220. module.data.map = new ol.Map({
  221. controls: ol.control.defaults({attribution: false, zoom: false, rotate: false}).extend([new ol.control.FullScreen()]),
  222. layers: [aerial, yingxzi],
  223. projection: projection,
  224. target: "container",
  225. view: new ol.View({
  226. center: ol.proj.fromLonLat(mapCenterLocation), // 地图中心坐标
  227. zoom: 13,
  228. minZoom: 1, //地图缩小限制
  229. maxZoom: 18, //地图放大限制
  230. // extent: [13481224.75161,5667110.83528,13811063.06278,5880284.11416]
  231. }),
  232. /*interactions: ol.interaction.defaults({
  233. doubleClickZoom: false, // 双击放大地图
  234. // mouseWheelZoom: false, // 鼠标滚轮放大地图
  235. // shiftDragZoom: false, // shift + 鼠标左键拖拽 放大地图
  236. })*/
  237. });
  238. }
  239. selectChange = function(){
  240. // tools.doGet(treeselectSecond+$('#treeselectContent').val(), {}, module.selectSecondChange , true);
  241. if ($('#treeselectContent').val() == 100){
  242. module.data.treeselectSecond = [{
  243. value:100,
  244. label:'全部'
  245. }]
  246. tools.doGet(treeselectSecond+'100', {}, module.useContent , true);
  247. }else{
  248. module.data.treeselectSecond = module.data.treeselect.filter(function (e) { return e.value == $('#treeselectContent').val(); })[0].children;
  249. tools.doGet(treeselectSecond+$('#treeselectContent').val(), {}, module.useContent , true);
  250. }
  251. var treeselectSecondData = template('treeselectSecondData', module.data);
  252. $("#treeselectSecondContent").html(treeselectSecondData);
  253. selectSecondChange();
  254. }
  255. selectSecondChange = function(){
  256. $('.page_s1').html('');
  257. module.data.propertyList = "";
  258. //资产列表
  259. tools.doGet(assetList, {
  260. deptId: $('#treeselectSecondContent').val(),
  261. useType: $('#useTypeContent').val() == null ? 1 : $('#useTypeContent').val(),
  262. operationType: 1,
  263. translate_dict: 1,
  264. pageNum: 1,
  265. pageSize: 10,
  266. orderByColumn: 'code',
  267. isAsc: 'asc',
  268. }, module.assetList , true);
  269. tools.doGet(treeselectSecond+$('#treeselectSecondContent').val(), {}, module.useContent , true);
  270. }
  271. useTypeChange = function () {
  272. $('.page_s1').html('');
  273. module.data.propertyList = "";
  274. tools.doGet(assetList, {
  275. deptId: $('#treeselectSecondContent').val() == null ? 100 : $('#treeselectSecondContent').val(),
  276. useType: $('#useTypeContent').val(),
  277. operationType: 1,
  278. translate_dict: 1,
  279. pageNum: 1,
  280. pageSize: 10,
  281. }, module.assetList , true);
  282. }
  283. turnThePage = function (pageNum) {
  284. tools.doGet(assetList, {
  285. deptId: $('#treeselectSecondContent').val() == null ? 100 : $('#treeselectSecondContent').val(),
  286. useType: $('#useTypeContent').val() == null ? 1 : $('#useTypeContent').val(),
  287. operationType: 1,
  288. translate_dict: 1,
  289. pageNum: pageNum,
  290. pageSize: 10,
  291. }, module.assetList , true);
  292. }
  293. return module;
  294. });