Commit 63ceb4f4 authored by “yiyousong”'s avatar “yiyousong”

feat;添加数据分析板块

parent a9fc228e
......@@ -12,6 +12,7 @@
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@chenfengyuan/vue-qrcode": "^1.0.2",
"@jiaminghi/data-view": "^2.10.0",
"@riophae/vue-treeselect": "0.4.0",
"@vue/babel-preset-app": "^4.5.13",
"@xunlei/vue-context-menu": "^1.0.2",
......@@ -37,6 +38,7 @@
"vue-count-to": "1.0.13",
"vue-cropper": "0.5.5",
"vue-router": "3.4.9",
"vue-seamless-scroll": "^1.1.23",
"vue2-org-tree": "^1.3.5",
"vuex": "3.6.0"
},
......
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<title>设备管理平台</title>
<link rel="stylesheet" href="https://unpkg.zhimg.com/element-ui@2.15.5/lib/theme-chalk/index.css">
<link
rel="stylesheet"
href="https://unpkg.zhimg.com/element-ui@2.15.5/lib/theme-chalk/index.css"
/>
<style>
@font-face {
font-family: "PangMenZhengDao";
src: url("./PangMenZhengDaoBiaoTiTi-1.ttf");
}
</style>
</head>
<body>
<noscript>
<strong>We're sorry but app doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
<strong
>We're sorry but app doesn't work properly without JavaScript enabled.
Please enable it to continue.</strong
>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
......
......@@ -54,6 +54,12 @@
<div class="content unicode" style="display: block;">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe639;</span>
<div class="name">退出登录</div>
<div class="code-name">&amp;#xe639;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe627;</span>
<div class="name">系统管理-部门管理</div>
......@@ -114,9 +120,9 @@
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1660811949301') format('woff2'),
url('iconfont.woff?t=1660811949301') format('woff'),
url('iconfont.ttf?t=1660811949301') format('truetype');
src: url('iconfont.woff2?t=1682488711815') format('woff2'),
url('iconfont.woff?t=1682488711815') format('woff'),
url('iconfont.ttf?t=1682488711815') format('truetype');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
......@@ -142,6 +148,15 @@
<div class="content font-class">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-exit"></span>
<div class="name">
退出登录
</div>
<div class="code-name">.icon-exit
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xitongguanli"></span>
<div class="name">
......@@ -232,6 +247,14 @@
<div class="content symbol">
<ul class="icon_lists dib-box">
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-exit"></use>
</svg>
<div class="name">退出登录</div>
<div class="code-name">#icon-exit</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xitongguanli"></use>
......
@font-face {
font-family: "iconfont"; /* Project id 3597207 */
src: url('iconfont.woff2?t=1660811949301') format('woff2'),
url('iconfont.woff?t=1660811949301') format('woff'),
url('iconfont.ttf?t=1660811949301') format('truetype');
src: url('iconfont.woff2?t=1682488711815') format('woff2'),
url('iconfont.woff?t=1682488711815') format('woff'),
url('iconfont.ttf?t=1682488711815') format('truetype');
}
.iconfont {
......@@ -13,6 +13,10 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-exit:before {
content: "\e639";
}
.icon-xitongguanli:before {
content: "\e627";
}
......
!function(a){var t,l,e,c,o,n='<svg><symbol id="icon-xitongguanli" viewBox="0 0 1024 1024"><path d="M894.7 597.8h-94.1v-65.9c-0.3-16.4-13.9-29.5-30.4-29.2H542.1V454c83.7-16.7 138.1-98.2 121.3-181.9-16.7-83.7-98.2-138.1-181.9-121.3-83.7 16.7-138.1 98.2-121.3 181.9 12.2 61.2 60.1 109.1 121.3 121.3v48.6H253.3c-16.4-0.3-30 12.8-30.4 29.2v65.9h-94.1c-16.4-0.2-29.9 12.8-30.2 29.2v240c0.3 16.4 13.8 29.4 30.2 29.2h248.7c16.4 0.3 29.9-12.7 30.2-29.1V627c-0.3-16.4-13.7-29.4-30.1-29.2H283.4V561h456.7v36.8H646c-16.4-0.3-29.9 12.7-30.2 29.1V867c0.3 16.4 13.7 29.4 30.1 29.2H894.7c16.4 0.2 29.9-12.8 30.2-29.2V627c-0.3-16.4-13.8-29.5-30.2-29.2z m-547.4 58.3v181.7H159V656.1h188.3z m70.3-348.4c-1.9-52 38.8-95.7 90.8-97.5 52-1.9 95.7 38.8 97.5 90.8 1.9 52-38.8 95.7-90.8 97.5-1.2 0-2.3 0.1-3.5 0.1-50.9 0.7-93-39.9-94-90.9z m446.9 530.1H676.2V656.1h188.3v181.7z" fill="#333333" ></path></symbol><symbol id="icon-shouye" viewBox="0 0 1024 1024"><path d="M979.792374 404.577188 574.183101 83.942886c-34.918864-27.694272-89.619352-27.694272-124.538216 0L44.207626 404.577188c-13.933143 11.008903-16.169326 31.134554-5.332437 44.895683s30.618512 16.169326 44.551655 5.332437l12.55703-10.320847 0 387.547791c0 54.872501 57.968755 95.983874 108.712918 95.983874l639.892491 0c50.22812 0 83.254829-38.531161 83.254829-95.983874L927.844112 445.860575l11.69696 8.944734c5.84848 4.644381 13.073072 6.880564 20.125651 6.880564 9.460776 0 18.921552-4.128339 25.286074-12.213002C995.9617 435.711742 993.725517 415.586091 979.792374 404.577188zM479.919368 864.026877 479.919368 686.508315c0-8.77272 15.997312-13.245087 31.994625-13.245087s31.994625 4.472367 31.994625 13.245087l0 177.346548L479.919368 864.026877 479.919368 864.026877zM864.026877 832.032253c0 21.157736-5.84848 31.994625-19.26558 31.994625L608.585923 864.026877c0-0.516042-0.688056-0.860071-0.688056-1.376113L607.897867 686.508315c0-37.155048-29.930455-77.234336-95.983874-77.234336s-95.983874 40.079288-95.983874 77.234336l0 176.142449c0 0.516042 0.860071 0.860071 0.860071 1.376113L204.868806 864.026877c-20.125651 0-44.723669-17.373425-44.723669-31.994625L160.145137 393.740299 488.864102 134.171006c11.868974-9.288762 33.198723-9.288762 44.895683 0l330.095078 261.11742L863.854863 832.032253z" ></path></symbol><symbol id="icon-shezhi" viewBox="0 0 1024 1024"><path d="M512 697.6c102.4 0 182.4-83.2 182.4-185.6 0-102.4-83.2-185.6-182.4-185.6-102.4 0-182.4 83.2-182.4 185.6C329.6 614.4 412.8 697.6 512 697.6L512 697.6zM512 646.4c-73.6 0-134.4-60.8-134.4-134.4 0-73.6 60.8-134.4 134.4-134.4 73.6 0 134.4 60.8 134.4 134.4C646.4 585.6 585.6 646.4 512 646.4L512 646.4z" ></path><path d="M249.015232 843.178592c35.2 28.8 73.6 51.2 112 67.2 41.6-38.4 96-60.8 150.4-60.8 57.6 0 108.8 22.4 150.4 60.8 41.6-16 80-38.4 112-67.2-12.8-54.4-3.2-112 22.4-163.2 28.8-48 73.6-86.4 128-102.4 3.2-22.4 6.4-44.8 6.4-67.2 0-22.4-3.2-44.8-6.4-67.2-54.4-16-99.2-54.4-128-102.4-28.8-48-35.2-108.8-22.4-163.2-35.2-28.8-73.6-51.2-112-67.2-41.6 38.4-92.8 60.8-150.4 60.8-54.4 0-108.8-22.4-150.4-60.8-41.6 16-80 38.4-112 67.2 12.8 54.4 3.2 112-22.4 163.2-28.8 48-73.6 86.4-128 102.4-3.2 22.4-6.4 44.8-6.4 67.2 0 22.4 3.2 44.8 6.4 67.2 54.4 16 99.2 54.4 128 102.4C252.215232 731.178592 261.815232 788.778592 249.015232 843.178592M361.015232 958.378592c-54.4-19.2-105.6-48-150.4-89.6-6.4-6.4-9.6-16-6.4-22.4 16-48 9.6-99.2-16-140.8-25.6-44.8-64-73.6-112-83.2-9.6-3.2-16-9.6-16-19.2-6.4-28.8-9.6-60.8-9.6-89.6 0-28.8 3.2-57.6 9.6-89.6 3.2-9.6 9.6-16 16-19.2 48-12.8 89.6-41.6 112-83.2 25.6-44.8 28.8-92.8 16-140.8-3.2-9.6 0-19.2 6.4-22.4 44.8-38.4 96-67.2 150.4-89.6 9.6-3.2 16 0 22.4 6.4 35.2 35.2 80 57.6 128 57.6 48 0 96-19.2 128-57.6 6.4-6.4 16-9.6 22.4-6.4 54.4 19.2 105.6 48 150.4 89.6 6.4 6.4 9.6 16 6.4 22.4-16 48-9.6 99.2 16 140.8 25.6 44.8 64 73.6 112 83.2 9.6 3.2 16 9.6 16 19.2 6.4 28.8 9.6 60.8 9.6 89.6 0 28.8-3.2 57.6-9.6 89.6-3.2 9.6-9.6 16-16 19.2-48 12.8-89.6 41.6-112 83.2-25.6 44.8-28.8 92.8-16 140.8 3.2 9.6 0 19.2-6.4 22.4-44.8 38.4-96 67.2-150.4 89.6-9.6 3.2-16 0-22.4-6.4-35.2-35.2-80-57.6-128-57.6-48 0-96 19.2-128 57.6-3.2 3.2-9.6 6.4-16 6.4C364.215232 958.378592 361.015232 958.378592 361.015232 958.378592z" ></path></symbol><symbol id="icon-xiaoxi" viewBox="0 0 1024 1024"><path d="M901.89824 125.31712H122.88c-67.75808 0-122.88 55.12192-122.88 122.88v552.97024c0 67.75808 55.12192 122.88 122.88 122.88h779.01824c67.75808 0 122.88-55.12192 122.88-122.88V248.19712c0-67.74784-55.12192-122.88-122.88-122.88z m81.92 675.85024c0 45.16864-36.75136 81.92-81.92 81.92H122.88c-45.16864 0-81.92-36.75136-81.92-81.92V248.19712c0-45.16864 36.75136-81.92 81.92-81.92h779.01824c45.16864 0 81.92 36.75136 81.92 81.92v552.97024z" fill="" ></path><path d="M527.7184 502.43584a21.7088 21.7088 0 0 1-30.65856 0L206.00832 211.39456l-28.95872 28.95872 291.05152 291.05152c12.21632 12.20608 28.25216 18.31936 44.288 18.31936s32.08192-6.11328 44.288-18.31936l291.05152-291.05152-28.95872-28.95872-291.05152 291.04128z" fill="" ></path></symbol><symbol id="icon-gaojing" viewBox="0 0 1024 1024"><path d="M192 832a32 32 0 0 0 0 64h640a32 32 0 0 0 0-64H192z m0-64h640a96 96 0 0 1 0 192H192a96 96 0 0 1 0-192z" ></path><path d="M816 208m-48 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0Z" ></path><path d="M208 208m-48 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0Z" ></path><path d="M480 608a32 32 0 0 1 64 0v160a32 32 0 0 1-64 0v-160z" ></path><path d="M512 640a112 112 0 1 1 0-224 112 112 0 0 1 0 224z m0-64a48 48 0 1 0 0-96 48 48 0 0 0 0 96zM864 480a32 32 0 0 1 0-64h96a32 32 0 0 1 0 64h-96zM64 480a32 32 0 0 1 0-64h96a32 32 0 0 1 0 64H64zM480 64a32 32 0 0 1 64 0v96a32 32 0 0 1-64 0V64z" ></path><path d="M272.448 800h-64v-288a304 304 0 0 1 608 0v288h-64v-288a240 240 0 0 0-480 0v288z" ></path></symbol><symbol id="icon-dalou" viewBox="0 0 1024 1024"><path d="M981.333333 1024h-938.666666a42.666667 42.666667 0 0 1 0-85.333333H85.333333V128A128 128 0 0 1 213.333333 0h302.506667a128 128 0 0 1 128 128v224l202.24 58.453333A128 128 0 0 1 938.666667 533.333333V938.666667h42.666666a42.666667 42.666667 0 0 1 0 85.333333z m-337.493333-85.333333H853.333333V533.333333a42.666667 42.666667 0 0 0-30.72-42.666666l-178.773333-51.626667v148.906667h85.333333a42.666667 42.666667 0 0 1 0 85.333333h-85.333333v72.106667h85.333333a42.666667 42.666667 0 0 1 0 85.333333h-85.333333V938.666667z m-151.04 0h65.706667V128a42.666667 42.666667 0 0 0-42.666667-42.666667H213.333333A42.666667 42.666667 0 0 0 170.666667 128V938.666667h66.133333v-170.666667a42.666667 42.666667 0 0 1 42.666667-42.666667h170.666666a42.666667 42.666667 0 0 1 42.666667 42.666667v170.666667z m-170.666667 0h85.333334v-128h-85.333334V938.666667z m128-320h-170.666666a42.666667 42.666667 0 0 1 0-85.333334h170.666666a42.666667 42.666667 0 0 1 0 85.333334z m0-170.666667h-170.666666a42.666667 42.666667 0 0 1 0-85.333333h170.666666a42.666667 42.666667 0 0 1 0 85.333333z m0-170.666667h-170.666666a42.666667 42.666667 0 0 1 0-85.333333h170.666666a42.666667 42.666667 0 0 1 0 85.333333z" ></path></symbol><symbol id="icon-xitongguanli1" viewBox="0 0 1024 1024"><path d="M446.805333 955.716267a381.405867 381.405867 0 0 0 133.597867 66.730666c2.7136 0.733867 13.346133 1.2288 29.0816 1.536h-404.650667a34.1504 34.1504 0 0 1 0-68.266666H446.805333z m318.293334-570.043734l3.1232 0.699734a308.002133 308.002133 0 0 1 123.2896 66.884266l6.109866 5.597867a33.109333 33.109333 0 0 1 10.3424 27.818667l-6.417066 57.275733a8.0384 8.0384 0 0 0 4.949333 8.2944l54.442667 23.261867a34.133333 34.133333 0 0 1 18.858666 19.899733l0.8192 2.696533a287.914667 287.914667 0 0 1 1.9456 136.789334l-1.9456 7.936c-2.6112 10.069333-9.8816 18.432-19.694933 22.613333l-54.442667 23.261867a8.0384 8.0384 0 0 0-4.932266 8.2944l6.417066 57.224533a33.024 33.024 0 0 1-8.328533 25.770667l-1.9968 2.048a307.319467 307.319467 0 0 1-121.344 70.126933l-8.072533 2.338133c-2.048 0.546133-4.1472 0.9216-6.263467 1.092267l-3.191467 0.136533c-7.389867 0-14.592-2.286933-20.565333-6.5024l-48.008533-34.065066a8.567467 8.567467 0 0 0-9.8816 0l-48.008534 34.065066a35.669333 35.669333 0 0 1-26.914133 5.9392l-3.106133-0.7168a308.0192 308.0192 0 0 1-123.2896-66.8672l-6.144-5.614933a33.109333 33.109333 0 0 1-10.325334-27.8016l6.434134-57.224533a8.055467 8.055467 0 0 0-4.949334-8.2944l-54.442666-23.261867a34.133333 34.133333 0 0 1-18.858667-19.899733l-0.836267-2.7136a287.914667 287.914667 0 0 1-1.928533-136.789334l1.928533-7.936c2.628267-10.069333 9.898667-18.397867 19.712-22.596266l54.408534-23.261867a8.055467 8.055467 0 0 0 4.949333-8.2944l-6.417067-57.224533a33.024 33.024 0 0 1 8.328534-25.770667l1.9968-2.048a307.3536 307.3536 0 0 1 121.344-70.144l8.072533-2.338133a35.703467 35.703467 0 0 1 30.020267 5.256533l48.008533 34.048a8.567467 8.567467 0 0 0 9.898667 0l48.008533-34.048a35.618133 35.618133 0 0 1 23.773867-6.382933l3.1232 0.426666zM853.333333 0C947.5072 0 1024 71.406933 1024 159.232v400.503467a5.205333 5.205333 0 0 0-0.989867-1.604267l-0.546133-0.392533-66.747733-28.3648v-67.6864l1.467733-12.868267a39.901867 39.901867 0 0 0-1.4336-15.940267l-0.034133-273.629866C955.733333 109.090133 909.824 68.266667 853.333333 68.266667H170.666667c-56.507733 0-102.4 40.789333-102.4 90.965333v568.9344c0 50.158933 45.892267 90.965333 102.4 90.965333h239.36c3.566933 1.536 5.888 4.864 6.075733 8.533334l-0.0512 1.604266-6.570667 58.129067H170.683733C76.6464 887.432533 0 816.042667 0 728.200533V159.249067C0 71.406933 76.629333 0 170.683733 0H853.333333z m-88.302933 456.174933l-33.706667 23.893334a79.701333 79.701333 0 0 1-92.1088 0l-33.723733-23.893334a237.789867 237.789867 0 0 0-71.850667 40.277334l4.522667 40.157866c3.771733 32.750933-14.8992 64.068267-46.062933 77.294934l-38.1952 16.315733a222.993067 222.993067 0 0 0 0 80.384l38.1952 16.3328c31.163733 13.226667 49.834667 44.544 46.08 77.294933l-4.5568 40.174934a237.7216 237.7216 0 0 0 71.850666 40.277333l33.706667-23.927467a79.394133 79.394133 0 0 1 41.5744-14.523733l4.5056-0.119467a79.530667 79.530667 0 0 1 46.08 14.6432l33.6896 23.893334a237.602133 237.602133 0 0 0 71.850667-40.260267l-4.5056-40.174933c-3.754667-32.750933 14.8992-64.068267 46.045866-77.277867l38.212267-16.2816a222.993067 222.993067 0 0 0 0-80.401067l-38.212267-16.349866c-31.146667-13.226667-49.8176-44.544-46.045866-77.312l4.5056-40.1408a237.6192 237.6192 0 0 0-71.850667-40.277334z m-79.7696 75.605334c78.8992 0 143.069867 62.173867 143.069867 138.5984 0 76.4416-64.170667 138.615467-143.069867 138.615466-78.882133 0-143.0528-62.173867-143.0528-138.615466 0-76.424533 64.170667-138.5984 143.0528-138.5984z m0 67.413333c-40.567467 0-73.454933 31.880533-73.454933 71.185067 0 39.3216 32.887467 71.185067 73.454933 71.185066 39.355733 0 71.4752-29.969067 73.386667-67.618133l0.085333-3.549867c-0.0512-38.109867-30.941867-69.205333-69.802667-71.099733l-3.669333-0.085333z" fill="#121649" ></path></symbol></svg>',i=(i=document.getElementsByTagName("script"))[i.length-1].getAttribute("data-injectcss"),h=function(a,t){t.parentNode.insertBefore(a,t)};if(i&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(a){console&&console.log(a)}}function d(){o||(o=!0,e())}function s(){try{c.documentElement.doScroll("left")}catch(a){return void setTimeout(s,50)}d()}t=function(){var a,t=document.createElement("div");t.innerHTML=n,n=null,(t=t.getElementsByTagName("svg")[0])&&(t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.width=0,t.style.height=0,t.style.overflow="hidden",t=t,(a=document.body).firstChild?h(t,a.firstChild):a.appendChild(t))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(t,0):(l=function(){document.removeEventListener("DOMContentLoaded",l,!1),t()},document.addEventListener("DOMContentLoaded",l,!1)):document.attachEvent&&(e=t,c=a.document,o=!1,s(),c.onreadystatechange=function(){"complete"==c.readyState&&(c.onreadystatechange=null,d())})}(window);
\ No newline at end of file
window._iconfont_svg_string_3597207='<svg><symbol id="icon-exit" viewBox="0 0 1024 1024"><path d="M814 65.9H265.7c-80.5 0-146 65.5-146 146V320c0 19.9 16.1 36 36 36s36-16.1 36-36V211.9c0-40.8 33.2-74 74-74H814c40.8 0 74 33.2 74 74v602.6c0 40.8-33.2 74-74 74H265.7c-40.8 0-74-33.2-74-74V704.2c0-19.9-16.1-36-36-36s-36 16.1-36 36v110.3c0 80.5 65.5 146 146 146H814c80.5 0 146-65.5 146-146V211.9c0-80.5-65.5-146-146-146z" ></path><path d="M549.7 680.5c-13.5 14.6-12.6 37.4 2 50.9 6.9 6.4 15.7 9.6 24.4 9.6 9.7 0 19.4-3.9 26.5-11.6l177.4-192c6.5-7 9.6-15.9 9.5-24.8 0.1-8.8-3.1-17.7-9.5-24.8l-177.4-192c-13.5-14.6-36.3-15.5-50.9-2-14.6 13.5-15.5 36.3-2 50.9l121.6 131.6H100c-19.9 0-36 16.1-36 36s16.1 36 36 36h571.8L549.7 680.5z" ></path></symbol><symbol id="icon-xitongguanli" viewBox="0 0 1024 1024"><path d="M894.7 597.8h-94.1v-65.9c-0.3-16.4-13.9-29.5-30.4-29.2H542.1V454c83.7-16.7 138.1-98.2 121.3-181.9-16.7-83.7-98.2-138.1-181.9-121.3-83.7 16.7-138.1 98.2-121.3 181.9 12.2 61.2 60.1 109.1 121.3 121.3v48.6H253.3c-16.4-0.3-30 12.8-30.4 29.2v65.9h-94.1c-16.4-0.2-29.9 12.8-30.2 29.2v240c0.3 16.4 13.8 29.4 30.2 29.2h248.7c16.4 0.3 29.9-12.7 30.2-29.1V627c-0.3-16.4-13.7-29.4-30.1-29.2H283.4V561h456.7v36.8H646c-16.4-0.3-29.9 12.7-30.2 29.1V867c0.3 16.4 13.7 29.4 30.1 29.2H894.7c16.4 0.2 29.9-12.8 30.2-29.2V627c-0.3-16.4-13.8-29.5-30.2-29.2z m-547.4 58.3v181.7H159V656.1h188.3z m70.3-348.4c-1.9-52 38.8-95.7 90.8-97.5 52-1.9 95.7 38.8 97.5 90.8 1.9 52-38.8 95.7-90.8 97.5-1.2 0-2.3 0.1-3.5 0.1-50.9 0.7-93-39.9-94-90.9z m446.9 530.1H676.2V656.1h188.3v181.7z" fill="#333333" ></path></symbol><symbol id="icon-shouye" viewBox="0 0 1024 1024"><path d="M979.792374 404.577188 574.183101 83.942886c-34.918864-27.694272-89.619352-27.694272-124.538216 0L44.207626 404.577188c-13.933143 11.008903-16.169326 31.134554-5.332437 44.895683s30.618512 16.169326 44.551655 5.332437l12.55703-10.320847 0 387.547791c0 54.872501 57.968755 95.983874 108.712918 95.983874l639.892491 0c50.22812 0 83.254829-38.531161 83.254829-95.983874L927.844112 445.860575l11.69696 8.944734c5.84848 4.644381 13.073072 6.880564 20.125651 6.880564 9.460776 0 18.921552-4.128339 25.286074-12.213002C995.9617 435.711742 993.725517 415.586091 979.792374 404.577188zM479.919368 864.026877 479.919368 686.508315c0-8.77272 15.997312-13.245087 31.994625-13.245087s31.994625 4.472367 31.994625 13.245087l0 177.346548L479.919368 864.026877 479.919368 864.026877zM864.026877 832.032253c0 21.157736-5.84848 31.994625-19.26558 31.994625L608.585923 864.026877c0-0.516042-0.688056-0.860071-0.688056-1.376113L607.897867 686.508315c0-37.155048-29.930455-77.234336-95.983874-77.234336s-95.983874 40.079288-95.983874 77.234336l0 176.142449c0 0.516042 0.860071 0.860071 0.860071 1.376113L204.868806 864.026877c-20.125651 0-44.723669-17.373425-44.723669-31.994625L160.145137 393.740299 488.864102 134.171006c11.868974-9.288762 33.198723-9.288762 44.895683 0l330.095078 261.11742L863.854863 832.032253z" ></path></symbol><symbol id="icon-shezhi" viewBox="0 0 1024 1024"><path d="M512 697.6c102.4 0 182.4-83.2 182.4-185.6 0-102.4-83.2-185.6-182.4-185.6-102.4 0-182.4 83.2-182.4 185.6C329.6 614.4 412.8 697.6 512 697.6L512 697.6zM512 646.4c-73.6 0-134.4-60.8-134.4-134.4 0-73.6 60.8-134.4 134.4-134.4 73.6 0 134.4 60.8 134.4 134.4C646.4 585.6 585.6 646.4 512 646.4L512 646.4z" ></path><path d="M249.015232 843.178592c35.2 28.8 73.6 51.2 112 67.2 41.6-38.4 96-60.8 150.4-60.8 57.6 0 108.8 22.4 150.4 60.8 41.6-16 80-38.4 112-67.2-12.8-54.4-3.2-112 22.4-163.2 28.8-48 73.6-86.4 128-102.4 3.2-22.4 6.4-44.8 6.4-67.2 0-22.4-3.2-44.8-6.4-67.2-54.4-16-99.2-54.4-128-102.4-28.8-48-35.2-108.8-22.4-163.2-35.2-28.8-73.6-51.2-112-67.2-41.6 38.4-92.8 60.8-150.4 60.8-54.4 0-108.8-22.4-150.4-60.8-41.6 16-80 38.4-112 67.2 12.8 54.4 3.2 112-22.4 163.2-28.8 48-73.6 86.4-128 102.4-3.2 22.4-6.4 44.8-6.4 67.2 0 22.4 3.2 44.8 6.4 67.2 54.4 16 99.2 54.4 128 102.4C252.215232 731.178592 261.815232 788.778592 249.015232 843.178592M361.015232 958.378592c-54.4-19.2-105.6-48-150.4-89.6-6.4-6.4-9.6-16-6.4-22.4 16-48 9.6-99.2-16-140.8-25.6-44.8-64-73.6-112-83.2-9.6-3.2-16-9.6-16-19.2-6.4-28.8-9.6-60.8-9.6-89.6 0-28.8 3.2-57.6 9.6-89.6 3.2-9.6 9.6-16 16-19.2 48-12.8 89.6-41.6 112-83.2 25.6-44.8 28.8-92.8 16-140.8-3.2-9.6 0-19.2 6.4-22.4 44.8-38.4 96-67.2 150.4-89.6 9.6-3.2 16 0 22.4 6.4 35.2 35.2 80 57.6 128 57.6 48 0 96-19.2 128-57.6 6.4-6.4 16-9.6 22.4-6.4 54.4 19.2 105.6 48 150.4 89.6 6.4 6.4 9.6 16 6.4 22.4-16 48-9.6 99.2 16 140.8 25.6 44.8 64 73.6 112 83.2 9.6 3.2 16 9.6 16 19.2 6.4 28.8 9.6 60.8 9.6 89.6 0 28.8-3.2 57.6-9.6 89.6-3.2 9.6-9.6 16-16 19.2-48 12.8-89.6 41.6-112 83.2-25.6 44.8-28.8 92.8-16 140.8 3.2 9.6 0 19.2-6.4 22.4-44.8 38.4-96 67.2-150.4 89.6-9.6 3.2-16 0-22.4-6.4-35.2-35.2-80-57.6-128-57.6-48 0-96 19.2-128 57.6-3.2 3.2-9.6 6.4-16 6.4C364.215232 958.378592 361.015232 958.378592 361.015232 958.378592z" ></path></symbol><symbol id="icon-xiaoxi" viewBox="0 0 1024 1024"><path d="M901.89824 125.31712H122.88c-67.75808 0-122.88 55.12192-122.88 122.88v552.97024c0 67.75808 55.12192 122.88 122.88 122.88h779.01824c67.75808 0 122.88-55.12192 122.88-122.88V248.19712c0-67.74784-55.12192-122.88-122.88-122.88z m81.92 675.85024c0 45.16864-36.75136 81.92-81.92 81.92H122.88c-45.16864 0-81.92-36.75136-81.92-81.92V248.19712c0-45.16864 36.75136-81.92 81.92-81.92h779.01824c45.16864 0 81.92 36.75136 81.92 81.92v552.97024z" fill="" ></path><path d="M527.7184 502.43584a21.7088 21.7088 0 0 1-30.65856 0L206.00832 211.39456l-28.95872 28.95872 291.05152 291.05152c12.21632 12.20608 28.25216 18.31936 44.288 18.31936s32.08192-6.11328 44.288-18.31936l291.05152-291.05152-28.95872-28.95872-291.05152 291.04128z" fill="" ></path></symbol><symbol id="icon-gaojing" viewBox="0 0 1024 1024"><path d="M192 832a32 32 0 0 0 0 64h640a32 32 0 0 0 0-64H192z m0-64h640a96 96 0 0 1 0 192H192a96 96 0 0 1 0-192z" ></path><path d="M816 208m-48 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0Z" ></path><path d="M208 208m-48 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0Z" ></path><path d="M480 608a32 32 0 0 1 64 0v160a32 32 0 0 1-64 0v-160z" ></path><path d="M512 640a112 112 0 1 1 0-224 112 112 0 0 1 0 224z m0-64a48 48 0 1 0 0-96 48 48 0 0 0 0 96zM864 480a32 32 0 0 1 0-64h96a32 32 0 0 1 0 64h-96zM64 480a32 32 0 0 1 0-64h96a32 32 0 0 1 0 64H64zM480 64a32 32 0 0 1 64 0v96a32 32 0 0 1-64 0V64z" ></path><path d="M272.448 800h-64v-288a304 304 0 0 1 608 0v288h-64v-288a240 240 0 0 0-480 0v288z" ></path></symbol><symbol id="icon-dalou" viewBox="0 0 1024 1024"><path d="M981.333333 1024h-938.666666a42.666667 42.666667 0 0 1 0-85.333333H85.333333V128A128 128 0 0 1 213.333333 0h302.506667a128 128 0 0 1 128 128v224l202.24 58.453333A128 128 0 0 1 938.666667 533.333333V938.666667h42.666666a42.666667 42.666667 0 0 1 0 85.333333z m-337.493333-85.333333H853.333333V533.333333a42.666667 42.666667 0 0 0-30.72-42.666666l-178.773333-51.626667v148.906667h85.333333a42.666667 42.666667 0 0 1 0 85.333333h-85.333333v72.106667h85.333333a42.666667 42.666667 0 0 1 0 85.333333h-85.333333V938.666667z m-151.04 0h65.706667V128a42.666667 42.666667 0 0 0-42.666667-42.666667H213.333333A42.666667 42.666667 0 0 0 170.666667 128V938.666667h66.133333v-170.666667a42.666667 42.666667 0 0 1 42.666667-42.666667h170.666666a42.666667 42.666667 0 0 1 42.666667 42.666667v170.666667z m-170.666667 0h85.333334v-128h-85.333334V938.666667z m128-320h-170.666666a42.666667 42.666667 0 0 1 0-85.333334h170.666666a42.666667 42.666667 0 0 1 0 85.333334z m0-170.666667h-170.666666a42.666667 42.666667 0 0 1 0-85.333333h170.666666a42.666667 42.666667 0 0 1 0 85.333333z m0-170.666667h-170.666666a42.666667 42.666667 0 0 1 0-85.333333h170.666666a42.666667 42.666667 0 0 1 0 85.333333z" ></path></symbol><symbol id="icon-xitongguanli1" viewBox="0 0 1024 1024"><path d="M446.805333 955.716267a381.405867 381.405867 0 0 0 133.597867 66.730666c2.7136 0.733867 13.346133 1.2288 29.0816 1.536h-404.650667a34.1504 34.1504 0 0 1 0-68.266666H446.805333z m318.293334-570.043734l3.1232 0.699734a308.002133 308.002133 0 0 1 123.2896 66.884266l6.109866 5.597867a33.109333 33.109333 0 0 1 10.3424 27.818667l-6.417066 57.275733a8.0384 8.0384 0 0 0 4.949333 8.2944l54.442667 23.261867a34.133333 34.133333 0 0 1 18.858666 19.899733l0.8192 2.696533a287.914667 287.914667 0 0 1 1.9456 136.789334l-1.9456 7.936c-2.6112 10.069333-9.8816 18.432-19.694933 22.613333l-54.442667 23.261867a8.0384 8.0384 0 0 0-4.932266 8.2944l6.417066 57.224533a33.024 33.024 0 0 1-8.328533 25.770667l-1.9968 2.048a307.319467 307.319467 0 0 1-121.344 70.126933l-8.072533 2.338133c-2.048 0.546133-4.1472 0.9216-6.263467 1.092267l-3.191467 0.136533c-7.389867 0-14.592-2.286933-20.565333-6.5024l-48.008533-34.065066a8.567467 8.567467 0 0 0-9.8816 0l-48.008534 34.065066a35.669333 35.669333 0 0 1-26.914133 5.9392l-3.106133-0.7168a308.0192 308.0192 0 0 1-123.2896-66.8672l-6.144-5.614933a33.109333 33.109333 0 0 1-10.325334-27.8016l6.434134-57.224533a8.055467 8.055467 0 0 0-4.949334-8.2944l-54.442666-23.261867a34.133333 34.133333 0 0 1-18.858667-19.899733l-0.836267-2.7136a287.914667 287.914667 0 0 1-1.928533-136.789334l1.928533-7.936c2.628267-10.069333 9.898667-18.397867 19.712-22.596266l54.408534-23.261867a8.055467 8.055467 0 0 0 4.949333-8.2944l-6.417067-57.224533a33.024 33.024 0 0 1 8.328534-25.770667l1.9968-2.048a307.3536 307.3536 0 0 1 121.344-70.144l8.072533-2.338133a35.703467 35.703467 0 0 1 30.020267 5.256533l48.008533 34.048a8.567467 8.567467 0 0 0 9.898667 0l48.008533-34.048a35.618133 35.618133 0 0 1 23.773867-6.382933l3.1232 0.426666zM853.333333 0C947.5072 0 1024 71.406933 1024 159.232v400.503467a5.205333 5.205333 0 0 0-0.989867-1.604267l-0.546133-0.392533-66.747733-28.3648v-67.6864l1.467733-12.868267a39.901867 39.901867 0 0 0-1.4336-15.940267l-0.034133-273.629866C955.733333 109.090133 909.824 68.266667 853.333333 68.266667H170.666667c-56.507733 0-102.4 40.789333-102.4 90.965333v568.9344c0 50.158933 45.892267 90.965333 102.4 90.965333h239.36c3.566933 1.536 5.888 4.864 6.075733 8.533334l-0.0512 1.604266-6.570667 58.129067H170.683733C76.6464 887.432533 0 816.042667 0 728.200533V159.249067C0 71.406933 76.629333 0 170.683733 0H853.333333z m-88.302933 456.174933l-33.706667 23.893334a79.701333 79.701333 0 0 1-92.1088 0l-33.723733-23.893334a237.789867 237.789867 0 0 0-71.850667 40.277334l4.522667 40.157866c3.771733 32.750933-14.8992 64.068267-46.062933 77.294934l-38.1952 16.315733a222.993067 222.993067 0 0 0 0 80.384l38.1952 16.3328c31.163733 13.226667 49.834667 44.544 46.08 77.294933l-4.5568 40.174934a237.7216 237.7216 0 0 0 71.850666 40.277333l33.706667-23.927467a79.394133 79.394133 0 0 1 41.5744-14.523733l4.5056-0.119467a79.530667 79.530667 0 0 1 46.08 14.6432l33.6896 23.893334a237.602133 237.602133 0 0 0 71.850667-40.260267l-4.5056-40.174933c-3.754667-32.750933 14.8992-64.068267 46.045866-77.277867l38.212267-16.2816a222.993067 222.993067 0 0 0 0-80.401067l-38.212267-16.349866c-31.146667-13.226667-49.8176-44.544-46.045866-77.312l4.5056-40.1408a237.6192 237.6192 0 0 0-71.850667-40.277334z m-79.7696 75.605334c78.8992 0 143.069867 62.173867 143.069867 138.5984 0 76.4416-64.170667 138.615467-143.069867 138.615466-78.882133 0-143.0528-62.173867-143.0528-138.615466 0-76.424533 64.170667-138.5984 143.0528-138.5984z m0 67.413333c-40.567467 0-73.454933 31.880533-73.454933 71.185067 0 39.3216 32.887467 71.185067 73.454933 71.185066 39.355733 0 71.4752-29.969067 73.386667-67.618133l0.085333-3.549867c-0.0512-38.109867-30.941867-69.205333-69.802667-71.099733l-3.669333-0.085333z" fill="#121649" ></path></symbol></svg>',function(c){var a=(a=document.getElementsByTagName("script"))[a.length-1],t=a.getAttribute("data-injectcss"),a=a.getAttribute("data-disable-injectsvg");if(!a){var l,e,o,i,n,h=function(a,t){t.parentNode.insertBefore(a,t)};if(t&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(a){console&&console.log(a)}}l=function(){var a,t=document.createElement("div");t.innerHTML=c._iconfont_svg_string_3597207,(t=t.getElementsByTagName("svg")[0])&&(t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.width=0,t.style.height=0,t.style.overflow="hidden",t=t,(a=document.body).firstChild?h(t,a.firstChild):a.appendChild(t))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(e=function(){document.removeEventListener("DOMContentLoaded",e,!1),l()},document.addEventListener("DOMContentLoaded",e,!1)):document.attachEvent&&(o=l,i=c.document,n=!1,s(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,d())})}function d(){n||(n=!0,o())}function s(){try{i.documentElement.doScroll("left")}catch(a){return void setTimeout(s,50)}d()}}(window);
\ No newline at end of file
......@@ -5,6 +5,13 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "10554935",
"name": "退出登录",
"font_class": "exit",
"unicode": "e639",
"unicode_decimal": 58937
},
{
"icon_id": "12889883",
"name": "系统管理-部门管理",
......
......@@ -17,7 +17,7 @@ html,body {
font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, STHeiTi, Arial, sans-serif;
}
body {
overflow-y: scroll;
overflow-y: auto;
}
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {
margin: 0;
......
/* 颜色 */
:root {
--project_blue: #00d1ff;
--project_yellow: #e8ba57;
--project_orange: #e77649;
}
*{
box-sizing: border-box;
}
.primary {
color: #1890ff;
}
.delete {
color: #ff4d4f;
}
.green {
color: #1bbc9b;
}
.clofff {
color: #fff;
}
.ordinary {
color: #999;
}
.wraning {
color: #ff7200;
}
.bgdel {
background-color: #ff4d4f;
}
.bgpr {
background-color: #1890ff;
}
.bgg {
background-color: #1bbc9b;
}
/* 弹性布局 */
.flex {
display: flex;
}
.flex1 {
flex: 1;
}
.flexc {
flex-direction: column;
}
.flexwrap {
flex-wrap: wrap;
}
.jcc {
justify-content: center;
}
.jca {
justify-content: space-around;
}
.jcb {
justify-content: space-between;
}
.jce {
justify-content: space-evenly;
}
.aic {
align-items: center;
}
.aca {
align-content: space-around;
}
.acb {
align-content: space-between;
}
.ace {
align-content: space-evenly;
}
/* margin */
.m10 {
margin: 10px;
}
.m15 {
margin: 15px;
}
.m20 {
margin: 20px;
}
.mt10 {
margin-top: 10px;
}
.mt15 {
margin-top: 15px;
}
.mt20 {
margin-top: 20px;
}
.mt30 {
margin-top: 30px;
}
.mt50 {
margin-top: 50px;
}
.ml10 {
margin-left: 10px;
}
.ml15 {
margin-left: 15px;
}
.ml20 {
margin-left: 20px;
}
.ml25 {
margin-left: 25px;
}
.mr10 {
margin-right: 10px;
}
.mr15 {
margin-right: 15px;
}
.mr20 {
margin-right: 20px;
}
.mr25 {
margin-right: 25px;
}
.mr50 {
margin-right: 50px;
}
.mr100 {
margin-right: 100px;
}
.mb10 {
margin-bottom: 10px;
}
.mb15 {
margin-bottom: 15px;
}
.mb20 {
margin-bottom: 20px;
}
.mb25 {
margin-bottom: 25px;
}
.mb30{
margin-bottom: 30px;
}
/* padding */
.pd10 {
padding: 10px;
}
.pd15 {
padding: 15px;
}
.pd20 {
padding: 20px;
}
.pdt10 {
padding-top: 10px;
}
.pdt15 {
padding-top: 15px;
}
.pdt20 {
padding-top: 20px;
}
.pdt30 {
padding-top: 30px;
}
.pdl8 {
padding-left: 8px;
}
.pdl10 {
padding-left: 10px;
}
.pdl15 {
padding-left: 15px;
}
.pdl20 {
padding-left: 20px;
}
.pdr10 {
padding-right: 10px;
}
.pdr15 {
padding-right: 15px;
}
.pdr20 {
padding-right: 20px;
}
.pdb10 {
padding-bottom: 10px;
}
.pdb15 {
padding-bottom: 15px;
}
.pdb20 {
padding-bottom: 20px;
}
/* 字体大小 */
.font14 {
font-size: 16px;
}
.font16 {
font-size: 16px;
}
.font18 {
font-size: 18px;
}
.font20 {
font-size: 20px;
}
.font22 {
font-size: 22px;
}
.font24 {
font-size: 24px;
}
.font26 {
font-size: 26px;
}
.font28 {
font-size: 28px;
}
.font30 {
font-size: 30px;
}
/* 字体位置 */
.tac {
text-align: center;
}
.tal {
text-align: left;
}
.tar {
text-align: right;
}
/* 加粗 */
.fontw600 {
font-weight: 600;
}
.fontw700 {
font-weight: 700;
}
.fontw800 {
font-weight: 800;
}
/* 手型鼠标 */
.pointer {
cursor: pointer;
}
.pagination {
margin-top: 10px;
text-align: right;
}
......@@ -3,26 +3,26 @@
*/
const session = {
// 设置
setSession(key, val) {
sessionStorage.setItem(key, JSON.stringify(val));
},
// 设置
setSession(key, val) {
sessionStorage.setItem(key, JSON.stringify(val));
},
// 获取
getSession(key) {
return JSON.parse(sessionStorage.getItem(key));
},
// 获取
getSession(key) {
return JSON.parse(sessionStorage.getItem(key));
},
// 删除本地存储
removeSession(key) {
sessionStorage.removeItem(key)
},
// 删除本地存储
removeSession(key) {
sessionStorage.removeItem(key);
},
// 清空本地存储
clearSession() {
sessionStorage.clear();
},
// 清空本地存储
clearSession() {
sessionStorage.clear();
},
};
// 暴露
export default session;
\ No newline at end of file
export default session;
......@@ -32,7 +32,7 @@
:active="submenu.path === item.path"
:title="item.name"
>
<i :class="`iconfont ${item.icon}`"></i>
<i :class="item.icon"></i>
<span>
{{ item.name }}
</span>
......@@ -67,7 +67,7 @@
:active="submenu.path === item.path"
:title="item.name"
>
<i :class="'el-icon-' + item.icon"></i>
<i :class="item.icon"></i>
{{ item.name }}
</router-link>
</li>
......
......@@ -7,7 +7,7 @@
</slot>
<div slot="overlay" class="select-site" v-if="show">
<div class="flex_row flex_align_c primary-color name">
<a-icon type="environment" style="margin-right: 10px" />
<i class="el-icon-location-outline"></i>
<span style="">{{ siteName }}</span>
</div>
<div class="site-list">
......@@ -112,8 +112,6 @@ export default {
? "http://192.168.0.98:11078/base/site/siteTree"
: process.env.VUE_APP_SITETREE_URL;
this.$get(url).then((res) => {
const { siteTree } = res.data;
this.sitelist = siteTree;
......
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import './assets/less/base.less'
import App from './App.vue'
import router from './router'
import store from './store'
import Prototype from './assets/utils/prototype'
import Filter from './assets/utils/filter.js'
import GlobalComponents from './assets/utils/globalComponents.js'
import Global from './assets/utils/global.js'
import VueClipboard from 'vue-clipboard2'
import VueAMap from 'vue-amap';
import * as echarts from 'echarts'
import Vue from "vue";
import ElementUI from "element-ui";
import "element-ui/lib/theme-chalk/index.css";
import "./assets/less/base.less";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import Prototype from "./assets/utils/prototype";
import Filter from "./assets/utils/filter.js";
import GlobalComponents from "./assets/utils/globalComponents.js";
import Global from "./assets/utils/global.js";
import VueClipboard from "vue-clipboard2";
import VueAMap from "vue-amap";
import * as echarts from "echarts";
import "@/assets/less/common.less";
Vue.prototype.$echarts = echarts;
Vue.config.productionTip = false
Vue.config.productionTip = false;
Vue.use(ElementUI);
Vue.use(Prototype);
Vue.use(Filter);
Vue.use(GlobalComponents); // 全局组件
Vue.use(VueClipboard)
Vue.use(VueAMap)
Vue.use(VueClipboard);
Vue.use(VueAMap);
// 引入iconfont
import './assets/fonts/iconfont.css'
import "./assets/fonts/iconfont.css";
// moment 时间处理
import moment from 'moment';
import moment from "moment";
Vue.prototype.$moment = moment;
// dataV
// 将自动注册所有组件为全局组件
import dataV from "@jiaminghi/data-view";
Vue.use(dataV);
// 滚动插件
import scroll from "vue-seamless-scroll";
Vue.use(scroll);
VueAMap.initAMapApiLoader({
key: 'f45cca59553214543a5a77e50a7e04df',
plugin: ['AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PlaceSearch', 'AMap.Geolocation', 'AMap.Geocoder'],
v: '1.4.4',
uiVersion: '1.0',
})
key: "f45cca59553214543a5a77e50a7e04df",
plugin: [
"AMap.Scale",
"AMap.OverView",
"AMap.ToolBar",
"AMap.MapType",
"AMap.PlaceSearch",
"AMap.Geolocation",
"AMap.Geocoder",
],
v: "1.4.4",
uiVersion: "1.0",
});
Vue.prototype.Global = Global;
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
render: (h) => h(App),
}).$mount("#app");
import Vue from 'vue'
import Router from 'vue-router'
import Store from './store'
import Layout from './views/Layout.vue'
import fileNotFound from './views/errors/fileNotFound.vue'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
NProgress.configure({ showSpinner: false })
import Vue from "vue";
import Router from "vue-router";
import Store from "./store";
import Layout from "./views/Layout.vue";
import fileNotFound from "./views/errors/fileNotFound.vue";
import NProgress from "nprogress";
import "nprogress/nprogress.css";
NProgress.configure({ showSpinner: false });
Vue.use(Router);
const originalPush = VueRouter.prototype.push
const originalPush = VueRouter.prototype.push;
VueRouter.prototype.push = function push(location, onResolve, onReject) {
if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
return originalPush.call(this, location).catch(err => err)
}
if (onResolve || onReject)
return originalPush.call(this, location, onResolve, onReject);
return originalPush.call(this, location).catch((err) => err);
};
const router = new Router({
routes: [
builder('/authentication', 'login/authentication'),
builder('/login', 'login/login'),
builder('/go', 'codeGen/index'),
builder('/sso', 'SSO'),
{
path: '/',
name: 'layout',
component: Layout,
meta: {
requiresAuth: true
},
children: [
...restBuilder('oper/log', 'system/log'), // 系统管理-操作日志
...restBuilder('validcode', 'system/validcode'), // 接入管理-接入信息
...restBuilder('menu', 'system/menu'), // 系统管理--菜单管理
...restBuilder('resource', 'system/resource'), // 系统管理--资源管理
...restBuilder('role', 'system/role'), // 系统管理--角色管理
...restBuilder('user', 'system/user'), // 用户管理 -- 管理用户
...restBuilder('param', 'system/param'), // 系统管理--参数管理
...restBuilder('task', 'system/task'), // 系统管理--任务管理
// builder('site/list', 'system/site/index'),//站点
...restBuilder('sitestat', 'sitestat'),//站点设备管理
builder('sitestat/maplist', 'sitestat/maplist'),//地图站点
builder('sitestat/mapDetail', 'sitestat/mapDetail'),//地图设备
...restBuilder('platform', 'platform'),//平台
...restBuilder('product', 'product'),//产品
...restBuilder('device', 'device'),//设备
...restBuilder('device/alarm/info', 'device/alarm/info'),//设备告警信息
...restBuilder('device/module', 'device/module'),//设备模块使用率
...restBuilder('device/module/use', 'device/module/use'),//设备模块使用率
...restBuilder('device/module/distribute', 'device/module/distribute'),//设备前端模块部署
...restBuilder('device/log', 'device/log'),
...restBuilder('firm', 'firm'),//
...restBuilder('alarm/config', 'alarm/config'),//设备告警配置
...restBuilder('alarm/sms/send', 'alarm/sms/send'),//设备告警短信
routes: [
builder("/authentication", "login/authentication"),
builder("/login", "login/login"),
builder("/go", "codeGen/index"),
builder("/sso", "SSO"),
builder("/analysis", "analysis/Analysis"), //数据分析
...restBuilder('product/version', 'product/version'),//产品
{
path: "/",
name: "layout",
component: Layout,
meta: {
requiresAuth: true,
},
children: [
...restBuilder("oper/log", "system/log"), // 系统管理-操作日志
...restBuilder("validcode", "system/validcode"), // 接入管理-接入信息
...restBuilder("menu", "system/menu"), // 系统管理--菜单管理
...restBuilder("resource", "system/resource"), // 系统管理--资源管理
...restBuilder("role", "system/role"), // 系统管理--角色管理
...restBuilder("user", "system/user"), // 用户管理 -- 管理用户
...restBuilder("param", "system/param"), // 系统管理--参数管理
...restBuilder("task", "system/task"), // 系统管理--任务管理
// builder('site/list', 'system/site/index'),//站点
...restBuilder("sitestat", "sitestat"), //站点设备管理
builder("sitestat/maplist", "sitestat/maplist"), //地图站点
builder("sitestat/mapDetail", "sitestat/mapDetail"), //地图设备
...restBuilder("platform", "platform"), //平台
...restBuilder("product", "product"), //产品
...restBuilder("device", "device"), //设备
...restBuilder("device/alarm/info", "device/alarm/info"), //设备告警信息
...restBuilder("device/module", "device/module"), //设备模块使用率
...restBuilder("device/module/use", "device/module/use"), //设备模块使用率
...restBuilder("device/module/distribute", "device/module/distribute"), //设备前端模块部署
...restBuilder("device/log", "device/log"),
...restBuilder("firm", "firm"), //
...restBuilder("alarm/config", "alarm/config"), //设备告警配置
...restBuilder("alarm/sms/send", "alarm/sms/send"), //设备告警短信
...restBuilder("alarm/sms/send", "alarm/sms/send"), //设备告警短信
...restBuilder('app/publish', 'app/publish'),//产品
...restBuilder("app/publish", "app/publish"), //产品
...restBuilder('site', 'site'), // 站点管理
...restBuilder("site", "site"), // 站点管理
//以下为基础路由配置
builder('', 'Home'),
builder('index', 'Home'),
builder('login/updatePwd', 'login/updatePwd'),
builder('403', 'errors/403'),
builder('*', 'errors/404'),
]
},
]
})
//以下为基础路由配置
builder("", "Home"),
builder("index", "Home"),
builder("login/updatePwd", "login/updatePwd"),
builder("403", "errors/403"),
builder("*", "errors/404"),
],
},
],
});
/**
* rest路由生成器
......@@ -79,12 +80,12 @@ const router = new Router({
* @returns {array} [] reset路由数组,包含list/edit/add/view
*/
function restBuilder(path, component = path) {
let arr = [];
arr.push(builder(`${path}/list`, `${component}/list`));
arr.push(builder(`${path}/edit`, `${component}/show`));
arr.push(builder(`${path}/add`, `${component}/show`));
arr.push(builder(`${path}/view`, `${component}/show`));
return arr;
let arr = [];
arr.push(builder(`${path}/list`, `${component}/list`));
arr.push(builder(`${path}/edit`, `${component}/show`));
arr.push(builder(`${path}/add`, `${component}/show`));
arr.push(builder(`${path}/view`, `${component}/show`));
return arr;
}
/**
......@@ -96,65 +97,71 @@ function restBuilder(path, component = path) {
* @returns {any} {} 路由对象
*/
function builder(path, component = path, requiresAuth = false) {
return {
path: path,
name: path || 'homepage',
component: getComponent(component),
meta: {
requiresAuth: requiresAuth
}
}
return {
path: path,
name: path || "homepage",
component: getComponent(component),
meta: {
requiresAuth: requiresAuth,
},
};
}
function getComponent(fileName) {
try {
return require('./views/' + fileName).default
} catch (error) {
return fileNotFound;
}
try {
return require("./views/" + fileName).default;
} catch (error) {
return fileNotFound;
}
}
//检查是否跳转到sso地址
function ssoCheck(to, from, next) {
console.log("to", to)
console.log("from", from)
console.log("next", next)
let redirect = (to.path === '/login/updatePwd') ? '/#/updatePwd' : ''
redirect = (redirect === '' && to.path === '/login') ? (location.protocol + '//' + location.host + '/#' + from.fullPath) : redirect
if (redirect != '') {
next(false)
window.location.href = '//' + location.host + '/m/login/logout?redirect=' + encodeURIComponent(redirect)
return true;
}
return false;
console.log("to", to);
console.log("from", from);
console.log("next", next);
let redirect = to.path === "/login/updatePwd" ? "/#/updatePwd" : "";
redirect =
redirect === "" && to.path === "/login"
? location.protocol + "//" + location.host + "/#" + from.fullPath
: redirect;
if (redirect != "") {
next(false);
window.location.href =
"//" +
location.host +
"/m/login/logout?redirect=" +
encodeURIComponent(redirect);
return true;
}
return false;
}
router.afterEach(() => {
document.body.scrollTop = 0
document.documentElement.scrollTop = 0
NProgress.done()
})
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
NProgress.done();
});
// 路由鉴权
router.beforeEach((to, from, next) => {
// if (ssoCheck(to, from, next)) { //sso鉴权检查
// return
// }
NProgress.start()
if (to.matched.some(record => record.meta.requiresAuth)) {
if (Store.state.isLogin) {
next();
} else {
next({
path: '/authentication',
query: {
redirect: to.fullPath
}
})
}
// if (ssoCheck(to, from, next)) { //sso鉴权检查
// return
// }
NProgress.start();
if (to.matched.some((record) => record.meta.requiresAuth)) {
if (Store.state.isLogin) {
next();
} else {
next();
next({
path: "/authentication",
query: {
redirect: to.fullPath,
},
});
}
})
} else {
next();
}
});
export default router;
<template>
<div class="analysis flex flexc">
<!-- 头部 -->
<div class="header flex jcc">
<!-- 站点选择 -->
<div class="site-select">
<HeaderSite></HeaderSite>
</div>
<div class="title flex flexc aic">
<h1 class="title-text">AIOT物联网大数据中心</h1>
<p class="title-en">AIOT IOT BIG DATA CENTER</p>
</div>
<!-- 退出系统 -->
<div class="pointer exit-btn" @click="$router.back()">
<i class="iconfont icon-exit"></i>
退出系统
</div>
</div>
<!-- 主体 -->
<div class="main flex1 flex aic jcb">
<div class="left">
<div class="left-centent">
<!-- 设备汇总 -->
<div class="dev-total flex aic jcb mb30">
<div class="dev-total-item">
<img class="icon-img" src="@/assets/images/data/icon4.png" />
<div class="flex flexc jcb">
<div class="title tar">设备总数(台)</div>
<div class="tar count">200</div>
<img class="line-img" src="@/assets/images/data/icon8.png" />
</div>
</div>
<div class="dev-total-item">
<img class="icon-img" src="@/assets/images/data/icon3.png" />
<div class="flex flexc jcb">
<div class="title tar">监控站点(个)</div>
<div class="tar count">200</div>
<img class="line-img" src="@/assets/images/data/icon8.png" />
</div>
</div>
</div>
<!-- 今日告警设备排行 -->
<div class="warning-dev mb30">
<TitleItem title="今日告警设备排名Top10"></TitleItem>
<div class="warning-list">
<dv-scroll-ranking-board
:config="warningInfo"
style="width: 100%; height: 100%"
/>
</div>
</div>
<!-- 设备类型分布 -->
<div class="dev-type-dis flex aic jcb mb30">
<div class="dis-item" id="devTypeDis"></div>
<div class="dis-item" id="warningDis"></div>
</div>
<!-- 设备厂家排名TOP5 -->
<div class="manufacturers">
<TitleItem title="设备厂家排名TOP5" />
<div class="manufacturers-info" id="manufacturersTop"></div>
</div>
</div>
</div>
<div class="center"></div>
<div class="right">
<div class="right-content">
<!-- 设备告警汇总 -->
<div class="dev-total flex aic jcb mb30">
<div class="dev-total-item">
<img class="icon-img" src="@/assets/images/data/icon7.png" />
<div class="flex flexc jcb">
<div class="title tar">今日告警次数(次)</div>
<div class="tar count">200</div>
<img class="line-img" src="@/assets/images/data/icon8.png" />
</div>
</div>
<div class="dev-total-item">
<img class="icon-img" src="@/assets/images/data/icon6.png" />
<div class="flex flexc jcb">
<div class="title tar">今日告警设备(个)</div>
<div class="tar count">200</div>
<img class="line-img" src="@/assets/images/data/icon8.png" />
</div>
</div>
</div>
<!-- 今日告警等级分布 -->
<div class="warning-rank mb30">
<TitleItem title="今日告警等级分布" />
<div class="warning-rank-info flex aic jca">
<div class="warning-info-item1">
<div class="item1-info">
<div class="title">危险</div>
<div class="percent">24%</div>
</div>
</div>
<div class="warning-info-item2">
<div class="item2-info">
<div class="title">危险</div>
<div class="percent">24%</div>
</div>
</div>
<div class="warning-info-item1">
<div class="item1-info">
<div class="title">危险</div>
<div class="percent">24%</div>
</div>
</div>
</div>
</div>
<!-- 实时告警信息发布 -->
<div class="real-time">
<TitleItem title="实时告警信息发布" />
<div class="real-time-list">
<dv-scroll-board
:config="realTimeInfo"
style="width: 100%; height: 100%"
/>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import HeaderSite from "./components/HeaderSite.vue";
import TitleItem from "./components/TitleItem.vue";
export default {
components: {
HeaderSite,
TitleItem,
},
data() {
return {
warningInfo: {
data: [
{
name: "周口",
value: 55,
},
{
name: "南阳",
value: 120,
},
{
name: "西峡",
value: 78,
},
{
name: "驻马店",
value: 66,
},
{
name: "新乡",
value: 80,
},
{
name: "信阳",
value: 45,
},
{
name: "漯河",
value: 29,
},
],
rowNum: 5,
waitTime: 2000,
},
realTimeInfo: {
header: ["设备名称", "告警次数", "告警时间", "告警类型"],
headerHeight: 30,
headerBGC: "#3B5A9E",
oddRowBGC: "",
evenRowBGC: "#263963",
rowNum: 17,
align: ["center", "center", "center", "center"],
data: [
[
"一楼排号机",
"5",
"15:00",
"<span style='color:#5ceeff'>在线</span>",
],
["一楼排号机", "5", "15:00", "在线"],
[
"一楼排号机",
"5",
"15:00",
"<span style='color:#FF4A4A'>离线</span>",
],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "待激活"],
[
"一楼排号机",
"5",
"15:00",
"<span style='color:#FF964A'>停用</span>",
],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
["一楼排号机", "5", "15:00", "在线"],
],
},
};
},
mounted() {
this.getDevTypeDisEchart();
this.getWarningDisEchart();
this.getManufacturersTopEchart();
},
methods: {
// 获取设备类型分布图标
getDevTypeDisEchart() {
let chartDom = document.getElementById("devTypeDis");
this.devType = this.$echarts.init(chartDom);
if (!this.devType) {
this.devType = this.$echarts.init(chartDom);
}
let option = {
// color: ["#5CEEFF", "#5DA7FF", "#FF964A"],
title: {
text: "设备类型分布",
top: 10,
left: 10,
textStyle: {
color: "#fff",
fontSize: "14",
},
},
tooltip: {
trigger: "item",
backgroundColor: "rgba(180, 203, 212, .7)",
borderWidth: 0,
formatter: "{b} : {d}%",
textStyle: {
color: "#fff",
},
},
legend: {
orient: "horizontal",
left: "center",
bottom: "0px",
itemWidth: 8,
itemHeight: 8,
icon: "roundRect",
textStyle: {
fontSize: "14px",
color: "#fff",
},
},
graphic: {
type: "text",
left: "center",
top: "center",
style: {
text: "总数" + "\n\n" + 200,
textAlign: "center",
fill: "#fff",
width: 30,
height: 30,
fontSize: 14,
},
},
series: [
{
name: "子设备",
type: "pie",
radius: ["45%", "60%"],
label: {
show: true,
color: "#fff",
fontSize: 12,
formatter: "{d}%",
},
labelLine: {
show: true,
length: 6,
length2: 6,
},
data: [
{
value: 1048,
name: "子设备",
itemStyle: {
color: "#5CEEFF",
},
},
{
value: 735,
name: "网关设备",
itemStyle: {
color: "#5DA7FF",
},
},
{
value: 580,
name: "直连设备",
itemStyle: {
color: "#FF964A",
},
},
],
},
],
};
option && this.devType.setOption(option);
},
// 获取告警类型分布
getWarningDisEchart() {
let chartDom = document.getElementById("warningDis");
this.warningDis = this.$echarts.init(chartDom);
if (!this.warningDis) {
this.warningDis = this.$echarts.init(chartDom);
}
let option = {
// color: ["#5CEEFF", "#5DA7FF", "#FF964A"],
title: {
text: "告警类型分布",
top: 10,
left: 10,
textStyle: {
color: "#fff",
fontSize: "14",
},
},
tooltip: {
trigger: "item",
backgroundColor: "rgba(180, 203, 212, .7)",
borderWidth: 0,
formatter: "{b} : {d}%",
textStyle: {
color: "#fff",
},
},
legend: {
orient: "horizontal",
left: "center",
bottom: "0px",
itemWidth: 8,
itemHeight: 8,
icon: "roundRect",
textStyle: {
fontSize: "14px",
color: "#fff",
},
},
graphic: {
type: "text",
left: "center",
top: "center",
style: {
text: "总数" + "\n\n" + 2000,
textAlign: "center",
fill: "#fff",
width: 30,
height: 30,
fontSize: 14,
},
},
series: [
{
type: "pie",
radius: ["45%", "60%"],
label: {
show: true,
color: "#fff",
fontSize: 12,
formatter: "{d}%",
},
labelLine: {
show: true,
length: 6,
length2: 6,
},
data: [
{
value: 1048,
name: "在线",
itemStyle: {
color: "#5CEEFF",
},
},
{
value: 735,
name: "离线",
itemStyle: {
color: "#5DA7FF",
},
},
{
value: 580,
name: "缺纸",
itemStyle: {
color: "#FF4A4A",
},
},
],
},
],
};
option && this.warningDis.setOption(option);
},
// 获取厂家top5Echart
getManufacturersTopEchart() {
let chartDom = document.getElementById("manufacturersTop");
// 避免刷新数据时重新初始化图表
this.manufacturersTop = this.$echarts.getInstanceByDom(chartDom);
if (!this.manufacturersTop) {
this.manufacturersTop = this.$echarts.init(chartDom);
}
let option = {
grid: {
top: "0px",
left: "0px",
right: "20px",
bottom: "-30px",
containLabel: true,
},
// 鼠标移入信息查看
tooltip: {
trigger: "axis",
backgroundColor: "rgba(180, 203, 212, .7)",
borderWidth: 0,
textStyle: {
color: "#fff",
},
},
yAxis: [
{
type: "category",
inverse: true, // 反转渲染
data: [
"四川信宏翔科技有限公司",
"四川信宏翔科技有限公司",
"四川信宏翔科技有限公司",
"四川信宏翔科技有限公司",
"四川信宏翔科技有限公司",
],
axisLine: {
show: false,
},
axisTick: {
show: false,
},
// 改变label位置
axisLabel: {
show: true,
inside: true,
splitNumber: 50,
boundaryGap: [20, 20],
//y轴文字的配置
color: "#fff", //Y轴内容文字颜色
verticalAlign: "bottom",
fontSize: 14,
align: "left",
padding: [0, 0, 10, 0],
},
},
],
xAxis: {
type: "value",
show: false,
axisTick: {
show: false,
},
axisLine: {
show: false,
},
splitLine: {
show: false,
lineStyle: {
color: ["rgba(255,255,255,.5)"], // 刻度线颜色
},
},
axisLabel: {
//y轴文字的配置
color: "#fff", //Y轴内容文字颜色
},
},
series: [
{
type: "bar",
barWidth: "8px", // 柱体宽度
data: [100, 200, 100, 300, 400],
// 数值
label: {
show: false,
color: "#fff",
fontSize: 12,
position: "Left",
padding: [0, 0, 0, 150],
// height: 100,
offset: [0, -12],
},
showBackground: true, // 显示背景色
backgroundStyle: {
color: "#243c71", // 背景颜色
},
itemStyle: {
color: new this.$echarts.graphic.LinearGradient(0, 0, 1, 0, [
{
// 四个数字分别对应 数组中颜色的开始位置,分别为 右,下,左,上。例如(1,0,0,0 )代表从右边开始渐
// 变。offset取值为0~1,0代表开始时的颜色,1代表结束时的颜色,柱子表现为这两种颜色的渐变。
offset: 0,
color: "#5390E1",
},
{
offset: 1,
color: "#B8E7FF",
},
]),
},
},
{
// 分隔
type: "pictorialBar",
itemStyle: {
color: "#022539",
},
symbolRepeat: "fixed",
symbolMargin: 4,
symbol: "rect",
symbolClip: true,
symbolSize: [2, 8],
symbolPosition: "start",
symbolOffset: [-1, 0],
data: [100, 200, 100, 300, 400],
z: 66,
animationEasing: "elasticOut",
tooltip: {
show: false,
},
},
{
// 分隔
type: "pictorialBar",
itemStyle: {
color: "#022539",
},
symbolRepeat: "fixed",
symbolMargin: 4,
symbol: "rect",
symbolClip: true,
symbolSize: [2, 8],
symbolPosition: "start",
symbolOffset: [-1, 0],
data: [400, 400, 400, 400, 400],
z: 60,
animationEasing: "elasticOut",
tooltip: {
show: false,
},
},
],
};
option && this.manufacturersTop.setOption(option);
},
},
};
</script>
<style lang="less" scoped>
.analysis {
width: 100%;
height: 100%;
padding-bottom: 40px;
background: url("../../assets/images/data/bg.png") no-repeat center;
background-size: 100% 100%;
color: #fff;
.header {
width: 100%;
height: 126px;
padding: 0px 50px;
padding-top: 15px;
background: url("~@/assets/images/data/head.png") no-repeat center;
background-size: 100% 100%;
position: relative;
flex-shrink: 0;
.title {
.title-text {
font-size: 42px;
font-family: PangMenZhengDao;
font-weight: normal;
}
.title-en {
font-size: 18px;
font-family: Source Han Sans CN;
font-weight: 500;
}
}
.site-select {
position: absolute;
left: 50px;
}
.exit-btn {
position: absolute;
right: 50px;
font-size: 16px;
}
}
.main {
padding: 0px 50px;
}
.dev-total-item {
width: 240px;
height: 100%;
background: url("~@/assets/images/data/xk.png") no-repeat center;
background-size: 100% 100%;
display: flex;
justify-content: space-around;
align-items: center;
.icon-img {
width: 80px;
height: 80px;
}
.title {
font-size: 16px;
color: #d4eaff;
}
.count {
font-size: 20px;
margin: 4px 0px;
font-family: Source Han Sans CN;
}
.line-img {
height: 2px;
width: 100%;
}
}
.left {
width: 500px;
height: 100%;
}
.left-centent {
width: 100%;
.dev-total {
height: 120px;
}
.warning-list {
height: 230px;
padding: 0px 25px;
background: url("~@/assets/images/data/kuang2.png") no-repeat center;
background-size: 100% 100%;
}
.dev-type-dis {
height: 180px;
.dis-item {
height: 100%;
width: 240px;
background: url("~@/assets/images/data/kuang.png") no-repeat center;
background-size: 100% 100%;
}
}
.manufacturers-info {
height: 230px;
padding: 0px 25px;
background: url("~@/assets/images/data/kuang2.png") no-repeat center;
background-size: 100% 100%;
}
}
.right {
width: 500px;
height: 100%;
}
.right-content {
width: 500px;
.warning-rank-info {
height: 188px;
background: url("~@/assets/images/data/kuang2.png") no-repeat center;
background-size: 100% 100%;
.percent {
font-size: 20px;
}
.warning-info-item1 {
width: 128px;
height: 100%;
background: url("~@/assets/images/data/icon2.png") no-repeat center;
position: relative;
.title {
font-size: 14px;
}
.item1-info {
width: 60px;
display: flex;
flex-direction: column;
align-items: center;
position: absolute;
top: 28px;
left: 30px;
}
}
.warning-info-item2 {
width: 168px;
height: 100%;
background: url("~@/assets/images/data/icon.png") no-repeat center;
position: relative;
.title {
font-size: 18px;
}
.item2-info {
width: 60px;
display: flex;
flex-direction: column;
align-items: center;
position: absolute;
top: 14px;
left: 50px;
}
}
}
.real-time-list {
height: 522px;
padding: 15px;
background: url("~@/assets/images/data/kuang3.png") no-repeat center;
background-size: 100% 100%;
}
}
}
/deep/.dv-scroll-ranking-board {
.rank,
.info-name,
.ranking-value {
font-size: 16px;
color: #eff7ff !important;
}
.ranking-column {
border: none !important;
background-color: #243c71;
.inside-column {
height: 6px;
background: linear-gradient(90deg, #5390e1 80%, #b8e7ff 100%);
position: relative;
}
.shine {
display: none;
}
}
}
</style>
\ No newline at end of file
<template>
<el-popover placement="bottom-start" trigger="manual" v-model="visible">
<a slot="reference" class="ant-dropdown-link" @click="visible = true">
{{ siteName }} <i class="el-icon-arrow-down"></i>
</a>
<div class="content" style="min-width: 50vw; min-height: 200px">
<div class="flex_row flex_align_c primary-color name">
<i class="el-icon-location" style="margin-right: 10px"></i>
<span style="">{{ siteName }}</span>
</div>
<div class="site-list">
<span
v-for="(item, index) in sitelist"
:key="index"
:class="{ 'primary-color': item.id == checkid }"
@click="setSite(item)"
>{{ item.label }}</span
>
</div>
<div class="check-site">
<span>您的选择是:</span>
<span
v-for="(item, index) in checkarr"
:key="index"
@click="updataSite(item)"
>{{ index > 0 ? ">" : "" }}{{ item.label }}</span
>
</div>
<div class="site-btn">
<el-button
type="primary"
size="small"
style="margin-right: 10px"
@click="onSucessSite"
:disabled="isSite"
>确定</el-button
>
<el-button size="small" @click="visible = false">取消</el-button>
</div>
</div>
</el-popover>
</template>
<script>
import session from "@/assets/utils/session.js";
export default {
data() {
return {
sitelist: [],
visible: false,
offsetLeft: 0,
checkarr: [], //选中站点
checkid: undefined, //最终选中站点
siteName: "请选择站点",
isSite: true,
};
},
computed: {},
created() {
this.getwaitedListdata();
},
mounted() {},
methods: {
// 确认站点
onSucessSite() {
if (this.checkarr.length == 0) return;
let obj = this.checkarr[this.checkarr.length - 1];
this.clickSite(obj);
},
// 选中
setSite(obj) {
this.checkid = undefined;
// 为子节点不添加数据
let data = this.checkarr[this.checkarr.length - 1];
if (data && (data.isLeaf || data.children.length == 0)) {
// 如果为子节点更新最后一个数据
this.checkid = obj.id;
this.checkarr[this.checkarr.length - 1] = obj;
} else {
this.checkarr.push(obj);
if (obj.children && obj.children.length > 0) {
this.sitelist = obj.children;
}
}
if (obj && obj.type == "site") {
this.isSite = false;
} else {
this.isSite = true;
}
},
// 更新选中
updataSite(row) {
const { id } = row;
this.checkid = undefined;
let index = this.checkarr.findIndex((v) => v.id == id);
this.checkarr.length = index + 1;
this.sitelist = row.children;
if (row && row.type == "site") {
this.isSite = false;
} else {
this.isSite = true;
}
},
getwaitedListdata() {
let url =
process.env.VUE_APP_SITETREE_URL == "undefined"
? "http://192.168.0.98:11078/base/site/siteTree"
: process.env.VUE_APP_SITETREE_URL;
this.$get(url).then((res) => {
const { siteTree } = res.data;
this.sitelist = siteTree;
let arr = [];
const treeFn = function (e) {
e.forEach((element) => {
arr.push(element);
if (element.children && element.children.length > 0) {
treeFn(element.children);
}
});
};
const siteid = session.getSession("siteid");
treeFn(siteTree);
const siteObj = arr.find((v) => v.id == siteid);
this.siteName = siteObj ? siteObj.label : "请选择站点";
});
},
clickSite(obj) {
session.setSession("siteid", obj.id);
this.show = false;
if (location.href.search(/token/gi) >= 0) {
setTimeout(() => {
location.reload();
});
} else {
location.reload();
}
},
},
};
</script>
<style lang="less" scoped>
.ant-dropdown-link {
padding: 0px;
font-size: 16px;
min-width: 200px;
display: inline-block;
}
.content {
display: flex;
flex-direction: column;
justify-content: space-around;
.name {
font-size: 20px;
color: #1890ff;
}
.site-list {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
display: flex;
flex-wrap: wrap;
span {
line-height: 1.5;
padding: 10px 20px;
cursor: pointer;
&:hover {
color: #1890ff;
}
}
}
.check-site,
.site-btn {
padding: 0 20px;
}
.check-site {
cursor: pointer;
}
}
.trigger {
display: inline-block;
position: relative;
}
.ant-dropdown-link {
padding: 0px;
font-size: 16px;
display: inline-block;
color: #fff;
cursor: pointer;
}
.select-site {
position: fixed;
left: 300px !important;
top: 65px;
background: #fff;
border-radius: 6px;
padding: 10px;
min-width: 60%;
max-width: 80%;
z-index: 9;
color: rgba(0, 0, 0, 0.8);
font-size: 14px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
.name {
font-size: 20px;
}
.site-list {
// padding: 10px 0;
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
overflow: hidden;
span {
float: left;
line-height: 1.5;
padding: 10px 20px;
cursor: pointer;
&:hover {
color: #1890ff;
}
}
}
.check-site,
.site-btn {
padding: 0 20px;
}
}
</style>
<template>
<div class="title-item">
{{ title }}
</div>
</template>
<script>
export default {
props: {
title: {
required: true,
default: "",
},
},
data() {
return {};
},
};
</script>
<style lang="less" scoped>
.title-item {
width: 436px;
height: 48px;
padding-left: 36px;
padding-top: 10px;
background: url("~@/assets/images/data/xb.png") no-repeat center;
background-size: 100% 100%;
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: bold;
color: #ffffff;
}
</style>
\ No newline at end of file
......@@ -47,7 +47,7 @@
:key="index"
:label="icon"
>
<i :class="`iconfont ${icon}`"></i>
<i :class="icon"></i>
{{ icon }}
</el-radio-button>
</el-radio-group>
......@@ -82,13 +82,37 @@ export default {
return {
toString: ["parentId", "authType", "status"],
icons: [
"icon-shouye",
"icon-shezhi",
"icon-xiaoxi",
"icon-xitongguanli",
"icon-gaojing",
"icon-dalou",
"icon-xitongguanli1",
"el-icon-pie-chart",
"el-icon-data-analysis",
"el-icon-files",
"el-icon-shopping-cart-1",
"el-icon-coin",
"el-icon-guide",
"el-icon-position",
"el-icon-school",
"el-icon-office-building",
"el-icon-table-lamp",
"el-icon-house",
"el-icon-box",
"el-icon-guide",
"el-icon-odometer",
"el-icon-wallet",
"el-icon-printer",
"el-icon-document-remove",
"el-icon-tickets",
"el-icon-document-checked",
"el-icon-date",
"el-icon-folder",
"el-icon-search",
"el-icon-brush",
"el-icon-message",
"el-icon-connection",
"el-icon-sunrise",
"el-icon-lightning",
"el-icon-light-rain",
"el-icon-sunset",
"el-icon-wind-power",
"el-icon-monitor",
],
rules: {
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
......
......@@ -1031,6 +1031,13 @@
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.5.5":
version "7.21.0"
resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673"
integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==
dependencies:
regenerator-runtime "^0.13.11"
"@babel/template@^7.0.0", "@babel/template@^7.14.5":
version "7.14.5"
resolved "https://registry.nlark.com/@babel/template/download/@babel/template-7.14.5.tgz?cache=0&sync_timestamp=1623280991117&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.14.5.tgz"
......@@ -1161,6 +1168,51 @@
cssnano-preset-default "^4.0.0"
postcss "^7.0.0"
"@jiaminghi/bezier-curve@*":
version "0.0.9"
resolved "https://registry.npmmirror.com/@jiaminghi/bezier-curve/-/bezier-curve-0.0.9.tgz#5196aca93c8b061a612b4c3eabcedf9490cef6ee"
integrity sha512-u9xJPOEl6Dri2E9FfmJoGxYQY7vYJkURNX04Vj64tdi535tPrpkuf9Sm0lNr3QTKdHQh0DdNRsaa62FLQNQEEw==
dependencies:
"@babel/runtime" "^7.5.5"
"@jiaminghi/c-render@^0.4.3":
version "0.4.3"
resolved "https://registry.npmmirror.com/@jiaminghi/c-render/-/c-render-0.4.3.tgz#982ebd8f71b443bb9507834227834973ebd9b6d8"
integrity sha512-FJfzj5hGj7MLqqqI2D7vEzHKbQ1Ynnn7PJKgzsjXaZpJzTqs2Yw5OSeZnm6l7Qj7jyPAP53lFvEQNH4o4j6s+Q==
dependencies:
"@babel/runtime" "^7.5.5"
"@jiaminghi/bezier-curve" "*"
"@jiaminghi/color" "*"
"@jiaminghi/transition" "*"
"@jiaminghi/charts@*":
version "0.2.18"
resolved "https://registry.npmmirror.com/@jiaminghi/charts/-/charts-0.2.18.tgz#63ded95200789fc1a1fd04b7fd9e56f58d22d90f"
integrity sha512-K+HXaOOeWG9OOY1VG6M4mBreeeIAPhb9X+khG651AbnwEwL6G2UtcAQ8GWCq6GzhczcLwwhIhuaHqRygwHC0sA==
dependencies:
"@babel/runtime" "^7.5.5"
"@jiaminghi/c-render" "^0.4.3"
"@jiaminghi/color@*":
version "1.1.3"
resolved "https://registry.npmmirror.com/@jiaminghi/color/-/color-1.1.3.tgz#a2336750d1266155ffe80375c58c26fdec495611"
integrity sha512-ZY3hdorgODk4OSTbxyXBPxAxHPIVf9rPlKJyK1C1db46a50J0reFKpAvfZG8zMG3lvM60IR7Qawgcu4ZDO3+Hg==
"@jiaminghi/data-view@^2.10.0":
version "2.10.0"
resolved "https://registry.npmmirror.com/@jiaminghi/data-view/-/data-view-2.10.0.tgz#2146d8fc71b9f24be808238ca050ddb7a4c8949f"
integrity sha512-Cud2MTiMcqc5k2KWabR/svuVQmXHANqURo+yj40370/LdI/gyUJ6LG203hWXEnT1nMCeiv/SLVmxv3PXLScCeA==
dependencies:
"@babel/runtime" "^7.5.5"
"@jiaminghi/charts" "*"
"@jiaminghi/transition@*":
version "1.1.11"
resolved "https://registry.npmmirror.com/@jiaminghi/transition/-/transition-1.1.11.tgz#576d8af092434b34201eba5eaecc79dd33c8ad8c"
integrity sha512-owBggipoHMikDHHDW5Gc7RZYlVuvxHADiU4bxfjBVkHDAmmck+fCkm46n2JzC3j33hWvP9nSCAeh37t6stgWeg==
dependencies:
"@babel/runtime" "^7.5.5"
"@jridgewell/gen-mapping@^0.1.0":
version "0.1.1"
resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz"
......@@ -2959,6 +3011,11 @@ compression@^1.7.4:
safe-buffer "5.1.2"
vary "~1.1.2"
comutils@^1.1.9:
version "1.1.19"
resolved "https://registry.npmmirror.com/comutils/-/comutils-1.1.19.tgz#3e07f306abf48e83726511713a72b20565034443"
integrity sha512-JxXB67juILiwhdLwOsYyjUqwWEhHdObI0EClOPk+JDtEuTbac59s0pxGpfCBnNNQ5JommifmcMGneW/4Cg7YWw==
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.nlark.com/concat-map/download/concat-map-0.0.1.tgz"
......@@ -7881,6 +7938,11 @@ regenerator-runtime@^0.11.0:
resolved "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz"
integrity sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=
regenerator-runtime@^0.13.11:
version "0.13.11"
resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
regenerator-runtime@^0.13.4:
version "0.13.9"
resolved "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz"
......@@ -9540,6 +9602,13 @@ vue-router@3.4.9:
resolved "https://registry.nlark.com/vue-router/download/vue-router-3.4.9.tgz"
integrity sha1-wBb0IDCuKTLxTkdIs5odmg4lDmY=
vue-seamless-scroll@^1.1.23:
version "1.1.23"
resolved "https://registry.npmmirror.com/vue-seamless-scroll/-/vue-seamless-scroll-1.1.23.tgz#dde81b3c79aa499791b3c3bffd0fdb22ff3e59a7"
integrity sha512-HBjUub8WwsKJzbFCrwKPDrZn4e+SSbkKgwWtjKtfLwesiFGwSsVxP44/Z6d3kpXy94qIFOiflJH6l0/9pj7SGA==
dependencies:
comutils "^1.1.9"
vue-style-loader@^4.1.0, vue-style-loader@^4.1.2:
version "4.1.3"
resolved "https://registry.nlark.com/vue-style-loader/download/vue-style-loader-4.1.3.tgz"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment