Commit 9d1b5ab5 authored by Your Name's avatar Your Name

fix:修改版面样式

parent 9b45e7bd
/* Logo 字体 */
@font-face {
font-family: "iconfont logo";
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
font-family: "iconfont logo";
font-size: 160px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
position: relative;
}
.nav-tabs .nav-more {
position: absolute;
right: 0;
bottom: 0;
height: 42px;
line-height: 42px;
color: #666;
}
#tabs {
border-bottom: 1px solid #eee;
}
#tabs li {
cursor: pointer;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
position: relative;
z-index: 1;
margin-bottom: -1px;
color: #666;
}
#tabs .active {
border-bottom-color: #f00;
color: #222;
}
.tab-container .content {
display: none;
}
/* 页面布局 */
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main .logo {
color: #333;
text-align: left;
margin-bottom: 30px;
line-height: 1;
height: 110px;
margin-top: -50px;
overflow: hidden;
*zoom: 1;
}
.main .logo a {
font-size: 160px;
color: #333;
}
.helps {
margin-top: 40px;
}
.helps pre {
padding: 20px;
margin: 10px 0;
border: solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists {
width: 100% !important;
overflow: hidden;
*zoom: 1;
}
.icon_lists li {
width: 100px;
margin-bottom: 10px;
margin-right: 20px;
text-align: center;
list-style: none !important;
cursor: default;
}
.icon_lists li .code-name {
line-height: 1.2;
}
.icon_lists .icon {
display: block;
height: 100px;
line-height: 100px;
font-size: 42px;
margin: 10px auto;
color: #333;
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
-moz-transition: font-size 0.25s linear, width 0.25s linear;
transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
font-size: 100px;
}
.icon_lists .svg-icon {
/* 通过设置 font-size 来改变图标大小 */
width: 1em;
/* 图标和文字相邻时,垂直对齐 */
vertical-align: -0.15em;
/* 通过设置 color 来改变 SVG 的颜色/fill */
fill: currentColor;
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
normalize.css 中也包含这行 */
overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
color: #666;
}
/* markdown 样式 */
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p {
margin: 1em 0;
}
.markdown>p,
.markdown>blockquote,
.markdown>.highlight,
.markdown>ol,
.markdown>ul {
width: 80%;
}
.markdown ul>li {
list-style: circle;
}
.markdown>ul li,
.markdown blockquote ul>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown>ul li p,
.markdown>ol li p {
margin: 0.6em 0;
}
.markdown ol>li {
list-style: decimal;
}
.markdown>ol li,
.markdown blockquote ol>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown>table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown>table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown>table th,
.markdown>table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown>table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown>br,
.markdown>p>br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
/* 代码高亮 */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
This diff is collapsed.
@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');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-xitongguanli:before {
content: "\e627";
}
.icon-shouye:before {
content: "\e751";
}
.icon-shezhi:before {
content: "\e64b";
}
.icon-xiaoxi:before {
content: "\e60d";
}
.icon-gaojing:before {
content: "\ec34";
}
.icon-dalou:before {
content: "\e6bc";
}
.icon-xitongguanli1:before {
content: "\e632";
}
This diff is collapsed.
{
"id": "3597207",
"name": "物联网",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "12889883",
"name": "系统管理-部门管理",
"font_class": "xitongguanli",
"unicode": "e627",
"unicode_decimal": 58919
},
{
"icon_id": "577364",
"name": "首页",
"font_class": "shouye",
"unicode": "e751",
"unicode_decimal": 59217
},
{
"icon_id": "629333",
"name": "设置",
"font_class": "shezhi",
"unicode": "e64b",
"unicode_decimal": 58955
},
{
"icon_id": "1311632",
"name": "消息",
"font_class": "xiaoxi",
"unicode": "e60d",
"unicode_decimal": 58893
},
{
"icon_id": "5764445",
"name": "告警",
"font_class": "gaojing",
"unicode": "ec34",
"unicode_decimal": 60468
},
{
"icon_id": "8361756",
"name": "大楼",
"font_class": "dalou",
"unicode": "e6bc",
"unicode_decimal": 59068
},
{
"icon_id": "12820187",
"name": "系统管理",
"font_class": "xitongguanli1",
"unicode": "e632",
"unicode_decimal": 58930
}
]
}
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" height="12" viewBox="0 0 12 12">
<image id="首页" y="0.5" width="12" height="11" xlink:href="data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAALCAYAAABLcGxfAAAA1UlEQVQokYWOsUqCYRSGH/+iEMpoqEncEhrE3VXcuoDuQ6IL0ckuoKEhaBMXaXFLWrqA0HBwbAt85MAX/HwoHjh857zneT9e1Ly76lz9UB/yew4/qhv1Xm2qa3WyzzBOwG1JK9SpulLr/4aG+q7OErAr5kBdqL1YvtXfHVDeT6rHwBDocLh+gJcC+AROMvwKuMm0S2AZhhpQyeBn4A3olfQNUA1DxPorHdrAF/AK3JX0YI4CDmcLOEviOXAKGECao+pAUVEj0ihlDEPsF+mjqGV6r4H+FhxB2YcETV9JAAAAAElFTkSuQmCC"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" height="12" viewBox="0 0 12 12">
<image id="告警管理" x="-1" y="-1" width="14" height="14" xlink:href="data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABS0lEQVQokX3Sv0vXYRAH8Nc3ysoQCyohI2moISfRfyDBIWhrCUFCaBKKGoSmmvoDmqIc+gcsCIkgaFLQMRpcBLPIsR+TOFQXp/eFJ60O7vN87t539zz3vutEhH/IFfTi+d/g/yW+xjkM70NwoM4+LGGiwd7gRWNfxEq3UDexg4NYxxje4TrGsYqrWKv4zk5GPrXRidiVhxExGBGnIuJu+e60sfnpi4gTpSlTe4qljhV2ISKOR0R/kvO2SMgn/cA1nMcrHMUklvEMIziE7ezrRhn3cLJ6nsdi9foSp/ENXzGtCPlcwekcqv8nmMElPC7fMXzHx5bVrvys8yk+oR8PyvfHwPPGdqZHGjvp32rsntLd+dXm3MZs9fqhsLNVeKOxD2MO9zPxDDZxC+8xUIFJRj69S9iX2t0FXM7EvOURRvFrby+N5MYktombvwGs+p53uBB4fAAAAABJRU5ErkJggg=="/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" height="12" viewBox="0 0 12 12">
<image id="平台设置" width="12" height="12" xlink:href="data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAABH0lEQVQokV2RPSjFYRTGf66v2x0sDFIXg2sQIaOFUWazRcrHoEzKakPJ4ApZlLLcQcqgTAwyW2wykFISZfHTe++Rf06d932ec07nvOd5UbO+oB6pnRFbV8tqy29NXTqAJmAt7iegH3gHvoBXYBBYBe6y3Stqe+CC2pXJHasTCeeoWStQDzQE/wQe+bMPoFhl6qJ6o05FtzH1RN1TZyNWUi/UjUSuI5BwUT1T+9TmwJORy6mb6UlXwH0MT2PfqsvVFr4FBiL3DZSTSpVQYimUSWp1AA9Ab8SfgWVgPI1KGm+ruxlV5tUVNR98Tr1Uh7Ky7md2+e8H6khW1kagB+gGCsAWsAOUgDwwDLSlwt+fTjYKzADtwDnwAkzHn5wCh4A/YfIQmkKOjGcAAAAASUVORK5CYII="/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" height="12" viewBox="0 0 12 12">
<image id="生产厂商" width="12" height="12" xlink:href="data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAABG0lEQVQokW3QPUsQUBTG8Z/iS1lBomtzU5NCNiRuQQ5+gVAIitYWl8APIDS6uURDTYWrm0a7RmAO4hItLiIFRtQTp45g4YFz7z333ufe/3kkqVxOcphkv/MgyfM++ydrmEpynGQ6yZXOW0mOksz8LxjCTWzgA+76G++whqd4i+89/xF8wzHu4RkGsdJ7t3EDl/EEC/XNQpKtC3jfJHlwrq6+Foca4RNmsYQBvMAORrGK7Ua6dib42YcTLRjBj8a7XhcxjNMzpO0LkDaSPD5XbyZ5VC9U7OI+ttqhebzHL7zGQ3ysupBOMdai9X6g+MuhL3iFfUyXvSUo2+7gBC9bcBVzvS6LL2EGnwfKvlYfdcMVhTLejX/t/Uns/Qb8YcvTPw2WuQAAAABJRU5ErkJggg=="/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="12" viewBox="0 0 14 12">
<image id="图层_19" data-name="图层 19" width="14" height="12" xlink:href="data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAABCElEQVQokW2SP0sDQRDFf4mamEaIIJc2zV2wtLWQtNaC6VKkChH8Bgd3nUXIB4jphJAvIAgWIf5pBVMdNuly16oQUp0MjrJ3tw+m2LfzZubNbilNU0x4YdIChkBN6RUwiHxnY+btUsQFcJ5jR8DSJMoFmb1YgbMJH4EPYAt8Aq86bhbi0RZuEN+7QXxtu5P4X44XJuLtWGoBsogb9TUFqsq9RL4jE/wKvTA5BZ6BhXA60hrYB+pa7Ag4jHynYZre0WpnBS8GvDB5+zuW3CDuAZfAiY41jnznPScQGx2gDcyAO+l4a+RcAQdAN9dsorygDzRtz1GxcNnvBXsifAK+Nb70nMdDJgfmP68GamceNFjdAAAAAElFTkSuQmCC"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="11" height="14" viewBox="0 0 11 14">
<image id="地点" width="11" height="14" xlink:href="data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAABMUlEQVQokWWSvy9EQRSFv92oKFcyOkGy0+gkKhKVAgUq8SOio1aIwk12oqbwH1CIQkOiV4hiJUIkTCEiSEyi0InCPrnMvLy8vdXMPd87c+7Mq2RZRirrwhqwAvQDr8C+F7OT9By2LhwCc7TXmRczqd1qBKcK4DYwDGzE/YR1YUkXHbGRwBMvZiv2mtaFQUDBeeCgGoUUvFUK0SrqybkJLALT1gXRE4Cx6Jp0kvNpwa0BXAO7Bf04h72YJ+C87R7+686LuS06ay0D3yVQsy6kTQ57Mc/ARQm+Sa5alXrjvRvYA7qANx0S6AE+gaO4/gHW1fkhCrNejD73CPCij+HFrAIzwL1mV1gn16/HrQsDXswjMOTFXFoX+rQP9Cr392/Eux2NA30BH0AN6NSowJUXs/kLKj9euCTXiIAAAAAASUVORK5CYII="/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" height="12" viewBox="0 0 12 12">
<image id="系统管理" width="12" height="12" xlink:href="data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAA80lEQVQokY2RsUoDQBBEnxICMaKSSg1WgtgGLP0EwUI7IT8hduYjUmol1taSSgujoK2FnZWFEBBiI6jwZHUDpynMwMHu7c7s3tyU+gQ0mQyDIAicAP1/KDWggz/YDN4E53o62XNjeuOYB1YrQKy0BDSKlpciDrEPYAjsxJihvzFQG2ozV4z6ulpTqzFhFjgAesACUAdWgHPgNiccA8vA2ejRfXVfbaXqjHqXtcNii8Uonqq9vLhJwmfm7UIg8FZaeak+ZLwXFuaUNbWrvqu7o+arVLjIvKK+/jEjsBU/HdZtAFXgGXgEWkAbOALuge1vI6D+BQSZFivDzo07AAAAAElFTkSuQmCC"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" height="12" viewBox="0 0 12 12">
<image id="设备管理" width="12" height="12" xlink:href="data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAA/klEQVQokYWRPysFUBiHH6KuZJE/oWSQxWKx+BpKhsvNRzAYfABfwIQyKJPFoEyK6JZYsIliuINkMFwmt0dv96jjGLx1hvP+3l/n95y3QyWrYWADGAJawCmwmQ908rvmgWXgHvgA1gudruI+BuwBa+l+8Z/hFtgHepK5vzQQDMWZVl/VHbWv1PMX5hJsA/gEmsAMMAjcAY8x9PNLi8AWUI9eMnSnyL3AKDCVM4wDh8DKn8ztuswZdtUn9U09UgeyzDX1XG2qJ2o1mu/qrDqpNtSFzFBXt9UJ9Vg9i8W9ANcJ6gGoZFG+kvYM3MT2gyE2GrAhBstVkX0VWAJGgINvUm2gs7a/fSsAAAAASUVORK5CYII="/>
</svg>
...@@ -150,9 +150,18 @@ ins,a { ...@@ -150,9 +150,18 @@ ins,a {
} }
} }
} }
.table-foot{
display: flex;
justify-content: flex-end;
}
.el-table th { .el-table th {
user-select: all; user-select: all;
} }
/* el-table列数据为空自动显示-- */
.cell:empty::before{
content:'--';
color:gray;
}
.el-progress-bar{ .el-progress-bar{
padding-right: 70px; padding-right: 70px;
margin-right: -70px; margin-right: -70px;
......
<template lang="html"> <template lang="html">
<div style="width:100%;height:800px;"> <div style="width:100%;height:100%;">
<div class="container"> <div class="container">
<!-- <div class="search-box"> <!-- <div class="search-box">
<input <input
...@@ -33,22 +33,22 @@ ...@@ -33,22 +33,22 @@
</template> </template>
<script> <script>
import { AMapManager, lazyAMapApiLoaderInstance } from 'vue-amap' import { AMapManager, lazyAMapApiLoaderInstance } from "vue-amap";
let amapManager = new AMapManager() let amapManager = new AMapManager();
export default { export default {
name:'AMap', name: "AMap",
data() { data() {
let self = this let self = this;
return { return {
address: null, address: null,
searchKey: '', searchKey: "",
amapManager, amapManager,
markers: [], markers: [],
searchOption: { searchOption: {
city: '全国', city: "全国",
citylimit: true citylimit: true,
}, },
center: [112.938888,28.228272], center: [112.938888, 28.228272],
zoom: 17, zoom: 17,
lng: 0, lng: 0,
lat: 0, lat: 0,
...@@ -56,153 +56,153 @@ export default { ...@@ -56,153 +56,153 @@ export default {
events: { events: {
init() { init() {
lazyAMapApiLoaderInstance.load().then(() => { lazyAMapApiLoaderInstance.load().then(() => {
self.initSearch() self.initSearch();
}) });
}, },
// 点击获取地址的数据 // 点击获取地址的数据
click(e) { click(e) {
self.markers = [] self.markers = [];
let { lng, lat } = e.lnglat let { lng, lat } = e.lnglat;
self.lng = lng self.lng = lng;
self.lat = lat self.lat = lat;
self.center = [lng, lat] self.center = [lng, lat];
self.markers.push([lng, lat]) self.markers.push([lng, lat]);
// 这里通过高德 SDK 完成。 // 这里通过高德 SDK 完成。
let geocoder = new AMap.Geocoder({ let geocoder = new AMap.Geocoder({
radius: 1000, radius: 1000,
extensions: 'all' extensions: "all",
}) });
geocoder.getAddress([lng, lat], function(status, result) { geocoder.getAddress([lng, lat], function (status, result) {
if (status === 'complete' && result.info === 'OK') { if (status === "complete" && result.info === "OK") {
if (result && result.regeocode) { if (result && result.regeocode) {
console.log(result.regeocode.formattedAddress) //控制台打印地址 console.log(result.regeocode.formattedAddress); //控制台打印地址
self.address = result.regeocode.formattedAddress self.address = result.regeocode.formattedAddress;
self.searchKey = result.regeocode.formattedAddress self.searchKey = result.regeocode.formattedAddress;
self.$nextTick() self.$nextTick();
} }
} }
}) });
} },
}, },
// 一些工具插件 // 一些工具插件
plugin: [ plugin: [
{ {
pName: 'Geocoder', pName: "Geocoder",
events: { events: {
init (o) { init(o) {
//console.log("一些工具插件--地址"+o.getAddress()) //console.log("一些工具插件--地址"+o.getAddress())
} },
} },
}, },
{ {
// 定位 // 定位
pName: 'Geolocation', pName: "Geolocation",
events: { events: {
init(o) { init(o) {
// o是高德地图定位插件实例 // o是高德地图定位插件实例
o.getCurrentPosition((status, result) => { o.getCurrentPosition((status, result) => {
if (result && result.position) { if (result && result.position) {
// 设置经度 // 设置经度
self.lng = result.position.lng self.lng = result.position.lng;
// 设置维度 // 设置维度
self.lat = result.position.lat self.lat = result.position.lat;
// 设置坐标 // 设置坐标
self.center = [self.lng, self.lat] self.center = [self.lng, self.lat];
self.markers.push([self.lng, self.lat]) self.markers.push([self.lng, self.lat]);
// load // load
self.loaded = true self.loaded = true;
// 页面渲染好后 // 页面渲染好后
self.$nextTick() self.$nextTick();
} }
}) });
} },
} },
}, },
{ {
// 工具栏 // 工具栏
pName: 'ToolBar', pName: "ToolBar",
events: { events: {
init(instance) { init(instance) {
//console.log("工具栏:"+instance); //console.log("工具栏:"+instance);
} },
} },
}, },
{ {
// 鹰眼 // 鹰眼
pName: 'OverView', pName: "OverView",
events: { events: {
init(instance) { init(instance) {
//console.log("鹰眼:"+instance); //console.log("鹰眼:"+instance);
} },
} },
}, },
{ {
// 地图类型 // 地图类型
pName: 'MapType', pName: "MapType",
defaultType: 0, defaultType: 0,
events: { events: {
init(instance) { init(instance) {
//console.log("地图类型:"+instance); //console.log("地图类型:"+instance);
} },
} },
}, },
{ {
// 搜索 // 搜索
pName: 'PlaceSearch', pName: "PlaceSearch",
events: { events: {
init(instance) { init(instance) {
//console.log("搜索:"+instance) //console.log("搜索:"+instance)
} },
} },
} },
] ],
} };
}, },
methods: { methods: {
initSearch() { initSearch() {
let vm = this let vm = this;
let map = this.amapManager.getMap() let map = this.amapManager.getMap();
AMapUI.loadUI(['misc/PoiPicker'], function(PoiPicker) { AMapUI.loadUI(["misc/PoiPicker"], function (PoiPicker) {
var poiPicker = new PoiPicker({ var poiPicker = new PoiPicker({
input: 'search', input: "search",
placeSearchOptions: { placeSearchOptions: {
map: map, map: map,
pageSize: 10 pageSize: 10,
}, },
suggestContainer: 'searchTip', suggestContainer: "searchTip",
searchResultsContainer: 'searchTip' searchResultsContainer: "searchTip",
}) });
vm.poiPicker = poiPicker vm.poiPicker = poiPicker;
// 监听poi选中信息 // 监听poi选中信息
poiPicker.on('poiPicked', function(poiResult) { poiPicker.on("poiPicked", function (poiResult) {
// console.log(poiResult) // console.log(poiResult)
let source = poiResult.source let source = poiResult.source;
let poi = poiResult.item let poi = poiResult.item;
if (source !== 'search') { if (source !== "search") {
poiPicker.searchByKeyword(poi.name) poiPicker.searchByKeyword(poi.name);
} else { } else {
poiPicker.clearSearchResults() poiPicker.clearSearchResults();
vm.markers = [] vm.markers = [];
let lng = poi.location.lng let lng = poi.location.lng;
let lat = poi.location.lat let lat = poi.location.lat;
let address = poi.cityname + poi.adname + poi.name let address = poi.cityname + poi.adname + poi.name;
vm.center = [lng, lat] vm.center = [lng, lat];
vm.markers.push([lng, lat]) vm.markers.push([lng, lat]);
vm.lng = lng vm.lng = lng;
vm.lat = lat vm.lat = lat;
vm.address = address vm.address = address;
vm.searchKey = address vm.searchKey = address;
} }
}) });
}) });
}, },
searchByHand() { searchByHand() {
if (this.searchKey !== '') { if (this.searchKey !== "") {
this.poiPicker.searchByKeyword(this.searchKey) this.poiPicker.searchByKeyword(this.searchKey);
} }
} },
} },
} };
</script> </script>
<style lang="css"> <style lang="css">
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
<template> <template>
<div class="my-map"> <div class="my-map">
<el-amap <el-amap
ref="map" ref="map"
vid="amapDetail" vid="amapDetail"
...@@ -18,10 +17,10 @@ ...@@ -18,10 +17,10 @@
> >
<div class="tuli1"><slot name="leftTop1"></slot></div> <div class="tuli1"><slot name="leftTop1"></slot></div>
<div class="tuli"><slot name="leftTop"></slot></div> <div class="tuli"><slot name="leftTop"></slot></div>
<div class="rightTop"><slot name="rightTop"></slot></div>
<!--marker --> <div class="rightTop"><slot name="rightTop"></slot></div>
<!--marker -->
<el-amap-marker <el-amap-marker
v-for="(marker, index) in markers" v-for="(marker, index) in markers"
:key="'marker' + index" :key="'marker' + index"
...@@ -32,8 +31,6 @@ ...@@ -32,8 +31,6 @@
:extData="marker" :extData="marker"
> >
</el-amap-marker> </el-amap-marker>
</el-amap> </el-amap>
</div> </div>
</template> </template>
...@@ -73,10 +70,12 @@ export default { ...@@ -73,10 +70,12 @@ export default {
}, },
methods: { methods: {
formatterDate, formatterDate,
contentRender(h, params){ contentRender(h, params) {
//console.log(params.extData.extData.productId) //console.log(params.extData.extData.productId)
let value="el-icon-location-information location"+params.extData.extData.productId let value =
return (<i class={value} />) "el-icon-location-information location" +
params.extData.extData.productId;
return <i class={value} />;
}, },
getDeviceDetial() { getDeviceDetial() {
//获取设备列表 //获取设备列表
...@@ -86,15 +85,14 @@ export default { ...@@ -86,15 +85,14 @@ export default {
console.log("刷新数据", data); console.log("刷新数据", data);
// this.markersGroupData = data; // this.markersGroupData = data;
//this.$refs.map.clear(); //this.$refs.map.clear();
let map = this.amapManager.getMap() let map = this.amapManager.getMap();
map.clearMap() map.clearMap();
for(let group of data){ for (let group of data) {
for(let item of group.deviceList){ for (let item of group.deviceList) {
//console.log("marker", item); //console.log("marker", item);
this.setMarker(item); this.setMarker(item);
} }
} }
}, },
...@@ -116,14 +114,13 @@ export default { ...@@ -116,14 +114,13 @@ export default {
events: { events: {
click: (e) => { click: (e) => {
console.log("getExtData", e.target.getExtData()); console.log("getExtData", e.target.getExtData());
}, },
}, },
}; };
this.markers.push(markerLabel); this.markers.push(markerLabel);
}, },
choose() { choose() {
this.$emit("input", false); this.$emit("input", false);
this.$emit("choose", JSON.parse(JSON.stringify(this.mapData)), (val) => { this.$emit("choose", JSON.parse(JSON.stringify(this.mapData)), (val) => {
...@@ -135,7 +132,7 @@ export default { ...@@ -135,7 +132,7 @@ export default {
}, },
data() { data() {
return { return {
markersGroupData:[], markersGroupData: [],
mapData: {}, mapData: {},
info: {}, info: {},
markers: [], markers: [],
...@@ -170,9 +167,9 @@ export default { ...@@ -170,9 +167,9 @@ export default {
} }
.rightTop { .rightTop {
width: 200px; width: 200px;
top: 0px; top: 0px;
right:0px; right: 0px;
position: absolute; position: absolute;
float: right; float: right;
background-color: rgba(255, 255, 255, 1); background-color: rgba(255, 255, 255, 1);
...@@ -184,11 +181,12 @@ export default { ...@@ -184,11 +181,12 @@ export default {
overflow: auto; overflow: auto;
} }
.my-map { .my-map {
width: 100%;
height: 100vh;
.amap-demo { .amap-demo {
position: relative; position: relative;
width: 100%; width: 100%;
min-height: 650px; height: 100%;
.map-marker { .map-marker {
position: relative; position: relative;
width: 30px; width: 30px;
......
...@@ -21,6 +21,12 @@ Vue.use(Filter); ...@@ -21,6 +21,12 @@ Vue.use(Filter);
Vue.use(GlobalComponents); // 全局组件 Vue.use(GlobalComponents); // 全局组件
Vue.use(VueClipboard) Vue.use(VueClipboard)
Vue.use(VueAMap) Vue.use(VueAMap)
// 引入iconfont
import './assets/fonts/iconfont.css'
// moment 时间处理
import moment from 'moment';
Vue.prototype.$moment = moment;
VueAMap.initAMapApiLoader({ VueAMap.initAMapApiLoader({
key: 'f45cca59553214543a5a77e50a7e04df', key: 'f45cca59553214543a5a77e50a7e04df',
plugin: ['AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PlaceSearch', 'AMap.Geolocation', 'AMap.Geocoder'], plugin: ['AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PlaceSearch', 'AMap.Geolocation', 'AMap.Geocoder'],
......
...@@ -39,25 +39,18 @@ const router = new Router({ ...@@ -39,25 +39,18 @@ const router = new Router({
...restBuilder('param', 'system/param'), // 系统管理--参数管理 ...restBuilder('param', 'system/param'), // 系统管理--参数管理
...restBuilder('task', 'system/task'), // 系统管理--任务管理 ...restBuilder('task', 'system/task'), // 系统管理--任务管理
builder('site/list', 'system/site/index'),//站点 builder('site/list', 'system/site/index'),//站点
...restBuilder('sitestat', 'sitestat'),//站点设备管理 ...restBuilder('sitestat', 'sitestat'),//站点设备管理
builder('sitestat/maplist', 'sitestat/maplist'),//地图站点 builder('sitestat/maplist', 'sitestat/maplist'),//地图站点
builder('sitestat/mapDetail', 'sitestat/mapDetail'),//地图设备 builder('sitestat/mapDetail', 'sitestat/mapDetail'),//地图设备
...restBuilder('platform', 'platform'),//平台 ...restBuilder('platform', 'platform'),//平台
...restBuilder('product', 'product'),//产品 ...restBuilder('product', 'product'),//产品
...restBuilder('device', 'device'),//设备 ...restBuilder('device', 'device'),//设备
...restBuilder('device/alarm/info', 'device/alarm/info'),//设备告警信息 ...restBuilder('device/alarm/info', 'device/alarm/info'),//设备告警信息
...restBuilder('device/module', 'device/module'),//设备模块使用率 ...restBuilder('device/module', 'device/module'),//设备模块使用率
...restBuilder('device/module/use', 'device/module/use'),//设备模块使用率 ...restBuilder('device/module/use', 'device/module/use'),//设备模块使用率
...restBuilder('device/module/distribute', 'device/module/distribute'),//设备前端模块部署 ...restBuilder('device/module/distribute', 'device/module/distribute'),//设备前端模块部署
...restBuilder('device/log', 'device/log'),
...restBuilder('device/log', 'device/log'),//
...restBuilder('firm', 'firm'),// ...restBuilder('firm', 'firm'),//
...restBuilder('alarm/config', 'alarm/config'),//设备告警配置 ...restBuilder('alarm/config', 'alarm/config'),//设备告警配置
...restBuilder('alarm/sms/send', 'alarm/sms/send'),//设备告警短信 ...restBuilder('alarm/sms/send', 'alarm/sms/send'),//设备告警短信
......
This diff is collapsed.
<template> <template>
<!-- 弹出框表单 --> <!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body> <el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field label="产品" prop="productId" v-model="form.productId" placeholder="请输入产品"/> <Field
<Field label="告警类型" prop="alarmType" v-model="form.alarmType" type="select" :enumData="dict.alarmType" placeholder="请选择告警类型"/> label="产品"
<Field label="告警级别," prop="alarmLevel" v-model="form.alarmLevel" type="select" :enumData="dict.alarmLevel" placeholder="请选择告警级别,"/> prop="productId"
<Field label="推送方式," prop="alarmPusW1ay" v-model="form.alarmPusW1ay" type="select" :enumData="dict.alarmPusW1ay" placeholder="请选择推送方式,"/> v-model="form.productId"
<Field label="是否启用" prop="isUse" v-model="form.isUse" type="select" :enumData="dict.isUse" placeholder="请选择是否启用"/> placeholder="请输入产品"
/>
</el-row> <Field
label="告警类型"
</el-form> prop="alarmType"
<div slot="footer" class="dialog-footer"> v-model="form.alarmType"
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button> type="select"
<el-button @click="cancel">取 消</el-button> :enumData="dict.alarmType"
</div> placeholder="请选择告警类型"
</el-dialog> />
<Field
label="告警级别,"
prop="alarmLevel"
v-model="form.alarmLevel"
type="select"
:enumData="dict.alarmLevel"
placeholder="请选择告警级别,"
/>
<Field
label="推送方式,"
prop="alarmPusW1ay"
v-model="form.alarmPusW1ay"
type="select"
:enumData="dict.alarmPusW1ay"
placeholder="请选择推送方式,"
/>
<Field
label="是否启用"
prop="isUse"
v-model="form.isUse"
type="select"
:enumData="dict.isUse"
placeholder="请选择是否启用"
/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button
type="primary"
v-if="pageInfo.type !== 'view'"
@click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template> </template>
<script> <script>
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow"; import dialogShow from "./dialogshow";
export default { export default {
mixins: [form], mixins: [form],
components: { components: {
dialogShow , dialogShow,
}, },
data() { data() {
return { return {
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 弹出层标题 // 弹出层标题
title: "设备告警配置", title: "设备告警配置",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
toString:[ toString: ["alarmType", "alarmLevel", "alarmPusW1ay", "isUse"],
"alarmType", // 表单校验
"alarmLevel", rules: {
"alarmPusW1ay", alarmType: [
"isUse", { required: true, message: "请输入告警类型", trigger: "blur" },
], ],
// 表单校验 alarmLevel: [
rules: { { required: true, message: "请输入告警级别,", trigger: "blur" },
alarmType: [ ],
{required: true,message: "请输入告警类型", trigger: "blur" }, alarmPusW1ay: [
], { required: true, message: "请输入推送方式,", trigger: "blur" },
alarmLevel: [ ],
{required: true,message: "请输入告警级别,", trigger: "blur" }, isUse: [{ required: true, message: "请输入是否启用", trigger: "blur" }],
], createTime: [{ required: true, message: "请选择创建时间" }],
alarmPusW1ay: [ },
{required: true,message: "请输入推送方式,", trigger: "blur" }, };
], },
isUse: [
{required: true,message: "请输入是否启用", trigger: "blur" },
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: { methods: {
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl =this.pageInfo.editUrl;; this.urls.currUrl = this.pageInfo.editUrl;
this.getData(); this.getData();
this.pageInfo.type="edit" this.pageInfo.type = "edit";
this.title = "修改设备告警配置"; this.title = "修改设备告警配置";
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl = this.pageInfo.addUrl; this.urls.currUrl = this.pageInfo.addUrl;
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type = "add";
this.title = "新增设备告警配置"; this.title = "新增设备告警配置";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl =this.pageInfo.viewUrl;; this.urls.currUrl = this.pageInfo.viewUrl;
this.getData(); this.getData();
this.pageInfo.type="view" this.pageInfo.type = "view";
this.title = "设备告警配置详细"; this.title = "设备告警配置详细";
}, },
/**取消按钮 */ /**取消按钮 */
cancel() { cancel() {
this.open = false; this.open = false;
}, },
/**获取数据后弹框 */ /**获取数据后弹框 */
afterRender(data) { afterRender(data) {
this.open = true; this.open = true;
}, },
afterSubmit(data) { afterSubmit(data) {
this.open = false; this.open = false;
this.$emit("ok"); this.$emit("ok");
}, },
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
productId : null, productId: null,
alarmType : 0, alarmType: 0,
alarmLevel : null, alarmLevel: null,
alarmPusW1ay : 0, alarmPusW1ay: 0,
isUse : null, isUse: null,
}; };
this.resetForm("form"); this.resetForm("form");
}, },
resetForm(refName) { resetForm(refName) {
if (this.$refs[refName]) { if (this.$refs[refName]) {
this.$refs[refName].resetFields(); this.$refs[refName].resetFields();
} }
}, },
}, },
}; };
</script> </script>
<template> <template>
<!-- 弹出框表单 --> <!-- 弹出框表单 -->
<el-drawer <el-drawer
:title="title" :title="title"
:visible.sync="open" :visible.sync="open"
:direction="direction" :direction="direction"
size="40%" size="40%"
> >
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field :span="22" label="产品类型" prop="productId" type="select" v-model="form.productId" :enumData="dict.productId" placeholder="请输入产品"/> <Field
<Field :span="22" label="告警类型" prop="alarmType" v-model="form.alarmType" type="select" :enumData="dict.alarmType" placeholder="请选择告警类型"/> :span="22"
<Field :span="22" label="告警级别" prop="alarmLevel" v-model="form.alarmLevel" type="select" :enumData="dict.alarmLevel" placeholder="请选择告警级别,"/> label="产品类型"
<Field :span="22" label="推送方式" prop="alarmPusW1ay" v-model="form.alarmPusW1ay" type="select" :enumData="dict.alarmPusW1ay" placeholder="请选择推送方式,"/> prop="productId"
<Field :span="22" label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> type="select"
<Field :span="22" label="是否启用" prop="enabled" v-model="form.enabled" type="radio" :enumData="dict.enabled" placeholder="请选择是否启用"/> v-model="form.productId"
:enumData="dict.productId"
</el-row> placeholder="请输入产品"
<form-buttons @submit='submitForm' noCancelBtn /> />
</el-form> <Field
:span="22"
</el-drawer> label="告警类型"
prop="alarmType"
v-model="form.alarmType"
type="select"
:enumData="dict.alarmType"
placeholder="请选择告警类型"
/>
<Field
:span="22"
label="告警级别"
prop="alarmLevel"
v-model="form.alarmLevel"
type="select"
:enumData="dict.alarmLevel"
placeholder="请选择告警级别,"
/>
<Field
:span="22"
label="推送方式"
prop="alarmPusW1ay"
v-model="form.alarmPusW1ay"
type="select"
:enumData="dict.alarmPusW1ay"
placeholder="请选择推送方式,"
/>
<Field
:span="22"
label="备注"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
/>
<Field
:span="22"
label="是否启用"
prop="enabled"
v-model="form.enabled"
type="radio"
:enumData="dict.enabled"
placeholder="请选择是否启用"
/>
</el-row>
<form-buttons @submit="submitForm" noCancelBtn />
</el-form>
</el-drawer>
</template> </template>
<script> <script>
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow"; import dialogShow from "./dialogshow";
export default { export default {
mixins: [form], mixins: [form],
components: { components: {
dialogShow , dialogShow,
}, },
data() { data() {
return { return {
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 弹出层标题 // 弹出层标题
title: "设备告警配置", title: "设备告警配置",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
toString:[ toString: [
"productId", "productId",
"alarmType", "alarmType",
"alarmLevel", "alarmLevel",
"alarmPusW1ay", "alarmPusW1ay",
"enabled", "enabled",
], ],
// 表单校验 // 表单校验
rules: { rules: {
productId: [ productId: [
{required: true,message: "请选择产品类型", trigger: "blur" }, { required: true, message: "请选择产品类型", trigger: "blur" },
], ],
alarmType: [ alarmType: [
{required: true,message: "请输入告警类型", trigger: "blur" }, { required: true, message: "请输入告警类型", trigger: "blur" },
], ],
alarmLevel: [ alarmLevel: [
{required: true,message: "请输入告警级别,", trigger: "blur" }, { required: true, message: "请输入告警级别,", trigger: "blur" },
], ],
alarmPusW1ay: [ alarmPusW1ay: [
{required: true,message: "请输入推送方式,", trigger: "blur" }, { required: true, message: "请输入推送方式,", trigger: "blur" },
], ],
isUse: [ isUse: [{ required: true, message: "请输入是否启用", trigger: "blur" }],
{required: true,message: "请输入是否启用", trigger: "blur" }, createTime: [{ required: true, message: "请选择创建时间" }],
], },
createTime: [ };
{required: true,message: "请选择创建时间" }, },
],
}
};
},
methods: { methods: {
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl =this.pageInfo.editUrl;; this.urls.currUrl = this.pageInfo.editUrl;
this.getData(); this.getData();
this.pageInfo.type="edit" this.pageInfo.type = "edit";
this.title = "修改设备告警配置"; this.title = "修改设备告警配置";
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl = this.pageInfo.addUrl; this.urls.currUrl = this.pageInfo.addUrl;
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type = "add";
this.title = "新增设备告警配置"; this.title = "新增设备告警配置";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl =this.pageInfo.viewUrl;; this.urls.currUrl = this.pageInfo.viewUrl;
this.getData(); this.getData();
this.pageInfo.type="view" this.pageInfo.type = "view";
this.title = "设备告警配置详细"; this.title = "设备告警配置详细";
}, },
/**取消按钮 */ /**取消按钮 */
cancel() { cancel() {
this.open = false; this.open = false;
}, },
/**获取数据后弹框 */ /**获取数据后弹框 */
afterRender(data) { afterRender(data) {
this.open = true; this.open = true;
}, },
afterSubmit(data) { afterSubmit(data) {
this.open = false; this.open = false;
this.$emit("ok"); this.$emit("ok");
}, },
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
productId : null, productId: null,
alarmType : 0, alarmType: 0,
alarmLevel : null, alarmLevel: null,
alarmPusW1ay : 0, alarmPusW1ay: 0,
isUse : null, isUse: null,
}; };
this.resetForm("form"); this.resetForm("form");
}, },
resetForm(refName) { resetForm(refName) {
if (this.$refs[refName]) { if (this.$refs[refName]) {
this.$refs[refName].resetFields(); this.$refs[refName].resetFields();
} }
}, },
}, },
}; };
</script> </script>
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" notSearch :config="tableConfig"> <LayoutTable :data="tableData" notSearch :config="tableConfig">
</LayoutTable> </LayoutTable>
<!-- <dialog-show ref="dialogform" @ok="getData" /> -->
<!-- <dialog-show ref="dialogform" @ok="getData" /> --> <drawer-show ref="drawerform" @ok="getData" />
</div>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "AlarmConfig", name: "AlarmConfig",
components: {drawerShow }, components: { drawerShow },
mixins: [table], mixins: [table],
created() { created() {},
}, methods: {
methods: { /** 重写新增方法 */
toAdd(row) {
/** 重写新增方法 */ //this.$refs.dialogform.add(row);
toAdd(row) {
//this.$refs.dialogform.add(row);
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
}, this.$refs.drawerform.add(row);
/** 重写查看方法 */ },
// toView(row) { /** 重写编辑方法 */
// this.$refs.dialogform.view(row); toEdit(row) {
// }, this.$refs.drawerform.edit(row);
// 操作菜单状态 },
/** 重写查看方法 */
// toView(row) {
// this.$refs.dialogform.view(row);
// },
// 操作菜单状态
changeStatus(row, column) { changeStatus(row, column) {
return ( return (
<device-switch <device-switch
...@@ -51,47 +46,89 @@ ...@@ -51,47 +46,89 @@
/> />
); );
}, },
},
data() {
return {
config: {
search: [],
columns: [
{ type: "selection", align: "center", width: 60 },
}, { label: "序号", align: "center", type: "index", width: 60 },
data() { {
return { label: "告警内容",
config: { align: "center",
search: [ prop: "alarmType",
], formatter: this.formatter,
columns: [ },
{type: "selection", width: 60}, {
label: "设备类型",
align: "center",
prop: "productId",
formatter: this.formatterString,
},
{label: "序号",type: "index", width: 60}, {
{label: "告警内容", prop: "alarmType",formatter: this.formatter}, label: "告警级别",
{label: "设备类型", prop: "productId", formatter: this.formatterString}, align: "center",
prop: "alarmLevel",
formatter: this.formatter,
},
{
label: "推送方式",
align: "center",
prop: "alarmPusW1ay",
formatter: this.formatter,
},
{ label: "备注", align: "center", prop: "remark" },
{label: "告警级别", prop: "alarmLevel",formatter: this.formatter}, {
{label: "推送方式", prop: "alarmPusW1ay",formatter: this.formatter}, label: "创建时间",
{label: "备注", prop: "remark"}, align: "center",
prop: "createTime",
formatter: this.formatterDate,
},
{label: "创建时间", prop: "createTime",formatter:this.formatterDate}, {
label: "更新时间",
{label: "更新时间", prop: "updateTime",formatter:this.formatterDate}, align: "center",
{ prop: "updateTime",
formatter: this.formatterDate,
},
{
prop: "enabled", prop: "enabled",
align: "center",
label: "启用/停用", label: "启用/停用",
width: 100, width: 100,
formatter: this.changeStatus, formatter: this.changeStatus,
}, },
{
{ label: "操作",
label: "操作", align: "center",
width: 240, width: 240,
formatter: row => { formatter: (row) => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons
); noAdd
} row={row}
} onEdit={this.toEdit}
] onView={this.toView}
} onDel={this.toDel}
}; />
} );
},
},
],
},
}; };
</script> },
\ No newline at end of file };
</script>
<style lang="less" >
.page {
.table-head {
height: 72px;
}
}
</style>
<template> <template>
<layout-view> <layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border> <el-descriptions
<template slot="title"> :title="title"
<i class="el-icon-tickets"></i> :column="column"
基本详细信息 :size="size"
</template> :colon="false"
<template slot="extra"> border
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button> >
</template> <template slot="title">
<el-descriptions-item label="产品" label-class-name="labelClass" content-class-name="contentClass"> <i class="el-icon-tickets"></i>
{{form.productId}} 基本详细信息
</el-descriptions-item> </template>
<el-descriptions-item label="告警类型" label-class-name="labelClass" content-class-name="contentClass"> <template slot="extra">
{{ util_formatters("alarmType", form.alarmType) }} <el-button type="primary" @click="$router.go(-1)" size="small"
</el-descriptions-item> >返回</el-button
<el-descriptions-item label="告警级别," label-class-name="labelClass" content-class-name="contentClass"> >
{{ util_formatters("alarmLevel", form.alarmLevel) }} </template>
</el-descriptions-item> <el-descriptions-item
<el-descriptions-item label="推送方式," label-class-name="labelClass" content-class-name="contentClass"> label="产品"
{{ util_formatters("alarmPusW1ay", form.alarmPusW1ay) }} label-class-name="labelClass"
</el-descriptions-item> content-class-name="contentClass"
<el-descriptions-item label="是否启用" label-class-name="labelClass" content-class-name="contentClass"> >
{{ util_formatters("isUse", form.isUse) }} {{ form.productId }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> <el-descriptions-item
label="告警类型"
</layout-view> label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatters("alarmType", form.alarmType) }}
</el-descriptions-item>
<el-descriptions-item
label="告警级别,"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatters("alarmLevel", form.alarmLevel) }}
</el-descriptions-item>
<el-descriptions-item
label="推送方式,"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatters("alarmPusW1ay", form.alarmPusW1ay) }}
</el-descriptions-item>
<el-descriptions-item
label="是否启用"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatters("isUse", form.isUse) }}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template> </template>
<script> <script>
import view from "@/assets/mixins/view"; import view from "@/assets/mixins/view";
export default { export default {
mixins: [view], mixins: [view],
components: { components: {},
}, methods: {},
methods: { data() {
return {
}, size: "small",
data() { column: 2,
return { toString: ["alarmType", "alarmLevel", "alarmPusW1ay", "isUse"],
size:"small", toArrays: [],
column:2, toDate: [],
toString:[ };
"alarmType", },
"alarmLevel", };
"alarmPusW1ay",
"isUse",
],
toArrays: [
],
toDate: [
]
}
}
}
</script> </script>
<style lang="less"> <style lang="less">
.labelClass{ .labelClass {
width: 200px; width: 200px;
} }
.el-descriptions__body{ .el-descriptions__body {
margin-left: 5px; margin-left: 5px;
margin-right: 5px; margin-right: 5px;
color: #606266; color: #606266;
background-color: #FFF; background-color: #fff;
} }
.contentClass{ .contentClass {
width: 600px; width: 600px;
} }
</style> </style>
\ No newline at end of file
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig"> <LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="doExport"
:disabled="isExport"
>导出</el-button
>
</LayoutTable>
<el-button <drawer-show ref="drawerform" @ok="getData" />
slot="table-head-left2" </div>
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="doExport"
:disabled="isExport"
>导出</el-button>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "AlarmSmsSend", name: "AlarmSmsSend",
components: {drawerShow }, components: { drawerShow },
mixins: [table], mixins: [table],
created() { created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
/** 导出Excel */
doExport() {
this.isExport = true;
this.$download(
"/alarm/sms/send/exportExcel",
{
idList: this.selection,
sendStatus: this.$route.query["sendStatus"],
sendTime: this.$route.query["sendTime"],
}, },
methods: { { type: "excel" }
)
/** 重写新增方法 */ .then(() => (this.isExport = false))
toAdd(row) { .catch((error) => {
this.$refs.dialogform.add(row); this.isExport = false;
}, this.$message.error(error.message);
/** 重写编辑方法 */ });
toEdit(row) { },
this.$refs.dialogform.edit(row); },
data() {
}, return {
/** 重写查看方法 */ config: {
toView(row) { search: [
this.$refs.drawerform.view(row); {
}, name: "sendStatus",
/** 导出Excel */ type: "select",
doExport() { label: "发送状态",
this.isExport = true; fuzzy: true,
this.$download("/alarm/sms/send/exportExcel", { },
"idList": this.selection,
'sendStatus': this.$route.query['sendStatus'],
'sendTime': this.$route.query['sendTime'],
}, { type: "excel" }).then(() => this.isExport = false).catch(error => {
this.isExport = false;
this.$message.error(error.message);
});
},
}, {
data() {
return {
config: {
search: [
{
name: "sendStatus",
type: "select",
label: "发送状态",
fuzzy: true
},
{
name: "sendTimeStart", name: "sendTimeStart",
type: "datetime", type: "datetime",
label: "开始时间", label: "开始时间",
}, },
{ {
name: "sendTimeEnd", name: "sendTimeEnd",
type: "datetime", type: "datetime",
label: "结束时间", label: "结束时间",
placeholder:"结束时间" placeholder: "结束时间",
}, },
], ],
columns: [ columns: [
{type: "selection", width: 60}, { type: "selection", align: "center", width: 60 },
{type: "index",label:"序号", width: 60}, { type: "index", align: "center", label: "序号", width: 60 },
{label: "发送内容", prop: "sendMess",width:500}, { label: "发送内容", align: "center", prop: "sendMess", width: 500 },
{label: "联系电话", prop: "mobile"}, { label: "联系电话", align: "center", prop: "mobile" },
{label: "接收人员", prop: "receiver"}, { label: "接收人员", align: "center", prop: "receiver" },
{label: "发送状态", prop: "sendStatus",formatter: this.formatter}, {
label: "发送状态",
align: "center",
prop: "sendStatus",
formatter: this.formatter,
},
{label: "发送时间", prop: "sendTime", formatter: this.formatterDate}, {
{ label: "发送时间",
label: "操作", align: "center",
width: 240, prop: "sendTime",
formatter: row => { formatter: this.formatterDate,
return ( },
<table-buttons noAdd noEdit noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> {
); label: "操作",
} align: "center",
} width: 240,
] formatter: (row) => {
} return (
}; <table-buttons
} noAdd
noEdit
noDel
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
],
},
}; };
</script> },
\ No newline at end of file };
</script>
<style lang="less" >
.buttons {
display: flex;
.el-row {
margin-left: 20px;
}
}
</style>
\ No newline at end of file
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig"> <LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
<el-button
<el-button
slot="table-head-left2" slot="table-head-left2"
style="margin-left: 10px" style="margin-left: 10px"
icon="el-icon-tickets" icon="el-icon-tickets"
...@@ -11,25 +10,35 @@ ...@@ -11,25 +10,35 @@
:disabled="isExport" :disabled="isExport"
>导出</el-button >导出</el-button
> >
<el-tag slot="table-head-row2-left" size="mini" <el-tag slot="table-head-row2-left" size="mini"
>告警次数:{{ tableData.totalCount }}</el-tag >告警次数:{{ tableData.totalCount }}</el-tag
> >
<el-tag slot="table-head-row2-left" size="mini" style="margin: 5px" type="danger" <el-tag
slot="table-head-row2-left"
size="mini"
style="margin: 5px"
type="danger"
>危险:{{ tableData.dangerCount }}</el-tag >危险:{{ tableData.dangerCount }}</el-tag
> >
<el-tag slot="table-head-row2-left" size="mini" style="margin: 5px" type="warning" <el-tag
slot="table-head-row2-left"
size="mini"
style="margin: 5px"
type="warning"
>次要:{{ tableData.subCount }}</el-tag >次要:{{ tableData.subCount }}</el-tag
> >
<el-tag slot="table-head-row2-left" size="mini" style="margin: 5px" type="info" <el-tag
slot="table-head-row2-left"
size="mini"
style="margin: 5px"
type="info"
>一般:{{ tableData.normalCount }}</el-tag >一般:{{ tableData.normalCount }}</el-tag
> >
</LayoutTable>
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" /> <dialog-show ref="dialogform" @ok="getData" />
</div> </div>
...@@ -52,11 +61,11 @@ export default { ...@@ -52,11 +61,11 @@ export default {
created() { created() {
console.log("queryIn:", this.queryIn); console.log("queryIn:", this.queryIn);
if (this.queryIn&&this.queryIn.alarmDevice) { if (this.queryIn && this.queryIn.alarmDevice) {
this.query={} this.query = {};
this.query["alarmDevice"] = this.queryIn.alarmDevice; this.query["alarmDevice"] = this.queryIn.alarmDevice;
} }
this.changePath("/device/alarm/info") this.changePath("/device/alarm/info");
}, },
methods: { methods: {
/** 重写新增方法 */ /** 重写新增方法 */
...@@ -72,83 +81,101 @@ export default { ...@@ -72,83 +81,101 @@ export default {
// this.$refs.dialogform.view(row); // this.$refs.dialogform.view(row);
// }, // },
/** 导出Excel */ /** 导出Excel */
doExport() { doExport() {
this.isExport = true; this.isExport = true;
this.$download("/device/alarm/info/exportExcel", { this.$download(
"idList": this.selection, "/device/alarm/info/exportExcel",
'alarmDevice': this.$route.query['alarmDevice'], {
'alarmType': this.$route.query['alarmType'], idList: this.selection,
'alarmStatus': this.$route.query['alarmStatus'], alarmDevice: this.$route.query["alarmDevice"],
}, { type: "excel" }).then(() => this.isExport = false).catch(error => { alarmType: this.$route.query["alarmType"],
this.isExport = false; alarmStatus: this.$route.query["alarmStatus"],
this.$message.error(error.message); },
}); { type: "excel" }
}, )
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
}, },
data() { data() {
return { return {
config: { config: {
search: [ search: [
{ {
name: "alarmStatus", name: "alarmStatus",
type: "select", type: "select",
label: "告警状态", label: "告警状态",
}, },
{ {
name: "alarmTimeStart", name: "alarmTimeStart",
type: "datetime", type: "datetime",
label: "开始时间", label: "开始时间",
}, },
{ {
name: "alarmTimeEnd", name: "alarmTimeEnd",
type: "datetime", type: "datetime",
label: "结束时间", label: "结束时间",
placeholder:"结束时间" placeholder: "结束时间",
}, },
], ],
columns: [ columns: [
{type: "selection",reserveSelection:true, width: 60,label:"全选"}, {
{ type: "selection",
align: "center",
reserveSelection: true,
width: 60,
label: "全选",
},
{
type: "index", type: "index",
align: "center",
label: "序号", label: "序号",
width: 50 width: 50,
}, },
{ {
label: "告警时间", label: "告警时间",
align: "center",
prop: "alarmTime", prop: "alarmTime",
formatter: this.formatterDate, formatter: this.formatterDate,
}, },
{ {
label: "告警设备", label: "告警设备",
align: "center",
prop: "alarmDevice", prop: "alarmDevice",
formatter: this.formatter, formatter: this.formatter,
}, },
{ {
label: "告警内容", label: "告警内容",
align: "center",
prop: "alarmContent", prop: "alarmContent",
}, },
{ label: "告警级别", prop: "alarmLevel", formatter: this.formatter }, {
label: "告警级别",
align: "center",
prop: "alarmLevel",
formatter: this.formatter,
},
{ label: "接收人员,", prop: "alarmReceivePersonnel" }, {
label: "接收人员,",
align: "center",
prop: "alarmReceivePersonnel",
},
{ {
label: "告警状态", label: "告警状态",
align: "center",
prop: "alarmStatus", prop: "alarmStatus",
formatter: this.formatter, formatter: this.formatter,
}, },
], ],
}, },
}; };
......
<template> align: "center",<template>
<div class="page"> <div class="page">
<span style="font-size: 13px" <span style="font-size: 13px"
><b>设备列表</b> (<el-link ><b>设备列表</b> (<el-link
...@@ -9,7 +9,11 @@ ...@@ -9,7 +9,11 @@
> >
站点编码:{{ siteCode }} )</span 站点编码:{{ siteCode }} )</span
> >
<el-link style="margin-left: 10px" type="primary" @click="switchMap" :underline="false" <el-link
style="margin-left: 10px"
type="primary"
@click="switchMap"
:underline="false"
>地图模式</el-link >地图模式</el-link
> >
<el-button <el-button
...@@ -39,7 +43,7 @@ ...@@ -39,7 +43,7 @@
:disabled="isExport" :disabled="isExport"
>导出</el-button >导出</el-button
> >
<el-tag slot="table-head-row2-left" size="mini" <el-tag slot="table-head-row2-left" size="mini"
>设备总数:{{ tableData.totalCount }}</el-tag >设备总数:{{ tableData.totalCount }}</el-tag
> >
...@@ -180,8 +184,8 @@ export default { ...@@ -180,8 +184,8 @@ export default {
created() { created() {
console.log(this.$route); console.log(this.$route);
this.siteId = this.$route.query.siteId; this.siteId = this.$route.query.siteId;
this.info=this.$route.query this.info = this.$route.query;
this.query={siteId:this.siteId} this.query = { siteId: this.siteId };
this.$get("/sitestat/siteInfo", { this.$get("/sitestat/siteInfo", {
siteId: this.siteId, siteId: this.siteId,
...@@ -200,8 +204,8 @@ export default { ...@@ -200,8 +204,8 @@ export default {
// this.$router.push({ query: {siteId:this.siteId } }); // this.$router.push({ query: {siteId:this.siteId } });
}, },
methods: { methods: {
switchMap(){ switchMap() {
this.$router.push({ this.$router.push({
path: "/sitestat/mapDetail", path: "/sitestat/mapDetail",
query: this.info, query: this.info,
}); });
...@@ -354,14 +358,13 @@ export default { ...@@ -354,14 +358,13 @@ export default {
.then((res) => { .then((res) => {
if (res.code == 1) { if (res.code == 1) {
this.$message.success("编辑站点成功!"); this.$message.success("编辑站点成功!");
this.tree.open=false; this.tree.open = false;
this.getData();
this.getData();
} }
}) })
.catch((error) => { .catch((error) => {
this.loading=false; this.loading = false;
this.$message.error(error.message); this.$message.error(error.message);
}); });
}, },
...@@ -380,7 +383,6 @@ export default { ...@@ -380,7 +383,6 @@ export default {
/> />
); );
}, },
}, },
data() { data() {
return { return {
...@@ -397,7 +399,7 @@ export default { ...@@ -397,7 +399,7 @@ export default {
// 上传的地址 // 上传的地址
url: "/m/device/importData", url: "/m/device/importData",
}, },
info:{}, info: {},
// 站点树 // 站点树
tree: { tree: {
// 是否显示弹出层(设备导入) // 是否显示弹出层(设备导入)
...@@ -421,45 +423,61 @@ export default { ...@@ -421,45 +423,61 @@ export default {
name: "deviceCode", name: "deviceCode",
type: "text", type: "text",
label: "设备编码", label: "设备编码",
fuzzy:true fuzzy: true,
}, },
{ {
name: "deviceStatus", name: "deviceStatus",
type: "select", type: "select",
label: "状态", label: "状态",
}, },
], ],
columns: [ columns: [
{ type: "selection",reserveSelection:true, width: 60 }, { type: "selection", reserveSelection: true, width: 60 },
{ type: "index", label: "序号",align:"center", width: 50 }, { type: "index", label: "序号", align: "center", width: 50 },
{ label: "设备名称", prop: "deviceName" }, { label: "设备名称", align: "center", prop: "deviceName" },
{ label: "设备类型", prop: "productId", formatter: this.formatter }, {
label: "设备类型",
align: "center",
prop: "productId",
formatter: this.formatter,
},
{ label: "设备编码", prop: "deviceCode" }, { label: "设备编码", align: "center", prop: "deviceCode" },
// { label: "mac地址", prop: "deviceMac" }, // { label: "mac地址", prop: "deviceMac" },
{ {
label: "设备生产商", label: "设备生产商",
align: "center",
prop: "deviceFirmId", prop: "deviceFirmId",
formatter: this.formatter, formatter: this.formatter,
width: 150, width: 150,
}, },
{ label: "负责人", prop: "leadingOfficial" }, { label: "负责人", align: "center", prop: "leadingOfficial" },
{ label: "联系电话", prop: "leadingOfficialTelephone" }, {
label: "联系电话",
align: "center",
prop: "leadingOfficialTelephone",
},
{ {
label: "状态 ", label: "状态 ",
align: "center",
prop: "deviceStatus", prop: "deviceStatus",
formatter: this.formatterStatus, formatter: this.formatterStatus,
}, },
{ label: "利旧设备", prop: "source", formatter: this.formatterYES }, {
label: "利旧设备",
align: "center",
prop: "source",
formatter: this.formatterYES,
},
{ {
prop: "enabled", prop: "enabled",
align: "center",
label: "启用/停用", label: "启用/停用",
width: 100, width: 100,
formatter: this.changeStatus, formatter: this.changeStatus,
...@@ -467,12 +485,14 @@ export default { ...@@ -467,12 +485,14 @@ export default {
{ {
label: "创建时间", label: "创建时间",
align: "center",
prop: "createTime", prop: "createTime",
formatter: this.formatterDate, formatter: this.formatterDate,
}, },
{ {
label: "操作", label: "操作",
align: "center",
width: 240, width: 240,
formatter: (row) => { formatter: (row) => {
return ( return (
...@@ -499,7 +519,6 @@ export default { ...@@ -499,7 +519,6 @@ export default {
) : ( ) : (
"" ""
)} )}
</div> </div>
); );
}, },
......
...@@ -38,8 +38,7 @@ export default { ...@@ -38,8 +38,7 @@ export default {
name: "deviceCode", name: "deviceCode",
type: "text", type: "text",
label: "设备编号", label: "设备编号",
fuzzy:true fuzzy: true,
}, },
{ {
name: "logType", name: "logType",
...@@ -48,40 +47,62 @@ export default { ...@@ -48,40 +47,62 @@ export default {
}, },
], ],
columns: [ columns: [
{ label: "traceID", prop: "traceID",width:120 }, { label: "traceID", align: "center", prop: "traceID", width: 320 },
{ label: "设备编号", prop: "deviceCode",width:160 }, {
label: "设备编号",
align: "center",
prop: "deviceCode",
width: 160,
},
{ label: "设备名称", prop: "deviceName",width:160 }, {
{ label: "内容", prop: "content" }, label: "设备名称",
align: "center",
prop: "deviceName",
width: 160,
},
{ label: "内容", align: "center", prop: "content" },
{ label: "业务标识", prop: "messageHead",width:80 }, {
label: "业务标识",
align: "center",
prop: "messageHead",
width: 80,
},
{ label: "日志类型", prop: "logType", formatter: this.formatter ,width:80}, {
label: "日志类型",
align: "center",
prop: "logType",
formatter: this.formatter,
width: 80,
},
{ {
label: "创建时间", label: "创建时间",
align: "center",
prop: "createTime", prop: "createTime",
formatter: this.formatterDate, formatter: this.formatterDate,
width:160 width: 160,
}, },
// { // {
// label: "操作", // label: "操作",
// width: 240, // width: 240,
// formatter: (row) => { // formatter: (row) => {
// return ( // return (
// <table-buttons // <table-buttons
// noAdd // noAdd
// noEdit // noEdit
// noDel // noDel
// row={row} // row={row}
// onEdit={this.toEdit} // onEdit={this.toEdit}
// onView={this.toView} // onView={this.toView}
// onDel={this.toDel} // onDel={this.toDel}
// /> // />
// ); // );
// }, // },
// }, // },
], ],
}, },
}; };
......
...@@ -29,21 +29,18 @@ export default { ...@@ -29,21 +29,18 @@ export default {
}, },
/** 重写查看方法 */ /** 重写查看方法 */
toView(row) { toView(row) {
this.$get("/device/module/distribute/view", { id: row.id })
this.$get("/device/module/distribute/view",{id:row.id})
.then((res) => { .then((res) => {
if (res.code == 1) { if (res.code == 1) {
window.open(res.data.entity.filePath,"_blank") window.open(res.data.entity.filePath, "_blank");
} }
}) })
.catch((error) => { .catch((error) => {
this.$message.error(error.message); this.$message.error(error.message);
}); });
}, },
distribute(row) { distribute(row) {
this.$post("/device/module/distribute/active", row) this.$post("/device/module/distribute/active", row)
.then((res) => { .then((res) => {
if (res.code == 1) { if (res.code == 1) {
...@@ -61,22 +58,34 @@ export default { ...@@ -61,22 +58,34 @@ export default {
config: { config: {
search: [], search: [],
columns: [ columns: [
{ type: "selection", width: 60 }, { type: "selection", align: "center", width: 60 },
{ type: "index", label: "序号", width: 50 }, { type: "index", align: "center", label: "序号", width: 50 },
{ label: "产品", prop: "productId", formatter: this.formatter }, {
label: "产品",
align: "center",
prop: "productId",
formatter: this.formatter,
},
{ {
label: "分辨率", label: "分辨率",
align: "center",
prop: "imageResolution", prop: "imageResolution",
formatter: this.formatter, formatter: this.formatter,
}, },
{ label: "版本号", prop: "version" }, { label: "版本号", align: "center", prop: "version" },
{ label: "是否部署", prop: "distribute", formatter: this.formatter }, {
label: "是否部署",
align: "center",
prop: "distribute",
formatter: this.formatter,
},
{ {
label: "操作", label: "操作",
align: "center",
width: 240, width: 240,
formatter: (row) => { formatter: (row) => {
return ( return (
......
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" /> <dialog-show ref="dialogform" @ok="getData" />
</div> </div>
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow"; import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "DeviceModule", name: "DeviceModule",
components: {dialogShow }, components: { dialogShow },
mixins: [table], mixins: [table],
created() { created() {},
}, methods: {
methods: { /** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
// toView(row) {
// this.$refs.dialogform.view(row);
// },
},
data() {
return {
config: {
search: [],
columns: [
{ type: "selection", align: "center", width: 60 },
{ type: "index", align: "center", label: "序号", width: 50 },
/** 重写新增方法 */ { label: "模块名称", align: "center", prop: "moduleName" },
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
{ label: "模块消息编码", align: "center", prop: "moduleMsgCode" },
{
label: "操作",
align: "center",
width: 240,
formatter: (row) => {
return (
<table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
}, },
/** 重写查看方法 */ },
// toView(row) { ],
// this.$refs.dialogform.view(row); },
// },
},
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "模块名称", prop: "moduleName"},
{label: "模块消息编码", prop: "moduleMsgCode"},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
}; };
},
};
</script> </script>
\ No newline at end of file
...@@ -68,19 +68,24 @@ export default { ...@@ -68,19 +68,24 @@ export default {
config: { config: {
search: [], search: [],
columns: [ columns: [
{ label: "模块名称", prop: "moduleName" }, { label: "模块名称", align: "center", prop: "moduleName" },
// { label: "模块消息编码", prop: "moduleMsgCode" }, // { label: "模块消息编码", prop: "moduleMsgCode" },
{ {
label: "设备名称", label: "设备名称",
align: "center",
prop: "deviceId", prop: "deviceId",
formatter: this.formatterString, formatter: this.formatterString,
}, },
{ label: "产品名称", prop: "platformAndProductName" }, {
label: "产品名称",
align: "center",
prop: "platformAndProductName",
},
{ label: "调用次数", prop: "useNum" }, { label: "调用次数", align: "center", prop: "useNum" },
], ],
}, },
}; };
......
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
<drawer-show ref="drawerform" @ok="getData" /> </div>
</div>
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "FirmList",
components: {
drawerShow
},
mixins: [table],
created() {
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
}, import drawerShow from "./drawershow";
data() { import table from "@/assets/mixins/table";
return { export default {
config: { name: "FirmList",
search: [ components: {
{ drawerShow,
name: "firmName", },
type: "text", mixins: [table],
label: "设备生产厂商名称", created() {},
fuzzy: true methods: {
}, /** 重写新增方法 */
], toAdd(row) {
columns: [ this.$refs.drawerform.add(row);
{ type: "selection",reserveSelection:true, width: 60 }, },
{ type: "index", label: "序号",align:"center", width: 50 }, /** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
search: [
{
name: "firmName",
type: "text",
label: "设备生产厂商名称",
fuzzy: true,
},
],
columns: [
{
type: "selection",
align: "center",
reserveSelection: true,
width: 60,
},
{ type: "index", label: "序号", align: "center", width: 50 },
{label: "设备生产厂商名称", prop: "firmName"}, { label: "设备生产厂商名称", align: "center", prop: "firmName" },
{label: "设备生产商编码", prop: "firmCode"}, { label: "设备生产商编码", align: "center", prop: "firmCode" },
{label: "备注", prop: "firmRemark"}, { label: "备注", align: "center", prop: "firmRemark" },
{label: "创建时间", prop: "createTime", formatter: this.formatterDate}, {
{ label: "创建时间",
label: "操作", align: "center",
width: 240, prop: "createTime",
formatter: row => { formatter: this.formatterDate,
return ( },
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> {
); label: "操作",
} align: "center",
} width: 240,
] formatter: (row) => {
} return (
}; <table-buttons
} noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
],
},
}; };
},
};
</script> </script>
\ No newline at end of file
...@@ -6,45 +6,48 @@ ...@@ -6,45 +6,48 @@
<script> <script>
export default { export default {
name: 'authentication', name: "authentication",
created () { created() {
this.login(); this.login();
}, },
methods: { methods: {
login() { login() {
this.$post('/login/index').then(this.loginSuccess).catch(this.loginFail) this.$post("/login/index").then(this.loginSuccess).catch(this.loginFail);
}, },
loginSuccess({data}) { loginSuccess({ data }) {
this.$store.commit('setUserData', data); this.$store.commit("setUserData", data);
this.$router.replace({ this.$router.replace({
path: this.redirect, path: this.redirect,
}); });
}, },
loginFail(error) { loginFail(error) {
this.$message.error(error.message || '请登录'); this.$message.error(error.message || "请登录");
console.log("href:"+process.env.VUE_APP_PORTAL_URL) console.log("href:" + process.env.VUE_APP_PORTAL_URL);
window.location.href=process.env.VUE_APP_PORTAL_URL=='undefined'?'http://192.168.0.98:11072':process.env.VUE_APP_PORTAL_URL window.location.href =
process.env.VUE_APP_PORTAL_URL == "undefined"
? "http://192.168.0.98:11072"
: process.env.VUE_APP_PORTAL_URL;
// window.location.href=process.env.VUE_APP_PORTAL_URL // window.location.href=process.env.VUE_APP_PORTAL_URL
// this.$router.replace({ // this.$router.replace({
// path: '/login', // path: '/login',
// query: { // query: {
// redirect: this.redirect, // redirect: this.redirect,
// } // }
// }); // });
} },
}, },
computed: { computed: {
isLogin() { isLogin() {
return this.$store.state.isLogin return this.$store.state.isLogin;
} },
}, },
data() { data() {
return { return {
redirect: this.$route.query.redirect, redirect: this.$route.query.redirect,
loading: true, loading: true,
} };
} },
} };
</script> </script>
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
</div> </div>
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "Platform", name: "Platform",
components: {drawerShow }, components: { drawerShow },
mixins: [table], mixins: [table],
created() { created() {},
}, methods: {
methods: { /** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
search: [],
columns: [
{
type: "selection",
align: "center",
reserveSelection: true,
width: 60,
},
{ type: "index", label: "序号", align: "center", width: 50 },
/** 重写新增方法 */ {
toAdd(row) { label: "平台名称,名称唯一",
this.$refs.drawerform.add(row); align: "center",
}, prop: "platformName",
/** 重写编辑方法 */ },
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
}, { label: "平台编码,编码唯一", align: "center", prop: "platformSn" },
data() {
return {
config: {
search: [
],
columns: [
{ type: "selection",reserveSelection:true, width: 60 },
{ type: "index", label: "序号",align:"center", width: 50 },
{label: "平台名称,名称唯一", prop: "platformName"}, {
label: "发送第三方平台消息类型",
align: "center",
prop: "sendMsgType",
formatter: this.formatter,
},
{label: "平台编码,编码唯一", prop: "platformSn"}, {
label: "是否启用发送消息",
{label: "发送第三方平台消息类型", prop: "sendMsgType",formatter: this.formatter}, align: "center",
prop: "sendSwitch",
{label: "是否启用发送消息", prop: "sendSwitch",formatter: this.formatter}, formatter: this.formatter,
{ },
label: "操作", {
width: 240, label: "操作",
formatter: row => { align: "center",
return ( width: 240,
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> formatter: (row) => {
); return (
} <table-buttons
} noAdd
] row={row}
} onEdit={this.toEdit}
}; onView={this.toView}
} onDel={this.toDel}
/>
);
},
},
],
},
}; };
},
};
</script> </script>
\ No newline at end of file
...@@ -31,27 +31,40 @@ export default { ...@@ -31,27 +31,40 @@ export default {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
}, },
// beforeRouteEnter(to, from, next) {next(vm => { // beforeRouteEnter(to, from, next) {next(vm => {
// // 通过 `vm` 访问组件实例 // // 通过 `vm` 访问组件实例
// console.log(vm) // console.log(vm)
// })}, // })},
data() { data() {
return { return {
config: { config: {
search: [], search: [],
columns: [ columns: [
// {type: "selection", width: 60}, // {type: "selection", width: 60},
{ type: "index", label: "序号",align:"center", width: 50 }, {
type: "index",
align: "center",
label: "序号",
align: "center",
width: 50,
},
{ label: "关联平台", prop: "platformId", formatter: this.formatter }, {
label: "关联平台",
align: "center",
align: "center",
prop: "platformId",
formatter: this.formatter,
},
{ label: "产品名称", prop: "productName" }, { label: "产品名称", align: "center", prop: "productName" },
{ label: "产品编码", prop: "productCode" }, { label: "产品编码", align: "center", prop: "productCode" },
{ label: "备注", prop: "productRemark" }, { label: "备注", align: "center", prop: "productRemark" },
{ {
label: "操作", label: "操作",
align: "center",
width: 240, width: 240,
formatter: (row) => { formatter: (row) => {
return ( return (
......
This diff is collapsed.
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