69a5ae2b by weimo934

Merge remote-tracking branch 'origin/master'

2 parents 4d77cfd8 344b9c49
...@@ -19,13 +19,17 @@ ...@@ -19,13 +19,17 @@
19 "el-select-tree": "^1.0.26", 19 "el-select-tree": "^1.0.26",
20 "el-tree-select": "^3.1.10", 20 "el-tree-select": "^3.1.10",
21 "element-ui": "^2.13.2", 21 "element-ui": "^2.13.2",
22 "esri-loader": "^2.16.0",
22 "file-saver": "^2.0.2", 23 "file-saver": "^2.0.2",
23 "form-making": "^1.2.9", 24 "form-making": "^1.2.9",
24 "insert-css": "^2.0.0", 25 "insert-css": "^2.0.0",
25 "js-cookie": "^2.2.1", 26 "js-cookie": "^2.2.1",
26 "mockjs": "^1.1.0", 27 "mockjs": "^1.1.0",
27 "screenfull": "^5.0.2", 28 "screenfull": "^5.0.2",
29 "shapefile": "^0.6.6",
28 "style-resources-loader": "^1.3.3", 30 "style-resources-loader": "^1.3.3",
31 "terraformer-arcgis-parser": "^1.1.0",
32 "terraformer-wkt-parser": "^1.2.1",
29 "vue": "^2.6.10", 33 "vue": "^2.6.10",
30 "vue-cli-plugin-style-resources-loader": "^0.1.4", 34 "vue-cli-plugin-style-resources-loader": "^0.1.4",
31 "vue-quill-editor": "^3.0.6", 35 "vue-quill-editor": "^3.0.6",
...@@ -39,6 +43,7 @@ ...@@ -39,6 +43,7 @@
39 "@vue/cli-plugin-eslint": "^3.11.0", 43 "@vue/cli-plugin-eslint": "^3.11.0",
40 "@vue/cli-service": "^3.11.0", 44 "@vue/cli-service": "^3.11.0",
41 "babel-eslint": "^10.0.1", 45 "babel-eslint": "^10.0.1",
46 "babel-polyfill": "^6.26.0",
42 "eslint": "^5.16.0", 47 "eslint": "^5.16.0",
43 "eslint-plugin-vue": "^5.0.0", 48 "eslint-plugin-vue": "^5.0.0",
44 "less": "^3.0.4", 49 "less": "^3.0.4",
......
...@@ -61,6 +61,16 @@ export function getBdcdyh(dpdm, dptype) { ...@@ -61,6 +61,16 @@ export function getBdcdyh(dpdm, dptype) {
61 } 61 }
62 }) 62 })
63 } 63 }
64 /*
65 *新增界址点
66 * */
67 export function addjzd(data) {
68 return request({
69 url:"/zd/qjJzd/insertBatch",
70 method:"post",
71 data:data
72 })
73 }
64 74
65 /** 75 /**
66 * 查询界址点 76 * 查询界址点
...@@ -69,12 +79,19 @@ export function queryjzd(glBsm) { ...@@ -69,12 +79,19 @@ export function queryjzd(glBsm) {
69 return request({ 79 return request({
70 url: "/zd/qjJzd/getQjJzdListByGlBsm", 80 url: "/zd/qjJzd/getQjJzdListByGlBsm",
71 method: "get", 81 method: "get",
72 params: { 82 params: glBsm
73 glBsm,
74 },
75 }); 83 });
76 } 84 }
77 85 /*
86 * 添加界址线
87 * */
88 export function addjzx(data){
89 return request({
90 url:"/zd/qjJzx/insertBatch",
91 method:"post",
92 data:data
93 })
94 }
78 /** 95 /**
79 * 查询界址线 96 * 查询界址线
80 */ 97 */
...@@ -190,3 +207,12 @@ export function hzl(data) { ...@@ -190,3 +207,12 @@ export function hzl(data) {
190 data:data 207 data:data
191 }) 208 })
192 } 209 }
210
211 export function exportShp(data) {
212 return request({
213 url:"/tx/shpUtils/writeShp",
214 method:"post",
215 params:data,
216 responseType: 'arraybuffer'
217 })
218 }
......
1 /* Logo 字体 */
2 @font-face {
3 font-family: "iconfont logo";
4 src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
5 src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
6 url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
7 url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
8 url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
9 }
10
11 .logo {
12 font-family: "iconfont logo";
13 font-size: 160px;
14 font-style: normal;
15 -webkit-font-smoothing: antialiased;
16 -moz-osx-font-smoothing: grayscale;
17 }
18
19 /* tabs */
20 .nav-tabs {
21 position: relative;
22 }
23
24 .nav-tabs .nav-more {
25 position: absolute;
26 right: 0;
27 bottom: 0;
28 height: 42px;
29 line-height: 42px;
30 color: #666;
31 }
32
33 #tabs {
34 border-bottom: 1px solid #eee;
35 }
36
37 #tabs li {
38 cursor: pointer;
39 width: 100px;
40 height: 40px;
41 line-height: 40px;
42 text-align: center;
43 font-size: 16px;
44 border-bottom: 2px solid transparent;
45 position: relative;
46 z-index: 1;
47 margin-bottom: -1px;
48 color: #666;
49 }
50
51
52 #tabs .active {
53 border-bottom-color: #f00;
54 color: #222;
55 }
56
57 .tab-container .content {
58 display: none;
59 }
60
61 /* 页面布局 */
62 .main {
63 padding: 30px 100px;
64 width: 960px;
65 margin: 0 auto;
66 }
67
68 .main .logo {
69 color: #333;
70 text-align: left;
71 margin-bottom: 30px;
72 line-height: 1;
73 height: 110px;
74 margin-top: -50px;
75 overflow: hidden;
76 *zoom: 1;
77 }
78
79 .main .logo a {
80 font-size: 160px;
81 color: #333;
82 }
83
84 .helps {
85 margin-top: 40px;
86 }
87
88 .helps pre {
89 padding: 20px;
90 margin: 10px 0;
91 border: solid 1px #e7e1cd;
92 background-color: #fffdef;
93 overflow: auto;
94 }
95
96 .icon_lists {
97 width: 100% !important;
98 overflow: hidden;
99 *zoom: 1;
100 }
101
102 .icon_lists li {
103 width: 100px;
104 margin-bottom: 10px;
105 margin-right: 20px;
106 text-align: center;
107 list-style: none !important;
108 cursor: default;
109 }
110
111 .icon_lists li .code-name {
112 line-height: 1.2;
113 }
114
115 .icon_lists .icon {
116 display: block;
117 height: 100px;
118 line-height: 100px;
119 font-size: 42px;
120 margin: 10px auto;
121 color: #333;
122 -webkit-transition: font-size 0.25s linear, width 0.25s linear;
123 -moz-transition: font-size 0.25s linear, width 0.25s linear;
124 transition: font-size 0.25s linear, width 0.25s linear;
125 }
126
127 .icon_lists .icon:hover {
128 font-size: 100px;
129 }
130
131 .icon_lists .svg-icon {
132 /* 通过设置 font-size 来改变图标大小 */
133 width: 1em;
134 /* 图标和文字相邻时,垂直对齐 */
135 vertical-align: -0.15em;
136 /* 通过设置 color 来改变 SVG 的颜色/fill */
137 fill: currentColor;
138 /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
139 normalize.css 中也包含这行 */
140 overflow: hidden;
141 }
142
143 .icon_lists li .name,
144 .icon_lists li .code-name {
145 color: #666;
146 }
147
148 /* markdown 样式 */
149 .markdown {
150 color: #666;
151 font-size: 14px;
152 line-height: 1.8;
153 }
154
155 .highlight {
156 line-height: 1.5;
157 }
158
159 .markdown img {
160 vertical-align: middle;
161 max-width: 100%;
162 }
163
164 .markdown h1 {
165 color: #404040;
166 font-weight: 500;
167 line-height: 40px;
168 margin-bottom: 24px;
169 }
170
171 .markdown h2,
172 .markdown h3,
173 .markdown h4,
174 .markdown h5,
175 .markdown h6 {
176 color: #404040;
177 margin: 1.6em 0 0.6em 0;
178 font-weight: 500;
179 clear: both;
180 }
181
182 .markdown h1 {
183 font-size: 28px;
184 }
185
186 .markdown h2 {
187 font-size: 22px;
188 }
189
190 .markdown h3 {
191 font-size: 16px;
192 }
193
194 .markdown h4 {
195 font-size: 14px;
196 }
197
198 .markdown h5 {
199 font-size: 12px;
200 }
201
202 .markdown h6 {
203 font-size: 12px;
204 }
205
206 .markdown hr {
207 height: 1px;
208 border: 0;
209 background: #e9e9e9;
210 margin: 16px 0;
211 clear: both;
212 }
213
214 .markdown p {
215 margin: 1em 0;
216 }
217
218 .markdown>p,
219 .markdown>blockquote,
220 .markdown>.highlight,
221 .markdown>ol,
222 .markdown>ul {
223 width: 80%;
224 }
225
226 .markdown ul>li {
227 list-style: circle;
228 }
229
230 .markdown>ul li,
231 .markdown blockquote ul>li {
232 margin-left: 20px;
233 padding-left: 4px;
234 }
235
236 .markdown>ul li p,
237 .markdown>ol li p {
238 margin: 0.6em 0;
239 }
240
241 .markdown ol>li {
242 list-style: decimal;
243 }
244
245 .markdown>ol li,
246 .markdown blockquote ol>li {
247 margin-left: 20px;
248 padding-left: 4px;
249 }
250
251 .markdown code {
252 margin: 0 3px;
253 padding: 0 5px;
254 background: #eee;
255 border-radius: 3px;
256 }
257
258 .markdown strong,
259 .markdown b {
260 font-weight: 600;
261 }
262
263 .markdown>table {
264 border-collapse: collapse;
265 border-spacing: 0px;
266 empty-cells: show;
267 border: 1px solid #e9e9e9;
268 width: 95%;
269 margin-bottom: 24px;
270 }
271
272 .markdown>table th {
273 white-space: nowrap;
274 color: #333;
275 font-weight: 600;
276 }
277
278 .markdown>table th,
279 .markdown>table td {
280 border: 1px solid #e9e9e9;
281 padding: 8px 16px;
282 text-align: left;
283 }
284
285 .markdown>table th {
286 background: #F7F7F7;
287 }
288
289 .markdown blockquote {
290 font-size: 90%;
291 color: #999;
292 border-left: 4px solid #e9e9e9;
293 padding-left: 0.8em;
294 margin: 1em 0;
295 }
296
297 .markdown blockquote p {
298 margin: 0;
299 }
300
301 .markdown .anchor {
302 opacity: 0;
303 transition: opacity 0.3s ease;
304 margin-left: 8px;
305 }
306
307 .markdown .waiting {
308 color: #ccc;
309 }
310
311 .markdown h1:hover .anchor,
312 .markdown h2:hover .anchor,
313 .markdown h3:hover .anchor,
314 .markdown h4:hover .anchor,
315 .markdown h5:hover .anchor,
316 .markdown h6:hover .anchor {
317 opacity: 1;
318 display: inline-block;
319 }
320
321 .markdown>br,
322 .markdown>p>br {
323 clear: both;
324 }
325
326
327 .hljs {
328 display: block;
329 background: white;
330 padding: 0.5em;
331 color: #333333;
332 overflow-x: auto;
333 }
334
335 .hljs-comment,
336 .hljs-meta {
337 color: #969896;
338 }
339
340 .hljs-string,
341 .hljs-variable,
342 .hljs-template-variable,
343 .hljs-strong,
344 .hljs-emphasis,
345 .hljs-quote {
346 color: #df5000;
347 }
348
349 .hljs-keyword,
350 .hljs-selector-tag,
351 .hljs-type {
352 color: #a71d5d;
353 }
354
355 .hljs-literal,
356 .hljs-symbol,
357 .hljs-bullet,
358 .hljs-attribute {
359 color: #0086b3;
360 }
361
362 .hljs-section,
363 .hljs-name {
364 color: #63a35c;
365 }
366
367 .hljs-tag {
368 color: #333333;
369 }
370
371 .hljs-title,
372 .hljs-attr,
373 .hljs-selector-id,
374 .hljs-selector-class,
375 .hljs-selector-attr,
376 .hljs-selector-pseudo {
377 color: #795da3;
378 }
379
380 .hljs-addition {
381 color: #55a532;
382 background-color: #eaffea;
383 }
384
385 .hljs-deletion {
386 color: #bd2c00;
387 background-color: #ffecec;
388 }
389
390 .hljs-link {
391 text-decoration: underline;
392 }
393
394 /* 代码高亮 */
395 /* PrismJS 1.15.0
396 https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
397 /**
398 * prism.js default theme for JavaScript, CSS and HTML
399 * Based on dabblet (http://dabblet.com)
400 * @author Lea Verou
401 */
402 code[class*="language-"],
403 pre[class*="language-"] {
404 color: black;
405 background: none;
406 text-shadow: 0 1px white;
407 font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
408 text-align: left;
409 white-space: pre;
410 word-spacing: normal;
411 word-break: normal;
412 word-wrap: normal;
413 line-height: 1.5;
414
415 -moz-tab-size: 4;
416 -o-tab-size: 4;
417 tab-size: 4;
418
419 -webkit-hyphens: none;
420 -moz-hyphens: none;
421 -ms-hyphens: none;
422 hyphens: none;
423 }
424
425 pre[class*="language-"]::-moz-selection,
426 pre[class*="language-"] ::-moz-selection,
427 code[class*="language-"]::-moz-selection,
428 code[class*="language-"] ::-moz-selection {
429 text-shadow: none;
430 background: #b3d4fc;
431 }
432
433 pre[class*="language-"]::selection,
434 pre[class*="language-"] ::selection,
435 code[class*="language-"]::selection,
436 code[class*="language-"] ::selection {
437 text-shadow: none;
438 background: #b3d4fc;
439 }
440
441 @media print {
442
443 code[class*="language-"],
444 pre[class*="language-"] {
445 text-shadow: none;
446 }
447 }
448
449 /* Code blocks */
450 pre[class*="language-"] {
451 padding: 1em;
452 margin: .5em 0;
453 overflow: auto;
454 }
455
456 :not(pre)>code[class*="language-"],
457 pre[class*="language-"] {
458 background: #f5f2f0;
459 }
460
461 /* Inline code */
462 :not(pre)>code[class*="language-"] {
463 padding: .1em;
464 border-radius: .3em;
465 white-space: normal;
466 }
467
468 .token.comment,
469 .token.prolog,
470 .token.doctype,
471 .token.cdata {
472 color: slategray;
473 }
474
475 .token.punctuation {
476 color: #999;
477 }
478
479 .namespace {
480 opacity: .7;
481 }
482
483 .token.property,
484 .token.tag,
485 .token.boolean,
486 .token.number,
487 .token.constant,
488 .token.symbol,
489 .token.deleted {
490 color: #905;
491 }
492
493 .token.selector,
494 .token.attr-name,
495 .token.string,
496 .token.char,
497 .token.builtin,
498 .token.inserted {
499 color: #690;
500 }
501
502 .token.operator,
503 .token.entity,
504 .token.url,
505 .language-css .token.string,
506 .style .token.string {
507 color: #9a6e3a;
508 background: hsla(0, 0%, 100%, .5);
509 }
510
511 .token.atrule,
512 .token.attr-value,
513 .token.keyword {
514 color: #07a;
515 }
516
517 .token.function,
518 .token.class-name {
519 color: #DD4A68;
520 }
521
522 .token.regex,
523 .token.important,
524 .token.variable {
525 color: #e90;
526 }
527
528 .token.important,
529 .token.bold {
530 font-weight: bold;
531 }
532
533 .token.italic {
534 font-style: italic;
535 }
536
537 .token.entity {
538 cursor: help;
539 }
1 @font-face {font-family: "iconfont";
2 src: url('iconfont.eot?t=1604545064148'); /* IE9 */
3 src: url('iconfont.eot?t=1604545064148#iefix') format('embedded-opentype'), /* IE6-IE8 */
4 url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
5 url('iconfont.woff?t=1604545064148') format('woff'),
6 url('iconfont.ttf?t=1604545064148') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
7 url('iconfont.svg?t=1604545064148#iconfont') format('svg'); /* iOS 4.1- */
8 }
9
10 .iconfont {
11 font-family: "iconfont" !important;
12 font-size: 16px;
13 font-style: normal;
14 -webkit-font-smoothing: antialiased;
15 -moz-osx-font-smoothing: grayscale;
16 }
17
18 .icontubiao_daoruCAD:before {
19 content: "\e630";
20 }
21
22 .icondiqiu1:before {
23 content: "\e60c";
24 }
25
26 .iconshuxingguanli:before {
27 content: "\e610";
28 }
29
30 .iconuploadicon03:before {
31 content: "\e71a";
32 }
33
34 .iconcad-fill:before {
35 content: "\e7d8";
36 }
37
38 .iconwenbenwendang:before {
39 content: "\e645";
40 }
41
42 .iconexcel:before {
43 content: "\e66e";
44 }
45
46 .iconfangda:before {
47 content: "\e6de";
48 }
49
50 .iconsuoxiao:before {
51 content: "\e66d";
52 }
53
54 .iconmianceliang:before {
55 content: "\e90f";
56 }
57
58 .icondayin1:before {
59 content: "\e665";
60 }
61
62 .icondiqiu:before {
63 content: "\e7b9";
64 }
65
66 .iconceju:before {
67 content: "\e604";
68 }
69
70 .iconshuxing:before {
71 content: "\e62a";
72 }
73
No preview for this file type
1 {
2 "id": "2105925",
3 "name": "不动产项目",
4 "font_family": "iconfont",
5 "css_prefix_text": "icon",
6 "description": "权籍及互联网+不动产登记项目",
7 "glyphs": [
8 {
9 "icon_id": "8554264",
10 "name": "导入CAD",
11 "font_class": "tubiao_daoruCAD",
12 "unicode": "e630",
13 "unicode_decimal": 58928
14 },
15 {
16 "icon_id": "3747068",
17 "name": "地球",
18 "font_class": "diqiu1",
19 "unicode": "e60c",
20 "unicode_decimal": 58892
21 },
22 {
23 "icon_id": "12694038",
24 "name": "属性管理",
25 "font_class": "shuxingguanli",
26 "unicode": "e610",
27 "unicode_decimal": 58896
28 },
29 {
30 "icon_id": "605008",
31 "name": "zip",
32 "font_class": "uploadicon03",
33 "unicode": "e71a",
34 "unicode_decimal": 59162
35 },
36 {
37 "icon_id": "13254178",
38 "name": "cad-fill",
39 "font_class": "cad-fill",
40 "unicode": "e7d8",
41 "unicode_decimal": 59352
42 },
43 {
44 "icon_id": "2325940",
45 "name": "文本文档",
46 "font_class": "wenbenwendang",
47 "unicode": "e645",
48 "unicode_decimal": 58949
49 },
50 {
51 "icon_id": "14476526",
52 "name": "excel",
53 "font_class": "excel",
54 "unicode": "e66e",
55 "unicode_decimal": 58990
56 },
57 {
58 "icon_id": "2676724",
59 "name": "放大",
60 "font_class": "fangda",
61 "unicode": "e6de",
62 "unicode_decimal": 59102
63 },
64 {
65 "icon_id": "9655540",
66 "name": "缩小",
67 "font_class": "suoxiao",
68 "unicode": "e66d",
69 "unicode_decimal": 58989
70 },
71 {
72 "icon_id": "430199",
73 "name": "面测量",
74 "font_class": "mianceliang",
75 "unicode": "e90f",
76 "unicode_decimal": 59663
77 },
78 {
79 "icon_id": "1177695",
80 "name": "打印 (1)",
81 "font_class": "dayin1",
82 "unicode": "e665",
83 "unicode_decimal": 58981
84 },
85 {
86 "icon_id": "1719347",
87 "name": "地球",
88 "font_class": "diqiu",
89 "unicode": "e7b9",
90 "unicode_decimal": 59321
91 },
92 {
93 "icon_id": "5650846",
94 "name": "测距",
95 "font_class": "ceju",
96 "unicode": "e604",
97 "unicode_decimal": 58884
98 },
99 {
100 "icon_id": "15736919",
101 "name": "属性",
102 "font_class": "shuxing",
103 "unicode": "e62a",
104 "unicode_decimal": 58922
105 }
106 ]
107 }
No preview for this file type
No preview for this file type
No preview for this file type
1 {
2 "pointSymbol": {
3
4 },
5 "lineSymbol": {
6
7 },
8 "fillSymbol": {
9 "defaultSymbol": {
10 "type": "simple-fill",
11 "color": [ 0,233, 245, 0.8 ],
12 "style": "solid",
13 "outline": {
14 "color": "#00e9f5",
15 "width": 1
16 }
17 },
18 "highlightSymbol": {
19 "type": "simple-fill",
20 "color": [ 245,3, 37, 0.8 ],
21 "style": "solid",
22 "outline": {
23 "color": "#f50325",
24 "width": 1
25 }
26 }
27
28 }
29 }
...\ No newline at end of file ...\ No newline at end of file
1 [{
2 "layerName": "ZDJBXX",
3 "layerUrl": "http://192.168.2.201:6080/arcgis/rest/services/%E4%BA%92%E8%81%94%E7%BD%91%E5%8A%A0%E4%B8%8D%E5%8A%A8%E4%BA%A7/XA_%E4%B8%8D%E5%8A%A8%E4%BA%A7/MapServer",
4 "id": "8"
5 },
6 {
7 "layerName": "ZRZ",
8 "layerUrl": "http://192.168.2.201:6080/arcgis/rest/services/%E4%BA%92%E8%81%94%E7%BD%91%E5%8A%A0%E4%B8%8D%E5%8A%A8%E4%BA%A7/XA_%E4%B8%8D%E5%8A%A8%E4%BA%A7/MapServer",
9 "id": "10"
10 }
11 ]
...\ No newline at end of file ...\ No newline at end of file
...@@ -56,9 +56,9 @@ ...@@ -56,9 +56,9 @@
56 :style="{ left: left + 'px', top: top + 'px' }" 56 :style="{ left: left + 'px', top: top + 'px' }"
57 class="contextmenu" 57 class="contextmenu"
58 > 58 >
59 <li>定位</li> 59 <li @click="postionToMap">定位</li>
60 <li>导入图形</li> 60 <li @click="importGeo">导入图形</li>
61 <li>导出图形</li> 61 <li @click="exportToShp">导出图形</li>
62 <li v-show="isZD">导入属性</li> 62 <li v-show="isZD">导入属性</li>
63 <li v-show="!isZD">导入楼盘</li> 63 <li v-show="!isZD">导入楼盘</li>
64 <li>重叠分析</li> 64 <li>重叠分析</li>
...@@ -92,6 +92,10 @@ ...@@ -92,6 +92,10 @@
92 <li v-show="zdData.type == 'ljz'" @click="deleteLjz">删除逻辑幢</li> 92 <li v-show="zdData.type == 'ljz'" @click="deleteLjz">删除逻辑幢</li>
93 <li v-show="zdData.type == 'zdy'" @click="deleteZdy">删除幢单元</li> 93 <li v-show="zdData.type == 'zdy'" @click="deleteZdy">删除幢单元</li>
94 </ul> 94 </ul>
95
96 <el-dialog title="导入图形" :visible.sync="improtDialog">
97 <import-geo :property-info="zdData" :geo-info="currentClickZdGeo" @closeImportDialog="closeImportDialog"></import-geo>
98 </el-dialog>
95 <!-- 添加定着物弹框 --> 99 <!-- 添加定着物弹框 -->
96 <el-dialog title="新建" :visible.sync="dialogVisible" width="40%"> 100 <el-dialog title="新建" :visible.sync="dialogVisible" width="40%">
97 <Create @closeDialog="closeDialog" :auth="true"></Create> 101 <Create @closeDialog="closeDialog" :auth="true"></Create>
...@@ -100,8 +104,11 @@ ...@@ -100,8 +104,11 @@
100 </template> 104 </template>
101 <script> 105 <script>
102 import lineItem from "./lineItem.vue"; 106 import lineItem from "./lineItem.vue";
103 import {deleteZdInfoByBsm} from "../../api/zd"; 107 import {deleteZdInfoByBsm,exportShp} from "../../api/zd";
104 import Create from "../../views/panel/create/index"; 108 import Create from "../../views/panel/create/index";
109 import ImportGeo from './tx/importGeo'
110 import geoUtils from "@components/lineTree/tx/js/geoUtils";
111 import featureUpdate from "@libs/map/featureUpdate";
105 import {deleteLjz,deleteZdy} from "./../../api/lpb" 112 import {deleteLjz,deleteZdy} from "./../../api/lpb"
106 export default { 113 export default {
107 inheritAttrs: false, 114 inheritAttrs: false,
...@@ -116,7 +123,8 @@ export default { ...@@ -116,7 +123,8 @@ export default {
116 default: false, 123 default: false,
117 } 124 }
118 }, 125 },
119 components: { lineItem,Create }, 126 components: { lineItem,Create,ImportGeo },
127 mixins:[geoUtils,featureUpdate],
120 data() { 128 data() {
121 return { 129 return {
122 selectedDetail: {}, 130 selectedDetail: {},
...@@ -127,6 +135,8 @@ export default { ...@@ -127,6 +135,8 @@ export default {
127 left: 0, 135 left: 0,
128 isZD: true, 136 isZD: true,
129 zdData:{}, 137 zdData:{},
138 currentClickZdGeo:"",
139 improtDialog:false,
130 dialogVisible:false, 140 dialogVisible:false,
131 //控制楼盘表 141 //控制楼盘表
132 lpbvisible: false, 142 lpbvisible: false,
...@@ -371,7 +381,111 @@ export default { ...@@ -371,7 +381,111 @@ export default {
371 }).catch(() => { 381 }).catch(() => {
372 382
373 }); 383 });
384 var self = this;
385 var BSM = "";
386 var type = this.zdData.type;
387 if(type == "zd"){
388 BSM = this.zdData.zdbsm;
389 }else {
390 BSM = this.zdData.bsm;
391 }
392 //删除图形相关信息
393 var type = this.zdData.type;
394 this.queryGeoByBsm(BSM,type,function (features){
395 if(features && features.length > 0){
396 var layer = null;
397 if(type == 'zd'){
398 layer = self.getLayerByName("ZDJBXX");
399 }else{
400 layer = self.getLayerByName("ZRZ");
401
402 }
403 var featureUrl = layer.layerUrl.replace("MapServer","FeatureServer");
404 featureUrl += "/"+layer.id;
405 self.delGraphic(featureUrl,features[0],null);
406 }
407 });
374 }, 408 },
409 /*
410 * 导入图形
411 * */
412 importGeo(){
413 var self = this;
414 var BSM = "";
415 //先这么写着 后面返回类型 根据类型判断
416 var type = this.zdData.type;
417 if(type == "zd"){
418 BSM = this.zdData.zdbsm;
419 }else {
420 BSM = this.zdData.bsm;
421 }
422 this.queryGeoByBsm(BSM,type,function (features){
423 if(features && features.length > 0){
424 if(features[0].geometry){
425 self.$confirm('该条数据有地块信息,是否继续导入?', '提示', {
426 confirmButtonText: '继续',
427 cancelButtonText: '取消',
428 type: 'warning'
429 }).then(() => {
430 self.improtDialog = true;
431 self.currentClickZdGeo = features[0];
432 }).catch(() => {
433 self.$message({
434 type: 'info',
435 message: '已取消'
436 });
437 });
438 }else {
439 self.currentClickZdGeo = features[0];
440 self.improtDialog = true;
441 }
442
443 }else{
444 self.currentClickZdGeo = null;
445 self.improtDialog = true;
446 }
447 });
448 },
449 //导出
450 exportToShp(){
451 var self = this;
452 var BSM = this.zdData.zdbsm;
453 var type = this.zdData.type;
454 this.queryGeoByBsm(BSM,type,function (features){
455 var data = JSON.stringify(features[0]);
456 if(features && features.length > 0){
457 window.location.href = "/api/tx/shpUtils/writeShp?strObj="+encodeURI(data)
458 /*exportShp({
459 "strObj":encodeURI(data)
460 }).then(res => {
461 debugger
462 });*/
463 }else{
464 self.$message.warning("暂无空间信息!!!!");
465 }
466 });
467 },
468 //图形定位
469 postionToMap(){
470 var curretRouterInfo = {
471 path:this.$route.path,
472 query:this.$route.query
473 }
474 sessionStorage.setItem("curretRouterInfo",JSON.stringify(curretRouterInfo));
475 this.$router.push({
476 path: "/viewMap",
477 query: {
478 bsm: this.zdData.zdbsm,
479 type: this.zdData.type ? 'zd' : 'zrz'
480 }
481 });
482 },
483
484 //关闭图形弹框
485 closeImportDialog(){
486 this.improtDialog = false;
487 }
488
375 }, 489 },
376 }; 490 };
377 </script> 491 </script>
......
1 /*
2 * 图形相关的操作 js
3 * */
4
5 import layers from '@/assets/json/layers.json'
6 import queryUtils from "@libs/map/queryUtils";
7 import {loadModules} from "esri-loader"
8 import arcgisParser from 'terraformer-arcgis-parser'
9 import wktParse from 'terraformer-wkt-parser'
10
11
12 export default {
13 data(){
14 return{
15
16 }
17 },
18 methods: {
19 getLayerByName(name) {
20 for (var i = 0; i < layers.length; i++) {
21 if (layers[i].layerName == name) {
22 return layers[i];
23 }
24 }
25 return null;
26 },
27 queryGeoByBsm(bsm, type, callBackFunction) {
28 var layer = null;
29 if (type == 'zd') {
30 layer = this.getLayerByName("ZDJBXX");
31 } else if (type == 'zrz') {
32 layer = this.getLayerByName("ZRZ");
33 } else {
34 console.log("未定义类型!!");
35 return;
36 }
37 if (!layer) {
38 console.log("没有找到图层,不能查询");
39 return;
40 }
41 queryUtils.methods.queryByWhere(layer.layerUrl+"/"+layer.id, {"BSM": bsm}, null, true, null, null, function (res) {
42 var features = res.features;
43 if (callBackFunction && typeof callBackFunction == 'function') {
44 callBackFunction(features);
45 }
46 });
47 },
48 //生成介质点
49 craetJZPoint(graphic) {
50 var geomtry = graphic.geometry,rings = geomtry.rings[0];
51 var pointInfos = [];
52 this.getPointByRings(rings,pointInfos);
53 return pointInfos;
54 },
55 getPointByRings(rings,pointInfos){
56 for(var i = 0;i < rings.length;i++){
57 var children = rings[i];
58 if(children.length == 2 && typeof children[0] == 'number'){
59 var obj = {};
60 obj.jzdh = "j"+pointInfos.length;
61 obj.sxh = pointInfos.length;
62 obj.x = children[0];
63 obj.y = children[1];
64 pointInfos.push(obj);
65 }else {
66 this.getPointByRings(children,pointInfos);
67 }
68 }
69 },
70 //生成介质线
71 createJZLine(graphic,callBackFunction) {
72 var self = this;
73 loadModules([
74 "esri/geometry/support/geodesicUtils",
75 "esri/geometry/Point",
76 "esri/geometry/Polyline"
77
78 ]).then(([
79 geodesicUtils,
80 Point,
81 Polyline
82 ])=>{
83 //取得各个坐标点 然后生成外围坐标线
84 var geometry = graphic.geometry,
85 rings = geometry.rings,
86 points = [];
87 if(rings.length > 0){
88 for(var i = 0;i < rings.length;i++){
89 var danPoints = [];
90 self.getPointByRings(rings[i],danPoints);
91 points.push(danPoints);
92 }
93 }else {
94 var danPoints = [];
95 self.getPointByRings(rings,danPoints);
96 points.push(danPoints);
97 }
98 var lines = [];
99 //meters
100 for(var i = 0;i < points.length;i++){
101 for(var j = 0;j < points[i].length;j++){
102 if(j < (points[i].length - 1)){
103 const join = geodesicUtils.geodesicDistance(
104 new Point({ x: points[i][j].x, y: points[i][j].y }),
105 new Point({ x: points[i][j+1].x, y: points[i][j+1].y }),
106 "meters"
107 );
108 const { distance, azimuth } = join;
109
110 var obj = {
111 startPoint:points[i][j].x +"," +points[i][j].y ,
112 endPoint:points[i][j+1].x +","+points[i][j+1].y,
113 qdh:points[i][j].sxh,
114 zdh:points[i][j+1].sxh,
115 distance:distance,
116 jzxlx:"",
117 jzxwz:"",
118 jzxxz:"",
119 remark:""
120 }
121 lines.push(obj);
122 }else{
123 const join = geodesicUtils.geodesicDistance(
124 new Point({ x: points[i][j].x, y: points[i][j].y }),
125 new Point({ x: points[i][0].x, y: points[i][0].y }),
126 "meters"
127 );
128 const { distance, azimuth } = join;
129 var obj = {
130 startPoint:points[i][j].x +"," +points[i][j].y ,
131 endPoint:points[i][0].x +"," +points[i][0].y ,
132 qdh:points[i][j].sxh,
133 zdh:points[i][0].sxh,
134 distance:distance,
135 jzxlx:"",
136 jzxwz:"",
137 jzxxz:"",
138 remark:""
139 }
140 lines.push(obj);
141 }
142 }
143 }
144 if(callBackFunction && typeof callBackFunction == "function"){
145 callBackFunction(lines);
146 }
147 }).catch( err => {
148 throw (err);
149 })
150 },
151 //wkt转换成arcgis
152 parseWktToArc(wkt){
153 var primitive = wktParse.parse(wkt);
154 /*if(primitive.type == "MultiPolygon"){
155 primitive.type = "Polygon"
156 }*/
157 return arcgisParser.convert(primitive)
158 }
159
160 }
161 }
...\ No newline at end of file ...\ No newline at end of file
1 <template>
2 <div class="map">
3 <div :id="viewId" class="viewDiv">
4 </div>
5 </div>
6 </template>
7 <script>
8 import {loadModules} from 'esri-loader'
9 import {maps} from '@/libs/map/mapUtils'
10 export default {
11 props:{
12 viewId:{
13 type:String,
14 default:"mainView"
15 },
16 afterLoaderFunction:{
17 type:Function,
18 default:null
19 }
20 },
21 data(){
22 return{
23
24 }
25 },
26
27 mounted(){
28 this.initMap();
29 },
30 methods:{
31 initMap(){
32 var self = this;
33 loadModules([
34 "esri/views/MapView",
35 "esri/Map"
36 ]).then(([
37 MapView,
38 esriMap
39 ]) => {
40 var map = new esriMap({
41 basemap:"hybrid"
42 });
43 //108.95 34.27
44 var view = new MapView({
45 container: self.viewId,
46 map: map,
47 zoom:10,
48 zoom:10,
49 center: [-0.154133333770497,0.6138183594020817],
50 spatialReference: {
51 wkid: 102100
52 }
53 });
54 maps[self.viewId] = view;
55 if(self.afterLoaderFunction && typeof self.afterLoaderFunction == 'function'){
56 self.afterLoaderFunction(view);
57 }
58 }).catch(err => {
59 throw(err);
60 });
61 }
62 }
63
64 }
65 </script>
66 <style scoped lang="less">
67 .map{
68 height: 100%;
69 width: 100%;
70 .viewDiv{
71 height: 100%;
72 width: 100%;
73 }
74 }
75 </style>
...\ No newline at end of file ...\ No newline at end of file
1 import {loadModules} from 'esri-loader'
2
3 export default {
4 methods: {
5
6 identify(url,layerIds,geometry ,callBackFunction){
7 var self = this;
8 loadModules([
9 "esri/tasks/IdentifyTask",
10 "esri/tasks/support/IdentifyParameters"
11 ]).then(([
12 IdentifyTask,
13 IdentifyParameters
14 ]) => {
15 var identifyTask = new IdentifyTask({
16 url:url
17 }),
18 identifyParameters = new identifyParameters();
19 identifyParameters.geometry = geometry;
20 if(layerIds){
21 identifyParameters.layerIds = layerIds;
22 }
23 identifyParameters.layerOption = "all";
24 identifyParameters.spatialReference = geometry.spatialReference;
25 identifyTask.execute(identifyParameters).then(result => {
26 if(callBackFunction && typeof callBackFunction == 'function'){
27 callBackFunction(result);
28 }
29 });
30 }).catch(err => {
31 throw(err);
32 });
33
34 }
35 }
36 }
...\ No newline at end of file ...\ No newline at end of file
1 import {maps} from '@/libs/map/mapUtils'
2 import {loadModules} from 'esri-loader'
3
4 export default {
5 data() {
6 return {
7 drawAction:null,
8 graphicLayer:null,
9 creatEvent:null,
10 }
11 },
12 methods: {
13 initDraw(type,viewId,creationMode,callBackFunction){
14 var self = this;
15 loadModules([
16 "esri/widgets/Sketch",
17 "esri/layers/GraphicsLayer"
18 ]).then(([
19 Sketch,
20 GraphicsLayer
21 ]) => {
22 var view = maps[viewId];
23 if(!self.drawAction){
24 self.graphicLayer = new GraphicsLayer({
25 id:"_drawLayer"
26 })
27 self.drawAction = new Sketch({
28 view: view,
29 layer:self.graphicLayer,
30 creationMode: "single"
31 });
32 }else {
33 // this.drawAction.cancel();
34 if(creationMode){
35 self.drawAction.creationMode = creationMode;
36 }
37 // graphicLayer = view.map.findLayerById("_drawLayer");
38 }
39 self.drawAction.create(type);
40 if(self.creatEvent){
41 self.creatEvent.remove();
42 }
43 self.creatEvent = self.drawAction.on("create", function(event) {
44 if (event.state === "complete") {
45 self.graphicLayer.remove(event.graphic);
46 if(callBackFunction && typeof callBackFunction == 'function'){
47 callBackFunction(event.graphic.geometry);
48 }
49
50 }
51 })
52 }).catch(err=>{
53 throw(err);
54 });
55 },
56 destroyeDraw() {
57 if(this.drawAction){
58 this.drawAction.cancel();
59 }
60 }
61 }
62 }
...\ No newline at end of file ...\ No newline at end of file
1 /*
2 * 空间图层数据添加、修改、删除
3 * */
4 import {loadModules} from "esri-loader"
5
6 export default {
7 methods:{
8 addGraphic(url,graphic,callBackFunction){
9 loadModules([
10 "esri/layers/FeatureLayer",
11 "esri/Graphic",
12 "esri/geometry/Point",
13 "esri/geometry/Polygon",
14 "esri/geometry/Polyline"
15 ]).then(([
16 FeatureLayer,
17 Graphic,
18 Point,
19 Polygon,
20 Polyline
21 ])=>{
22 var featureLayer = new FeatureLayer({
23 url:url
24 })
25 var geo = null;
26 if(graphic.geometry.type == 'point'){
27 geo = new Point(graphic.geometry);
28 }else if(graphic.geometry.type == 'polyline'){
29 geo = new Polyline(graphic.geometry);
30 }else if(graphic.geometry.type == 'polygon'){
31 geo = new Polygon(graphic.geometry);
32 }
33 var saveGraphic = new Graphic({
34 attributes:graphic.attributes,
35 geometry:geo
36 });
37 featureLayer.applyEdits({
38 addFeatures:[saveGraphic]
39 }).then(function (res){
40 if(callBackFunction && typeof callBackFunction == 'function'){
41 callBackFunction(res);
42 }
43 })
44 }).catch( err => {
45 throw (err);
46 })
47 },
48 updateGraphic(url,graphic,callBackFunction){
49 loadModules([
50 "esri/layers/FeatureLayer",
51 "esri/Graphic",
52 "esri/geometry/Point",
53 "esri/geometry/Polygon",
54 "esri/geometry/Polyline"
55 ]).then(([
56 FeatureLayer,
57 Graphic,
58 Point,
59 Polygon,
60 Polyline
61 ])=>{
62 var featureLayer = new FeatureLayer({
63 url:url
64 })
65 var geo = null;
66 if(graphic.geometry.type == 'point'){
67 geo = new Point(graphic.geometry);
68 }else if(graphic.geometry.type == 'polyline'){
69 geo = new Polyline(graphic.geometry);
70 }else if(graphic.geometry.type == 'polygon'){
71 geo = new Polygon(graphic.geometry);
72 }
73 var updGraphic = new Graphic({
74 attributes:graphic.attributes,
75 geometry:geo
76 });
77 featureLayer.applyEdits({
78 updateFeatures:[updGraphic]
79 }).then(function (res){
80 if(callBackFunction && typeof callBackFunction == 'function'){
81 callBackFunction(res);
82 }
83 })
84 }).catch( err => {
85 throw (err);
86 })
87 },
88 delGraphic(url,graphic,callBackFunction){
89 loadModules([
90 "esri/layers/FeatureLayer"
91 ]).then(([
92 FeatureLayer
93 ])=>{
94 var featureLayer = new FeatureLayer({
95 url:url
96 })
97 featureLayer.applyEdits({
98 deleteFeatures:[graphic]
99 }).then(function (res){
100 if(callBackFunction && typeof callBackFunction == 'function'){
101 callBackFunction(res);
102 }
103 })
104 }).catch( err => {
105 throw (err);
106 })
107 }
108 }
109 }
...\ No newline at end of file ...\ No newline at end of file
1
2 import {loadCss,loadScript} from "esri-loader"
3
4 export function init(){
5 loadScript({url:"http://192.168.2.38/4.16/init.js"});
6 loadCss("http://192.168.2.38/4.16/esri/themes/light/main.css");
7 }
8 init();
...\ No newline at end of file ...\ No newline at end of file
1
2 var maps = {}
3
4
5 export {maps};
...\ No newline at end of file ...\ No newline at end of file
1 import {loadModules} from 'esri-loader'
2 import {maps} from '@/libs/map/mapUtils'
3 export default{
4 data(){
5 return{
6 //activeWidget:null,
7 areaActive:null,
8 distanceActive:null
9 }
10 },
11 methods: {
12 measure(viewId,type){
13 var view = maps[viewId];
14 var self = this;
15 loadModules([
16 "esri/widgets/DistanceMeasurement2D",
17 "esri/widgets/AreaMeasurement2D"
18 ]).then(([
19 DistanceMeasurement2D,
20 AreaMeasurement2D
21 ]) => {
22 switch (type) {
23 case "distance":
24 if(!self.distanceActive){
25 self.distanceActive = new DistanceMeasurement2D({
26 view: view
27 });
28 }
29 // skip the initial 'new measurement' button
30 self.distanceActive.viewModel.start();
31 break;
32 case "area":
33 if(!self.areaActive){
34 self.areaActive = new AreaMeasurement2D({
35 view: view
36 });
37 }
38
39
40 // skip the initial 'new measurement' button
41 self.areaActive.viewModel.start();
42 break;
43 case null:
44 if (self.distanceActive) {
45 self.distanceActive.viewModel.clear();
46 // self.distanceActive = null;
47 }
48 if (self.areaActive) {
49 self.areaActive.viewModel.clear();
50 // self.areaActive = null;
51 }
52 break;
53 }
54
55 }).catch(err => {
56 throw(err);
57 });
58
59 }
60
61 }
62 }
...\ No newline at end of file ...\ No newline at end of file
1
2 import {loadModules} from 'esri-loader'
3
4 export default{
5
6 methods: {
7 queryByWhere(url,queryWhere,geometry,returnGeometry,outFields ,outSpatialReference ,callBackFunction){
8 var self = this;
9 loadModules([
10 "esri/tasks/QueryTask",
11 "esri/tasks/support/Query"
12 ]).then(([
13 QueryTask,
14 Query
15 ]) => {
16 var queryTask = new QueryTask({
17 url: url
18 }),
19 query = new Query(),
20 where = "";
21 if (queryWhere){
22 var parames = self.parseObj2Arr(queryWhere);
23 //var isFrist = false;
24 for(var i = 0;i < parames.length; i++ ){
25 if(i == 0){
26
27 }else {
28 where += " and ";
29 }
30 if(Array.isArray(parames[i].value)){
31 where += parames[i].name + " in (" + parames[i].value.toString + ")";
32 }else if(typeof parames[i].value == 'number'){
33 where += parames[i].name + " =" + parames[i].value ;
34 }else{
35 where += parames[i].name + " =" + "'" + parames[i].value +"'";
36 }
37 }
38 } else {
39 where = "1=1";
40 }
41
42 query.where = where;
43 if(geometry){
44 query.geometry = geometry;
45 }
46 query.outSpatialReference = outSpatialReference ? outSpatialReference : {wkid:3857}
47 query.returnGeometry = returnGeometry ? true : false;
48 query.outFields = outFields ? outFields : ["*"];
49 queryTask.execute(query).then(function(results){
50 if(callBackFunction && typeof callBackFunction == 'function'){
51 callBackFunction(results);
52 }
53 });
54 }).catch( err => {
55 throw(err);
56 })
57 },
58 parseObj2Arr(object){
59 var arr = [];
60 for(var key in object){
61 var obj = {};
62 obj.name = key;
63 obj.value = object[key];
64 arr.push(obj);
65 }
66 return arr;
67 }
68 },
69 }
1 import {open,openShp} from "shapefile"
2
3 export default{
4
5 methods: {
6
7 readShpByFile(file,callBackFunction){
8 var reader = new FileReader();
9 reader.readAsBinaryString(file);
10 reader.οnlοad=function(){
11 var fileData = this.result ; //fileData就是读取到的文件的二进制数据
12 openShp(fileData).then(source => source.read()
13 .then(function log(result) {
14 if (result.done) return;
15 if(callBackFunction && typeof callBackFunction == 'function'){
16 callBackFunction(result.value);
17 }
18 return source.read().then(log);
19 }))
20 .catch(error => console.error(error.stack));
21 }
22 },
23 readShpByUrl(url,callBackFunction){
24 open(url).then(source => source.read()
25 .then(function log(result) {
26 if (result.done) return;
27 if(callBackFunction && typeof callBackFunction == 'function'){
28 callBackFunction(result.value);
29 }
30 return source.read().then(log);
31 }))
32 .catch(error => console.error(error.stack));
33 }
34 },
35 readShpByZip(zipUrl,callBackFunction){
36
37 }
38
39 }
...\ No newline at end of file ...\ No newline at end of file
...@@ -5,6 +5,14 @@ import store from '@store' ...@@ -5,6 +5,14 @@ import store from '@store'
5 import ElementUI from 'element-ui' 5 import ElementUI from 'element-ui'
6 import 'element-ui/lib/theme-chalk/index.css' 6 import 'element-ui/lib/theme-chalk/index.css'
7 import '../mock/index.js' 7 import '../mock/index.js'
8
9 //引入arcgis Api
10 import './libs/map/mapApi'
11
12 import './assets/iconfont/iconfont.js'
13
14 //引入iconFount字体库
15 import './assets/iconfont/iconfont.css'
8 import ElTreeSelect from 'el-select-tree' 16 import ElTreeSelect from 'el-select-tree'
9 //树型选择器 17 //树型选择器
10 Vue.use(ElTreeSelect); 18 Vue.use(ElTreeSelect);
...@@ -29,6 +37,7 @@ if ( ...@@ -29,6 +37,7 @@ if (
29 } 37 }
30 }, false) 38 }, false)
31 } 39 }
40 import "babel-polyfill"
32 Vue.config.productionTip = false 41 Vue.config.productionTip = false
33 Vue.use(ElementUI) 42 Vue.use(ElementUI)
34 new Vue({ 43 new Vue({
......
...@@ -71,6 +71,12 @@ const constantRoutes = [ ...@@ -71,6 +71,12 @@ const constantRoutes = [
71 code: "1-5", 71 code: "1-5",
72 component: () => import("@/views/zd/index"), 72 component: () => import("@/views/zd/index"),
73 }, 73 },
74 {
75 path: "/viewMap",
76 name: "地图",
77 code: "0-6",
78 component: () => import("@/views/systemTX/map"),
79 }
74 ], 80 ],
75 }, 81 },
76 ]; 82 ];
......
...@@ -31,6 +31,11 @@ ...@@ -31,6 +31,11 @@
31 <i :class="item.icon"></i> 31 <i :class="item.icon"></i>
32 <span>{{ item.name }}</span> 32 <span>{{ item.name }}</span>
33 </div> 33 </div>
34
35 <div class="top-items tuOrShu" >
36 <i class="iconfont icondiqiu1" title="图形管理" v-if="!isMap" @click="goMap"></i>
37 <i class="iconfont iconshuxingguanli" title="属性管理" v-else @click="goBack"></i>
38 </div>
34 </div> 39 </div>
35 <!-- <div class="header-bottom"> 40 <!-- <div class="header-bottom">
36 <Navigation ref="navigation"></Navigation> 41 <Navigation ref="navigation"></Navigation>
...@@ -127,7 +132,9 @@ export default { ...@@ -127,7 +132,9 @@ export default {
127 }, 132 },
128 pd: [], 133 pd: [],
129 dialogVisible: false, 134 dialogVisible: false,
130 treeHeight:0, //树结构区域高度 135 isMap:false,
136 treeHeight:0,
137 routerInfo:null
131 }; 138 };
132 }, 139 },
133 computed: { 140 computed: {
...@@ -150,6 +157,13 @@ export default { ...@@ -150,6 +157,13 @@ export default {
150 this.getRightTreeByZrzbsm(this.$store.state.zrzbsm); 157 this.getRightTreeByZrzbsm(this.$store.state.zrzbsm);
151 }else if(newPath == "/dz"){ 158 }else if(newPath == "/dz"){
152 this.getRightTreeByDzbsm(this.$store.state.dzbsm); 159 this.getRightTreeByDzbsm(this.$store.state.dzbsm);
160 } else if(newPath == "/viewMap"){
161 this.isMap = true;
162 if(this.$route.query.type == "zd"){
163 this.getRightTree(this.$route.query.bsm);
164 }else if(this.$route.query.type == "/zrz"){
165 this.getRightTreeByZrzbsm(this.$route.query.bsm);
166 }
153 } else { 167 } else {
154 this.getTreeList(); 168 this.getTreeList();
155 } 169 }
...@@ -349,7 +363,46 @@ export default { ...@@ -349,7 +363,46 @@ export default {
349 getTreeList().then((res)=>{ 363 getTreeList().then((res)=>{
350 this.pd=res.result; 364 this.pd=res.result;
351 }) 365 })
366 },
367 goBack(){
368 this.isMap = false;
369 var curretRouterInfo = JSON.parse(sessionStorage.getItem("curretRouterInfo"));
370 //this.$router.back(-1);
371 if(curretRouterInfo){
372 this.$router.push({
373 path: curretRouterInfo.path,
374 query: curretRouterInfo.query
375 });
376 }else {
377 this.$router.back(-1);
378 }
379
380 },
381 goMap(){
382 var curretRouterInfo = {
383 path:this.$route.path,
384 query:this.$route.query
352 } 385 }
386 sessionStorage.setItem('curretRouterInfo',JSON.stringify(curretRouterInfo));
387 this.isMap = true;
388 var routerQuery = null;
389 var path = this.$route.path;
390 if(path == "/zd"){
391 routerQuery = {
392 bsm:this.$route.query.bsm,
393 type:"zd"
394 }
395 }else if(path == "/zrz"){
396 routerQuery = {
397 bsm:this.$route.query.bsm,
398 type:"zrz"
399 }
400 }
401 this.$router.push({
402 path: "/viewMap",
403 query: routerQuery
404 });
405 }
353 }, 406 },
354 }; 407 };
355 </script> 408 </script>
...@@ -411,6 +464,13 @@ export default { ...@@ -411,6 +464,13 @@ export default {
411 border-bottom: 1px solid rgba(234, 234, 234, 1); 464 border-bottom: 1px solid rgba(234, 234, 234, 1);
412 box-sizing: border-box; 465 box-sizing: border-box;
413 } 466 }
467
468 .tuOrShu{
469 float: right !important;
470 .iconfont{
471 font-size: 21px;
472 }
473 }
414 } 474 }
415 .el-aside { 475 .el-aside {
416 width: 290px !important; 476 width: 290px !important;
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
42 </el-card> 42 </el-card>
43 </div> 43 </div>
44 <div class="notice" ref="notice"> 44 <div class="notice" ref="notice">
45 <el-card class="news"> 45 <el-card>
46 <div slot="header" class="clearfix"> 46 <div slot="header" class="clearfix">
47 <span>通知公告</span> 47 <span>通知公告</span>
48 <span class="edit">查看全部 <i class="fa fa-angle-right " aria-hidden="true"></i></span> 48 <span class="edit">查看全部 <i class="fa fa-angle-right " aria-hidden="true"></i></span>
...@@ -113,7 +113,7 @@ export default { ...@@ -113,7 +113,7 @@ export default {
113 handleSelect() { 113 handleSelect() {
114 //非编辑状态才可以点击 114 //非编辑状态才可以点击
115 if (!isEdit) { 115 if (!isEdit) {
116 116
117 } 117 }
118 }, 118 },
119 tableRowClassName({ row, rowIndex }) { 119 tableRowClassName({ row, rowIndex }) {
...@@ -137,7 +137,7 @@ export default { ...@@ -137,7 +137,7 @@ export default {
137 message: '删除成功!' 137 message: '删除成功!'
138 }); 138 });
139 }).catch(() => { 139 }).catch(() => {
140 140
141 }); 141 });
142 } 142 }
143 }, 143 },
...@@ -182,17 +182,6 @@ export default { ...@@ -182,17 +182,6 @@ export default {
182 div { 182 div {
183 cursor: pointer; 183 cursor: pointer;
184 flex: 1; 184 flex: 1;
185 .el-badge{
186 width: 68px;
187 height: 68px;
188 display: block;
189 margin: 0 auto;
190 /deep/.el-badge__content{
191 top: 10px;
192 right: 14px;
193 background-color: #fa6400;
194 }
195 }
196 img { 185 img {
197 width: 68px; 186 width: 68px;
198 height: 68px; 187 height: 68px;
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
15 >办理 15 >办理
16 </el-button 16 </el-button
17 > 17 >
18 <el-button type="text" size="small">定位</el-button> 18 <el-button type="text" size="small" @click="postionToMap(scope.row)">定位</el-button>
19 </template> 19 </template>
20 </el-table-column> 20 </el-table-column>
21 <el-table-column prop="bdcdyh" align="left" label="不动产单元号"> 21 <el-table-column prop="bdcdyh" align="left" label="不动产单元号">
...@@ -170,6 +170,24 @@ ...@@ -170,6 +170,24 @@
170 } 170 }
171 }); 171 });
172 }, 172 },
173 //定位
174 //图形定位
175 postionToMap(rowData){
176 if(rowData.dylx == "zrz" || rowData.dylx == "zd"){
177 var curretRouterInfo = {
178 path:this.$route.path,
179 query:this.$route.query
180 }
181 sessionStorage.setItem("curretRouterInfo",JSON.stringify(curretRouterInfo));
182 this.$router.push({
183 path: "/viewMap",
184 query: {
185 bsm: rowData.glbsm,
186 type: rowData.dylx
187 }
188 });
189 }
190 }
173 }, 191 },
174 computed: {}, 192 computed: {},
175 watch: {}, 193 watch: {},
......
1 <template>
2 <div class="testMap">
3 <div class="mapTools">
4 <mapTools :viewId="viewId"></mapTools>
5 </div>
6 <EsriMap :viewId = "viewId" :afterLoaderFunction="addLayer"></EsriMap>
7 </div>
8 </template>
9 <script>
10 import EsriMap from '@/components/map/EsriMap'
11 import MapTools from './mapWeight/mapTools'
12 import {loadModules} from 'esri-loader'
13 import {maps} from '@/libs/map/mapUtils'
14 import mapLayerManager from "./mapWeight/js/mapLayerManager";
15 export default {
16 components:{
17 EsriMap,
18 MapTools
19 },
20 data(){
21 return{
22 viewId:"testMap",
23 layerUrl:"http://192.168.2.201:6080/arcgis/rest/services/%E4%BA%92%E8%81%94%E7%BD%91%E5%8A%A0%E4%B8%8D%E5%8A%A8%E4%BA%A7/XA_%E4%B8%8D%E5%8A%A8%E4%BA%A7/MapServer"
24 }
25 },
26 mixins:[mapLayerManager],
27 mounted(){
28 var query = this.$route.query;
29 if(query && JSON.stringify(query) != "{}"){
30 this.addGeoByBsm(query.bsm,query.type,this.viewId);
31 }
32 },
33 methods:{
34 addLayer(){
35 var self = this;
36 var view = maps[this.viewId];
37 loadModules([
38 "esri/layers/MapImageLayer",
39 ]).then(([
40 MapImageLayer,
41 ])=>{
42 var mapImageLayer = new MapImageLayer({
43 url:self.layerUrl,
44 id:"testLayer",
45 spatialReference:view.spatialReference,
46 sublayers:[{
47 id:19,
48 visible:true
49 },
50 {
51 id:8,
52 visible:true
53 },
54 {
55 id:10,
56 visible:true
57 }]
58 });
59 view.map.add(mapImageLayer,1);
60 }).catch(err => {
61 throw(err);
62 })
63 }
64
65 }
66 }
67 </script>
68 <style scoped lang="less">
69 .testMap{
70 height: 100%;
71 width: 100%;
72 position: relative;
73 .mapTools{
74 position: absolute;
75 top: 12px;
76 z-index: 99;
77 right: 5px;
78 }
79 }
80 </style>
...\ No newline at end of file ...\ No newline at end of file
1 import layers from '@/assets/json/layers.json'
2 import graphicSymbol from '@/assets/json/graphicSymbol.json'
3 import queryUtils from "@libs/map/queryUtils";
4 import {loadModules} from "esri-loader"
5 import {maps} from '@/libs/map/mapUtils'
6
7 export default {
8
9 methods:{
10 getLayerByName(name) {
11 for (var i = 0; i < layers.length; i++) {
12 if (layers[i].layerName == name) {
13 return layers[i];
14 }
15 }
16 return null;
17 },
18 addGeoByBsm(bsm, type,viewId) {
19 var self = this;
20 var layer = null;
21 if (type == 'zd') {
22 layer = this.getLayerByName("ZDJBXX");
23 } else if (type == 'zrz') {
24 layer = this.getLayerByName("ZRZ");
25 } else {
26 console.log("未定义类型!!");
27 return;
28 }
29 if (!layer) {
30 console.log("没有找到图层,不能查询");
31 return;
32 }
33 queryUtils.methods.queryByWhere(layer.layerUrl+"/"+layer.id, {"BSM": bsm }, null, true, null, null, function (res) {
34 var features = res.features;
35 if(features && features.length > 0){
36 if( !features[0].geometry ){
37 self.$message.success("暂无图形信息!!");
38 return;
39 }
40 loadModules([
41 "esri/layers/GraphicsLayer"
42 ]).then( ([
43 GraphicsLayer
44 ]) => {
45 var view = maps[viewId];
46 var layer = view.map.findLayerById("highlightLayer");
47 if(layer){
48 layer.removeAll();
49 }else {
50 layer = new GraphicsLayer({
51 id:"highlightLayer"
52 })
53 view.map.add(layer);
54 }
55 var symbol = graphicSymbol.fillSymbol.highlightSymbol;
56 var graphic = features[0];
57 graphic.symbol = symbol;
58 layer.add(graphic);
59 view.center = graphic.geometry.extent.center;
60 }).catch( err => {
61 thow(err);
62 })
63 }else {
64 self.$message.success("暂无图形信息!!");
65 return;
66 }
67 });
68 },
69
70 }
71 }
...\ No newline at end of file ...\ No newline at end of file
1 <template>
2 <div class="tools">
3 <el-button-group>
4 <el-button type="primary" title="全图" icon="iconfont icondiqiu" @click="fullMap"></el-button>
5 <el-button type="primary" title="测面" icon="iconfont iconmianceliang" @click="measureMent('area')"></el-button>
6 <el-button type="primary" title="测距" icon="iconfont iconceju" @click="measureMent('distance')"></el-button>
7 <el-button type="primary" title="放大" icon="iconfont iconfangda" @click="zoomOut"></el-button>
8 <el-button type="primary" title="缩小" icon="iconfont iconsuoxiao" @click="zoomIn"></el-button>
9 <el-button type="primary" title="点选" icon="iconfont iconshuxing" @click="info"></el-button>
10 <el-button type="primary" title="清除" icon="el-icon-delete" @click="clear"></el-button>
11 </el-button-group>
12
13 </div>
14 </template>
15 <script>
16 import {maps} from '@/libs/map/mapUtils'
17 import draw from '@/libs/map/draw'
18 import identifyUtils from '@/libs/map/IdentifyUtils'
19 import measure from '@/libs/map/measure'
20
21 import {loadModules} from "esri-loader"
22 export default {
23 props:{
24 viewId:{
25 type:String,
26 default:"mainView"
27 }
28 },
29 mixins:[draw,identifyUtils,measure],
30 data(){
31 return{
32 url:""
33 }
34 },
35 methods:{
36 fullMap(){
37 var view = maps[this.viewId];
38 view.zoom = 10;
39 view.center = [108.95,34.27]
40 },
41 measureMent(type){
42 this.measure(this.viewId,type);
43 },
44 clearHeightLayer(){
45
46 },
47 clear(){
48 this.measure(this.viewId,null);
49 },
50 info(){
51 var view = maps[this.viewId];
52 var self = this;
53 this.initDraw("point",this.viewId,null,function(geo){
54 self.identify(self.url,[],geo,function(result){
55 debugger
56 });
57 });
58 },
59 zoomOut(){
60 var view = maps[this.viewId];
61 this.initDraw("rectangle",this.viewId,null,function(geo){
62 view.extent = geo.extent;
63 });
64 },
65 zoomIn(){
66 var view = maps[this.viewId];
67 this.initDraw("rectangle",this.viewId,null,function(geo){
68 var dWidth, dHeight, dXmin, dYmin, dXmax, dYmax;
69 dWidth = view.extent.width * view.extent.width / geo.extent.width;
70 dHeight = view.extent.height * view.extent.height / geo.extent.height;
71 dXmin = view.extent.xmin - ((geo.extent.xmin - view.extent.xmin) * view.extent.width / geo.extent.width);
72 dYmin = view.extent.ymin - ((geo.extent.ymin - view.extent.ymin) * view.extent.height / geo.extent.height);
73 dXmax = dXmin + dWidth;
74 dYmax = dYmin + dHeight;
75 //pEnv.PutCoords(dXmin, dYmin, dXmax, dYmax);
76 loadModules(["esri/geometry/Extent"]).then(([Extent]) => {
77 view.extent = new Extent({
78 xmin: dXmin,
79 ymin: dYmin,
80 xmax: dXmax,
81 ymax: dYmax,
82 spatialReference: {
83 wkid: 102100
84 }
85 });
86 }).catch( err => {
87 throw (err);
88 })
89 });
90 }
91
92 }
93
94
95 }
96 </script>
97 <style lang="less" scoped>
98
99 </style>
...\ No newline at end of file ...\ No newline at end of file
...@@ -20,6 +20,7 @@ import jzx from "./jzx"; ...@@ -20,6 +20,7 @@ import jzx from "./jzx";
20 import djb from "./djb"; 20 import djb from "./djb";
21 import lshs from "./lshs"; 21 import lshs from "./lshs";
22 import fjcl from "./fjcl/fjcl" 22 import fjcl from "./fjcl/fjcl"
23 import {queryjzd,queryjzx} from "@/api/zd"
23 export default { 24 export default {
24 name: "", 25 name: "",
25 components: { 26 components: {
...@@ -29,12 +30,34 @@ export default { ...@@ -29,12 +30,34 @@ export default {
29 data() { 30 data() {
30 return { 31 return {
31 activeName: "djdcb", 32 activeName: "djdcb",
33 jzd:[],
34 jzx:[]
32 }; 35 };
33 }, 36 },
34 methods: { 37 methods: {
35 handleClick(tab, event) { 38 handleClick(tab, event) {
36 // console.log(tab, event); 39 // console.log(tab, event);
37 }, 40 },
41 //查询界址点
42 getJZD(){
43 var bsm = this.$store.state.zdbsm;
44 this.jzx = [];
45 queryjzd({glBsm:bsm}).then(res => {
46 if(res.code == 200){
47 this.jzd = res.data.data;
48 }
49 })
50 },
51 //查询界址线
52 getJZX(){
53 var bsm = this.$store.state.zdbsm;
54 this.jzx = [];
55 queryjzx({glBsm:bsm}).then(res => {
56 if(res.code = 200){
57 this.jzx = res.data.data;
58 }
59 });
60 }
38 }, 61 },
39 created() {}, 62 created() {},
40 mounted() {}, 63 mounted() {},
......
...@@ -171,7 +171,7 @@ ...@@ -171,7 +171,7 @@
171 }, 171 },
172 methods: { 172 methods: {
173 getData(bsm) { 173 getData(bsm) {
174 queryjzd(bsm).then(res => { 174 queryjzd({glBsm:bsm}).then(res => {
175 for (let i = 0; i < res.result.length; i++) { 175 for (let i = 0; i < res.result.length; i++) {
176 res.result[i]['isCheck'] = false; 176 res.result[i]['isCheck'] = false;
177 res.result[i]['iszb'] = 'readonly'; 177 res.result[i]['iszb'] = 'readonly';
......
...@@ -9,9 +9,9 @@ ...@@ -9,9 +9,9 @@
9 <table border="1"> 9 <table border="1">
10 <tr> 10 <tr>
11 <td class="cz"><input type="checkbox" @click="allcheck" v-model="isCheckAll"/></td> 11 <td class="cz"><input type="checkbox" @click="allcheck" v-model="isCheckAll"/></td>
12 <td class="qsd">起始点</td> 12 <td class="qdh">起始点号</td>
13 <td class="zzd">终止点</td> 13 <td class="zdh">终止点号</td>
14 <td class="jzdj">界址点距(m)</td> 14 <td class="jzjj">界址间距(m)</td>
15 <td class="jzxlx">界址线类型</td> 15 <td class="jzxlx">界址线类型</td>
16 <td class="jzxwz">界址线位置</td> 16 <td class="jzxwz">界址线位置</td>
17 <td class="jxxz">界限性质</td> 17 <td class="jxxz">界限性质</td>
......
...@@ -636,7 +636,7 @@ export default { ...@@ -636,7 +636,7 @@ export default {
636 this.$store.state.xzqList = res.result; 636 this.$store.state.xzqList = res.result;
637 }) 637 })
638 .catch((error) => {}); 638 .catch((error) => {});
639 639
640 getListByPbsm(djqdm) 640 getListByPbsm(djqdm)
641 .then((res) => { 641 .then((res) => {
642 this.$store.state.djzqList = res.result; 642 this.$store.state.djzqList = res.result;
......