Merge branch 'master' of http://yun.pashanhoo.com:9090/renchao/CadastralSystem
Showing
38 changed files
with
1914 additions
and
31 deletions
| ... | @@ -32,7 +32,11 @@ | ... | @@ -32,7 +32,11 @@ |
| 32 | "vue-router": "^3.0.3", | 32 | "vue-router": "^3.0.3", |
| 33 | "vuex": "^3.0.1", | 33 | "vuex": "^3.0.1", |
| 34 | "webpack-theme-color-replacer": "^1.3.14", | 34 | "webpack-theme-color-replacer": "^1.3.14", |
| 35 | "xlsx": "^0.16.6" | 35 | "xlsx": "^0.16.6", |
| 36 | "esri-loader": "^2.15.0", | ||
| 37 | "shapefile": "^0.6.6", | ||
| 38 | "terraformer-arcgis-parser": "^1.1.0", | ||
| 39 | "terraformer-wkt-parser": "^1.2.1" | ||
| 36 | }, | 40 | }, |
| 37 | "devDependencies": { | 41 | "devDependencies": { |
| 38 | "@vue/cli-plugin-babel": "^3.11.0", | 42 | "@vue/cli-plugin-babel": "^3.11.0", | ... | ... |
| ... | @@ -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 | } | ... | ... |
src/assets/iconfont/demo.css
0 → 100644
| 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 | } |
src/assets/iconfont/demo_index.html
0 → 100644
This diff is collapsed.
Click to expand it.
src/assets/iconfont/iconfont.css
0 → 100644
| 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 |
src/assets/iconfont/iconfont.eot
0 → 100644
No preview for this file type
src/assets/iconfont/iconfont.js
0 → 100644
This diff is collapsed.
Click to expand it.
src/assets/iconfont/iconfont.json
0 → 100644
| 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 | } |
src/assets/iconfont/iconfont.svg
0 → 100644
This diff is collapsed.
Click to expand it.
src/assets/iconfont/iconfont.ttf
0 → 100644
No preview for this file type
src/assets/iconfont/iconfont.woff
0 → 100644
No preview for this file type
src/assets/iconfont/iconfont.woff2
0 → 100644
No preview for this file type
src/assets/json/graphicSymbol.json
0 → 100644
| 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 |
src/assets/json/layers.json
0 → 100644
| 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> | ... | ... |
src/components/lineTree/tx/importGeo.vue
0 → 100644
This diff is collapsed.
Click to expand it.
src/components/lineTree/tx/js/geoUtils.js
0 → 100644
| 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 |
src/components/map/EsriMap.vue
0 → 100644
| 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 |
src/libs/map/IdentifyUtils.js
0 → 100644
| 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 |
src/libs/map/draw.js
0 → 100644
| 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 |
src/libs/map/featureUpdate.js
0 → 100644
| 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 |
src/libs/map/mapApi.js
0 → 100644
src/libs/map/mapUtils.js
0 → 100644
src/libs/map/measure.js
0 → 100644
| 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 |
src/libs/map/queryUtils.js
0 → 100644
| 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 | } |
src/libs/map/shpUtils.js
0 → 100644
| 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); | ... | ... |
| ... | @@ -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: {}, | ... | ... |
src/views/systemTX/map.vue
0 → 100644
| 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 |
src/views/systemTX/mapWeight/mapTools.vue
0 → 100644
| 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; | ... | ... |
-
Please register or sign in to post a comment