69a5ae2b by weimo934

Merge remote-tracking branch 'origin/master'

2 parents 4d77cfd8 344b9c49
......@@ -19,13 +19,17 @@
"el-select-tree": "^1.0.26",
"el-tree-select": "^3.1.10",
"element-ui": "^2.13.2",
"esri-loader": "^2.16.0",
"file-saver": "^2.0.2",
"form-making": "^1.2.9",
"insert-css": "^2.0.0",
"js-cookie": "^2.2.1",
"mockjs": "^1.1.0",
"screenfull": "^5.0.2",
"shapefile": "^0.6.6",
"style-resources-loader": "^1.3.3",
"terraformer-arcgis-parser": "^1.1.0",
"terraformer-wkt-parser": "^1.2.1",
"vue": "^2.6.10",
"vue-cli-plugin-style-resources-loader": "^0.1.4",
"vue-quill-editor": "^3.0.6",
......@@ -39,6 +43,7 @@
"@vue/cli-plugin-eslint": "^3.11.0",
"@vue/cli-service": "^3.11.0",
"babel-eslint": "^10.0.1",
"babel-polyfill": "^6.26.0",
"eslint": "^5.16.0",
"eslint-plugin-vue": "^5.0.0",
"less": "^3.0.4",
......
......@@ -61,6 +61,16 @@ export function getBdcdyh(dpdm, dptype) {
}
})
}
/*
*新增界址点
* */
export function addjzd(data) {
return request({
url:"/zd/qjJzd/insertBatch",
method:"post",
data:data
})
}
/**
* 查询界址点
......@@ -69,12 +79,19 @@ export function queryjzd(glBsm) {
return request({
url: "/zd/qjJzd/getQjJzdListByGlBsm",
method: "get",
params: {
glBsm,
},
params: glBsm
});
}
/*
* 添加界址线
* */
export function addjzx(data){
return request({
url:"/zd/qjJzx/insertBatch",
method:"post",
data:data
})
}
/**
* 查询界址线
*/
......@@ -190,3 +207,12 @@ export function hzl(data) {
data:data
})
}
export function exportShp(data) {
return request({
url:"/tx/shpUtils/writeShp",
method:"post",
params:data,
responseType: 'arraybuffer'
})
}
......
/* Logo 字体 */
@font-face {
font-family: "iconfont logo";
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
font-family: "iconfont logo";
font-size: 160px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
position: relative;
}
.nav-tabs .nav-more {
position: absolute;
right: 0;
bottom: 0;
height: 42px;
line-height: 42px;
color: #666;
}
#tabs {
border-bottom: 1px solid #eee;
}
#tabs li {
cursor: pointer;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
position: relative;
z-index: 1;
margin-bottom: -1px;
color: #666;
}
#tabs .active {
border-bottom-color: #f00;
color: #222;
}
.tab-container .content {
display: none;
}
/* 页面布局 */
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main .logo {
color: #333;
text-align: left;
margin-bottom: 30px;
line-height: 1;
height: 110px;
margin-top: -50px;
overflow: hidden;
*zoom: 1;
}
.main .logo a {
font-size: 160px;
color: #333;
}
.helps {
margin-top: 40px;
}
.helps pre {
padding: 20px;
margin: 10px 0;
border: solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists {
width: 100% !important;
overflow: hidden;
*zoom: 1;
}
.icon_lists li {
width: 100px;
margin-bottom: 10px;
margin-right: 20px;
text-align: center;
list-style: none !important;
cursor: default;
}
.icon_lists li .code-name {
line-height: 1.2;
}
.icon_lists .icon {
display: block;
height: 100px;
line-height: 100px;
font-size: 42px;
margin: 10px auto;
color: #333;
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
-moz-transition: font-size 0.25s linear, width 0.25s linear;
transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
font-size: 100px;
}
.icon_lists .svg-icon {
/* 通过设置 font-size 来改变图标大小 */
width: 1em;
/* 图标和文字相邻时,垂直对齐 */
vertical-align: -0.15em;
/* 通过设置 color 来改变 SVG 的颜色/fill */
fill: currentColor;
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
normalize.css 中也包含这行 */
overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
color: #666;
}
/* markdown 样式 */
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p {
margin: 1em 0;
}
.markdown>p,
.markdown>blockquote,
.markdown>.highlight,
.markdown>ol,
.markdown>ul {
width: 80%;
}
.markdown ul>li {
list-style: circle;
}
.markdown>ul li,
.markdown blockquote ul>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown>ul li p,
.markdown>ol li p {
margin: 0.6em 0;
}
.markdown ol>li {
list-style: decimal;
}
.markdown>ol li,
.markdown blockquote ol>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown>table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown>table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown>table th,
.markdown>table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown>table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown>br,
.markdown>p>br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
/* 代码高亮 */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
@font-face {font-family: "iconfont";
src: url('iconfont.eot?t=1604545064148'); /* IE9 */
src: url('iconfont.eot?t=1604545064148#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAABAQAAsAAAAAG4AAAA/DAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCFBgqnEJ4zATYCJAM8CyAABCAFhG0HgUcbOhYjkpFWHNk/C2Nn2kn/80VDRcNilHD+YDoa7tem+26vre3KxsrKyhgiHvj263fnzTxbR12aeqRLNIuURKKxkUSJXxOHDDs8bfPfBcdxR5Sx5Jyos9Fm+gcW6NJka6JknxJhkdi4yGAd4ipddP7fzvtbWbL1hKlG1io6PRNHaiLkF34jwOxWGRi584rKyPu/NGc+/7+1/1VzpBF1MA3t1zR39sveN/Pk4oMvvn+/Db48zNOPnJ8ImZDe4LPfFPFGEs0QEpVQKqWRMFhbOehFAwZGYUS8bndsAhrmWi0cVpy+rJLQVMBxTy0PbqkC66WUmUGVKSR9phA+ylXZqyx8EL8+jNsYcDJ5RMd1/v6Ru/YPoaPd+GLguxqFl/VpvPZHxGokwm/ptl8gOrhayIYsnnzDbD31T2sNpaHWUE8MiQJGdo+GZ37wO6PdwYCUBmyXR3sKZrPKufm0ZaLOfERNtXIGsYW/eA1CgcoWSf8ItHUYQnXS/lZMkAyKCxKhYuDlVRKQAFUAUkAZQZpQNpAayg5SQj3CMiqGO5Ik1EGQFtQdLCNnlLNVAxWOtMb3eUDxmvIrUvcUtpm90FGrFJJocryBXCVbwKa1251O7PRi50wPzDmMUJK9QDfz8LFNBZbUQ5MwPkpgfZVgi+2pCFYtojF63IBRVa2ZnVrITWUB54uqNL2PtITgdmyzWts7X1nYS+TNrGDa2DUONBwiDM//d744fp0qJSXT09xW4/PBI0Lly/kosQj+PtpsOkq6uNVyd2rNBhgTKtoh5SxfzNZMG+6ZGp6I2BIHzNXaGOooReQm7HoaIYBD05JrXCnxRgYSAF/hUaGpvYBeIyspCrIsoXYoDtZP4vB0FfgyqO9uGQp+B35cDnPejPYd2SNTM9aNOmUiQdGeiEXVzKm+JyMi0xQli16HGIdlWgstt7qv221P69poLPUJ6eSGlEgyVjbgAup6gb4xgdUCAaEGTLP1nSCEcMOI5tAgLgDwoeEhID6QnwmCG9DjEyAUkkM+gNbnpVSgylBriRiPcQ25MJBT36C3UK050XJb7Z86A0mVP2VW4FW+lIgEKelMJ0OLp5ROqTbjvtTGaEnIcKSs0qBURZEi/h9c+DgN43IsAVJSEjs/X5hcYeOiVDWaFhSbik5Mrs3M0OiEcaM1kdmf2pSSPDcspKqqlNCKhl4QEb9coUFjVcwvDcIAXYqktHcuReSx5M/FAgo3udKt53cYMmVvZl3qBon/mCKjb1SVfC9SS7O0oqxdMQ3z/uPcHOTBdPlN2A/CbvEXfUHRUo9eNBqrPMZ0yShuEl7sB+eOk2VeDPMy7VJUxWR2nlAGVZ1llYBE03Rt4aJBixcOnLVoQcfCxbMQxB36HAsDNOAJd8MPgYotSC/17vQvT12fXx0/z3VsXeue61fIGtF1l6jzAuiXO/GGEWC4g4GNAYIe8qw8D4dVv4KQM8MIjW6FrTYCeFYGeEf8hUDvWD4Be3r/vpGSSDzoWum5TkB0YBCfx4XwIoR4gOugRQWAgbUQ7U2oEO2dTPnUDejs1TpNiYziWKlyzrvG72IozWpML7RgAbiVN5t6gvB8c/fwY43ewf3NN0bcbI8fcqC10z81ZXh25owedrY4olwF/UdbLwZbZmPIjkAAFzBwvoAZnvOR631ou+879u7rzYmDDzU+H36jNQmiExfGDRBPMYZH21+tHZ5WCCDDxyDrO/c6An516tq8zncnNTZnJqxBTdTxMuTY2HNObYDs9WXZzCko61700veuv9iGxwnto2UJ2+851fCieHZRGM4ZAGLDWQVgeYv1JLvdUs9/4tV/W9/eCQpvNV7+23/ln+Y3t8PeebHErU+FXVvvWTWnCq30vtuCFrAGFkABFrZhgJyVuKj+BIPwikGFgQ6CeLE1qLAbQXHlTevYo15AGHM7+u9jLBZo3QAMSKJ1ZkvAPssD7K2+RFZwjUGyVsAJnl+agkyaVOejVAyWWIH0FS2YbSKBD3ILqN3j966XIdkmp+r6D0SSLqUgoUEkYyYOB+BTNYzpVOtSmZoSg5rrLJJRphnr6bZN/XjOuaHU5HFZRLGKpKwlWXpMZ0ujRmVLJWL6T65bTJ6Z1K3vHFs/7Ufd6jE9PeJI4XUlfifgzS9OsXyIF42nFkMaH6Zz4MpYVZ7IiOzj5qT5zjum7UwtuidTqPq9IEk0y2lJgyjVNYzjANNHoWgzfQC+c7pJgbrjli4akI9GBnLnyAGj1pycS+gjXF5K0LHGlEDD0tPixTY+2bRnyL5r/sM42S4qRfsa9rEL4462e+YffPpW+HjsocbrwZMN/6SfjR9iTMX9XmcYbRBWX2VorZomO+vdddWDK2m/kFbDRMZmnn/qku/WM+PPiHdeW8hET5Cuw7E3UacECs3A/kK2YJzXj7NwP08j+vhAqQjwGPPGmZXpMv3ADMP3aTKDGuTuxHJ9M2XTvr8TvSy9Ugiy5/a9BZ/gdazpQqzcnSIK6fzPJ9lqbCrjKGMqtpoufrCi7b3CHwg5DVnf1hWyQ042dxaEJGUxsUVsk9LWlxO6Oyz4ko1y9I+q5CzktUjycVSXFiFt6ufrO4brx1BEOjfSso67bpA4vXkY60hm/OmFpqgUdjKxPoYxleVnpgj2HbybygP/jWtG1j98uN7wkRdAi/dh/DEeFgp2B8Mp3RC5AKHBKj4EocE8eU65CoHyZA4AQGnISwYDRgsgGApFYQjAGQoFAbSAAX0KhMyAIAF/YgBPBFADgRAMADhHUADAQVpHHiLE4iIgrgCSOAIdwNMhChJG0MMFaIn/CdIr00scnUcLx9tP5c6CRphS6PKRtDSIBiWjxlLcCSnTqu4dqPtBg/c1qsblq7Ckb5GlPfC2p8kRYldQ0JgxnWaESkhNPBopbihfCg3+XV8UZSldk6PUnBDFpNNkHYbWj8DIjK6lUWBNGIztqH5V9+dqeyUhwfOPFEzl3mdMdPXaCSljXhEidOWCXTdPDpE5Urh9mDeyON45isLd1Zw1PWch86jwmTiWHl7YP7PKNzJpUj74yEwn3BkMNGdbycG/M9f5Wo7Qsb6dcnXYs5XX1xx/4qbOdNsxI1BU+tX20gLquqsMFqR5AmNRsL1VsaR0Djn7fNaNfX/AUPpLbkTub1EzhVyYP02zVWcXIW0aoPo5ps+wfr3fv+4mPOGCnN9r2tcPNbchKD23Zw/C3fjuKkfOYpHTVh1oqWMW7WNtugL+n9TSDkiBwMCkvqxF3lKrcGvvJBDwsg01XjoskHFRF5cFLTmR/Bw8qaKB8DORNU1hm5tYf/LF7P128CQTXvVQkPlFrX0QQHBGUPikZQmtpm3CBsOmqE1L8yd1KSmvEE3uWlxWtKpr/Kx41cxeoSNjF3YKTY+PKyWZG9nNLGbW/AWMBeIFfXr3qZrRRw2e9inq8wOMk9cE/h76v2hxqmIeHqoPpe+xlYbk/O7zrFpRuDKFuBlbERtLpHba3Fn/cGNjKo7vKihQlFTyNy2M83f8M25S4qT4uLXyb2XCgOoDxczX83Tfi1GFSUevffgDiA9sr1+tLWZRF0apl2456Y/dHMtfGjFTuk7afTIokXbJ6/8il3M6c4x9X/xA5twNzJkWynH6nZzQzqKLtz206rSURs5Mv9Sv756W+Vxqcb7tjPS5s/stt2cZm9Gq1Mxo7VnqIQFkRq9EmZeMI3nK8GHKSH0qSXt0w3nhKi+Sq0wZWl4BDOsaNodeI9Iu2ezlKaBBABjmAUEOFH8So/k+cRP/Jn+UeDT/HE1qnG1dJi0eTYYstS0zzZYW2cr53CZxE/cmd5R4FPfGJr4PfTn90RgGH1z9NyHSmg0va7uyFFmGXLliTHHplbZlcLZV/OnhQxA/MQ56U1OPnN+J1sJ1O3fWwRbXZiF1SG2BWuR0xXTp9E3PpMpQQI+bA798mela7lu+ZOjQg299bw/iuiWBXBQjpdBGZYoyfpcVnjEDNnzrC6DFC7q0Cfkdk3y1K8jOAnIvxWZoqJVJctGKgDzQotZQGrmcksd6QgQfG6AC7fMoQA2e9zUBmYiiTwKyJx4fqwsP5r6WNPJ16rAGfgyvPlwt4daLj8GUwiRjw8TdYsIjoEvaTgsDr1d2J3VdOn9hfibfkLqeRX4SZ35iHhWTEcTYuAqmFKdmriNiyA079DOjmKR2HPl/yH8rx+34GPKJudQ3pPaQ/8lxzE8hn5lA9Df3EPrHH8ghxk0wfAQaPYR6/0pzO0L+hvKN3xc1Sd4qwsHAC6hzX3FkAov07b4VJcqu2FQ2xyuDzSvrhkCdateCmWsUKSPXjm52uf6ZIBzTMQFq/7hAgMwxdwIN+ZNr75p9xYzU4BO/tl/2d5MvmZ0zb8f14XHR/UKKeUNGxq8tfrM8tUt+3gBgm5pIHOL0U3++X5asvvFEaPQXrNQW9lVECZxXMVEyf+6eSew4VsPtlLV91CO+cIP23S2ejenTVKLsV9SY1md0YP6+BHIGLWI8/7x4beLpIXvcRYfINX17ZqFY34iIxuXo6z45WztmANk6Dd2H6TAfXfhaPCaVlwEA2NvatWdX9+KujDzZTgOejwScO1m6mmEurkzHF9PFK9hN5pTsp9JCSqslHf/w8LE4Vm6kFy/GVftWWfHik1hE7MT6TYD970lMGAHku57E8sHE/4Aa7YvjD2SAmPMt+hDanEkxgHgNbxyJ1ADsRfbD74LyrCw8EI8jhcDWPMXydEBs8yYsLboW9yO5ZWb24Zz2o9lzJO8h0f1A2SpFvJqT/RMnnyXddv/clChB7ZPKi/a24eCk7RDwAMhIGAAAmM0/zdjASV+XqV8fvZsUcq+meZzQAtghDACCdQPggc8uvkftpYNyNz7mSgd5DEbXhSFw4mK0PI7RkFIZBidjhFjK/kkCLggoMQAAMRoUBuHazmBsLQzBdYmDo/whown2kWG4AWEEVRAMkRQZLESey6h1Gw2Ubgxl0TvsJr7JTdjHlxrNHqvW5W8Ws1VGV7XlAJWUIAl3KI12o6sOR/VIc7LbbaJMLoeNUijjM1qtDsrpcoww6t0JlW63s0dioknmTNA7bICQx8VIy20ubkDRGbO2hZ6DnalnNyLy80sZmXlYablSLvq9toqRSzXLnVOSJJDkKFZKe66L9iVebSSzZG6iTSj9TBcHG4qCaCMrixwoTvm9RjDSc0tQWSJ06iGR3MyUVya0n7Zt9+ZnS5egw+QEGEIgFKJBGESHcIgBERAJ/a98HxAb4kBcwHnm0Vm0DrVB63B58nLyMYOlyuJJYlVXekZb7GazR2u3Wpgep9WhNSzcYyUpuF5riDdZrFbWKKNdx8G0GrR2M804Wm+0YibXNGjp1R7H6CpzpM1AexyYOTOGaIzFnkSr/BhUbxzhoTewDgA=') format('woff2'),
url('iconfont.woff?t=1604545064148') format('woff'),
url('iconfont.ttf?t=1604545064148') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1604545064148#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icontubiao_daoruCAD:before {
content: "\e630";
}
.icondiqiu1:before {
content: "\e60c";
}
.iconshuxingguanli:before {
content: "\e610";
}
.iconuploadicon03:before {
content: "\e71a";
}
.iconcad-fill:before {
content: "\e7d8";
}
.iconwenbenwendang:before {
content: "\e645";
}
.iconexcel:before {
content: "\e66e";
}
.iconfangda:before {
content: "\e6de";
}
.iconsuoxiao:before {
content: "\e66d";
}
.iconmianceliang:before {
content: "\e90f";
}
.icondayin1:before {
content: "\e665";
}
.icondiqiu:before {
content: "\e7b9";
}
.iconceju:before {
content: "\e604";
}
.iconshuxing:before {
content: "\e62a";
}
No preview for this file type
{
"id": "2105925",
"name": "不动产项目",
"font_family": "iconfont",
"css_prefix_text": "icon",
"description": "权籍及互联网+不动产登记项目",
"glyphs": [
{
"icon_id": "8554264",
"name": "导入CAD",
"font_class": "tubiao_daoruCAD",
"unicode": "e630",
"unicode_decimal": 58928
},
{
"icon_id": "3747068",
"name": "地球",
"font_class": "diqiu1",
"unicode": "e60c",
"unicode_decimal": 58892
},
{
"icon_id": "12694038",
"name": "属性管理",
"font_class": "shuxingguanli",
"unicode": "e610",
"unicode_decimal": 58896
},
{
"icon_id": "605008",
"name": "zip",
"font_class": "uploadicon03",
"unicode": "e71a",
"unicode_decimal": 59162
},
{
"icon_id": "13254178",
"name": "cad-fill",
"font_class": "cad-fill",
"unicode": "e7d8",
"unicode_decimal": 59352
},
{
"icon_id": "2325940",
"name": "文本文档",
"font_class": "wenbenwendang",
"unicode": "e645",
"unicode_decimal": 58949
},
{
"icon_id": "14476526",
"name": "excel",
"font_class": "excel",
"unicode": "e66e",
"unicode_decimal": 58990
},
{
"icon_id": "2676724",
"name": "放大",
"font_class": "fangda",
"unicode": "e6de",
"unicode_decimal": 59102
},
{
"icon_id": "9655540",
"name": "缩小",
"font_class": "suoxiao",
"unicode": "e66d",
"unicode_decimal": 58989
},
{
"icon_id": "430199",
"name": "面测量",
"font_class": "mianceliang",
"unicode": "e90f",
"unicode_decimal": 59663
},
{
"icon_id": "1177695",
"name": "打印 (1)",
"font_class": "dayin1",
"unicode": "e665",
"unicode_decimal": 58981
},
{
"icon_id": "1719347",
"name": "地球",
"font_class": "diqiu",
"unicode": "e7b9",
"unicode_decimal": 59321
},
{
"icon_id": "5650846",
"name": "测距",
"font_class": "ceju",
"unicode": "e604",
"unicode_decimal": 58884
},
{
"icon_id": "15736919",
"name": "属性",
"font_class": "shuxing",
"unicode": "e62a",
"unicode_decimal": 58922
}
]
}
No preview for this file type
No preview for this file type
No preview for this file type
{
"pointSymbol": {
},
"lineSymbol": {
},
"fillSymbol": {
"defaultSymbol": {
"type": "simple-fill",
"color": [ 0,233, 245, 0.8 ],
"style": "solid",
"outline": {
"color": "#00e9f5",
"width": 1
}
},
"highlightSymbol": {
"type": "simple-fill",
"color": [ 245,3, 37, 0.8 ],
"style": "solid",
"outline": {
"color": "#f50325",
"width": 1
}
}
}
}
\ No newline at end of file
[{
"layerName": "ZDJBXX",
"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",
"id": "8"
},
{
"layerName": "ZRZ",
"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",
"id": "10"
}
]
\ No newline at end of file
......@@ -56,9 +56,9 @@
:style="{ left: left + 'px', top: top + 'px' }"
class="contextmenu"
>
<li>定位</li>
<li>导入图形</li>
<li>导出图形</li>
<li @click="postionToMap">定位</li>
<li @click="importGeo">导入图形</li>
<li @click="exportToShp">导出图形</li>
<li v-show="isZD">导入属性</li>
<li v-show="!isZD">导入楼盘</li>
<li>重叠分析</li>
......@@ -92,6 +92,10 @@
<li v-show="zdData.type == 'ljz'" @click="deleteLjz">删除逻辑幢</li>
<li v-show="zdData.type == 'zdy'" @click="deleteZdy">删除幢单元</li>
</ul>
<el-dialog title="导入图形" :visible.sync="improtDialog">
<import-geo :property-info="zdData" :geo-info="currentClickZdGeo" @closeImportDialog="closeImportDialog"></import-geo>
</el-dialog>
<!-- 添加定着物弹框 -->
<el-dialog title="新建" :visible.sync="dialogVisible" width="40%">
<Create @closeDialog="closeDialog" :auth="true"></Create>
......@@ -100,8 +104,11 @@
</template>
<script>
import lineItem from "./lineItem.vue";
import {deleteZdInfoByBsm} from "../../api/zd";
import {deleteZdInfoByBsm,exportShp} from "../../api/zd";
import Create from "../../views/panel/create/index";
import ImportGeo from './tx/importGeo'
import geoUtils from "@components/lineTree/tx/js/geoUtils";
import featureUpdate from "@libs/map/featureUpdate";
import {deleteLjz,deleteZdy} from "./../../api/lpb"
export default {
inheritAttrs: false,
......@@ -116,7 +123,8 @@ export default {
default: false,
}
},
components: { lineItem,Create },
components: { lineItem,Create,ImportGeo },
mixins:[geoUtils,featureUpdate],
data() {
return {
selectedDetail: {},
......@@ -127,6 +135,8 @@ export default {
left: 0,
isZD: true,
zdData:{},
currentClickZdGeo:"",
improtDialog:false,
dialogVisible:false,
//控制楼盘表
lpbvisible: false,
......@@ -371,7 +381,111 @@ export default {
}).catch(() => {
});
var self = this;
var BSM = "";
var type = this.zdData.type;
if(type == "zd"){
BSM = this.zdData.zdbsm;
}else {
BSM = this.zdData.bsm;
}
//删除图形相关信息
var type = this.zdData.type;
this.queryGeoByBsm(BSM,type,function (features){
if(features && features.length > 0){
var layer = null;
if(type == 'zd'){
layer = self.getLayerByName("ZDJBXX");
}else{
layer = self.getLayerByName("ZRZ");
}
var featureUrl = layer.layerUrl.replace("MapServer","FeatureServer");
featureUrl += "/"+layer.id;
self.delGraphic(featureUrl,features[0],null);
}
});
},
/*
* 导入图形
* */
importGeo(){
var self = this;
var BSM = "";
//先这么写着 后面返回类型 根据类型判断
var type = this.zdData.type;
if(type == "zd"){
BSM = this.zdData.zdbsm;
}else {
BSM = this.zdData.bsm;
}
this.queryGeoByBsm(BSM,type,function (features){
if(features && features.length > 0){
if(features[0].geometry){
self.$confirm('该条数据有地块信息,是否继续导入?', '提示', {
confirmButtonText: '继续',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
self.improtDialog = true;
self.currentClickZdGeo = features[0];
}).catch(() => {
self.$message({
type: 'info',
message: '已取消'
});
});
}else {
self.currentClickZdGeo = features[0];
self.improtDialog = true;
}
}else{
self.currentClickZdGeo = null;
self.improtDialog = true;
}
});
},
//导出
exportToShp(){
var self = this;
var BSM = this.zdData.zdbsm;
var type = this.zdData.type;
this.queryGeoByBsm(BSM,type,function (features){
var data = JSON.stringify(features[0]);
if(features && features.length > 0){
window.location.href = "/api/tx/shpUtils/writeShp?strObj="+encodeURI(data)
/*exportShp({
"strObj":encodeURI(data)
}).then(res => {
debugger
});*/
}else{
self.$message.warning("暂无空间信息!!!!");
}
});
},
//图形定位
postionToMap(){
var curretRouterInfo = {
path:this.$route.path,
query:this.$route.query
}
sessionStorage.setItem("curretRouterInfo",JSON.stringify(curretRouterInfo));
this.$router.push({
path: "/viewMap",
query: {
bsm: this.zdData.zdbsm,
type: this.zdData.type ? 'zd' : 'zrz'
}
});
},
//关闭图形弹框
closeImportDialog(){
this.improtDialog = false;
}
},
};
</script>
......
/*
* 图形相关的操作 js
* */
import layers from '@/assets/json/layers.json'
import queryUtils from "@libs/map/queryUtils";
import {loadModules} from "esri-loader"
import arcgisParser from 'terraformer-arcgis-parser'
import wktParse from 'terraformer-wkt-parser'
export default {
data(){
return{
}
},
methods: {
getLayerByName(name) {
for (var i = 0; i < layers.length; i++) {
if (layers[i].layerName == name) {
return layers[i];
}
}
return null;
},
queryGeoByBsm(bsm, type, callBackFunction) {
var layer = null;
if (type == 'zd') {
layer = this.getLayerByName("ZDJBXX");
} else if (type == 'zrz') {
layer = this.getLayerByName("ZRZ");
} else {
console.log("未定义类型!!");
return;
}
if (!layer) {
console.log("没有找到图层,不能查询");
return;
}
queryUtils.methods.queryByWhere(layer.layerUrl+"/"+layer.id, {"BSM": bsm}, null, true, null, null, function (res) {
var features = res.features;
if (callBackFunction && typeof callBackFunction == 'function') {
callBackFunction(features);
}
});
},
//生成介质点
craetJZPoint(graphic) {
var geomtry = graphic.geometry,rings = geomtry.rings[0];
var pointInfos = [];
this.getPointByRings(rings,pointInfos);
return pointInfos;
},
getPointByRings(rings,pointInfos){
for(var i = 0;i < rings.length;i++){
var children = rings[i];
if(children.length == 2 && typeof children[0] == 'number'){
var obj = {};
obj.jzdh = "j"+pointInfos.length;
obj.sxh = pointInfos.length;
obj.x = children[0];
obj.y = children[1];
pointInfos.push(obj);
}else {
this.getPointByRings(children,pointInfos);
}
}
},
//生成介质线
createJZLine(graphic,callBackFunction) {
var self = this;
loadModules([
"esri/geometry/support/geodesicUtils",
"esri/geometry/Point",
"esri/geometry/Polyline"
]).then(([
geodesicUtils,
Point,
Polyline
])=>{
//取得各个坐标点 然后生成外围坐标线
var geometry = graphic.geometry,
rings = geometry.rings,
points = [];
if(rings.length > 0){
for(var i = 0;i < rings.length;i++){
var danPoints = [];
self.getPointByRings(rings[i],danPoints);
points.push(danPoints);
}
}else {
var danPoints = [];
self.getPointByRings(rings,danPoints);
points.push(danPoints);
}
var lines = [];
//meters
for(var i = 0;i < points.length;i++){
for(var j = 0;j < points[i].length;j++){
if(j < (points[i].length - 1)){
const join = geodesicUtils.geodesicDistance(
new Point({ x: points[i][j].x, y: points[i][j].y }),
new Point({ x: points[i][j+1].x, y: points[i][j+1].y }),
"meters"
);
const { distance, azimuth } = join;
var obj = {
startPoint:points[i][j].x +"," +points[i][j].y ,
endPoint:points[i][j+1].x +","+points[i][j+1].y,
qdh:points[i][j].sxh,
zdh:points[i][j+1].sxh,
distance:distance,
jzxlx:"",
jzxwz:"",
jzxxz:"",
remark:""
}
lines.push(obj);
}else{
const join = geodesicUtils.geodesicDistance(
new Point({ x: points[i][j].x, y: points[i][j].y }),
new Point({ x: points[i][0].x, y: points[i][0].y }),
"meters"
);
const { distance, azimuth } = join;
var obj = {
startPoint:points[i][j].x +"," +points[i][j].y ,
endPoint:points[i][0].x +"," +points[i][0].y ,
qdh:points[i][j].sxh,
zdh:points[i][0].sxh,
distance:distance,
jzxlx:"",
jzxwz:"",
jzxxz:"",
remark:""
}
lines.push(obj);
}
}
}
if(callBackFunction && typeof callBackFunction == "function"){
callBackFunction(lines);
}
}).catch( err => {
throw (err);
})
},
//wkt转换成arcgis
parseWktToArc(wkt){
var primitive = wktParse.parse(wkt);
/*if(primitive.type == "MultiPolygon"){
primitive.type = "Polygon"
}*/
return arcgisParser.convert(primitive)
}
}
}
\ No newline at end of file
<template>
<div class="map">
<div :id="viewId" class="viewDiv">
</div>
</div>
</template>
<script>
import {loadModules} from 'esri-loader'
import {maps} from '@/libs/map/mapUtils'
export default {
props:{
viewId:{
type:String,
default:"mainView"
},
afterLoaderFunction:{
type:Function,
default:null
}
},
data(){
return{
}
},
mounted(){
this.initMap();
},
methods:{
initMap(){
var self = this;
loadModules([
"esri/views/MapView",
"esri/Map"
]).then(([
MapView,
esriMap
]) => {
var map = new esriMap({
basemap:"hybrid"
});
//108.95 34.27
var view = new MapView({
container: self.viewId,
map: map,
zoom:10,
zoom:10,
center: [-0.154133333770497,0.6138183594020817],
spatialReference: {
wkid: 102100
}
});
maps[self.viewId] = view;
if(self.afterLoaderFunction && typeof self.afterLoaderFunction == 'function'){
self.afterLoaderFunction(view);
}
}).catch(err => {
throw(err);
});
}
}
}
</script>
<style scoped lang="less">
.map{
height: 100%;
width: 100%;
.viewDiv{
height: 100%;
width: 100%;
}
}
</style>
\ No newline at end of file
import {loadModules} from 'esri-loader'
export default {
methods: {
identify(url,layerIds,geometry ,callBackFunction){
var self = this;
loadModules([
"esri/tasks/IdentifyTask",
"esri/tasks/support/IdentifyParameters"
]).then(([
IdentifyTask,
IdentifyParameters
]) => {
var identifyTask = new IdentifyTask({
url:url
}),
identifyParameters = new identifyParameters();
identifyParameters.geometry = geometry;
if(layerIds){
identifyParameters.layerIds = layerIds;
}
identifyParameters.layerOption = "all";
identifyParameters.spatialReference = geometry.spatialReference;
identifyTask.execute(identifyParameters).then(result => {
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(result);
}
});
}).catch(err => {
throw(err);
});
}
}
}
\ No newline at end of file
import {maps} from '@/libs/map/mapUtils'
import {loadModules} from 'esri-loader'
export default {
data() {
return {
drawAction:null,
graphicLayer:null,
creatEvent:null,
}
},
methods: {
initDraw(type,viewId,creationMode,callBackFunction){
var self = this;
loadModules([
"esri/widgets/Sketch",
"esri/layers/GraphicsLayer"
]).then(([
Sketch,
GraphicsLayer
]) => {
var view = maps[viewId];
if(!self.drawAction){
self.graphicLayer = new GraphicsLayer({
id:"_drawLayer"
})
self.drawAction = new Sketch({
view: view,
layer:self.graphicLayer,
creationMode: "single"
});
}else {
// this.drawAction.cancel();
if(creationMode){
self.drawAction.creationMode = creationMode;
}
// graphicLayer = view.map.findLayerById("_drawLayer");
}
self.drawAction.create(type);
if(self.creatEvent){
self.creatEvent.remove();
}
self.creatEvent = self.drawAction.on("create", function(event) {
if (event.state === "complete") {
self.graphicLayer.remove(event.graphic);
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(event.graphic.geometry);
}
}
})
}).catch(err=>{
throw(err);
});
},
destroyeDraw() {
if(this.drawAction){
this.drawAction.cancel();
}
}
}
}
\ No newline at end of file
/*
* 空间图层数据添加、修改、删除
* */
import {loadModules} from "esri-loader"
export default {
methods:{
addGraphic(url,graphic,callBackFunction){
loadModules([
"esri/layers/FeatureLayer",
"esri/Graphic",
"esri/geometry/Point",
"esri/geometry/Polygon",
"esri/geometry/Polyline"
]).then(([
FeatureLayer,
Graphic,
Point,
Polygon,
Polyline
])=>{
var featureLayer = new FeatureLayer({
url:url
})
var geo = null;
if(graphic.geometry.type == 'point'){
geo = new Point(graphic.geometry);
}else if(graphic.geometry.type == 'polyline'){
geo = new Polyline(graphic.geometry);
}else if(graphic.geometry.type == 'polygon'){
geo = new Polygon(graphic.geometry);
}
var saveGraphic = new Graphic({
attributes:graphic.attributes,
geometry:geo
});
featureLayer.applyEdits({
addFeatures:[saveGraphic]
}).then(function (res){
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(res);
}
})
}).catch( err => {
throw (err);
})
},
updateGraphic(url,graphic,callBackFunction){
loadModules([
"esri/layers/FeatureLayer",
"esri/Graphic",
"esri/geometry/Point",
"esri/geometry/Polygon",
"esri/geometry/Polyline"
]).then(([
FeatureLayer,
Graphic,
Point,
Polygon,
Polyline
])=>{
var featureLayer = new FeatureLayer({
url:url
})
var geo = null;
if(graphic.geometry.type == 'point'){
geo = new Point(graphic.geometry);
}else if(graphic.geometry.type == 'polyline'){
geo = new Polyline(graphic.geometry);
}else if(graphic.geometry.type == 'polygon'){
geo = new Polygon(graphic.geometry);
}
var updGraphic = new Graphic({
attributes:graphic.attributes,
geometry:geo
});
featureLayer.applyEdits({
updateFeatures:[updGraphic]
}).then(function (res){
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(res);
}
})
}).catch( err => {
throw (err);
})
},
delGraphic(url,graphic,callBackFunction){
loadModules([
"esri/layers/FeatureLayer"
]).then(([
FeatureLayer
])=>{
var featureLayer = new FeatureLayer({
url:url
})
featureLayer.applyEdits({
deleteFeatures:[graphic]
}).then(function (res){
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(res);
}
})
}).catch( err => {
throw (err);
})
}
}
}
\ No newline at end of file
import {loadCss,loadScript} from "esri-loader"
export function init(){
loadScript({url:"http://192.168.2.38/4.16/init.js"});
loadCss("http://192.168.2.38/4.16/esri/themes/light/main.css");
}
init();
\ No newline at end of file
var maps = {}
export {maps};
\ No newline at end of file
import {loadModules} from 'esri-loader'
import {maps} from '@/libs/map/mapUtils'
export default{
data(){
return{
//activeWidget:null,
areaActive:null,
distanceActive:null
}
},
methods: {
measure(viewId,type){
var view = maps[viewId];
var self = this;
loadModules([
"esri/widgets/DistanceMeasurement2D",
"esri/widgets/AreaMeasurement2D"
]).then(([
DistanceMeasurement2D,
AreaMeasurement2D
]) => {
switch (type) {
case "distance":
if(!self.distanceActive){
self.distanceActive = new DistanceMeasurement2D({
view: view
});
}
// skip the initial 'new measurement' button
self.distanceActive.viewModel.start();
break;
case "area":
if(!self.areaActive){
self.areaActive = new AreaMeasurement2D({
view: view
});
}
// skip the initial 'new measurement' button
self.areaActive.viewModel.start();
break;
case null:
if (self.distanceActive) {
self.distanceActive.viewModel.clear();
// self.distanceActive = null;
}
if (self.areaActive) {
self.areaActive.viewModel.clear();
// self.areaActive = null;
}
break;
}
}).catch(err => {
throw(err);
});
}
}
}
\ No newline at end of file
import {loadModules} from 'esri-loader'
export default{
methods: {
queryByWhere(url,queryWhere,geometry,returnGeometry,outFields ,outSpatialReference ,callBackFunction){
var self = this;
loadModules([
"esri/tasks/QueryTask",
"esri/tasks/support/Query"
]).then(([
QueryTask,
Query
]) => {
var queryTask = new QueryTask({
url: url
}),
query = new Query(),
where = "";
if (queryWhere){
var parames = self.parseObj2Arr(queryWhere);
//var isFrist = false;
for(var i = 0;i < parames.length; i++ ){
if(i == 0){
}else {
where += " and ";
}
if(Array.isArray(parames[i].value)){
where += parames[i].name + " in (" + parames[i].value.toString + ")";
}else if(typeof parames[i].value == 'number'){
where += parames[i].name + " =" + parames[i].value ;
}else{
where += parames[i].name + " =" + "'" + parames[i].value +"'";
}
}
} else {
where = "1=1";
}
query.where = where;
if(geometry){
query.geometry = geometry;
}
query.outSpatialReference = outSpatialReference ? outSpatialReference : {wkid:3857}
query.returnGeometry = returnGeometry ? true : false;
query.outFields = outFields ? outFields : ["*"];
queryTask.execute(query).then(function(results){
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(results);
}
});
}).catch( err => {
throw(err);
})
},
parseObj2Arr(object){
var arr = [];
for(var key in object){
var obj = {};
obj.name = key;
obj.value = object[key];
arr.push(obj);
}
return arr;
}
},
}
import {open,openShp} from "shapefile"
export default{
methods: {
readShpByFile(file,callBackFunction){
var reader = new FileReader();
reader.readAsBinaryString(file);
reader.οnlοad=function(){
var fileData = this.result ; //fileData就是读取到的文件的二进制数据
openShp(fileData).then(source => source.read()
.then(function log(result) {
if (result.done) return;
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(result.value);
}
return source.read().then(log);
}))
.catch(error => console.error(error.stack));
}
},
readShpByUrl(url,callBackFunction){
open(url).then(source => source.read()
.then(function log(result) {
if (result.done) return;
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(result.value);
}
return source.read().then(log);
}))
.catch(error => console.error(error.stack));
}
},
readShpByZip(zipUrl,callBackFunction){
}
}
\ No newline at end of file
......@@ -5,6 +5,14 @@ import store from '@store'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import '../mock/index.js'
//引入arcgis Api
import './libs/map/mapApi'
import './assets/iconfont/iconfont.js'
//引入iconFount字体库
import './assets/iconfont/iconfont.css'
import ElTreeSelect from 'el-select-tree'
//树型选择器
Vue.use(ElTreeSelect);
......@@ -29,6 +37,7 @@ if (
}
}, false)
}
import "babel-polyfill"
Vue.config.productionTip = false
Vue.use(ElementUI)
new Vue({
......
......@@ -71,6 +71,12 @@ const constantRoutes = [
code: "1-5",
component: () => import("@/views/zd/index"),
},
{
path: "/viewMap",
name: "地图",
code: "0-6",
component: () => import("@/views/systemTX/map"),
}
],
},
];
......
......@@ -31,6 +31,11 @@
<i :class="item.icon"></i>
<span>{{ item.name }}</span>
</div>
<div class="top-items tuOrShu" >
<i class="iconfont icondiqiu1" title="图形管理" v-if="!isMap" @click="goMap"></i>
<i class="iconfont iconshuxingguanli" title="属性管理" v-else @click="goBack"></i>
</div>
</div>
<!-- <div class="header-bottom">
<Navigation ref="navigation"></Navigation>
......@@ -127,7 +132,9 @@ export default {
},
pd: [],
dialogVisible: false,
treeHeight:0, //树结构区域高度
isMap:false,
treeHeight:0,
routerInfo:null
};
},
computed: {
......@@ -150,6 +157,13 @@ export default {
this.getRightTreeByZrzbsm(this.$store.state.zrzbsm);
}else if(newPath == "/dz"){
this.getRightTreeByDzbsm(this.$store.state.dzbsm);
} else if(newPath == "/viewMap"){
this.isMap = true;
if(this.$route.query.type == "zd"){
this.getRightTree(this.$route.query.bsm);
}else if(this.$route.query.type == "/zrz"){
this.getRightTreeByZrzbsm(this.$route.query.bsm);
}
} else {
this.getTreeList();
}
......@@ -349,7 +363,46 @@ export default {
getTreeList().then((res)=>{
this.pd=res.result;
})
},
goBack(){
this.isMap = false;
var curretRouterInfo = JSON.parse(sessionStorage.getItem("curretRouterInfo"));
//this.$router.back(-1);
if(curretRouterInfo){
this.$router.push({
path: curretRouterInfo.path,
query: curretRouterInfo.query
});
}else {
this.$router.back(-1);
}
},
goMap(){
var curretRouterInfo = {
path:this.$route.path,
query:this.$route.query
}
sessionStorage.setItem('curretRouterInfo',JSON.stringify(curretRouterInfo));
this.isMap = true;
var routerQuery = null;
var path = this.$route.path;
if(path == "/zd"){
routerQuery = {
bsm:this.$route.query.bsm,
type:"zd"
}
}else if(path == "/zrz"){
routerQuery = {
bsm:this.$route.query.bsm,
type:"zrz"
}
}
this.$router.push({
path: "/viewMap",
query: routerQuery
});
}
},
};
</script>
......@@ -411,6 +464,13 @@ export default {
border-bottom: 1px solid rgba(234, 234, 234, 1);
box-sizing: border-box;
}
.tuOrShu{
float: right !important;
.iconfont{
font-size: 21px;
}
}
}
.el-aside {
width: 290px !important;
......
......@@ -42,7 +42,7 @@
</el-card>
</div>
<div class="notice" ref="notice">
<el-card class="news">
<el-card>
<div slot="header" class="clearfix">
<span>通知公告</span>
<span class="edit">查看全部 <i class="fa fa-angle-right " aria-hidden="true"></i></span>
......@@ -113,7 +113,7 @@ export default {
handleSelect() {
//非编辑状态才可以点击
if (!isEdit) {
}
},
tableRowClassName({ row, rowIndex }) {
......@@ -137,7 +137,7 @@ export default {
message: '删除成功!'
});
}).catch(() => {
});
}
},
......@@ -182,17 +182,6 @@ export default {
div {
cursor: pointer;
flex: 1;
.el-badge{
width: 68px;
height: 68px;
display: block;
margin: 0 auto;
/deep/.el-badge__content{
top: 10px;
right: 14px;
background-color: #fa6400;
}
}
img {
width: 68px;
height: 68px;
......
......@@ -15,7 +15,7 @@
>办理
</el-button
>
<el-button type="text" size="small">定位</el-button>
<el-button type="text" size="small" @click="postionToMap(scope.row)">定位</el-button>
</template>
</el-table-column>
<el-table-column prop="bdcdyh" align="left" label="不动产单元号">
......@@ -170,6 +170,24 @@
}
});
},
//定位
//图形定位
postionToMap(rowData){
if(rowData.dylx == "zrz" || rowData.dylx == "zd"){
var curretRouterInfo = {
path:this.$route.path,
query:this.$route.query
}
sessionStorage.setItem("curretRouterInfo",JSON.stringify(curretRouterInfo));
this.$router.push({
path: "/viewMap",
query: {
bsm: rowData.glbsm,
type: rowData.dylx
}
});
}
}
},
computed: {},
watch: {},
......
<template>
<div class="testMap">
<div class="mapTools">
<mapTools :viewId="viewId"></mapTools>
</div>
<EsriMap :viewId = "viewId" :afterLoaderFunction="addLayer"></EsriMap>
</div>
</template>
<script>
import EsriMap from '@/components/map/EsriMap'
import MapTools from './mapWeight/mapTools'
import {loadModules} from 'esri-loader'
import {maps} from '@/libs/map/mapUtils'
import mapLayerManager from "./mapWeight/js/mapLayerManager";
export default {
components:{
EsriMap,
MapTools
},
data(){
return{
viewId:"testMap",
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"
}
},
mixins:[mapLayerManager],
mounted(){
var query = this.$route.query;
if(query && JSON.stringify(query) != "{}"){
this.addGeoByBsm(query.bsm,query.type,this.viewId);
}
},
methods:{
addLayer(){
var self = this;
var view = maps[this.viewId];
loadModules([
"esri/layers/MapImageLayer",
]).then(([
MapImageLayer,
])=>{
var mapImageLayer = new MapImageLayer({
url:self.layerUrl,
id:"testLayer",
spatialReference:view.spatialReference,
sublayers:[{
id:19,
visible:true
},
{
id:8,
visible:true
},
{
id:10,
visible:true
}]
});
view.map.add(mapImageLayer,1);
}).catch(err => {
throw(err);
})
}
}
}
</script>
<style scoped lang="less">
.testMap{
height: 100%;
width: 100%;
position: relative;
.mapTools{
position: absolute;
top: 12px;
z-index: 99;
right: 5px;
}
}
</style>
\ No newline at end of file
import layers from '@/assets/json/layers.json'
import graphicSymbol from '@/assets/json/graphicSymbol.json'
import queryUtils from "@libs/map/queryUtils";
import {loadModules} from "esri-loader"
import {maps} from '@/libs/map/mapUtils'
export default {
methods:{
getLayerByName(name) {
for (var i = 0; i < layers.length; i++) {
if (layers[i].layerName == name) {
return layers[i];
}
}
return null;
},
addGeoByBsm(bsm, type,viewId) {
var self = this;
var layer = null;
if (type == 'zd') {
layer = this.getLayerByName("ZDJBXX");
} else if (type == 'zrz') {
layer = this.getLayerByName("ZRZ");
} else {
console.log("未定义类型!!");
return;
}
if (!layer) {
console.log("没有找到图层,不能查询");
return;
}
queryUtils.methods.queryByWhere(layer.layerUrl+"/"+layer.id, {"BSM": bsm }, null, true, null, null, function (res) {
var features = res.features;
if(features && features.length > 0){
if( !features[0].geometry ){
self.$message.success("暂无图形信息!!");
return;
}
loadModules([
"esri/layers/GraphicsLayer"
]).then( ([
GraphicsLayer
]) => {
var view = maps[viewId];
var layer = view.map.findLayerById("highlightLayer");
if(layer){
layer.removeAll();
}else {
layer = new GraphicsLayer({
id:"highlightLayer"
})
view.map.add(layer);
}
var symbol = graphicSymbol.fillSymbol.highlightSymbol;
var graphic = features[0];
graphic.symbol = symbol;
layer.add(graphic);
view.center = graphic.geometry.extent.center;
}).catch( err => {
thow(err);
})
}else {
self.$message.success("暂无图形信息!!");
return;
}
});
},
}
}
\ No newline at end of file
<template>
<div class="tools">
<el-button-group>
<el-button type="primary" title="全图" icon="iconfont icondiqiu" @click="fullMap"></el-button>
<el-button type="primary" title="测面" icon="iconfont iconmianceliang" @click="measureMent('area')"></el-button>
<el-button type="primary" title="测距" icon="iconfont iconceju" @click="measureMent('distance')"></el-button>
<el-button type="primary" title="放大" icon="iconfont iconfangda" @click="zoomOut"></el-button>
<el-button type="primary" title="缩小" icon="iconfont iconsuoxiao" @click="zoomIn"></el-button>
<el-button type="primary" title="点选" icon="iconfont iconshuxing" @click="info"></el-button>
<el-button type="primary" title="清除" icon="el-icon-delete" @click="clear"></el-button>
</el-button-group>
</div>
</template>
<script>
import {maps} from '@/libs/map/mapUtils'
import draw from '@/libs/map/draw'
import identifyUtils from '@/libs/map/IdentifyUtils'
import measure from '@/libs/map/measure'
import {loadModules} from "esri-loader"
export default {
props:{
viewId:{
type:String,
default:"mainView"
}
},
mixins:[draw,identifyUtils,measure],
data(){
return{
url:""
}
},
methods:{
fullMap(){
var view = maps[this.viewId];
view.zoom = 10;
view.center = [108.95,34.27]
},
measureMent(type){
this.measure(this.viewId,type);
},
clearHeightLayer(){
},
clear(){
this.measure(this.viewId,null);
},
info(){
var view = maps[this.viewId];
var self = this;
this.initDraw("point",this.viewId,null,function(geo){
self.identify(self.url,[],geo,function(result){
debugger
});
});
},
zoomOut(){
var view = maps[this.viewId];
this.initDraw("rectangle",this.viewId,null,function(geo){
view.extent = geo.extent;
});
},
zoomIn(){
var view = maps[this.viewId];
this.initDraw("rectangle",this.viewId,null,function(geo){
var dWidth, dHeight, dXmin, dYmin, dXmax, dYmax;
dWidth = view.extent.width * view.extent.width / geo.extent.width;
dHeight = view.extent.height * view.extent.height / geo.extent.height;
dXmin = view.extent.xmin - ((geo.extent.xmin - view.extent.xmin) * view.extent.width / geo.extent.width);
dYmin = view.extent.ymin - ((geo.extent.ymin - view.extent.ymin) * view.extent.height / geo.extent.height);
dXmax = dXmin + dWidth;
dYmax = dYmin + dHeight;
//pEnv.PutCoords(dXmin, dYmin, dXmax, dYmax);
loadModules(["esri/geometry/Extent"]).then(([Extent]) => {
view.extent = new Extent({
xmin: dXmin,
ymin: dYmin,
xmax: dXmax,
ymax: dYmax,
spatialReference: {
wkid: 102100
}
});
}).catch( err => {
throw (err);
})
});
}
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
......@@ -20,6 +20,7 @@ import jzx from "./jzx";
import djb from "./djb";
import lshs from "./lshs";
import fjcl from "./fjcl/fjcl"
import {queryjzd,queryjzx} from "@/api/zd"
export default {
name: "",
components: {
......@@ -29,12 +30,34 @@ export default {
data() {
return {
activeName: "djdcb",
jzd:[],
jzx:[]
};
},
methods: {
handleClick(tab, event) {
// console.log(tab, event);
},
//查询界址点
getJZD(){
var bsm = this.$store.state.zdbsm;
this.jzx = [];
queryjzd({glBsm:bsm}).then(res => {
if(res.code == 200){
this.jzd = res.data.data;
}
})
},
//查询界址线
getJZX(){
var bsm = this.$store.state.zdbsm;
this.jzx = [];
queryjzx({glBsm:bsm}).then(res => {
if(res.code = 200){
this.jzx = res.data.data;
}
});
}
},
created() {},
mounted() {},
......
......@@ -171,7 +171,7 @@
},
methods: {
getData(bsm) {
queryjzd(bsm).then(res => {
queryjzd({glBsm:bsm}).then(res => {
for (let i = 0; i < res.result.length; i++) {
res.result[i]['isCheck'] = false;
res.result[i]['iszb'] = 'readonly';
......
......@@ -9,9 +9,9 @@
<table border="1">
<tr>
<td class="cz"><input type="checkbox" @click="allcheck" v-model="isCheckAll"/></td>
<td class="qsd">起始点</td>
<td class="zzd">终止点</td>
<td class="jzdj">界址点距(m)</td>
<td class="qdh">起始点号</td>
<td class="zdh">终止点号</td>
<td class="jzjj">界址间距(m)</td>
<td class="jzxlx">界址线类型</td>
<td class="jzxwz">界址线位置</td>
<td class="jxxz">界限性质</td>
......
......@@ -636,7 +636,7 @@ export default {
this.$store.state.xzqList = res.result;
})
.catch((error) => {});
getListByPbsm(djqdm)
.then((res) => {
this.$store.state.djzqList = res.result;
......