Merge branch 'zyl' of http://xny.yj-3d.com:3000/zhouyulong/electron-4 into zyl
This commit is contained in:
@ -1 +1 @@
|
||||
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><link rel=icon href=favicon.ico><title>后台管理</title><script src=./reconnecting-websocket.js></script><link href=static/css/app.425905c8.css rel=preload as=style><link href=static/css/chunk-elementUI.68c70ad5.css rel=preload as=style><link href=static/css/chunk-libs.3dfb7769.css rel=preload as=style><link href=static/js/app.a42dddd9.js rel=preload as=script><link href=static/js/chunk-elementUI.a9f82b5b.js rel=preload as=script><link href=static/js/chunk-libs.8de98ba2.js rel=preload as=script><link href=static/css/chunk-elementUI.68c70ad5.css rel=stylesheet><link href=static/css/chunk-libs.3dfb7769.css rel=stylesheet><link href=static/css/app.425905c8.css rel=stylesheet></head><body><noscript><strong>We're sorry but doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script>(function(e){function t(t){for(var r,c,a=t[0],f=t[1],i=t[2],l=0,d=[];l<a.length;l++)c=a[l],Object.prototype.hasOwnProperty.call(o,c)&&o[c]&&d.push(o[c][0]),o[c]=0;for(r in f)Object.prototype.hasOwnProperty.call(f,r)&&(e[r]=f[r]);s&&s(t);while(d.length)d.shift()();return u.push.apply(u,i||[]),n()}function n(){for(var e,t=0;t<u.length;t++){for(var n=u[t],r=!0,c=1;c<n.length;c++){var a=n[c];0!==o[a]&&(r=!1)}r&&(u.splice(t--,1),e=f(f.s=n[0]))}return e}var r={},c={runtime:0},o={runtime:0},u=[];function a(e){return f.p+"static/js/"+({}[e]||e)+"."+{"chunk-4f9321d9":"807bff37","chunk-6337fcfc":"ce706d4d","chunk-0efffb9c":"d572da12","chunk-4b70cc7c":"232e9b3d","chunk-69ab8e14":"e2ed086d","chunk-94d3c3c4":"d08f8612"}[e]+".js"}function f(t){if(r[t])return r[t].exports;var n=r[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,f),n.l=!0,n.exports}f.e=function(e){var t=[],n={"chunk-4f9321d9":1,"chunk-0efffb9c":1,"chunk-4b70cc7c":1,"chunk-69ab8e14":1,"chunk-94d3c3c4":1};c[e]?t.push(c[e]):0!==c[e]&&n[e]&&t.push(c[e]=new Promise((function(t,n){for(var r="static/css/"+({}[e]||e)+"."+{"chunk-4f9321d9":"f84b7bf2","chunk-6337fcfc":"31d6cfe0","chunk-0efffb9c":"83e65de7","chunk-4b70cc7c":"55335688","chunk-69ab8e14":"e18a06cd","chunk-94d3c3c4":"3c7f5ad9"}[e]+".css",o=f.p+r,u=document.getElementsByTagName("link"),a=0;a<u.length;a++){var i=u[a],l=i.getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(l===r||l===o))return t()}var d=document.getElementsByTagName("style");for(a=0;a<d.length;a++){i=d[a],l=i.getAttribute("data-href");if(l===r||l===o)return t()}var s=document.createElement("link");s.rel="stylesheet",s.type="text/css",s.onload=t,s.onerror=function(t){var r=t&&t.target&&t.target.src||o,u=new Error("Loading CSS chunk "+e+" failed.\n("+r+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=r,delete c[e],s.parentNode.removeChild(s),n(u)},s.href=o;var h=document.getElementsByTagName("head")[0];h.appendChild(s)})).then((function(){c[e]=0})));var r=o[e];if(0!==r)if(r)t.push(r[2]);else{var u=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=u);var i,l=document.createElement("script");l.charset="utf-8",l.timeout=120,f.nc&&l.setAttribute("nonce",f.nc),l.src=a(e);var d=new Error;i=function(t){l.onerror=l.onload=null,clearTimeout(s);var n=o[e];if(0!==n){if(n){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;d.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",d.name="ChunkLoadError",d.type=r,d.request=c,n[1](d)}o[e]=void 0}};var s=setTimeout((function(){i({type:"timeout",target:l})}),12e4);l.onerror=l.onload=i,document.head.appendChild(l)}return Promise.all(t)},f.m=e,f.c=r,f.d=function(e,t,n){f.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},f.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,t){if(1&t&&(e=f(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(f.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)f.d(n,r,function(t){return e[t]}.bind(null,r));return n},f.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return f.d(t,"a",t),t},f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.p="",f.oe=function(e){throw console.error(e),e};var i=window["webpackJsonp"]=window["webpackJsonp"]||[],l=i.push.bind(i);i.push=t,i=i.slice();for(var d=0;d<i.length;d++)t(i[d]);var s=l;n()})([]);</script><script src=static/js/chunk-elementUI.a9f82b5b.js></script><script src=static/js/chunk-libs.8de98ba2.js></script><script src=static/js/app.a42dddd9.js></script></body><script src=./echarts.min.js></script></html>
|
||||
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><link rel=icon href=favicon.ico><title>后台管理</title><script src=./reconnecting-websocket.js></script><link href=static/css/app.425905c8.css rel=preload as=style><link href=static/css/chunk-elementUI.68c70ad5.css rel=preload as=style><link href=static/css/chunk-libs.3dfb7769.css rel=preload as=style><link href=static/js/app.78bded60.js rel=preload as=script><link href=static/js/chunk-elementUI.a9f82b5b.js rel=preload as=script><link href=static/js/chunk-libs.8de98ba2.js rel=preload as=script><link href=static/css/chunk-elementUI.68c70ad5.css rel=stylesheet><link href=static/css/chunk-libs.3dfb7769.css rel=stylesheet><link href=static/css/app.425905c8.css rel=stylesheet></head><body><noscript><strong>We're sorry but doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script>(function(e){function t(t){for(var r,o,a=t[0],f=t[1],i=t[2],l=0,d=[];l<a.length;l++)o=a[l],Object.prototype.hasOwnProperty.call(c,o)&&c[o]&&d.push(c[o][0]),c[o]=0;for(r in f)Object.prototype.hasOwnProperty.call(f,r)&&(e[r]=f[r]);s&&s(t);while(d.length)d.shift()();return u.push.apply(u,i||[]),n()}function n(){for(var e,t=0;t<u.length;t++){for(var n=u[t],r=!0,o=1;o<n.length;o++){var a=n[o];0!==c[a]&&(r=!1)}r&&(u.splice(t--,1),e=f(f.s=n[0]))}return e}var r={},o={runtime:0},c={runtime:0},u=[];function a(e){return f.p+"static/js/"+({}[e]||e)+"."+{"chunk-6337fcfc":"ce706d4d","chunk-0efffb9c":"d572da12","chunk-3f6a3efe":"544dc7d3","chunk-69ab8e14":"e2ed086d","chunk-82667e48":"8fce4055","chunk-94d3c3c4":"d08f8612"}[e]+".js"}function f(t){if(r[t])return r[t].exports;var n=r[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,f),n.l=!0,n.exports}f.e=function(e){var t=[],n={"chunk-0efffb9c":1,"chunk-3f6a3efe":1,"chunk-69ab8e14":1,"chunk-82667e48":1,"chunk-94d3c3c4":1};o[e]?t.push(o[e]):0!==o[e]&&n[e]&&t.push(o[e]=new Promise((function(t,n){for(var r="static/css/"+({}[e]||e)+"."+{"chunk-6337fcfc":"31d6cfe0","chunk-0efffb9c":"83e65de7","chunk-3f6a3efe":"9af9c8c9","chunk-69ab8e14":"e18a06cd","chunk-82667e48":"8b1ab571","chunk-94d3c3c4":"3c7f5ad9"}[e]+".css",c=f.p+r,u=document.getElementsByTagName("link"),a=0;a<u.length;a++){var i=u[a],l=i.getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(l===r||l===c))return t()}var d=document.getElementsByTagName("style");for(a=0;a<d.length;a++){i=d[a],l=i.getAttribute("data-href");if(l===r||l===c)return t()}var s=document.createElement("link");s.rel="stylesheet",s.type="text/css",s.onload=t,s.onerror=function(t){var r=t&&t.target&&t.target.src||c,u=new Error("Loading CSS chunk "+e+" failed.\n("+r+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=r,delete o[e],s.parentNode.removeChild(s),n(u)},s.href=c;var h=document.getElementsByTagName("head")[0];h.appendChild(s)})).then((function(){o[e]=0})));var r=c[e];if(0!==r)if(r)t.push(r[2]);else{var u=new Promise((function(t,n){r=c[e]=[t,n]}));t.push(r[2]=u);var i,l=document.createElement("script");l.charset="utf-8",l.timeout=120,f.nc&&l.setAttribute("nonce",f.nc),l.src=a(e);var d=new Error;i=function(t){l.onerror=l.onload=null,clearTimeout(s);var n=c[e];if(0!==n){if(n){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;d.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",d.name="ChunkLoadError",d.type=r,d.request=o,n[1](d)}c[e]=void 0}};var s=setTimeout((function(){i({type:"timeout",target:l})}),12e4);l.onerror=l.onload=i,document.head.appendChild(l)}return Promise.all(t)},f.m=e,f.c=r,f.d=function(e,t,n){f.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},f.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,t){if(1&t&&(e=f(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(f.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)f.d(n,r,function(t){return e[t]}.bind(null,r));return n},f.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return f.d(t,"a",t),t},f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.p="",f.oe=function(e){throw console.error(e),e};var i=window["webpackJsonp"]=window["webpackJsonp"]||[],l=i.push.bind(i);i.push=t,i=i.slice();for(var d=0;d<i.length;d++)t(i[d]);var s=l;n()})([]);</script><script src=static/js/chunk-elementUI.a9f82b5b.js></script><script src=static/js/chunk-libs.8de98ba2.js></script><script src=static/js/app.78bded60.js></script></body><script src=./echarts.min.js></script></html>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
.el-row[data-v-78d0d29f]{margin-bottom:20px}.el-row[data-v-78d0d29f]:last-child{margin-bottom:0}.el-col[data-v-78d0d29f]{border-radius:4px}.grid-content[data-v-78d0d29f]{background:#fff;border:1px solid #f3f4f6;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 transparent,0 0 0 transparent;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 transparent,0 0 0 transparent;border-radius:8px}.userNum[data-v-78d0d29f]{height:10vh;line-height:10vh;min-height:60px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px}.userNum .img[data-v-78d0d29f]{width:48px;height:48px;margin-left:15px;line-height:100%}.userNum .img .svg-icon[data-v-78d0d29f]{width:100%;height:100%;vertical-align:baseline!important}.userNum .numCon[data-v-78d0d29f]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;line-height:1}.userNum .numCon div[data-v-78d0d29f]:first-child{width:100px;height:20px;line-height:20px;font-size:14px;font-weight:400;color:#6b7280;text-align:left;margin-top:2vh}.userNum .numCon div[data-v-78d0d29f]:last-child{width:100px;height:32px;font-size:24px;font-weight:400;color:#1d2129;margin-top:5px}.search[data-v-78d0d29f]{height:8vh;min-height:45px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px}.search .el-input[data-v-78d0d29f]{width:15vw;margin-left:20px;min-width:170px}.search .el-select[data-v-78d0d29f]{width:16vw;min-width:160px}.search .addUser[data-v-78d0d29f]{position:absolute;right:160px}.search .delUser[data-v-78d0d29f]{position:absolute;right:30px}.table[data-v-78d0d29f]{height:65vh}.table .title[data-v-78d0d29f]{width:100%;height:50px;padding:0 20px;line-height:50px;color:#1d2129;font-size:16px;font-weight:400;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid #f3f4f6}.table .title .totalNum[data-v-78d0d29f]{color:#6b7280;font-size:14px;font-weight:400}.table .tabCon[data-v-78d0d29f]{width:100%;padding:20px 20px 0 20px;height:100%}.table .tabCon .state[data-v-78d0d29f]{width:40px;height:24px;display:inline-block;opacity:1;border-radius:12px;background:rgba(0,180,42,.1);color:#00b42a;font-size:12px;font-weight:400}.table .tabCon .puase[data-v-78d0d29f]{background:rgba(245,63,63,.1);color:#f53f3f}.table .tabCon .el-table[data-v-78d0d29f]{height:calc(100% - 100px)!important}.el-table thead tr[data-v-78d0d29f],[data-v-78d0d29f] .el-table thead th{background-color:#f9fafb!important}[data-v-78d0d29f] .el-table--border td,[data-v-78d0d29f] .el-table--border th,[data-v-78d0d29f] .el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:unset!important}.el-table--border[data-v-78d0d29f],.el-table--group[data-v-78d0d29f]{border:unset!important}.el-table[data-v-78d0d29f]:before,[data-v-78d0d29f] .el-table--border:after,[data-v-78d0d29f] .el-table--group:after{background-color:unset!important}[data-v-78d0d29f] .el-table .el-table__body-wrapper td,[data-v-78d0d29f] .el-table .el-table__body-wrapper th.is-leaf{border-bottom:unset!important}.el-pagination[data-v-78d0d29f]{position:absolute;right:30px;margin-top:10px}[data-v-78d0d29f] .el-pager li{border:1px solid #d1d5db;border-radius:4px}[data-v-78d0d29f] .el-pager li.active{background:#165dff!important;color:#fff!important;border:unset!important}[data-v-78d0d29f] .el-dialog__title{padding:2px 10px;border-left:3px solid #165dff;font-size:16px;font-weight:400;color:#1d2129}[data-v-78d0d29f] .avatar-uploader .el-upload{border:1px dashed #dcdfe6;border-radius:6px;cursor:pointer;position:relative;overflow:hidden;width:100px;height:100px}[data-v-78d0d29f] .avatar-uploader .el-upload:hover{border-color:#409eff}[data-v-78d0d29f] .avatar-uploader-icon{font-size:28px;color:#8c939d;width:100px;height:100px;line-height:100px;text-align:center}[data-v-78d0d29f] .avatar{width:100px;height:100px;display:block}[data-v-78d0d29f] .el-dialog__body{padding:10px 20px 0 20px}[data-v-78d0d29f] .el-upload__tip{height:25px;line-height:25px}.show-pwd[data-v-78d0d29f]{position:absolute;right:10px;font-size:16px;color:#889aa4;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[data-v-78d0d29f] .no-status-icon .el-input__icon:after,[data-v-78d0d29f] .no-status-icon .el-input__icon:before{display:none!important}[data-v-78d0d29f] .el-table__body-wrapper{max-height:calc(100% - 45px)!important;overflow-y:auto!important}[data-v-78d0d29f] .userImg{width:32px;height:32px;border-radius:16px}
|
||||
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
.el-row[data-v-2a693de8]{margin-bottom:20px}.el-row[data-v-2a693de8]:last-child{margin-bottom:0}.el-col[data-v-2a693de8]{border-radius:4px}.grid-content[data-v-2a693de8]{background:#fff;border:1px solid #f3f4f6;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 transparent,0 0 0 transparent;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 transparent,0 0 0 transparent;border-radius:8px}.userNum[data-v-2a693de8]{height:10vh;line-height:10vh;min-height:60px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px}.userNum .img[data-v-2a693de8]{width:48px;height:48px;margin-left:15px;line-height:100%}.userNum .img .svg-icon[data-v-2a693de8]{width:100%;height:100%;vertical-align:baseline!important}.userNum .numCon[data-v-2a693de8]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;line-height:1}.userNum .numCon div[data-v-2a693de8]:first-child{width:100px;height:20px;line-height:20px;font-size:14px;font-weight:400;color:#6b7280;text-align:left;margin-top:2vh}.userNum .numCon div[data-v-2a693de8]:last-child{width:100px;height:32px;font-size:24px;font-weight:400;color:#1d2129;margin-top:5px}.search[data-v-2a693de8]{height:8vh;min-height:45px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px}.search .el-input[data-v-2a693de8]{width:15vw;margin-left:20px;min-width:170px}.search .el-select[data-v-2a693de8]{width:16vw;min-width:160px}.search .addUser[data-v-2a693de8]{position:absolute;right:160px}.search .delUser[data-v-2a693de8]{position:absolute;right:30px}.table[data-v-2a693de8]{height:65vh}.table .title[data-v-2a693de8]{width:100%;height:50px;padding:0 20px;line-height:50px;color:#1d2129;font-size:16px;font-weight:400;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid #f3f4f6}.table .title .totalNum[data-v-2a693de8]{color:#6b7280;font-size:14px;font-weight:400}.table .tabCon[data-v-2a693de8]{width:100%;padding:20px 20px 0 20px;height:100%}.table .tabCon .state[data-v-2a693de8]{width:40px;height:24px;display:inline-block;opacity:1;border-radius:12px;background:rgba(0,180,42,.1);color:#00b42a;font-size:12px;font-weight:400}.table .tabCon .puase[data-v-2a693de8]{background:rgba(245,63,63,.1);color:#f53f3f}.table .tabCon .el-table[data-v-2a693de8]{height:calc(100% - 100px)!important}.el-table thead tr[data-v-2a693de8],[data-v-2a693de8] .el-table thead th{background-color:#f9fafb!important}[data-v-2a693de8] .el-table--border td,[data-v-2a693de8] .el-table--border th,[data-v-2a693de8] .el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:unset!important}.el-table--border[data-v-2a693de8],.el-table--group[data-v-2a693de8]{border:unset!important}.el-table[data-v-2a693de8]:before,[data-v-2a693de8] .el-table--border:after,[data-v-2a693de8] .el-table--group:after{background-color:unset!important}[data-v-2a693de8] .el-table .el-table__body-wrapper td,[data-v-2a693de8] .el-table .el-table__body-wrapper th.is-leaf{border-bottom:unset!important}.el-pagination[data-v-2a693de8]{position:absolute;right:30px;margin-top:10px}[data-v-2a693de8] .el-pager li{border:1px solid #d1d5db;border-radius:4px}[data-v-2a693de8] .el-pager li.active{background:#165dff!important;color:#fff!important;border:unset!important}[data-v-2a693de8] .el-dialog__title{padding:2px 10px;border-left:3px solid #165dff;font-size:16px;font-weight:400;color:#1d2129}[data-v-2a693de8] .avatar-uploader .el-upload{border:1px dashed #dcdfe6;border-radius:6px;cursor:pointer;position:relative;overflow:hidden;width:100px;height:100px}[data-v-2a693de8] .avatar-uploader .el-upload:hover{border-color:#409eff}[data-v-2a693de8] .avatar-uploader-icon{font-size:28px;color:#8c939d;width:100px;height:100px;line-height:100px;text-align:center}[data-v-2a693de8] .avatar{width:100px;height:100px;display:block}[data-v-2a693de8] .el-dialog__body{padding:10px 20px 0 20px}[data-v-2a693de8] .el-upload__tip{height:25px;line-height:25px}.show-pwd[data-v-2a693de8]{position:absolute;right:10px;font-size:16px;color:#889aa4;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[data-v-2a693de8] .no-status-icon .el-input__icon:after,[data-v-2a693de8] .no-status-icon .el-input__icon:before{display:none!important}[data-v-2a693de8] .el-table__body-wrapper{max-height:calc(100% - 45px)!important;overflow-y:auto!important}[data-v-2a693de8] .userImg{width:32px;height:32px;border-radius:16px}
|
||||
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
.el-row[data-v-09824c6a]{margin-bottom:20px}.el-row[data-v-09824c6a]:last-child{margin-bottom:0}.el-col[data-v-09824c6a]{border-radius:4px}.grid-content[data-v-09824c6a]{background:#fff;border:1px solid #f3f4f6;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 transparent,0 0 0 transparent;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 transparent,0 0 0 transparent;border-radius:8px}.userNum[data-v-09824c6a]{height:10vh;line-height:10vh;min-height:60px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px}.userNum .img[data-v-09824c6a]{width:48px;height:48px;margin-left:15px;line-height:100%}.userNum .img .svg-icon[data-v-09824c6a]{width:100%;height:100%;vertical-align:baseline!important}.userNum .numCon[data-v-09824c6a]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;line-height:1}.userNum .numCon div[data-v-09824c6a]:first-child{width:100px;height:20px;line-height:20px;font-size:14px;font-weight:400;color:#6b7280;text-align:left;margin-top:2vh}.userNum .numCon div[data-v-09824c6a]:last-child{width:100px;height:32px;font-size:24px;font-weight:400;color:#1d2129;margin-top:5px}.search[data-v-09824c6a]{height:8vh;min-height:45px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px}.search .el-input[data-v-09824c6a]{width:15vw;margin-left:20px;min-width:170px}.search .el-select[data-v-09824c6a]{width:16vw;min-width:160px}.search .addUser[data-v-09824c6a]{position:absolute;right:160px}.search .delUser[data-v-09824c6a]{position:absolute;right:30px}.table[data-v-09824c6a]{height:65vh}.table .title[data-v-09824c6a]{width:100%;height:50px;padding:0 20px;line-height:50px;color:#1d2129;font-size:16px;font-weight:400;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid #f3f4f6}.table .title .totalNum[data-v-09824c6a]{color:#6b7280;font-size:14px;font-weight:400}.table .tabCon[data-v-09824c6a]{width:100%;padding:20px 20px 0 20px;height:100%}.table .tabCon .state[data-v-09824c6a]{width:40px;height:24px;display:inline-block;opacity:1;border-radius:12px;background:rgba(0,180,42,.1);color:#00b42a;font-size:12px;font-weight:400}.table .tabCon .puase[data-v-09824c6a]{background:rgba(245,63,63,.1);color:#f53f3f}.table .tabCon .el-table[data-v-09824c6a]{height:calc(100% - 100px)!important}.el-table thead tr[data-v-09824c6a],[data-v-09824c6a] .el-table thead th{background-color:#f9fafb!important}[data-v-09824c6a] .el-table--border td,[data-v-09824c6a] .el-table--border th,[data-v-09824c6a] .el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:unset!important}.el-table--border[data-v-09824c6a],.el-table--group[data-v-09824c6a]{border:unset!important}.el-table[data-v-09824c6a]:before,[data-v-09824c6a] .el-table--border:after,[data-v-09824c6a] .el-table--group:after{background-color:unset!important}[data-v-09824c6a] .el-table .el-table__body-wrapper td,[data-v-09824c6a] .el-table .el-table__body-wrapper th.is-leaf{border-bottom:unset!important}.el-pagination[data-v-09824c6a]{position:absolute;right:30px;margin-top:10px}[data-v-09824c6a] .el-pager li{border:1px solid #d1d5db;border-radius:4px}[data-v-09824c6a] .el-pager li.active{background:#165dff!important;color:#fff!important;border:unset!important}[data-v-09824c6a] .el-dialog__title{padding:2px 10px;border-left:3px solid #165dff;font-size:16px;font-weight:400;color:#1d2129}[data-v-09824c6a] .avatar-uploader .el-upload{border:1px dashed #dcdfe6;border-radius:6px;cursor:pointer;position:relative;overflow:hidden;width:100px;height:100px}[data-v-09824c6a] .avatar-uploader .el-upload:hover{border-color:#409eff}[data-v-09824c6a] .avatar-uploader-icon{font-size:28px;color:#8c939d;width:100px;height:100px;line-height:100px;text-align:center}[data-v-09824c6a] .avatar{width:100px;height:100px;display:block}[data-v-09824c6a] .el-dialog__body{padding:10px 20px 0 20px}[data-v-09824c6a] .el-upload__tip{height:25px;line-height:25px}.show-pwd[data-v-09824c6a]{position:absolute;right:10px;font-size:16px;color:#889aa4;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[data-v-09824c6a] .no-status-icon .el-input__icon:after,[data-v-09824c6a] .no-status-icon .el-input__icon:before{display:none!important}[data-v-09824c6a] .el-table__body-wrapper{max-height:calc(100% - 45px)!important;overflow-y:auto!important}[data-v-09824c6a] .userImg{width:32px;height:32px;border-radius:16px}
|
||||
@ -0,0 +1 @@
|
||||
.el-row[data-v-ac11e3fa]{margin-bottom:20px}.el-row[data-v-ac11e3fa]:last-child{margin-bottom:0}.el-col[data-v-ac11e3fa]{border-radius:4px}.grid-content[data-v-ac11e3fa]{background:#fff;border:1px solid #f3f4f6;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 transparent,0 0 0 transparent;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 transparent,0 0 0 transparent;border-radius:8px}.userNum[data-v-ac11e3fa]{height:10vh;line-height:10vh;min-height:60px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px}.userNum .img[data-v-ac11e3fa]{width:48px;height:48px;margin-left:15px;line-height:100%}.userNum .img .svg-icon[data-v-ac11e3fa]{width:100%;height:100%;vertical-align:baseline!important}.userNum .numCon[data-v-ac11e3fa]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;line-height:1}.userNum .numCon div[data-v-ac11e3fa]:first-child{width:100px;height:20px;line-height:20px;font-size:14px;font-weight:400;color:#6b7280;text-align:left;margin-top:2vh}.userNum .numCon div[data-v-ac11e3fa]:last-child{width:100px;height:32px;font-size:24px;font-weight:400;color:#1d2129;margin-top:5px}.search[data-v-ac11e3fa]{height:8vh;min-height:45px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px}.search .el-input[data-v-ac11e3fa]{width:15vw;margin-left:20px;min-width:170px}.search .el-select[data-v-ac11e3fa]{width:16vw;min-width:160px}.search .addUser[data-v-ac11e3fa]{position:absolute;right:160px}.search .delUser[data-v-ac11e3fa]{position:absolute;right:30px}.table[data-v-ac11e3fa]{height:65vh}.table .title[data-v-ac11e3fa]{width:100%;height:50px;padding:0 20px;line-height:50px;color:#1d2129;font-size:16px;font-weight:400;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid #f3f4f6}.table .title .totalNum[data-v-ac11e3fa]{color:#6b7280;font-size:14px;font-weight:400}.table .tabCon[data-v-ac11e3fa]{width:100%;padding:20px 20px 0 20px;height:100%}.table .tabCon .state[data-v-ac11e3fa]{width:40px;height:24px;display:inline-block;opacity:1;border-radius:12px;background:rgba(0,180,42,.1);color:#00b42a;font-size:12px;font-weight:400}.table .tabCon .puase[data-v-ac11e3fa]{background:rgba(245,63,63,.1);color:#f53f3f}.table .tabCon .el-table[data-v-ac11e3fa]{height:calc(100% - 100px)!important}.el-table thead tr[data-v-ac11e3fa],[data-v-ac11e3fa] .el-table thead th{background-color:#f9fafb!important}[data-v-ac11e3fa] .el-table--border td,[data-v-ac11e3fa] .el-table--border th,[data-v-ac11e3fa] .el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:unset!important}.el-table--border[data-v-ac11e3fa],.el-table--group[data-v-ac11e3fa]{border:unset!important}.el-table[data-v-ac11e3fa]:before,[data-v-ac11e3fa] .el-table--border:after,[data-v-ac11e3fa] .el-table--group:after{background-color:unset!important}[data-v-ac11e3fa] .el-table .el-table__body-wrapper td,[data-v-ac11e3fa] .el-table .el-table__body-wrapper th.is-leaf{border-bottom:unset!important}.el-pagination[data-v-ac11e3fa]{position:absolute;right:30px;margin-top:10px}[data-v-ac11e3fa] .el-pager li{border:1px solid #d1d5db;border-radius:4px}[data-v-ac11e3fa] .el-pager li.active{background:#165dff!important;color:#fff!important;border:unset!important}[data-v-ac11e3fa] .el-dialog__title{padding:2px 10px;border-left:3px solid #165dff;font-size:16px;font-weight:400;color:#1d2129}[data-v-ac11e3fa] .avatar-uploader .el-upload{border:1px dashed #dcdfe6;border-radius:6px;cursor:pointer;position:relative;overflow:hidden;width:100px;height:100px}[data-v-ac11e3fa] .avatar-uploader .el-upload:hover{border-color:#409eff}[data-v-ac11e3fa] .avatar-uploader-icon{font-size:28px;color:#8c939d;width:100px;height:100px;line-height:100px;text-align:center}[data-v-ac11e3fa] .avatar{width:100px;height:100px;display:block}[data-v-ac11e3fa] .el-dialog__body{padding:10px 20px 0 20px}[data-v-ac11e3fa] .el-upload__tip{height:25px;line-height:25px}.show-pwd[data-v-ac11e3fa]{position:absolute;right:10px;font-size:16px;color:#889aa4;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[data-v-ac11e3fa] .no-status-icon .el-input__icon:after,[data-v-ac11e3fa] .no-status-icon .el-input__icon:before{display:none!important}[data-v-ac11e3fa] .el-table__body-wrapper{max-height:calc(100% - 45px)!important;overflow-y:auto!important}[data-v-ac11e3fa] .userImg{width:32px;height:32px;border-radius:16px}
|
||||
1
src/renderer/public/backManage/static/js/app.00cdab8b.js
Normal file
1
src/renderer/public/backManage/static/js/app.00cdab8b.js
Normal file
File diff suppressed because one or more lines are too long
1
src/renderer/public/backManage/static/js/app.073b0f0b.js
Normal file
1
src/renderer/public/backManage/static/js/app.073b0f0b.js
Normal file
File diff suppressed because one or more lines are too long
1
src/renderer/public/backManage/static/js/app.78bded60.js
Normal file
1
src/renderer/public/backManage/static/js/app.78bded60.js
Normal file
File diff suppressed because one or more lines are too long
1
src/renderer/public/backManage/static/js/app.8c619c95.js
Normal file
1
src/renderer/public/backManage/static/js/app.8c619c95.js
Normal file
File diff suppressed because one or more lines are too long
1
src/renderer/public/backManage/static/js/app.d08456eb.js
Normal file
1
src/renderer/public/backManage/static/js/app.d08456eb.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
8
src/renderer/public/sdk/YJEarth.min.js
vendored
8
src/renderer/public/sdk/YJEarth.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@ -162,6 +162,18 @@ export default {
|
||||
graphLabelManage: '军标管理',
|
||||
version: '版本信息'
|
||||
},
|
||||
project: {
|
||||
engineeringSettings: '工程设置',
|
||||
importRoadNetwork: '路网导入',
|
||||
locationData: '地点数据',
|
||||
importPOLI: 'POLI导入',
|
||||
engineeringData: '工程数据',
|
||||
engineeringOverrideImport: '工程覆盖导入',
|
||||
engineeringMergeImports: '工程合并导入',
|
||||
engineeringExport: '工程导出',
|
||||
activated: '已启用',
|
||||
activate: '启用',
|
||||
},
|
||||
auths: {
|
||||
authType: '授权状态',
|
||||
authTime: '授权时间',
|
||||
|
||||
@ -162,6 +162,18 @@ export default {
|
||||
photoManage: 'Icon Management',
|
||||
version: 'Version information'
|
||||
},
|
||||
project: {
|
||||
engineeringSettings: 'Engineering Settings',
|
||||
importRoadNetwork: 'Import Road Network',
|
||||
locationData: 'Location Data',
|
||||
importPOLI: 'Import POLI',
|
||||
engineeringData: 'Engineering Data',
|
||||
engineeringOverrideImport: 'Engineering Override Import',
|
||||
engineeringMergeImports: 'Engineering Merge Imports',
|
||||
engineeringExport: 'Engineering Export',
|
||||
activated: 'activated',
|
||||
activate: 'activate',
|
||||
},
|
||||
auths: {
|
||||
authType: 'Authorization status',
|
||||
authTime: 'Authorization time',
|
||||
|
||||
@ -161,6 +161,18 @@ export default {
|
||||
photoManage: '圖標管理',
|
||||
version: '版本信息'
|
||||
},
|
||||
project: {
|
||||
engineeringSettings: '工程設置',
|
||||
importRoadNetwork: '路網導入',
|
||||
locationData: '地點數據',
|
||||
importPOLI: 'POLI導入',
|
||||
engineeringData: '工程數據',
|
||||
engineeringOverrideImport: '工程覆蓋導入',
|
||||
engineeringMergeImports: '工程合並導入',
|
||||
engineeringExport: '工程導出',
|
||||
activated: '已啟用',
|
||||
activate: '啟用',
|
||||
},
|
||||
auths: {
|
||||
authType: '授權狀態',
|
||||
authTime: '授權時間',
|
||||
|
||||
@ -828,6 +828,10 @@ img {
|
||||
background: transparent !important;
|
||||
}*/
|
||||
|
||||
.el-message.is-center {
|
||||
top: calc(5vw + 10px) !important;
|
||||
}
|
||||
|
||||
.el-message--success {
|
||||
background:
|
||||
linear-gradient(180deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
|
||||
|
||||
@ -2,11 +2,15 @@ import { TreeApi } from '@/api/tree'
|
||||
import { useTreeNode } from '../views/components/tree/hooks/treeNode'
|
||||
import { initMapData } from './initMapData'
|
||||
|
||||
export const addMapSource = async ({ type, id, sourceName = '未命名对象', opt = {} }, cd:any = null) => {
|
||||
export const addMapSource = async ({ type, id, sourceName = '未命名对象', opt = {} }, cd: any = null) => {
|
||||
const { cusAddNodes } = useTreeNode()
|
||||
if (!id) {
|
||||
id = new YJ.Tools().randomString()
|
||||
}
|
||||
//判断是否已有元素
|
||||
if (window.earth.entityMap.get(id)) {
|
||||
window.earth.entityMap.get(id).remove()
|
||||
}
|
||||
let options: any = await initMapData(type, opt, cd)
|
||||
let selectedNodes = window.treeObj.getSelectedNodes()
|
||||
let node = selectedNodes && selectedNodes[selectedNodes.length - 1]
|
||||
|
||||
@ -228,7 +228,7 @@ export const initMapData = async (type, data, cd) => {
|
||||
if(type === 'textBox') {
|
||||
entityObject.callback = (options) => {
|
||||
let params = structuredClone(options)
|
||||
let sourceName = '文本框'
|
||||
let sourceName = params.text ? params.text : '文本框'
|
||||
delete params.name
|
||||
delete params.host
|
||||
let params2 = {
|
||||
|
||||
@ -30,6 +30,7 @@ import theme from "@/utils/theme";
|
||||
import { handleInputLimit } from '@/utils/index'
|
||||
import Pagination from './components/Pagination/index.vue'
|
||||
import dispatchEventStorage from '@/utils/watchLocalStorage'
|
||||
import elTableInfiniteScroll from 'el-table-infinite-scroll';
|
||||
|
||||
// process.env["ELECTRON_DISABLE_SECURITY_WARNINGS"] = "true";
|
||||
|
||||
@ -76,7 +77,7 @@ const i18n = createI18n({
|
||||
});
|
||||
let systemSetting = JSON.parse(localStorage.getItem("systemSetting") || '{}')
|
||||
let skin = systemSetting.skinInfo ? systemSetting.skinInfo : "color1";
|
||||
if(!theme[skin]) {
|
||||
if (!theme[skin]) {
|
||||
skin = 'color1'
|
||||
}
|
||||
let colorVariable = Array.from(theme[skin].keys());
|
||||
@ -101,6 +102,7 @@ setupStore(setApp)
|
||||
setupSvgIcon(setApp)
|
||||
setApp.use(EventBusPlugin)
|
||||
setApp.use(router)
|
||||
setApp.use(elTableInfiniteScroll)
|
||||
setApp.use(ElementPlus, {
|
||||
locale: zhCn
|
||||
})
|
||||
|
||||
@ -740,6 +740,7 @@ const confirm = () => {
|
||||
TsApi.updateTsSource(params2).then(res => {
|
||||
if (res.code == 200) {
|
||||
ElMessage({type: "success", message: "操作成功"})
|
||||
// @ts-ignore
|
||||
cusUpdateNode({id: params.id, sourceName: params.name, detail: JSON.stringify(params)})
|
||||
}
|
||||
})
|
||||
|
||||
@ -490,6 +490,7 @@ const confirm = () => {
|
||||
TsApi.updateTsSource(params2).then(res => {
|
||||
if (res.code == 200) {
|
||||
ElMessage({type: "success", message: "操作成功"})
|
||||
// @ts-ignore
|
||||
cusUpdateNode({id: params.id, sourceName: params.name, detail: JSON.stringify(params)})
|
||||
}
|
||||
})
|
||||
|
||||
@ -190,6 +190,7 @@ import zhTw from 'element-plus/es/locale/lang/zh-tw'
|
||||
import en from 'element-plus/es/locale/lang/en'
|
||||
|
||||
const language = ref('zh-CN')
|
||||
// @ts-ignore
|
||||
language.value = JSON.parse(localStorage.getItem("systemSetting"))?.language || 'zh-CN'
|
||||
const locale = computed(() => (language.value === "zh-CN" ? zhCn : (language.value === "zh-TW" ? zhTw : en)))
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
<div class="engineering">
|
||||
<div class="engineering_title">
|
||||
<span class="fankuai"></span>
|
||||
<span class="setting_title">工程设置</span>
|
||||
<span class="setting_title">{{ t('project.engineeringSettings') }}</span>
|
||||
|
||||
<!-- <el-upload
|
||||
:action="uploadUrl()"
|
||||
@ -22,7 +22,7 @@
|
||||
<template #icon>
|
||||
<svg-icon name="road_network" />
|
||||
</template>
|
||||
<span>路网导入</span>
|
||||
<span>{{ t('project.importRoadNetwork') }}</span>
|
||||
</el-button>
|
||||
<!-- </el-upload> -->
|
||||
</div>
|
||||
@ -44,7 +44,7 @@
|
||||
<div class="item_right">
|
||||
<span style="color: rgba(var(--color-text2), 1)">{{ item.createdAt }}</span>
|
||||
<div class="but">
|
||||
<span v-if="item.isEnable">已启用</span>
|
||||
<span v-if="item.isEnable">{{ t('project.activated') }}</span>
|
||||
|
||||
<el-button
|
||||
v-if="!item.isEnable"
|
||||
@ -52,7 +52,7 @@
|
||||
style="border: 1px solid rgba(var(--color-base1), 0.5)"
|
||||
@click="enableRouteData(item)"
|
||||
>
|
||||
<span>启用</span>
|
||||
<span>{{ t('project.activate') }}</span>
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="!item.isEnable"
|
||||
@ -60,7 +60,7 @@
|
||||
style="border: 1px solid rgba(var(--color-base1), 0.5)"
|
||||
@click="delRouteData(item)"
|
||||
>
|
||||
<span>删除</span>
|
||||
<span>{{ t('general.删除') }}</span>
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
@ -70,7 +70,7 @@
|
||||
<div class="line"></div>
|
||||
<div class="engineering_title2">
|
||||
<span class="fankuai"></span>
|
||||
<span class="setting_title">地点数据</span>
|
||||
<span class="setting_title">{{ t('project.locationData') }}</span>
|
||||
<el-button
|
||||
color="#004b4b"
|
||||
@click="poiImport"
|
||||
@ -79,7 +79,7 @@
|
||||
<template #icon>
|
||||
<svg-icon name="POI" />
|
||||
</template>
|
||||
<span>POIL导入</span>
|
||||
<span>{{ t('project.importPOLI') }}</span>
|
||||
</el-button>
|
||||
</div>
|
||||
<div class="fileList" v-if="poiList.length">
|
||||
@ -101,7 +101,7 @@
|
||||
<div class="item_right">
|
||||
<span style="color: rgba(var(--color-text2), 1)">{{ item.createdAt }}</span>
|
||||
<div class="but">
|
||||
<span v-if="item.isEnable">已启用</span>
|
||||
<span v-if="item.isEnable">{{ t('project.activated') }}</span>
|
||||
|
||||
<el-button
|
||||
v-if="!item.isEnable"
|
||||
@ -109,7 +109,7 @@
|
||||
style="border: 1px solid rgba(var(--color-base1), 0.5)"
|
||||
@click="enablePoieData(item)"
|
||||
>
|
||||
<span>启用</span>
|
||||
<span>{{ t('project.activate') }}</span>
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="!item.isEnable"
|
||||
@ -117,7 +117,7 @@
|
||||
style="border: 1px solid rgba(var(--color-base1), 0.5)"
|
||||
@click="delPoiData(item)"
|
||||
>
|
||||
<span>删除</span>
|
||||
<span>{{ t('general.删除') }}</span>
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
@ -127,7 +127,7 @@
|
||||
<div class="line"></div>
|
||||
<div class="engineering_title2">
|
||||
<span class="fankuai"></span>
|
||||
<span class="setting_title">工程数据</span>
|
||||
<span class="setting_title">{{ t('project.engineeringData') }}</span>
|
||||
<el-button
|
||||
@click="importProject"
|
||||
color="#004b4b"
|
||||
@ -136,7 +136,7 @@
|
||||
<template #icon>
|
||||
<svg-icon name="leading_in" />
|
||||
</template>
|
||||
<span>工程覆盖导入</span>
|
||||
<span>{{ t('project.engineeringOverrideImport') }}</span>
|
||||
</el-button>
|
||||
<el-button
|
||||
@click="mergeProject"
|
||||
@ -146,7 +146,7 @@
|
||||
<template #icon>
|
||||
<svg-icon name="leading_in" />
|
||||
</template>
|
||||
<span>工程合并导入</span>
|
||||
<span>{{ t('project.engineeringMergeImports') }}</span>
|
||||
</el-button>
|
||||
<el-button
|
||||
@click="derive"
|
||||
@ -156,7 +156,7 @@
|
||||
<template #icon>
|
||||
<svg-icon name="leading_out" />
|
||||
</template>
|
||||
<span>工程导出</span>
|
||||
<span>{{ t('project.engineeringExport') }}</span>
|
||||
</el-button>
|
||||
</div>
|
||||
<div class="line"></div>
|
||||
@ -176,7 +176,8 @@ import {
|
||||
$changeComponentShow
|
||||
} from '@/utils/communication'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { dialog } from 'electron'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
const { t } = useI18n()
|
||||
// 上传状态
|
||||
const isUploading = ref(false)
|
||||
|
||||
|
||||
@ -92,12 +92,15 @@
|
||||
<el-col :span="18">
|
||||
<el-card shadow="hover">
|
||||
<el-table
|
||||
:data="modelList"
|
||||
:data="currModelList"
|
||||
:header-cell-style="{ 'text-align': 'center' }"
|
||||
border
|
||||
style="width: 100%"
|
||||
ref="tableRef"
|
||||
@header-dragend="handleHeaderDragend"
|
||||
v-el-table-infinite-scroll="loadMoreData"
|
||||
:infinite-scroll-distance="10"
|
||||
:infinite-scroll-disabled="disabledScroll"
|
||||
>
|
||||
<el-table-column type="index" label="序号" width="60" align="center" />
|
||||
<el-table-column prop="militaryName" label="名称" width="139" />
|
||||
@ -209,6 +212,24 @@ const contextMenu = reactive({
|
||||
})
|
||||
|
||||
const treeRef = ref()
|
||||
|
||||
//滚动加载
|
||||
const disabledScroll = ref(false)
|
||||
var currModelList: any = ref([])
|
||||
let page = 1
|
||||
const loadMoreData = () => {
|
||||
// 模拟加载更多数据
|
||||
setTimeout(() => {
|
||||
const start = (page - 1) * 8
|
||||
const end = start + 8
|
||||
currModelList.value = modelList.value.slice(0, end)
|
||||
page++
|
||||
// 检查是否还有更多数据
|
||||
if (page > modelList.value.length) {
|
||||
disabledScroll.value = true
|
||||
}
|
||||
}, 1000)
|
||||
}
|
||||
// @ts-ignore
|
||||
var sortableInstance: any = reactive(null)
|
||||
|
||||
@ -595,6 +616,9 @@ const getModelListByType = (id) => {
|
||||
formData.append('name', photoName.value)
|
||||
GraphApi.showModelByType(formData).then((res) => {
|
||||
modelList.value = res.data
|
||||
currModelList.value = []
|
||||
page = 1
|
||||
loadMoreData()
|
||||
})
|
||||
}
|
||||
const divContextMenu = (event: MouseEvent) => {
|
||||
|
||||
@ -94,11 +94,14 @@
|
||||
<el-card shadow="hover">
|
||||
<el-table
|
||||
ref="tableRef"
|
||||
:data="modelList"
|
||||
:data="currModelList"
|
||||
:header-cell-style="{ 'text-align': 'center' }"
|
||||
border
|
||||
style="width: 100%"
|
||||
@header-dragend="handleHeaderDragend"
|
||||
v-el-table-infinite-scroll="loadMoreData"
|
||||
:infinite-scroll-distance="10"
|
||||
:infinite-scroll-disabled="disabledScroll"
|
||||
>
|
||||
<el-table-column type="index" label="序号" width="60" align="center" />
|
||||
<el-table-column prop="modelName" label="模型名称" width="139" />
|
||||
@ -240,6 +243,24 @@ const handleHeaderDragend = (newWidth, oldWidth, column, event) => {
|
||||
})
|
||||
}
|
||||
|
||||
//滚动加载
|
||||
const disabledScroll = ref(false)
|
||||
var currModelList: any = ref([])
|
||||
let page = 1
|
||||
const loadMoreData = () => {
|
||||
// 模拟加载更多数据
|
||||
setTimeout(() => {
|
||||
const start = (page - 1) * 8
|
||||
const end = start + 8
|
||||
currModelList.value = modelList.value.slice(0, end)
|
||||
page++
|
||||
// 检查是否还有更多数据
|
||||
if (page > modelList.value.length) {
|
||||
disabledScroll.value = true
|
||||
}
|
||||
}, 1000)
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
var sortableInstance: any = reactive(null)
|
||||
|
||||
@ -662,6 +683,9 @@ const getModelListByType = (id) => {
|
||||
formData.append('name', photoName.value)
|
||||
ModelApi.showModelByType(formData).then((res) => {
|
||||
modelList.value = res.data
|
||||
currModelList.value = []
|
||||
page = 1
|
||||
loadMoreData()
|
||||
})
|
||||
}
|
||||
const divContextMenu = (event: MouseEvent) => {
|
||||
|
||||
@ -100,12 +100,15 @@
|
||||
<el-col :span="18">
|
||||
<el-card shadow="hover">
|
||||
<el-table
|
||||
:data="modelList"
|
||||
:data="currModelList"
|
||||
:header-cell-style="{ 'text-align': 'center' }"
|
||||
border
|
||||
style="width: 100%"
|
||||
ref="tableRef"
|
||||
@header-dragend="handleHeaderDragend"
|
||||
v-el-table-infinite-scroll="loadMoreData"
|
||||
:infinite-scroll-distance="10"
|
||||
:infinite-scroll-disabled="disabledScroll"
|
||||
>
|
||||
<el-table-column type="index" label="序号" width="60" align="center" />
|
||||
<el-table-column prop="iconName" label="名称" width="139" />
|
||||
@ -311,6 +314,24 @@ const reviewPhoto = (index) => {
|
||||
const seeBigPhoto = (index) => {
|
||||
currentIndex.value = index
|
||||
}
|
||||
|
||||
//滚动加载
|
||||
const disabledScroll = ref(false)
|
||||
var currModelList: any = ref([])
|
||||
let page = 1
|
||||
const loadMoreData = () => {
|
||||
// 模拟加载更多数据
|
||||
setTimeout(() => {
|
||||
const start = (page - 1) * 8
|
||||
const end = start + 8
|
||||
currModelList.value = modelList.value.slice(0, end)
|
||||
page++
|
||||
// 检查是否还有更多数据
|
||||
if (page > modelList.value.length) {
|
||||
disabledScroll.value = true
|
||||
}
|
||||
}, 1000)
|
||||
}
|
||||
// @ts-ignore
|
||||
var sortableInstance: any = reactive(null)
|
||||
|
||||
@ -683,6 +704,9 @@ const getModelListByType = async (id) => {
|
||||
formData.append('name', photoName.value)
|
||||
PhotoApi.showModelByType(formData).then((res) => {
|
||||
modelList.value = res.data
|
||||
currModelList.value = []
|
||||
page = 1
|
||||
loadMoreData()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -603,21 +603,23 @@ const sysChange = async () => {
|
||||
}
|
||||
const searchWayChange = (val) => {
|
||||
localStorage.setItem('searchWay', val)
|
||||
ElMessage.closeAll()
|
||||
ElMessage({
|
||||
message: '操作成功',
|
||||
message: '切换成功',
|
||||
type: 'success'
|
||||
})
|
||||
}
|
||||
const concurrentWorkloadChange = (val) => {
|
||||
YJ.Global.setMaximumRequestsPerServer(val)
|
||||
localStorage.setItem('concurrentcode', val)
|
||||
ElMessage.closeAll()
|
||||
ElMessage({
|
||||
message: '操作成功',
|
||||
message: '切换成功',
|
||||
type: 'success'
|
||||
})
|
||||
}
|
||||
const setView = () => {
|
||||
let msg = '操作成功'
|
||||
let msg = '设置成功'
|
||||
let view = YJ.Global.getCurrentView(window.earth)
|
||||
const options = {
|
||||
destination: view.position,
|
||||
@ -625,6 +627,7 @@ const setView = () => {
|
||||
}
|
||||
YJ.Global.setDefaultView(window.earth, options)
|
||||
localStorage.setItem('defaultView', JSON.stringify(options))
|
||||
ElMessage.closeAll()
|
||||
ElMessage({
|
||||
message: msg,
|
||||
type: 'success'
|
||||
@ -633,6 +636,7 @@ const setView = () => {
|
||||
const setData = () => {
|
||||
TreeApi.getTreeDefault().then((res) => {
|
||||
if (res.code == 0 || res.code == 200) {
|
||||
ElMessage.closeAll()
|
||||
ElMessage({
|
||||
message: '添加完成,2秒后将重启系统',
|
||||
type: 'success'
|
||||
@ -654,7 +658,9 @@ const intoBack = async () => {
|
||||
const { ipcRenderer } = require('electron')
|
||||
|
||||
let availablePort = await ipcRenderer.invoke('get-available-port')
|
||||
|
||||
let baseURL = localStorage.getItem('ip')
|
||||
console.log('availablePort', baseURL, availablePort)
|
||||
let _winMap = await ipcRenderer.invoke('get-_winMap')
|
||||
if (!_winMap.has(id)) {
|
||||
try {
|
||||
@ -684,6 +690,7 @@ const intoBack = async () => {
|
||||
}
|
||||
},
|
||||
`http://localhost:${availablePort}/backManage/index.html#/login?timestamp=${Date.now()}`,
|
||||
// `${baseURL}/backManage/index.html#/login?timestamp=${Date.now()}`,
|
||||
{},
|
||||
id
|
||||
)
|
||||
|
||||
@ -270,7 +270,8 @@ const methodMap = {
|
||||
opt: {
|
||||
id: id,
|
||||
name: name,
|
||||
positions: positions
|
||||
positions: positions,
|
||||
material: 1,
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -970,11 +971,11 @@ const methodMap = {
|
||||
params: {
|
||||
id: id,
|
||||
path: path[0],
|
||||
field: 'id',
|
||||
// field: 'id',
|
||||
name: name,
|
||||
headTables: [],
|
||||
opacity: 1,
|
||||
color: 'rgba(0,255,184,0.5)',
|
||||
// color: 'rgba(0,255,184,0.5)',
|
||||
show: true
|
||||
},
|
||||
id,
|
||||
|
||||
@ -112,7 +112,9 @@
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="标签风格" name="4">
|
||||
<labelStyle :type="title" :entityOptions="entityOptions"></labelStyle>
|
||||
<div class="div-item">
|
||||
<labelStyle :type="title" :entityOptions="entityOptions"></labelStyle>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
|
||||
@ -60,7 +60,7 @@
|
||||
<div class="col">
|
||||
<el-slider
|
||||
v-model="precision"
|
||||
:min="0"
|
||||
:min="1"
|
||||
:max="maxNum"
|
||||
placement="bottom"
|
||||
style="max-width: 100%"
|
||||
@ -77,7 +77,7 @@
|
||||
id="precision"
|
||||
type="number"
|
||||
title=""
|
||||
min="1"
|
||||
min="2"
|
||||
max="360"
|
||||
v-model="maxNum"
|
||||
@input="precisionMaxInput"
|
||||
|
||||
@ -183,8 +183,17 @@ const close = (e) => {
|
||||
baseDialog.value?.close()
|
||||
}
|
||||
const sure = (e) => {
|
||||
YJ.Global.ContourStartDraw(window.earth, show.value)
|
||||
baseDialog.value?.close()
|
||||
let value = YJ.Global.ContourStartDraw(window.earth, show.value)
|
||||
if (value) {
|
||||
ElMessage.closeAll()
|
||||
ElMessage({
|
||||
message: value,
|
||||
type: 'error'
|
||||
})
|
||||
}
|
||||
else {
|
||||
baseDialog.value?.close()
|
||||
}
|
||||
}
|
||||
defineExpose({
|
||||
open
|
||||
|
||||
@ -121,7 +121,7 @@
|
||||
max="999999.99"
|
||||
step="0.01"
|
||||
name="defaultTime"
|
||||
value="0"
|
||||
value="5"
|
||||
/>
|
||||
<span class="unit" style="top: 6px">s</span>
|
||||
<span class="arrow"></span>
|
||||
@ -264,7 +264,7 @@ let allData: any = reactive({
|
||||
name: '',
|
||||
points: [],
|
||||
repeat: '',
|
||||
defaultTime: 0,
|
||||
defaultTime: 5,
|
||||
totalTime: 0
|
||||
})
|
||||
const save = () => {
|
||||
@ -375,8 +375,7 @@ defineExpose({
|
||||
|
||||
<style scoped lang="scss">
|
||||
.afreshPlay {
|
||||
background:
|
||||
linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
|
||||
background: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
|
||||
linear-gradient(180deg, rgba(27, 248, 195, 0.2) 0%, rgba(27, 248, 195, 0) 100%) !important;
|
||||
border: 1px solid rgba(27, 248, 195, 1) !important;
|
||||
color: rgba(27, 248, 195, 1) !important;
|
||||
@ -387,8 +386,7 @@ defineExpose({
|
||||
}
|
||||
|
||||
.cease {
|
||||
background:
|
||||
linear-gradient(180deg, rgba(241, 108, 85, 0.2) 0%, rgba(241, 108, 85, 0) 100%),
|
||||
background: linear-gradient(180deg, rgba(241, 108, 85, 0.2) 0%, rgba(241, 108, 85, 0) 100%),
|
||||
rgba(0, 0, 0, 0.5) !important;
|
||||
border: 1px solid rgba(241, 108, 85, 1) !important;
|
||||
color: rgba(241, 108, 85, 1) !important;
|
||||
@ -399,8 +397,7 @@ defineExpose({
|
||||
}
|
||||
|
||||
.video {
|
||||
background:
|
||||
linear-gradient(
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(71, 27, 5, 0.3) 0%,
|
||||
rgba(71, 27, 5, 0.3) 0%,
|
||||
|
||||
@ -38,7 +38,108 @@
|
||||
<div>
|
||||
<div style="display: flex; margin-bottom: 12px; align-items: center">
|
||||
<span class="label" style="flex: 0 0 60px">椭圆基准</span>
|
||||
<div class="datalist_left"></div>
|
||||
<!-- <div class="datalist_left"></div> -->
|
||||
<el-select
|
||||
class="datalist_left"
|
||||
style="width: 175px"
|
||||
v-model="coordinate"
|
||||
@change="sysChange"
|
||||
>
|
||||
<div
|
||||
class="group-header"
|
||||
:class="
|
||||
name_map1.filter((item) => {
|
||||
return item.epsg == coordinate
|
||||
}).length > 0
|
||||
? 'arrowActive'
|
||||
: ''
|
||||
"
|
||||
@click="toggleGroup('hot')"
|
||||
>
|
||||
地理坐标系
|
||||
<svg-icon
|
||||
v-if="isHotGroupOpen"
|
||||
name="arrow2"
|
||||
:size="10"
|
||||
:color="
|
||||
name_map1.filter((item) => {
|
||||
return item.epsg == coordinate
|
||||
}).length > 0
|
||||
? 'rgba(0, 255, 255, 1)'
|
||||
: 'rgba(255, 255, 255, 1)'
|
||||
"
|
||||
style="margin-left: 10px"
|
||||
></svg-icon>
|
||||
<svg-icon
|
||||
v-else
|
||||
name="arrow1"
|
||||
:size="10"
|
||||
:color="
|
||||
name_map1.filter((item) => {
|
||||
return item.epsg == coordinate
|
||||
}).length > 0
|
||||
? 'rgba(0, 255, 255, 1)'
|
||||
: 'rgba(255, 255, 255, 1)'
|
||||
"
|
||||
style="margin-left: 10px"
|
||||
></svg-icon>
|
||||
</div>
|
||||
<div v-show="isHotGroupOpen">
|
||||
<el-option
|
||||
v-for="item in name_map1"
|
||||
:key="item.epsg"
|
||||
:label="item.name"
|
||||
:value="item.epsg"
|
||||
></el-option>
|
||||
</div>
|
||||
<div
|
||||
class="group-header"
|
||||
:class="
|
||||
name_map2.filter((item) => {
|
||||
return item.epsg == coordinate
|
||||
}).length > 0
|
||||
? 'arrowActive'
|
||||
: ''
|
||||
"
|
||||
@click="toggleGroup('ty')"
|
||||
>
|
||||
投影坐标系
|
||||
<svg-icon
|
||||
v-if="isHotGroupOpen2"
|
||||
name="arrow2"
|
||||
:size="10"
|
||||
:color="
|
||||
name_map2.filter((item) => {
|
||||
return item.epsg == coordinate
|
||||
}).length > 0
|
||||
? 'rgba(0, 255, 255, 1)'
|
||||
: 'rgba(255, 255, 255, 1)'
|
||||
"
|
||||
style="margin-left: 10px"
|
||||
></svg-icon>
|
||||
<svg-icon
|
||||
v-else
|
||||
name="arrow1"
|
||||
:size="10"
|
||||
:color="
|
||||
name_map2.filter((item) => {
|
||||
return item.epsg == coordinate
|
||||
}).length > 0
|
||||
? 'rgba(0, 255, 255, 1)'
|
||||
: 'rgba(255, 255, 255, 1)'
|
||||
"
|
||||
style="margin-left: 10px"
|
||||
></svg-icon>
|
||||
</div>
|
||||
<div v-show="isHotGroupOpen2">
|
||||
<el-option
|
||||
v-for="item in name_map2"
|
||||
:key="item.epsg"
|
||||
:label="item.name"
|
||||
:value="item.epsg"
|
||||
></el-option>
|
||||
</div>
|
||||
</el-select>
|
||||
</div>
|
||||
<div style="display: flex; margin-bottom: 12px; align-items: center">
|
||||
<span class="label" style="flex: 0 0 60px">经度(x)</span>
|
||||
@ -87,7 +188,108 @@
|
||||
<div>
|
||||
<div style="display: flex; margin-bottom: 12px; align-items: center">
|
||||
<span class="label" style="flex: 0 0 60px">椭圆基准</span>
|
||||
<div class="datalist_right"></div>
|
||||
<!-- <div class="datalist_right"></div> -->
|
||||
<el-select
|
||||
class="datalist_right"
|
||||
style="width: 175px"
|
||||
v-model="coordinate2"
|
||||
@change="sysChange"
|
||||
>
|
||||
<div
|
||||
class="group-header"
|
||||
:class="
|
||||
name_map1.filter((item) => {
|
||||
return item.epsg == coordinate2
|
||||
}).length > 0
|
||||
? 'arrowActive'
|
||||
: ''
|
||||
"
|
||||
@click="toggleGroup('hot')"
|
||||
>
|
||||
地理坐标系
|
||||
<svg-icon
|
||||
v-if="isHotGroupOpen"
|
||||
name="arrow2"
|
||||
:size="10"
|
||||
:color="
|
||||
name_map1.filter((item) => {
|
||||
return item.epsg == coordinate2
|
||||
}).length > 0
|
||||
? 'rgba(0, 255, 255, 1)'
|
||||
: 'rgba(255, 255, 255, 1)'
|
||||
"
|
||||
style="margin-left: 10px"
|
||||
></svg-icon>
|
||||
<svg-icon
|
||||
v-else
|
||||
name="arrow1"
|
||||
:size="10"
|
||||
:color="
|
||||
name_map1.filter((item) => {
|
||||
return item.epsg == coordinate2
|
||||
}).length > 0
|
||||
? 'rgba(0, 255, 255, 1)'
|
||||
: 'rgba(255, 255, 255, 1)'
|
||||
"
|
||||
style="margin-left: 10px"
|
||||
></svg-icon>
|
||||
</div>
|
||||
<div v-show="isHotGroupOpen">
|
||||
<el-option
|
||||
v-for="item in name_map1"
|
||||
:key="item.epsg"
|
||||
:label="item.name"
|
||||
:value="item.epsg"
|
||||
></el-option>
|
||||
</div>
|
||||
<div
|
||||
class="group-header"
|
||||
:class="
|
||||
name_map2.filter((item) => {
|
||||
return item.epsg == coordinate2
|
||||
}).length > 0
|
||||
? 'arrowActive'
|
||||
: ''
|
||||
"
|
||||
@click="toggleGroup('ty')"
|
||||
>
|
||||
投影坐标系
|
||||
<svg-icon
|
||||
v-if="isHotGroupOpen2"
|
||||
name="arrow2"
|
||||
:size="10"
|
||||
:color="
|
||||
name_map2.filter((item) => {
|
||||
return item.epsg == coordinate2
|
||||
}).length > 0
|
||||
? 'rgba(0, 255, 255, 1)'
|
||||
: 'rgba(255, 255, 255, 1)'
|
||||
"
|
||||
style="margin-left: 10px"
|
||||
></svg-icon>
|
||||
<svg-icon
|
||||
v-else
|
||||
name="arrow1"
|
||||
:size="10"
|
||||
:color="
|
||||
name_map2.filter((item) => {
|
||||
return item.epsg == coordinate2
|
||||
}).length > 0
|
||||
? 'rgba(0, 255, 255, 1)'
|
||||
: 'rgba(255, 255, 255, 1)'
|
||||
"
|
||||
style="margin-left: 10px"
|
||||
></svg-icon>
|
||||
</div>
|
||||
<div v-show="isHotGroupOpen2">
|
||||
<el-option
|
||||
v-for="item in name_map2"
|
||||
:key="item.epsg"
|
||||
:label="item.name"
|
||||
:value="item.epsg"
|
||||
></el-option>
|
||||
</div>
|
||||
</el-select>
|
||||
</div>
|
||||
<div style="display: flex; margin-bottom: 12px; align-items: center">
|
||||
<span class="label" style="flex: 0 0 60px">经度(x)</span>
|
||||
@ -118,6 +320,48 @@ const eventBus: any = inject('bus')
|
||||
|
||||
var status1: any = ref(false)
|
||||
var tools: any = reactive([])
|
||||
//新坐标下拉选项
|
||||
var coordinate: any = ref('EPSG:4326')
|
||||
var coordinate2: any = ref('EPSG:4326')
|
||||
const isHotGroupOpen: any = ref(true)
|
||||
const isHotGroupOpen2: any = ref(true)
|
||||
const name_map: any = ref([])
|
||||
const name_map1: any = ref([])
|
||||
const name_map2: any = ref([
|
||||
{
|
||||
epsg: 'EPSG:32601',
|
||||
name: 'WGS84 通用横轴墨卡托投影'
|
||||
},
|
||||
{
|
||||
epsg: 'EPSG:4534',
|
||||
name: '2000 坐标 3 度不带代号'
|
||||
},
|
||||
{
|
||||
epsg: 'EPSG:4513',
|
||||
name: '2000 坐标 3 度带代号'
|
||||
},
|
||||
{
|
||||
epsg: 'EPSG:4502',
|
||||
name: '2000 坐标 6 度不带代号'
|
||||
},
|
||||
{
|
||||
epsg: 'EPSG:4491',
|
||||
name: '2000 坐标 6 度带代号'
|
||||
}
|
||||
])
|
||||
|
||||
let tool = new YJ.Tools(window.earth)
|
||||
name_map.value = Array.from(tool.name_map.values())
|
||||
name_map1.value = name_map.value.splice(0, 2)
|
||||
const toggleGroup = (type: string) => {
|
||||
if (type === 'hot') isHotGroupOpen.value = !isHotGroupOpen.value
|
||||
if (type === 'ty') isHotGroupOpen2.value = !isHotGroupOpen2.value
|
||||
}
|
||||
|
||||
const sysChange = () => {
|
||||
tools && tools.updateCoordinates(coordinate.value, coordinate2.value)
|
||||
}
|
||||
|
||||
eventBus.on('ProjectionConvertDialog', () => {
|
||||
baseDialog.value?.open()
|
||||
if (status1.value) {
|
||||
@ -151,6 +395,8 @@ const open = () => {
|
||||
}
|
||||
|
||||
const closeCallBack = (e) => {
|
||||
coordinate.value = 'EPSG:4326'
|
||||
coordinate2.value = 'EPSG:4326'
|
||||
status1.value = false
|
||||
tools && tools.projectionConvert(status1.value, () => {})
|
||||
}
|
||||
|
||||
@ -50,6 +50,7 @@
|
||||
max="9999999"
|
||||
v-model="waterVolume"
|
||||
@input="waterVolumeInput"
|
||||
@change="changeWater"
|
||||
/>
|
||||
<span class="unit">m³</span>
|
||||
<span class="arrow"></span>
|
||||
@ -69,6 +70,7 @@
|
||||
max="9999999"
|
||||
v-model="minWaterLevel"
|
||||
@input="minWaterLevelInput"
|
||||
@change="changeWater"
|
||||
/>
|
||||
<span class="unit">m</span>
|
||||
<span class="arrow"></span>
|
||||
@ -86,6 +88,7 @@
|
||||
max="9999999"
|
||||
v-model="maxWaterLevel"
|
||||
@input="maxWaterLevelInput"
|
||||
@change="changeWater"
|
||||
/>
|
||||
<span class="unit">m</span>
|
||||
<span class="arrow"></span>
|
||||
@ -226,6 +229,10 @@ var submerge: any = reactive([])
|
||||
var isPausng = ref(false)
|
||||
var readOnly = ref(true)
|
||||
|
||||
const changeWater = () => {
|
||||
submerge.restart()
|
||||
}
|
||||
|
||||
eventBus.on('submergeDialog', () => {
|
||||
baseDialog.value?.open()
|
||||
|
||||
@ -283,11 +290,14 @@ onBeforeUnmount(() => {
|
||||
function close() {
|
||||
baseDialog.value?.close()
|
||||
}
|
||||
|
||||
function drawEnd(data) {
|
||||
oriData = data
|
||||
}
|
||||
//方法
|
||||
function draw() {
|
||||
submerge.draw()
|
||||
submerge.draw(drawEnd)
|
||||
}
|
||||
|
||||
function flyTo() {
|
||||
submerge.flyTo()
|
||||
}
|
||||
@ -378,6 +388,7 @@ function areaInput() {
|
||||
submerge.maxWaterLevel = maxWaterLevel.value
|
||||
}
|
||||
}
|
||||
let oriData = waterVolume.value
|
||||
function waterVolumeInput() {
|
||||
let dom: any = document.getElementById('waterVolume')
|
||||
if (waterVolume.value < dom.min * 1) {
|
||||
@ -388,7 +399,13 @@ function waterVolumeInput() {
|
||||
waterVolume.value = Math.floor(waterVolume.value * 10000) / 10000
|
||||
if (area.value) {
|
||||
waterLevel.value = Number((waterVolume.value / area.value).toFixed(4))
|
||||
maxWaterLevel.value = maxWaterLevel.value + waterLevel.value
|
||||
if (waterVolume.value > oriData) {
|
||||
maxWaterLevel.value = maxWaterLevel.value + waterLevel.value
|
||||
} else if (waterVolume.value < oriData) {
|
||||
let data = maxWaterLevel.value - waterLevel.value
|
||||
maxWaterLevel.value = data > minWaterLevel.value ? data : minWaterLevel.value
|
||||
}
|
||||
oriData = waterVolume.value
|
||||
|
||||
submerge.waterLevels = waterLevel.value
|
||||
submerge.maxWaterLevel = maxWaterLevel.value
|
||||
@ -403,6 +420,7 @@ function risingSpeedInput() {
|
||||
risingSpeed.value = dom.max * 1
|
||||
}
|
||||
submerge.risingSpeed = risingSpeed.value
|
||||
submerge.restart()
|
||||
}
|
||||
}
|
||||
defineExpose({
|
||||
|
||||
@ -129,7 +129,9 @@
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="标签风格" name="4">
|
||||
<labelStyle :type="title" :entityOptions="entityOptions"></labelStyle>
|
||||
<div class="div-item">
|
||||
<labelStyle :type="title" :entityOptions="entityOptions"></labelStyle>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
|
||||
@ -90,7 +90,9 @@
|
||||
<attribute :entityOptions="entityOptions"></attribute>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="标签风格" name="2">
|
||||
<labelStyle :entityOptions="entityOptions"></labelStyle>
|
||||
<div class="div-item">
|
||||
<labelStyle :entityOptions="entityOptions"></labelStyle>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
|
||||
@ -173,7 +173,9 @@
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="标签风格" name="3">
|
||||
<labelStyle type="线" :entityOptions="entityOptions"></labelStyle>
|
||||
<div class="div-item">
|
||||
<labelStyle type="线" :entityOptions="entityOptions"></labelStyle>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
|
||||
@ -137,12 +137,12 @@
|
||||
</el-tree>
|
||||
</div>
|
||||
|
||||
<div class="model-gallery" ref="galleryRef">
|
||||
<div class="model-gallery" ref="galleryRef" @scroll="handleScroll">
|
||||
<div class="model-section" v-if="categories.length != 0">
|
||||
<!-- <h2 class="section-title">{{ categories[Number(currentTypeId)].name }}</h2> -->
|
||||
<div class="model-grid">
|
||||
<div
|
||||
v-for="(model, mIndex) in categories"
|
||||
v-for="(model, mIndex) in currModelList"
|
||||
:key="mIndex"
|
||||
class="model-item"
|
||||
@click="modelClick(mIndex, model)"
|
||||
@ -271,23 +271,31 @@ const initObserver = () => {
|
||||
})
|
||||
}
|
||||
|
||||
//滚动加载
|
||||
var currModelList: any = ref([])
|
||||
|
||||
let page = 1
|
||||
// 模拟加载更多数据
|
||||
const loadMoreData = () => {
|
||||
if (loading.value) return
|
||||
loading.value = true
|
||||
// if (loading.value) return
|
||||
// loading.value = true
|
||||
setTimeout(() => {
|
||||
categories.value.push({
|
||||
id: `${categories.value.length + 1}`,
|
||||
name: `新增分类_${categories.value.length}`,
|
||||
models: Array(10)
|
||||
.fill(0)
|
||||
.map((_, i) => ({
|
||||
id: `n${i}`,
|
||||
name: `新增军标_${i}`,
|
||||
thumbnail: `https://picsum.photos/300/200?random=${i + 100}`
|
||||
}))
|
||||
})
|
||||
loading.value = false
|
||||
const start = (page - 1) * 24
|
||||
const end = start + 24
|
||||
currModelList.value = categories.value.slice(0, end)
|
||||
page++
|
||||
// categories.value.push({
|
||||
// id: `${categories.value.length + 1}`,
|
||||
// name: `新增分类_${categories.value.length}`,
|
||||
// models: Array(10)
|
||||
// .fill(0)
|
||||
// .map((_, i) => ({
|
||||
// id: `n${i}`,
|
||||
// name: `新增军标_${i}`,
|
||||
// thumbnail: `https://picsum.photos/300/200?random=${i + 100}`
|
||||
// }))
|
||||
// })
|
||||
// loading.value = false
|
||||
}, 1000)
|
||||
}
|
||||
|
||||
@ -383,7 +391,7 @@ const renderModel = async (model) => {
|
||||
let GroundSvg = new YJ.Obj.GroundSvg(window.earth, option)
|
||||
|
||||
GroundSvg.load(() => {
|
||||
GroundSvg.drag(true, (data) => {
|
||||
GroundSvg.drag(true, null, (data) => {
|
||||
let params = data
|
||||
delete params.attributeType
|
||||
delete params.attribute.ISC
|
||||
@ -416,6 +424,10 @@ const renderModel = async (model) => {
|
||||
DbOption.isShow = true
|
||||
DbOption.params = JSON.stringify(DbOption.params)
|
||||
cusAddNodes(window.treeObj, DbOption.parentId, [DbOption])
|
||||
|
||||
if (GroundSvg.options.id) {
|
||||
;(window as any)._entityMap.set(GroundSvg.options.id, GroundSvg)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
@ -425,6 +437,10 @@ const getModelListByType = (id) => {
|
||||
formData.append('militaryTypeId', id)
|
||||
GraphApi.showModelByType(formData).then((res) => {
|
||||
categories.value = res.data
|
||||
|
||||
currModelList.value = []
|
||||
page = 1
|
||||
loadMoreData()
|
||||
})
|
||||
}
|
||||
|
||||
@ -507,8 +523,11 @@ defineExpose({
|
||||
// width: 40vw;
|
||||
// height: 50vh;
|
||||
:deep(.el-dialog) {
|
||||
background:
|
||||
linear-gradient(180deg, rgba(var(--color-base1), 0.2) 0%, rgba(var(--color-base1), 0) 100%),
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(var(--color-base1), 0.2) 0%,
|
||||
rgba(var(--color-base1), 0) 100%
|
||||
),
|
||||
rgba(0, 0, 0, 0.6);
|
||||
border: 1px solid var(--color-border1);
|
||||
padding-left: 0 !important;
|
||||
@ -567,22 +586,22 @@ defineExpose({
|
||||
box-sizing: border-box;
|
||||
// height: 50vh;
|
||||
:deep(
|
||||
.el-tabs--left .el-tabs__active-bar.is-left,
|
||||
.el-tabs--left .el-tabs__active-bar.is-right,
|
||||
.el-tabs--right .el-tabs__active-bar.is-left,
|
||||
.el-tabs--right .el-tabs__active-bar.is-right
|
||||
) {
|
||||
.el-tabs--left .el-tabs__active-bar.is-left,
|
||||
.el-tabs--left .el-tabs__active-bar.is-right,
|
||||
.el-tabs--right .el-tabs__active-bar.is-left,
|
||||
.el-tabs--right .el-tabs__active-bar.is-right
|
||||
) {
|
||||
width: 3px;
|
||||
background: rgba(var(--color-base1), 1);
|
||||
height: 40px !important;
|
||||
}
|
||||
|
||||
:deep(
|
||||
.el-tabs--left .el-tabs__nav-wrap.is-left::after,
|
||||
.el-tabs--left .el-tabs__nav-wrap.is-right::after,
|
||||
.el-tabs--right .el-tabs__nav-wrap.is-left::after,
|
||||
.el-tabs--right .el-tabs__nav-wrap.is-right::after
|
||||
) {
|
||||
.el-tabs--left .el-tabs__nav-wrap.is-left::after,
|
||||
.el-tabs--left .el-tabs__nav-wrap.is-right::after,
|
||||
.el-tabs--right .el-tabs__nav-wrap.is-left::after,
|
||||
.el-tabs--right .el-tabs__nav-wrap.is-right::after
|
||||
) {
|
||||
width: 3px;
|
||||
}
|
||||
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
min="0.001"
|
||||
max="200"
|
||||
step="0.001"
|
||||
@input="$handleInputLimit"
|
||||
@input="scaleChange"
|
||||
v-model="entityOptions.scale.x"
|
||||
/>
|
||||
<div class="input-number input-number-unit-1" style="width: auto; margin-left: 10px">
|
||||
@ -62,7 +62,7 @@
|
||||
min="0.001"
|
||||
max="200"
|
||||
step="0.001"
|
||||
@input="$handleInputLimit"
|
||||
@input="scaleChange"
|
||||
v-model="entityOptions.scale.x"
|
||||
/>
|
||||
<span class="arrow"></span>
|
||||
@ -77,7 +77,7 @@
|
||||
min="0.001"
|
||||
max="200"
|
||||
step="0.001"
|
||||
@input="$handleInputLimit"
|
||||
@input="scaleChange"
|
||||
v-model="entityOptions.scale.y"
|
||||
/>
|
||||
<div class="input-number input-number-unit-1" style="width: auto; margin-left: 10px">
|
||||
@ -88,7 +88,7 @@
|
||||
min="0.001"
|
||||
max="200"
|
||||
step="0.001"
|
||||
@input="$handleInputLimit"
|
||||
@input="scaleChange"
|
||||
v-model="entityOptions.scale.y"
|
||||
/>
|
||||
<span class="arrow"></span>
|
||||
@ -200,7 +200,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue'
|
||||
import { ref, getCurrentInstance } from 'vue'
|
||||
import { inject } from 'vue'
|
||||
import { TreeApi } from '@/api/tree'
|
||||
import Dialog from '@/components/dialog/baseDialog.vue'
|
||||
@ -210,6 +210,7 @@ import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
||||
import { getFontList } from './fontSelect'
|
||||
|
||||
const { cusUpdateNode, cusRemoveNode } = useTreeNode()
|
||||
const { proxy } = getCurrentInstance()!
|
||||
|
||||
const fontList = ref(getFontList())
|
||||
|
||||
@ -241,9 +242,10 @@ const entityOptions: any = ref({})
|
||||
let originalOptions: any
|
||||
let that: any
|
||||
|
||||
const scaleChange = () => {
|
||||
entityOptions.value.scaleY = entityOptions.value.scaleX
|
||||
entityOptions.value.scaleZ = entityOptions.value.scaleX
|
||||
const scaleChange = (e) => {
|
||||
proxy?.$handleInputLimit(e)
|
||||
console.log(entityOptions.value.scale)
|
||||
entityOptions.value.scale = entityOptions.value.scale
|
||||
}
|
||||
|
||||
const open = async (id: any, type: any) => {
|
||||
@ -349,8 +351,10 @@ const closeCallback = () => {
|
||||
|
||||
const nodeEdit = () => {
|
||||
that.drag(!entityOptions.value._isdrag, (data) => {
|
||||
that.options = data
|
||||
})
|
||||
entityOptions.value.angle = data.angle
|
||||
entityOptions.value.scale.x = data.scale.x
|
||||
entityOptions.value.scale.y = data.scale.y
|
||||
}, null)
|
||||
}
|
||||
|
||||
const confirm = () => {
|
||||
@ -363,6 +367,7 @@ const confirm = () => {
|
||||
delete params.attribute.camera
|
||||
delete params.attribute.goods
|
||||
delete params.attribute.vr
|
||||
delete params.host
|
||||
|
||||
let params2 = {
|
||||
id: params.id,
|
||||
|
||||
@ -137,12 +137,12 @@
|
||||
</el-tree>
|
||||
</div>
|
||||
|
||||
<div class="model-gallery" ref="galleryRef">
|
||||
<div class="model-gallery" ref="galleryRef" @scroll="handleScroll">
|
||||
<div class="model-section" v-if="categories.length != 0">
|
||||
<!-- <h2 class="section-title">{{ categories[Number(currentTypeId)].name }}</h2> -->
|
||||
<div class="model-grid">
|
||||
<div
|
||||
v-for="(model, mIndex) in categories"
|
||||
v-for="(model, mIndex) in currModelList"
|
||||
:key="mIndex"
|
||||
class="model-item"
|
||||
@click="modelClick(mIndex, model)"
|
||||
@ -365,24 +365,32 @@ const initObserver = () => {
|
||||
observer?.observe(section)
|
||||
})
|
||||
}
|
||||
//滚动加载
|
||||
var currModelList: any = ref([])
|
||||
|
||||
let page = 1
|
||||
// 模拟加载更多数据
|
||||
const loadMoreData = () => {
|
||||
if (loading.value) return
|
||||
loading.value = true
|
||||
// if (loading.value) return
|
||||
// loading.value = true
|
||||
setTimeout(() => {
|
||||
categories.value.push({
|
||||
id: `${categories.value.length + 1}`,
|
||||
name: `新增分类_${categories.value.length}`,
|
||||
models: Array(10)
|
||||
.fill(0)
|
||||
.map((_, i) => ({
|
||||
id: `n${i}`,
|
||||
name: `新增模型_${i}`,
|
||||
thumbnail: `https://picsum.photos/300/200?random=${i + 100}`
|
||||
}))
|
||||
})
|
||||
loading.value = false
|
||||
const start = (page - 1) * 24
|
||||
const end = start + 24
|
||||
currModelList.value = categories.value.slice(0, end)
|
||||
page++
|
||||
|
||||
// categories.value.push({
|
||||
// id: `${categories.value.length + 1}`,
|
||||
// name: `新增分类_${categories.value.length}`,
|
||||
// models: Array(10)
|
||||
// .fill(0)
|
||||
// .map((_, i) => ({
|
||||
// id: `n${i}`,
|
||||
// name: `新增模型_${i}`,
|
||||
// thumbnail: `https://picsum.photos/300/200?random=${i + 100}`
|
||||
// }))
|
||||
// })
|
||||
// loading.value = false
|
||||
}, 1000)
|
||||
}
|
||||
|
||||
@ -391,14 +399,18 @@ const handleScroll = () => {
|
||||
if (!galleryRef.value) return
|
||||
|
||||
const scrollPosition = galleryRef.value.scrollTop + 100
|
||||
const sections = Array.from(document.querySelectorAll('.model-section'))
|
||||
// const sections = Array.from(document.querySelectorAll('.model-section'))
|
||||
|
||||
sections.forEach((section, index) => {
|
||||
const rect = section.getBoundingClientRect()
|
||||
if (rect.top <= 450 && rect.bottom >= 450) {
|
||||
activeTab.value = index.toString()
|
||||
}
|
||||
})
|
||||
// sections.forEach((section, index) => {
|
||||
// const rect = section.getBoundingClientRect()
|
||||
// if (rect.top <= 450 && rect.bottom >= 450) {
|
||||
// console.log('indexxxxxx', index)
|
||||
// activeTab.value = index.toString()
|
||||
// }
|
||||
// })
|
||||
if (galleryRef.value.scrollTop + galleryRef.value.clientHeight >= galleryRef.value.scrollHeight) {
|
||||
loadMoreData()
|
||||
}
|
||||
}
|
||||
|
||||
//-----------tree-----------
|
||||
@ -566,6 +578,10 @@ const getModelListByType = (id) => {
|
||||
formData.append('name', modelName.value)
|
||||
ModelApi.showModelByType(formData).then((res) => {
|
||||
categories.value = res.data
|
||||
|
||||
currModelList.value = []
|
||||
page = 1
|
||||
loadMoreData()
|
||||
})
|
||||
}
|
||||
|
||||
@ -668,8 +684,11 @@ defineExpose({
|
||||
// height: 50vh;
|
||||
|
||||
:deep(.el-dialog) {
|
||||
background:
|
||||
linear-gradient(180deg, rgba(var(--color-base1), 0.2) 0%, rgba(var(--color-base1), 0) 100%),
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(var(--color-base1), 0.2) 0%,
|
||||
rgba(var(--color-base1), 0) 100%
|
||||
),
|
||||
rgba(0, 0, 0, 0.6);
|
||||
border: 1px solid var(--color-border1);
|
||||
padding-left: 0 !important;
|
||||
@ -737,22 +756,22 @@ defineExpose({
|
||||
|
||||
// height: 50vh;
|
||||
:deep(
|
||||
.el-tabs--left .el-tabs__active-bar.is-left,
|
||||
.el-tabs--left .el-tabs__active-bar.is-right,
|
||||
.el-tabs--right .el-tabs__active-bar.is-left,
|
||||
.el-tabs--right .el-tabs__active-bar.is-right
|
||||
) {
|
||||
.el-tabs--left .el-tabs__active-bar.is-left,
|
||||
.el-tabs--left .el-tabs__active-bar.is-right,
|
||||
.el-tabs--right .el-tabs__active-bar.is-left,
|
||||
.el-tabs--right .el-tabs__active-bar.is-right
|
||||
) {
|
||||
width: 3px;
|
||||
background: rgba(var(--color-base1), 1);
|
||||
height: 40px !important;
|
||||
}
|
||||
|
||||
:deep(
|
||||
.el-tabs--left .el-tabs__nav-wrap.is-left::after,
|
||||
.el-tabs--left .el-tabs__nav-wrap.is-right::after,
|
||||
.el-tabs--right .el-tabs__nav-wrap.is-left::after,
|
||||
.el-tabs--right .el-tabs__nav-wrap.is-right::after
|
||||
) {
|
||||
.el-tabs--left .el-tabs__nav-wrap.is-left::after,
|
||||
.el-tabs--left .el-tabs__nav-wrap.is-right::after,
|
||||
.el-tabs--right .el-tabs__nav-wrap.is-left::after,
|
||||
.el-tabs--right .el-tabs__nav-wrap.is-right::after
|
||||
) {
|
||||
width: 3px;
|
||||
}
|
||||
|
||||
|
||||
@ -112,7 +112,9 @@
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="标签风格" name="4">
|
||||
<labelStyle :type="title" :entityOptions="entityOptions"></labelStyle>
|
||||
<div class="div-item">
|
||||
<labelStyle :type="title" :entityOptions="entityOptions"></labelStyle>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
|
||||
@ -46,7 +46,9 @@
|
||||
<attribute :entityOptions="entityOptions"></attribute>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="标签风格" name="4">
|
||||
<labelStyle :type="title" :entityOptions="entityOptions"></labelStyle>
|
||||
<div class="div-item">
|
||||
<labelStyle :type="title" :entityOptions="entityOptions"></labelStyle>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
|
||||
@ -53,7 +53,9 @@
|
||||
<attribute :entityOptions="entityOptions"></attribute>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="标签风格" name="2">
|
||||
<labelStyle :entityOptions="entityOptions"></labelStyle>
|
||||
<div class="div-item">
|
||||
<labelStyle :entityOptions="entityOptions"></labelStyle>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
|
||||
@ -69,7 +69,9 @@
|
||||
<attribute :entityOptions="entityOptions"></attribute>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="标签风格" name="2">
|
||||
<labelStyle :entityOptions="entityOptions"></labelStyle>
|
||||
<div class="div-item">
|
||||
<labelStyle :entityOptions="entityOptions"></labelStyle>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
|
||||
@ -103,7 +103,7 @@ const updateNode = (children, field) => {
|
||||
}
|
||||
else {
|
||||
if(children[i].params) {
|
||||
cusUpdateNode({ "id": children[i].id, "sourceName": children[i].params.properties[field], "params": children[i].params })
|
||||
cusUpdateNode({ "id": children[i].id, "sourceName": (children[i].params.properties[field] || children[i].params.properties[field] == 0)? children[i].params.properties[field] : '未知', "params": children[i].params })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,12 +1,6 @@
|
||||
<template>
|
||||
<Dialog
|
||||
ref="baseDialog"
|
||||
:title="title"
|
||||
width="900px"
|
||||
left="calc(50% - 450px)"
|
||||
top="calc(50% - 360px)"
|
||||
:closeCallback="closeCallback"
|
||||
>
|
||||
<Dialog ref="baseDialog" :title="title" width="900px" left="calc(50% - 450px)" top="calc(50% - 360px)"
|
||||
:closeCallback="closeCallback">
|
||||
<template #content>
|
||||
<span class="custom-divider"></span>
|
||||
<div class="div-item" style="display: flex">
|
||||
@ -64,13 +58,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<Pagination
|
||||
:total="total"
|
||||
v-model:page="pageNum"
|
||||
v-model:limit="pageSize"
|
||||
:pageSizes="pageSizes"
|
||||
@pagination="getTableList"
|
||||
/>
|
||||
<Pagination :total="total" v-model:page="pageNum" v-model:limit="pageSize" :pageSizes="pageSizes"
|
||||
@pagination="getTableList" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -248,9 +237,9 @@ const updateNode = (children, field) => {
|
||||
cusUpdateNode({
|
||||
id: children[i].id,
|
||||
sourceName:
|
||||
children[i].params.properties[field] === undefined
|
||||
? ''
|
||||
: children[i].params.properties[field],
|
||||
(children[i].params.properties[field] || children[i].params.properties[field] == 0)
|
||||
? children[i].params.properties[field]
|
||||
: '未知',
|
||||
params: children[i].params
|
||||
})
|
||||
}
|
||||
@ -399,6 +388,7 @@ defineExpose({
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.YJ-custom-base-dialog {
|
||||
::v-deep .foot {
|
||||
padding: 4px;
|
||||
|
||||
@ -30,8 +30,8 @@
|
||||
<div class="col">
|
||||
<span class="label">拉伸高度</span>
|
||||
<div class="input-number input-number-unit-1">
|
||||
<input class="input" type="number" title="" min="0" max="999999999"
|
||||
v-model="entityOptions.extrudedHeight" @input="$handleInputLimit">
|
||||
<input class="input" type="number" title="" min="0" max="999999999" v-model="entityOptions.extrudedHeight"
|
||||
@input="$handleInputLimit">
|
||||
<span class="unit">m</span>
|
||||
<span class="arrow"></span>
|
||||
</div>
|
||||
@ -40,25 +40,36 @@
|
||||
<div class="row">
|
||||
<div class="col material-box">
|
||||
<span class="label">拐角类型</span>
|
||||
<el-select class="input input-select input-select-line-type"
|
||||
v-model="entityOptions.material">
|
||||
<el-option v-for="item in material" :key="item.key" :label="item.name" :value="item.key">
|
||||
<i class="yj-custom-icon" :class="item.icon"></i>
|
||||
{{ item.name }}
|
||||
<el-select class="input input-select input-select-line-type" v-model="entityOptions.cornerType">
|
||||
<template #label="{ label, value }">
|
||||
<svg class="icon-yj">
|
||||
<use :xlink:href="`#yj-${cornerType[value].icon}`"></use>
|
||||
</svg>
|
||||
{{ label }}
|
||||
</template>
|
||||
<el-option v-for="item in cornerType" :key="item.key" :label="item.name" :value="item.key">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<svg class="icon-yj" style="width: 12px; height: 12px;">
|
||||
<use :xlink:href="`#yj-${item.icon}`"></use>
|
||||
</svg>
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="col material-box">
|
||||
<span class="label">墙体样式</span>
|
||||
<el-select class="input input-select input-select-line-type"
|
||||
v-model="entityOptions.material">
|
||||
<el-select class="input input-select input-select-line-type" v-model="entityOptions.material">
|
||||
<template #label="{ label, value }">
|
||||
<i class="yj-custom-icon" :class="material[value].icon"></i>
|
||||
<i class="yj-custom-icon" :class="material[value].icon"
|
||||
:style="`background: url(${material[value].icon}) 100% 100% no-repeat;background-size: 100% 100%;`">
|
||||
</i>
|
||||
{{ label }}
|
||||
</template>
|
||||
<el-option v-for="item in material" :key="item.key" :label="item.name" :value="item.key">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<i class="yj-custom-icon" :class="item.icon"></i>
|
||||
<i class="yj-custom-icon" :class="item.icon"
|
||||
:style="`background: url(${item.icon}) 100% 100% no-repeat;background-size: 100% 100%;`"></i>
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</el-option>
|
||||
@ -74,18 +85,18 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="div-item">
|
||||
<div class="row">
|
||||
<el-tabs v-model="activeName">
|
||||
<el-tab-pane label="属性信息" name="1">
|
||||
<attribute :entityOptions="entityOptions"></attribute>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="标签风格" name="2">
|
||||
<labelStyle :entityOptions="entityOptions"></labelStyle>
|
||||
<div class="div-item">
|
||||
<labelStyle :entityOptions="entityOptions"></labelStyle>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
</div>
|
||||
<span class="custom-divider"></span>
|
||||
</template>
|
||||
<template #footer>
|
||||
@ -116,30 +127,50 @@ const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
||||
|
||||
const baseDialog: any = ref(null);
|
||||
const eventBus: any = inject("bus");
|
||||
const cornerType = ref([
|
||||
{
|
||||
name: '直角',
|
||||
value: '直角',
|
||||
key: 0,
|
||||
icon: 'icon-zj',
|
||||
},
|
||||
{
|
||||
name: '斜角',
|
||||
value: '斜角',
|
||||
key: 1,
|
||||
icon: 'icon-xj',
|
||||
},
|
||||
{
|
||||
name: '圆角',
|
||||
value: '圆角',
|
||||
key: 2,
|
||||
icon: 'icon-yj',
|
||||
},
|
||||
])
|
||||
const material = ref([
|
||||
{
|
||||
name: '纯色墙',
|
||||
value: '纯色墙',
|
||||
key: 0,
|
||||
icon: 'icon-wall'
|
||||
icon: '../sdk/custom/img/icon-wall.png'
|
||||
},
|
||||
{
|
||||
name: '红砖墙',
|
||||
value: '红砖墙',
|
||||
key: 1,
|
||||
icon: 'icon-wall-brick1'
|
||||
icon: '../sdk/img/material/brick1.png'
|
||||
},
|
||||
{
|
||||
name: '黄砖墙',
|
||||
value: '黄砖墙',
|
||||
key: 2,
|
||||
icon: 'icon-wall-brick2'
|
||||
icon: '../sdk/img/material/brick2.png'
|
||||
},
|
||||
{
|
||||
name: '灰瓷墙',
|
||||
value: '灰瓷墙',
|
||||
key: 3,
|
||||
icon: 'icon-wall-brick3'
|
||||
icon: '../sdk/img/material/brick3.png'
|
||||
}
|
||||
])
|
||||
eventBus.on("openStandTextAdd", () => {
|
||||
@ -151,7 +182,7 @@ let originalOptions: any
|
||||
let that: any
|
||||
const colorRef = ref(null)
|
||||
const open = async (id: any) => {
|
||||
that = window.earth.entityMap.get('aaa')
|
||||
that = window.earth.entityMap.get(id)
|
||||
originalOptions = structuredClone(that.options)
|
||||
entityOptions.value = that
|
||||
baseDialog.value?.open()
|
||||
@ -193,31 +224,31 @@ const close = () => {
|
||||
const remove = () => {
|
||||
close()
|
||||
ElMessageBox.confirm('此操作将永久删除节点及所有子节点, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(async () => {
|
||||
let node = window.treeObj.getNodeByParam('id', that.options.id, null)
|
||||
let source_ids = cusRemoveNode(window.treeObj, [node])
|
||||
const res = await TreeApi.removeDirectory({ ids: source_ids })
|
||||
if (res.code == 0 || res.code == 200) {
|
||||
ElMessage({
|
||||
message: '删除成功',
|
||||
type: 'success'
|
||||
})
|
||||
that.remove()
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(async () => {
|
||||
let node = window.treeObj.getNodeByParam('id', that.options.id, null)
|
||||
let source_ids = cusRemoveNode(window.treeObj, [node])
|
||||
const res = await TreeApi.removeDirectory({ ids: source_ids })
|
||||
if (res.code == 0 || res.code == 200) {
|
||||
ElMessage({
|
||||
message: '删除成功',
|
||||
type: 'success'
|
||||
})
|
||||
that.remove()
|
||||
(window as any)._entityMap.delete(source_ids[0])
|
||||
} else {
|
||||
ElMessage({
|
||||
message: res.msg || '删除失败',
|
||||
type: 'error'
|
||||
})
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
// 用户点击取消,不执行任何操作
|
||||
})
|
||||
} else {
|
||||
ElMessage({
|
||||
message: res.msg || '删除失败',
|
||||
type: 'error'
|
||||
})
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
// 用户点击取消,不执行任何操作
|
||||
})
|
||||
}
|
||||
const nodeEdit = () => {
|
||||
that.nodeEdit()
|
||||
@ -225,7 +256,6 @@ const nodeEdit = () => {
|
||||
|
||||
const closeCallback = () => {
|
||||
entityOptions.value.originalOptions = structuredClone(originalOptions)
|
||||
that.positionEditing = false
|
||||
that.reset()
|
||||
eventBus?.emit("destroyComponent")
|
||||
}
|
||||
|
||||
@ -63,7 +63,9 @@
|
||||
<attribute :entityOptions="entityOptions"></attribute>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="标签风格" name="2">
|
||||
<labelStyle :entityOptions="entityOptions"></labelStyle>
|
||||
<div class="div-item">
|
||||
<labelStyle :entityOptions="entityOptions"></labelStyle>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
|
||||
@ -37,7 +37,7 @@ export function renderVector(node, ifFly = true) {
|
||||
sourceType: item.type,
|
||||
sourcePath: params.path,
|
||||
sourceName:
|
||||
item.properties[Vector.field] || Object.keys(item.properties)[0] || '未知',
|
||||
(item.properties[Vector.field] || item.properties[Vector.field] == 0) ? item.properties[Vector.field] : '未知',
|
||||
params: {
|
||||
...item,
|
||||
},
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { TreeApi } from '@/api/tree'
|
||||
import { $changeComponentPop } from '@/utils/communication'
|
||||
import { $changeComponentPop, $sendElectronChanel, $recvElectronChanel } from '@/utils/communication'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
||||
import { initMapData } from '@/common/initMapData'
|
||||
@ -85,12 +85,10 @@ export const useRightOperate = () => {
|
||||
params: {
|
||||
id: id,
|
||||
path: filePaths[i],
|
||||
field: 'id',
|
||||
// field: 'id',
|
||||
name: name,
|
||||
headTables: [],
|
||||
opacity: 1,
|
||||
color: 'rgba(0,255,184,0.5)',
|
||||
show: true
|
||||
headTables: [{}],
|
||||
show: true,
|
||||
},
|
||||
}
|
||||
TreeApi.addOtherSource(params)
|
||||
@ -191,35 +189,21 @@ export const useRightOperate = () => {
|
||||
parentId = node.parentId
|
||||
}
|
||||
}
|
||||
const pickerOpts = {
|
||||
types: [
|
||||
let option = {
|
||||
properties: ['openFile', 'multiSelections'],
|
||||
filters: [
|
||||
{
|
||||
description: '全景图',
|
||||
accept:
|
||||
{
|
||||
'image/jpg': ['.jpg']
|
||||
}
|
||||
name: '全景图',
|
||||
extensions: ['jpg']
|
||||
}
|
||||
],
|
||||
excludeAcceptAllOption: true,
|
||||
multiple: true
|
||||
};
|
||||
if ((window as any).showOpenFilePicker) {
|
||||
const fileHandles = await (window as any).showOpenFilePicker(pickerOpts);
|
||||
const files = await Promise.all(fileHandles.map(fileHandle => fileHandle.getFile()));
|
||||
const dataTransfer = new DataTransfer();
|
||||
handleFileImgInput(files, parentId, 'vrImage')
|
||||
} else {
|
||||
let input = document.createElement('input')
|
||||
input.type = 'file'
|
||||
input.accept = '.jpg'
|
||||
input.multiple = true
|
||||
input.click()
|
||||
input.addEventListener('input', async (e: any) => {
|
||||
let files = e.target.files
|
||||
handleFileImgInput(files, parentId, 'vrImage')
|
||||
})
|
||||
]
|
||||
}
|
||||
$sendElectronChanel('open-directory-dialog', option)
|
||||
$recvElectronChanel('selectedItem', (e, paths) => {
|
||||
if (paths.length) {
|
||||
handleFileImgInput(paths, parentId, 'vrImage')
|
||||
}
|
||||
})
|
||||
}
|
||||
//图片定位
|
||||
const pictureLocation = async () => {
|
||||
@ -233,35 +217,21 @@ export const useRightOperate = () => {
|
||||
parentId = node.parentId
|
||||
}
|
||||
}
|
||||
const pickerOpts = {
|
||||
types: [
|
||||
let option = {
|
||||
properties: ['openFile', 'multiSelections'],
|
||||
filters: [
|
||||
{
|
||||
description: '无人机航拍',
|
||||
accept:
|
||||
{
|
||||
'image/jpg': ['.jpg']
|
||||
}
|
||||
name: '无人机航拍',
|
||||
extensions: ['jpg']
|
||||
}
|
||||
],
|
||||
excludeAcceptAllOption: true,
|
||||
multiple: true
|
||||
};
|
||||
if ((window as any).showOpenFilePicker) {
|
||||
const fileHandles = await (window as any).showOpenFilePicker(pickerOpts);
|
||||
const files = await Promise.all(fileHandles.map(fileHandle => fileHandle.getFile()));
|
||||
const dataTransfer = new DataTransfer();
|
||||
handleFileImgInput(files, parentId, 'linkImage')
|
||||
} else {
|
||||
let input = document.createElement('input')
|
||||
input.type = 'file'
|
||||
input.accept = '.jpg'
|
||||
input.multiple = true
|
||||
input.click()
|
||||
input.addEventListener('input', async (e: any) => {
|
||||
let files = e.target.files
|
||||
handleFileImgInput(files, parentId, 'linkImage')
|
||||
})
|
||||
]
|
||||
}
|
||||
$sendElectronChanel('open-directory-dialog', option)
|
||||
$recvElectronChanel('selectedItem', (e, paths) => {
|
||||
if (paths.length) {
|
||||
handleFileImgInput(paths, parentId, 'linkImage')
|
||||
}
|
||||
})
|
||||
}
|
||||
//属性
|
||||
const showAttr = (eventBus) => {
|
||||
@ -442,6 +412,9 @@ export const useRightOperate = () => {
|
||||
if (node.sourceType == 'standText' || node.sourceType == 'groundText') {
|
||||
sourceName = params.text
|
||||
}
|
||||
else if (node.sourceType == 'textBox') {
|
||||
sourceName = params.text ? params.text : '文本框'
|
||||
}
|
||||
let params2 = {
|
||||
"id": node.id,
|
||||
"sourceName": sourceName,
|
||||
@ -634,12 +607,13 @@ export const useRightOperate = () => {
|
||||
const formData = new FormData();
|
||||
let ids: any = []
|
||||
let filesList: any = []
|
||||
console.log('files', files)
|
||||
for (let i = 0; i < files.length; i++) {
|
||||
const element = files[i]
|
||||
ids.push(new YJ.Tools().randomString())
|
||||
filesList.push(element)
|
||||
formData.append('files', element)
|
||||
}
|
||||
formData.append('filePaths', filesList)
|
||||
let params: any = {
|
||||
"id": ids[0],
|
||||
"show": true,
|
||||
|
||||
@ -583,7 +583,7 @@ export const useTree = () => {
|
||||
let res = await TreeApi.getTreeList()
|
||||
if ([0, 200].includes(res.code)) {
|
||||
res.data.list.sort((a: any, b: any) => {
|
||||
if (a.treeIndex && b.treeIndex) {
|
||||
if ((a.treeIndex || a.treeIndex == 0) && (b.treeIndex || b.treeIndex == 0)) {
|
||||
return a.treeIndex - b.treeIndex
|
||||
}
|
||||
if (a.treeIndex) {
|
||||
|
||||
@ -456,7 +456,7 @@ export const useTreeNode = () => {
|
||||
const cusNodeIcon = async (node) => {
|
||||
let availablePort = await ipcRenderer.invoke('get-available-port');
|
||||
let type
|
||||
if (node.sourcePath || node.sourceType === 'vector') {
|
||||
if ((node.sourcePath || node.sourceType === 'vector') && (node.sourceType !== 'vrImage' && node.sourceType !== 'linkImage')) {
|
||||
let path = node.sourcePath ? node.sourcePath : JSON.parse(node.params).path
|
||||
// 获取最后一个点的位置
|
||||
const lastDotIndex = path.lastIndexOf('.');
|
||||
|
||||
@ -222,7 +222,7 @@
|
||||
v-for="(item, index) in poiOptions"
|
||||
:key="item.search_key + index"
|
||||
:label="item.search_key"
|
||||
:value="item.address"
|
||||
:value="item.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
@ -417,6 +417,7 @@ const searchPlace = debounce(function () {
|
||||
item.location.lat
|
||||
)
|
||||
arr.push({
|
||||
id: item.id,
|
||||
address: item.name,
|
||||
search_key: item.name,
|
||||
search_type: item.id,
|
||||
@ -505,7 +506,7 @@ const searchPlace = debounce(function () {
|
||||
|
||||
const availablePort = ref(55110)
|
||||
const locationChange = () => {
|
||||
let item = poiOptions.value.find((item) => item.address == value.value)
|
||||
let item = poiOptions.value.find((item) => item.id == value.value)
|
||||
let id = new YJ.Tools().randomString()
|
||||
nextTick(() => {
|
||||
select1.value.blur()
|
||||
@ -811,14 +812,26 @@ defineExpose({
|
||||
width: 380px !important;
|
||||
}
|
||||
|
||||
.el-select-dropdown__item {
|
||||
svg {
|
||||
fill: #ffffff !important;
|
||||
margin: 2px 5px 0 0 !important;
|
||||
}
|
||||
}
|
||||
.el-select-dropdown__item.is-hovering {
|
||||
background-color: unset !important;
|
||||
color: rgba(var(--color-base1), 1) !important;
|
||||
svg {
|
||||
fill: rgba(var(--color-base1), 1) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.el-select-dropdown__item.is-selected {
|
||||
background-color: unset !important;
|
||||
color: rgba(var(--color-base1), 1) !important;
|
||||
svg {
|
||||
fill: rgba(var(--color-base1), 1) !important;
|
||||
}
|
||||
}
|
||||
|
||||
// .custom-dropdown2 {
|
||||
|
||||
@ -734,7 +734,7 @@ const validatePortRange = (rule, value, callback) => {
|
||||
align-items: center;
|
||||
|
||||
::placeholder {
|
||||
color: #fff;
|
||||
color: rgba(113, 126, 143, 1);
|
||||
}
|
||||
|
||||
.el-form-item {
|
||||
|
||||
@ -17,56 +17,59 @@ export const useSetUp = () => {
|
||||
const selectedService = ref('接口服务')
|
||||
const serviceOptions: any = ref([{ name: '接口服务' }, { name: '北斗串口' }])
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
let serveUrl: any = getIP()
|
||||
let isOk = validateURL(serveUrl)
|
||||
let serverMode = localStorage.getItem('serverMode')
|
||||
if (isOk) {
|
||||
const parsedUrl = new URL(serveUrl);
|
||||
const host = parsedUrl.host;
|
||||
const ipPort = host.split(':');
|
||||
if (serverMode === 'false') {
|
||||
servVal.value = '网络'
|
||||
ip.value = ipPort[0]
|
||||
port.value = Number(ipPort[1])
|
||||
prototype.value = parsedUrl.protocol.slice(0, -1)
|
||||
}
|
||||
else {
|
||||
localip.value = ipPort[0]
|
||||
localport.value = Number(ipPort[1])
|
||||
const reset = () => {
|
||||
let serveUrl: any = getIP()
|
||||
let isOk = validateURL(serveUrl)
|
||||
serverMode = localStorage.getItem('serverMode')
|
||||
if (isOk) {
|
||||
const parsedUrl = new URL(serveUrl);
|
||||
const host = parsedUrl.host;
|
||||
const ipPort = host.split(':');
|
||||
if (serverMode === 'false') {
|
||||
servVal.value = '网络'
|
||||
ip.value = ipPort[0]
|
||||
port.value = Number(ipPort[1])
|
||||
prototype.value = parsedUrl.protocol.slice(0, -1)
|
||||
}
|
||||
else {
|
||||
localip.value = ipPort[0]
|
||||
localport.value = Number(ipPort[1])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
reset()
|
||||
|
||||
|
||||
const submit = () => {
|
||||
switch (selectedService.value) {
|
||||
case '接口服务':
|
||||
// this.submitIP();
|
||||
if (serverMode === 'false') {
|
||||
if(Number(port.value) < 1024 || Number(port.value) > 65535) {
|
||||
if (Number(port.value) < 1024 || Number(port.value) > 65535) {
|
||||
// ElMessage.error('端口号范围为1024-65535')
|
||||
return
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(Number(localport.value) < 1024 || Number(localport.value) > 65535) {
|
||||
if (Number(localport.value) < 1024 || Number(localport.value) > 65535) {
|
||||
// ElMessage.error('端口号范围为1024-65535')
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
submitIP()
|
||||
break
|
||||
case '北斗串口':
|
||||
// this.submitGPS();
|
||||
submitGPS();
|
||||
break
|
||||
}
|
||||
selectedService.value = '接口服务'
|
||||
}
|
||||
const cancel = () => {
|
||||
serviceDialog.value = false
|
||||
selectedService.value = '接口服务'
|
||||
reset()
|
||||
}
|
||||
|
||||
const submitIP = () => {
|
||||
@ -99,6 +102,9 @@ export const useSetUp = () => {
|
||||
|
||||
}
|
||||
}
|
||||
const submitGPS = () => {
|
||||
serviceDialog.value = false
|
||||
}
|
||||
const initialize = () => {
|
||||
|
||||
if (serverMode === 'false') {
|
||||
|
||||
Reference in New Issue
Block a user