Compare commits
192 Commits
Author | SHA1 | Date |
---|---|---|
|
9807d8ff33 | 2 years ago |
|
a9dfc8bc51 | 2 years ago |
|
d55766a160 | 2 years ago |
|
9f0cd2f2d0 | 2 years ago |
|
e0ad6d1b3a | 2 years ago |
|
c15a9d9aaa | 2 years ago |
|
5074f7ac66 | 2 years ago |
|
38bb14f3dd | 2 years ago |
|
b0fe9a7a79 | 2 years ago |
|
e254df1a7e | 2 years ago |
|
23fd2f1295 | 2 years ago |
|
3a67f2b188 | 2 years ago |
|
b64ae957ba | 2 years ago |
|
3d2f772f15 | 2 years ago |
|
fa6d458b89 | 2 years ago |
|
df6f2ceb3f | 2 years ago |
|
f811f71663 | 2 years ago |
|
d12b9ddfe3 | 2 years ago |
|
568bdf8971 | 2 years ago |
|
841b47b8e2 | 2 years ago |
|
37174b64d7 | 2 years ago |
|
ff995bebe8 | 2 years ago |
|
d4f1258bcb | 2 years ago |
|
fddc03dee3 | 2 years ago |
|
0075989360 | 2 years ago |
|
087ff69d36 | 2 years ago |
|
48a1f57fbb | 2 years ago |
|
fac5c71be3 | 2 years ago |
|
ab36ced8f1 | 2 years ago |
|
7f033b5b80 | 2 years ago |
|
b741d45b32 | 2 years ago |
|
f1ae253314 | 2 years ago |
|
e867fdb04e | 2 years ago |
|
84c0fff6e0 | 2 years ago |
|
1f1fe3f3ba | 2 years ago |
|
cd3d209941 | 2 years ago |
|
54432b90a4 | 2 years ago |
|
9e06bb2e04 | 2 years ago |
|
a9f7929181 | 2 years ago |
|
81e071b3ec | 2 years ago |
|
7a0e8bbe06 | 2 years ago |
|
649e210177 | 2 years ago |
|
7df734aee2 | 2 years ago |
|
3e0dc4d2ee | 2 years ago |
|
00e27bdeb3 | 2 years ago |
|
9e8d65d9fe | 2 years ago |
|
8d73a1c348 | 2 years ago |
|
2567701244 | 2 years ago |
|
1a0111f218 | 2 years ago |
|
dcef86131c | 2 years ago |
|
0af10c5364 | 2 years ago |
|
11fe76149b | 2 years ago |
|
7088e1f3ec | 2 years ago |
|
fced40f5f6 | 2 years ago |
|
0b4a4f57e1 | 2 years ago |
|
8f954d4675 | 2 years ago |
|
9739da7c49 | 2 years ago |
|
4e625ec662 | 2 years ago |
|
1256e511e7 | 2 years ago |
|
630b10c9ac | 2 years ago |
|
aecda13102 | 2 years ago |
|
928a738eb6 | 2 years ago |
|
4a5a45caa5 | 2 years ago |
|
501cdc6c62 | 2 years ago |
|
7dbfae6fc2 | 2 years ago |
|
89f4248cc3 | 2 years ago |
|
3bf26caa2d | 2 years ago |
|
25021908ba | 2 years ago |
|
67998fa25a | 2 years ago |
|
6ded9f22d9 | 2 years ago |
|
0e9ed301a3 | 2 years ago |
|
cf48fd5849 | 2 years ago |
|
94cc43aed9 | 2 years ago |
|
b4007ca85a | 2 years ago |
|
f6c1f5becb | 2 years ago |
|
c3383e096b | 2 years ago |
|
5472b99a62 | 2 years ago |
|
948adb6ee0 | 2 years ago |
|
de7af2db3d | 2 years ago |
|
843e257a3d | 2 years ago |
|
45b85b4700 | 2 years ago |
|
3ec4f5d03e | 2 years ago |
|
9ee2b57776 | 2 years ago |
|
78bfd4ead9 | 2 years ago |
|
279b2b463a | 2 years ago |
|
9df6f03ee6 | 2 years ago |
|
8d55d7b023 | 2 years ago |
|
548ecb0bfc | 2 years ago |
|
50f3822bc7 | 2 years ago |
|
4dd13f11bf | 2 years ago |
|
3a754cf8cf | 2 years ago |
|
3ac4f2c934 | 2 years ago |
|
9823dd3fe0 | 2 years ago |
|
e0ce6b9956 | 2 years ago |
|
04cfdb716f | 2 years ago |
|
bf615e6a87 | 2 years ago |
|
94645bad0e | 2 years ago |
|
a084b9d39f | 2 years ago |
|
253b07ae4b | 2 years ago |
|
04b552d7ec | 2 years ago |
|
9399138d37 | 2 years ago |
|
6fd01caea5 | 2 years ago |
|
3b50cf87c0 | 2 years ago |
|
d1ef83de14 | 2 years ago |
|
2b332d2f8f | 2 years ago |
|
6b56d3010a | 2 years ago |
|
c93c8bc0cd | 2 years ago |
|
b56114300f | 2 years ago |
|
1c0bec39d8 | 2 years ago |
|
1532436d58 | 2 years ago |
|
0b6dd04246 | 2 years ago |
|
d4885755de | 2 years ago |
|
0744806341 | 2 years ago |
|
58c744131f | 2 years ago |
|
8589e39db5 | 2 years ago |
|
cd0069339a | 2 years ago |
|
b22bd3dd13 | 2 years ago |
|
6bd229588d | 2 years ago |
|
2f32262879 | 2 years ago |
|
f52d25b45f | 2 years ago |
|
e737c6fa7e | 2 years ago |
|
e409df201c | 2 years ago |
|
f9c19765b1 | 2 years ago |
|
39590bc5f0 | 2 years ago |
|
9b6e9806a9 | 2 years ago |
|
2dca3df002 | 2 years ago |
|
ce94805059 | 2 years ago |
|
fe6979c7b3 | 2 years ago |
|
75339c763a | 2 years ago |
|
94f4de263d | 2 years ago |
|
2d400baf14 | 2 years ago |
|
c50af173f9 | 2 years ago |
|
d57577ddc2 | 2 years ago |
|
6d00825f1c | 2 years ago |
|
a654f8e58b | 2 years ago |
|
699c30f145 | 2 years ago |
|
450d02ef6a | 2 years ago |
|
d2de8a589e | 2 years ago |
|
be63d7a1a7 | 2 years ago |
|
1b05ad1e0e | 2 years ago |
|
466726efdb | 2 years ago |
|
5cff9926e9 | 2 years ago |
|
80d3a221b9 | 2 years ago |
|
b0c93415c5 | 2 years ago |
|
455a6363a3 | 2 years ago |
|
68f2c30888 | 2 years ago |
|
902b25d71b | 2 years ago |
|
3bed5b683b | 2 years ago |
|
c0cfb29c53 | 2 years ago |
|
591ac6d768 | 2 years ago |
|
4a62b106c6 | 2 years ago |
|
cbf1a255ea | 2 years ago |
|
84588b0dff | 2 years ago |
|
0997c6e2c7 | 2 years ago |
|
e05dd17101 | 2 years ago |
|
94d3d5c759 | 2 years ago |
|
897920697a | 2 years ago |
|
fe55cc26e6 | 2 years ago |
|
51ff9f1b85 | 2 years ago |
|
46dfe4b127 | 2 years ago |
|
a1154885c8 | 2 years ago |
|
34414181fe | 2 years ago |
|
9f3a634e8e | 2 years ago |
|
03bd9d5749 | 2 years ago |
|
e6b7b9bc9e | 2 years ago |
|
8746557f7d | 2 years ago |
|
385be79523 | 2 years ago |
|
9b1a59bbf8 | 2 years ago |
|
057f075662 | 2 years ago |
|
35a2b7f8a0 | 2 years ago |
|
11c6506a38 | 2 years ago |
|
e5bdcb8894 | 2 years ago |
|
131eeb9242 | 2 years ago |
|
363e498cb8 | 2 years ago |
|
56ada23704 | 2 years ago |
|
bf6022e3e2 | 2 years ago |
|
7e474255b6 | 2 years ago |
|
cd25ab2d2e | 2 years ago |
|
8dc7e78481 | 2 years ago |
|
0bf2875e19 | 2 years ago |
|
ca5baf711d | 2 years ago |
|
460c7c41ea | 2 years ago |
|
b038c3bdde | 2 years ago |
|
de0bcfd8a0 | 2 years ago |
|
fd29317332 | 2 years ago |
|
b5e79c048d | 2 years ago |
|
6c71c318fa | 2 years ago |
|
dea97c90a6 | 2 years ago |
|
5c0e5b981a | 2 years ago |
|
876ca6e533 | 2 years ago |
|
9bc61fae8f | 2 years ago |
|
672ba4bbb9 | 2 years ago |
@ -0,0 +1,8 @@
|
||||
// module.exports = {
|
||||
// plugins: {
|
||||
// "postcss-pxtorem": {
|
||||
// rootValue: 37.5,
|
||||
// propList: ["*"],
|
||||
// },
|
||||
// },
|
||||
// };
|
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
@ -0,0 +1,111 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
title="历史图片"
|
||||
:visible.sync="isShow"
|
||||
class="historyPic"
|
||||
width="1192px"
|
||||
@close="handleclose"
|
||||
>
|
||||
<div v-loading="loadingpic">
|
||||
<el-carousel
|
||||
:loop="false"
|
||||
:autoplay="false"
|
||||
height="650px"
|
||||
indicator-position="none"
|
||||
>
|
||||
<el-carousel-item v-for="(item, index) in imglist" :key="index">
|
||||
<el-image
|
||||
:src="item.path"
|
||||
fit="contain"
|
||||
v-if="item.mediaType == 0"
|
||||
></el-image>
|
||||
<el-image
|
||||
:src="item.thumb"
|
||||
fit="contain"
|
||||
v-if="item.mediaType == 1"
|
||||
></el-image>
|
||||
</el-carousel-item>
|
||||
</el-carousel>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { getHistoryList } from "@/utils/api/index";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
isShow: false,
|
||||
imglist: [],
|
||||
page: 1, // 当前页数
|
||||
pageSize: 10, // 每页数量
|
||||
total: 0, //总条数
|
||||
selectnr: "", //获取当前数据内容
|
||||
loadingpic: false,
|
||||
};
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
//获取图片数据
|
||||
getdataform(val) {
|
||||
this.selectnr = val;
|
||||
this.loadingpic = true;
|
||||
getHistoryList({
|
||||
channelId: this.selectnr.channelId,
|
||||
termId: this.selectnr.termId,
|
||||
pageindex: this.page,
|
||||
pagesize: this.pageSize,
|
||||
}).then((res) => {
|
||||
this.loadingpic = false;
|
||||
this.imglist = res.data.list;
|
||||
this.total = res.data.total;
|
||||
});
|
||||
},
|
||||
//下一页
|
||||
changebtn(e) {
|
||||
console.log(e);
|
||||
if (Math.floor(e / 9) == 1) {
|
||||
this.page++;
|
||||
getHistoryList({
|
||||
channelId: this.selectnr.channelId,
|
||||
termId: this.selectnr.termId,
|
||||
pageindex: this.page,
|
||||
pagesize: this.pageSize,
|
||||
}).then((res) => {
|
||||
this.imglist.push(res.data.list);
|
||||
this.total = res.data.total;
|
||||
});
|
||||
}
|
||||
},
|
||||
display() {
|
||||
this.isShow = true;
|
||||
},
|
||||
hide() {
|
||||
this.isShow = false;
|
||||
this.imglist = [];
|
||||
},
|
||||
handleclose() {
|
||||
this.isShow = false;
|
||||
this.imglist = [];
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
.historyPic {
|
||||
.el-image {
|
||||
width: 1152px;
|
||||
height: 648px;
|
||||
img {
|
||||
width: 1152px;
|
||||
height: 648px;
|
||||
}
|
||||
}
|
||||
.el-carousel__arrow {
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
color: #169e8c;
|
||||
font-size: 22px;
|
||||
}
|
||||
}
|
||||
</style>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,280 +0,0 @@
|
||||
<template>
|
||||
<div class="thumb-example">
|
||||
<!-- swiper1 -->
|
||||
|
||||
<swiper
|
||||
class="swiper gallery-top"
|
||||
:options="swiperOptionTop"
|
||||
ref="swiperTop"
|
||||
>
|
||||
<!-- -->
|
||||
<!-- <viewer class="swiper-slide">
|
||||
|
||||
</viewer> -->
|
||||
<!-- <viewer class="swiper-slide">
|
||||
|
||||
</viewer> -->
|
||||
|
||||
<div
|
||||
class="swiper-button-next swiper-button-white"
|
||||
slot="button-next"
|
||||
></div>
|
||||
<div
|
||||
class="swiper-button-prev swiper-button-white"
|
||||
slot="button-prev"
|
||||
></div>
|
||||
</swiper>
|
||||
|
||||
<!-- swiper2 Thumbs -->
|
||||
<swiper
|
||||
class="swiper gallery-thumbs"
|
||||
:options="swiperOptionThumbs"
|
||||
ref="swiperThumbs"
|
||||
>
|
||||
<swiper-slide
|
||||
class="slide"
|
||||
v-for="(item, index) in terminalPhoto"
|
||||
:key="item.id"
|
||||
>
|
||||
<div class="bigimg" v-if="item.path.indexOf('nopic') == -1">
|
||||
<!-- <img :src="item.path + '!1280x720'" alt="" /> -->
|
||||
<img v-if="index == 0" :src="item.path + '!260x160'" />
|
||||
<img
|
||||
v-else
|
||||
src="../../assets/img/loading.jpg"
|
||||
:data-src="item.path + '!260x160'"
|
||||
class="swiper-lazy"
|
||||
/>
|
||||
</div>
|
||||
<div class="bigimg" v-else>
|
||||
<img :src="item.path" alt="" />
|
||||
</div>
|
||||
<!-- <img v-if="index == 0" :src="item.path + '!1280x720'" />
|
||||
|
||||
<img
|
||||
src="item.path + '!260x160'"
|
||||
alt=""
|
||||
:data-src="item.path + '!260x160'"
|
||||
class="swiper-lazy"
|
||||
v-else-if="item.path.indexOf('nopic') == -1"
|
||||
/>
|
||||
<img :src="item.path" alt="" v-else /> -->
|
||||
<p class="timeInfo" v-if="item.path.indexOf('nopic') == -1">
|
||||
<el-tooltip
|
||||
class="item"
|
||||
effect="dark"
|
||||
content="拍照时间"
|
||||
placement="top-start"
|
||||
>
|
||||
<span>{{ $moment(item.photoTime).format("HH:mm:ss") }}</span>
|
||||
</el-tooltip>
|
||||
|
||||
(
|
||||
<el-tooltip
|
||||
class="item"
|
||||
effect="dark"
|
||||
content="图片上传时间"
|
||||
placement="top-start"
|
||||
>
|
||||
<span> {{ $moment(item.recvTime).format("HH:mm:ss") }}</span>
|
||||
</el-tooltip>
|
||||
)
|
||||
<span>--通道{{ item.channelId }}</span>
|
||||
</p>
|
||||
</swiper-slide>
|
||||
</swiper>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Swiper, SwiperSlide } from "vue-awesome-swiper";
|
||||
import "swiper/css/swiper.css";
|
||||
export default {
|
||||
components: {
|
||||
Swiper,
|
||||
SwiperSlide,
|
||||
},
|
||||
props: {
|
||||
terminalPhoto: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
},
|
||||
data() {
|
||||
let a = "1111111111111";
|
||||
return {
|
||||
imgflag: false,
|
||||
swiperOptionTop: {
|
||||
lazy: {
|
||||
loadPrevNext: true,
|
||||
loadPrevNextAmount: 1,
|
||||
loadOnTransitionStart: true,
|
||||
},
|
||||
navigation: {
|
||||
nextEl: ".swiper-button-next",
|
||||
prevEl: ".swiper-button-prev",
|
||||
},
|
||||
virtual: {
|
||||
slides: [],
|
||||
renderSlide: function (slide, index) {
|
||||
if (slide.path.indexOf("nopic") != -1) {
|
||||
return `<div class="swiper-slide"><div class="bigimg"><img src="static/img/nopic.0e9cfc7c.jpg" alt="" /></div></div>`;
|
||||
} else {
|
||||
return (
|
||||
`<view class="swiper-slide">` +
|
||||
`<div class="bigimg" id="imgView" style="background:url(${
|
||||
slide.path + "!80x720"
|
||||
});background-size:100% 100%">` +
|
||||
`<img id="imgid" src=" ${slide.path + "!1280x720"} " />
|
||||
</view>`
|
||||
);
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
swiperOptionThumbs: {
|
||||
spaceBetween: 10,
|
||||
centeredSlides: true,
|
||||
slidesPerView: "auto",
|
||||
slideToClickedSlide: true,
|
||||
lazy: {
|
||||
loadPrevNext: true,
|
||||
loadPrevNextAmount: 5,
|
||||
loadOnTransitionStart: true,
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
const swiperTop = this.$refs.swiperTop.$swiper;
|
||||
const swiperThumbs = this.$refs.swiperThumbs.$swiper;
|
||||
swiperTop.controller.control = swiperThumbs;
|
||||
swiperThumbs.controller.control = swiperTop;
|
||||
});
|
||||
},
|
||||
methods: {},
|
||||
watch: {
|
||||
terminalPhoto: function (newVal, oldVal) {
|
||||
this.swiperOptionTop.virtual.slides = newVal;
|
||||
},
|
||||
},
|
||||
created() {
|
||||
console.log(this.swiperOptionTop.virtual.slides);
|
||||
this.swiperOptionTop.virtual.slides = this.terminalPhoto;
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
.thumb-example {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: calc(100% - 26px);
|
||||
box-sizing: border-box;
|
||||
.gallery-top {
|
||||
//background: #fcc;
|
||||
width: 100%;
|
||||
height: 80%;
|
||||
overflow: hidden;
|
||||
margin-bottom: 4px;
|
||||
//border: 3px solid transparent;
|
||||
.swiper-slide {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
.bigimg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: fill;
|
||||
}
|
||||
}
|
||||
.swiper-button-prev.swiper-button-disabled,
|
||||
.swiper-button-next.swiper-button-disabled {
|
||||
opacity: 0.35;
|
||||
cursor: auto;
|
||||
pointer-events: none;
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
.gallery-thumbs {
|
||||
width: 100%;
|
||||
height: 18%;
|
||||
.slide {
|
||||
width: 20%;
|
||||
border: 3px solid transparent;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.bigimg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
img {
|
||||
//width: 100%;
|
||||
height: 100%;
|
||||
object-fit: fill;
|
||||
}
|
||||
}
|
||||
|
||||
.timeInfo {
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
width: 100%;
|
||||
background: #f0f0f0;
|
||||
padding: 8px 0px;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
color: #333;
|
||||
}
|
||||
}
|
||||
|
||||
.swiper-button-next.swiper-button-white,
|
||||
.swiper-container-rtl .swiper-button-prev.swiper-button-white,
|
||||
.swiper-button-prev.swiper-button-white,
|
||||
.swiper-container-rtl .swiper-button-next.swiper-button-white {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 30px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 30px;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
line-height: 60px;
|
||||
}
|
||||
.swiper-button-next:after,
|
||||
.swiper-container-rtl .swiper-button-prev:after,
|
||||
.swiper-button-prev:after,
|
||||
.swiper-container-rtl .swiper-button-next:after {
|
||||
transform: scale(0.5);
|
||||
}
|
||||
.pismask {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
z-index: 99999;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
}
|
||||
}
|
||||
// https://v1.github.surmon.me/vue-awesome-swiper/
|
||||
</style>
|
@ -0,0 +1,253 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
class="adddeviceDialog"
|
||||
:title="title"
|
||||
:visible.sync="isShow"
|
||||
:close-on-click-modal="false"
|
||||
width="670px"
|
||||
@close="handleclose"
|
||||
>
|
||||
<el-form
|
||||
label-position="left"
|
||||
ref="formInfo"
|
||||
label-width="auto"
|
||||
:rules="rules"
|
||||
:model="ruleForm"
|
||||
>
|
||||
<el-form-item label="名称" prop="name">
|
||||
<el-input v-model="ruleForm.name" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<div class="addtimeBox" ref="timescrollref">
|
||||
<div
|
||||
class="timeBoxArr"
|
||||
v-for="(item, index) in ruleForm.listTime"
|
||||
:key="index"
|
||||
>
|
||||
<el-form-item
|
||||
label="时间"
|
||||
:prop="'listTime.' + index + '.time'"
|
||||
:rules="{ required: true, message: '请选择时间', trigger: 'blur' }"
|
||||
>
|
||||
<el-time-picker
|
||||
is-range
|
||||
v-model="item.time"
|
||||
range-separator="至"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
format="HH:mm"
|
||||
>
|
||||
</el-time-picker>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="间隔(分)"
|
||||
:prop="'listTime.' + index + '.span'"
|
||||
>
|
||||
<!-- <el-input v-model="ruleForm.span" autocomplete="off" type="number"></el-input> -->
|
||||
<el-input-number v-model="item.span" :min="1"></el-input-number>
|
||||
</el-form-item>
|
||||
<div class="btngrop">
|
||||
<el-button
|
||||
v-if="index !== 0"
|
||||
type="danger"
|
||||
icon="el-icon-minus"
|
||||
@click="deleteModule(item, index)"
|
||||
></el-button>
|
||||
<el-button
|
||||
icon="el-icon-plus"
|
||||
type="primary"
|
||||
@click="addModule()"
|
||||
v-if="index + 1 == ruleForm.listTime.length"
|
||||
></el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="ruleForm.remark" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="isShow = false">取 消</el-button>
|
||||
<el-button type="primary" @click="submitForm()">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { addScheduleRulel, updateScheduleRulel } from "@/utils/api/index";
|
||||
export default {
|
||||
props: {
|
||||
title: String,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isShow: false,
|
||||
rules: {
|
||||
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
|
||||
},
|
||||
ruleForm: {},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
//判断
|
||||
getdataform(val) {
|
||||
console.log(val);
|
||||
if (val == null) {
|
||||
return (this.ruleForm = {
|
||||
name: "",
|
||||
listTime: [
|
||||
{
|
||||
time: "",
|
||||
span: "",
|
||||
},
|
||||
],
|
||||
list: [],
|
||||
remark: "",
|
||||
});
|
||||
}
|
||||
//this.ruleForm = val;
|
||||
this.ruleForm = JSON.parse(JSON.stringify(val));
|
||||
this.ruleForm.listTime.forEach((val) => {
|
||||
this.$set(val, "time", [val.startTime, val.endTime]);
|
||||
});
|
||||
},
|
||||
addModule() {
|
||||
//新增一行
|
||||
this.ruleForm.listTime.push({
|
||||
time: "",
|
||||
span: "",
|
||||
});
|
||||
console.log(this.$refs.timescrollref);
|
||||
this.$nextTick(() => {
|
||||
console.log(this.$refs.timescrollref);
|
||||
if (this.$refs.timescrollref) {
|
||||
console.log(this.$refs.timescrollref.scrollHeight);
|
||||
this.$refs.timescrollref.scrollTop =
|
||||
this.$refs.timescrollref.scrollHeight;
|
||||
}
|
||||
});
|
||||
},
|
||||
//删除一行
|
||||
deleteModule(item, index) {
|
||||
console.log(item, index);
|
||||
const itemList = this.ruleForm.list.indexOf(item);
|
||||
if (itemList !== -1) {
|
||||
this.ruleForm.list.splice(index, 1);
|
||||
}
|
||||
},
|
||||
// 保存确定操作
|
||||
submitForm() {
|
||||
this.$refs.formInfo.validate((valid) => {
|
||||
if (valid) {
|
||||
// delete this.ruleForm.time;
|
||||
|
||||
this.ruleForm.listTime.forEach((val) => {
|
||||
this.$set(val, "startTime", new Date(val.time[0]));
|
||||
this.$set(val, "endTime", new Date(val.time[1]));
|
||||
// console.log(val.time[0]);
|
||||
// console.log(typeof val.time[0]);
|
||||
// console.log(new Date(val.time[0]));
|
||||
// console.log(new Date(val.time[1]));
|
||||
// console.log(new Date(val.time[0]).getHours());
|
||||
// console.log(new Date(val.time[0]).getMinutes());
|
||||
});
|
||||
|
||||
let arr = [];
|
||||
for (var i = 0; i < this.ruleForm.listTime.length; i++) {
|
||||
console.log(this.ruleForm.listTime);
|
||||
|
||||
arr.push(
|
||||
{
|
||||
hour: Math.floor(this.ruleForm.listTime[i].span / 60),
|
||||
minute: this.ruleForm.listTime[i].span % 60,
|
||||
preset: 255,
|
||||
},
|
||||
{
|
||||
hour: this.ruleForm.listTime[i].startTime.getHours(),
|
||||
minute: this.ruleForm.listTime[i].startTime.getMinutes(),
|
||||
preset: 255,
|
||||
},
|
||||
{
|
||||
hour: this.ruleForm.listTime[i].endTime.getHours(),
|
||||
minute: this.ruleForm.listTime[i].endTime.getMinutes(),
|
||||
preset: 255,
|
||||
}
|
||||
);
|
||||
}
|
||||
console.log(arr);
|
||||
this.ruleForm.list = arr;
|
||||
if (this.title == "新增") {
|
||||
addScheduleRulel(this.ruleForm)
|
||||
.then((res) => {
|
||||
this.isShow = false;
|
||||
this.$message({
|
||||
duration: 1500,
|
||||
showClose: true,
|
||||
message: "添加成功",
|
||||
type: "success",
|
||||
});
|
||||
this.$parent.deviceList();
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message({
|
||||
duration: 1500,
|
||||
showClose: true,
|
||||
message: "添加失败",
|
||||
type: "error",
|
||||
});
|
||||
});
|
||||
} else {
|
||||
updateScheduleRulel(this.ruleForm)
|
||||
.then((res) => {
|
||||
this.isShow = false;
|
||||
this.$message.success("修改成功");
|
||||
this.$parent.deviceList();
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error("修改失败");
|
||||
});
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
display() {
|
||||
this.isShow = true;
|
||||
},
|
||||
hide() {
|
||||
this.isShow = false;
|
||||
},
|
||||
handleclose() {
|
||||
this.$parent.deviceList();
|
||||
},
|
||||
},
|
||||
mounted() {},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
.adddeviceDialog {
|
||||
.el-form {
|
||||
.addtimeBox {
|
||||
max-height: 205px;
|
||||
overflow: auto;
|
||||
}
|
||||
.timeBoxArr {
|
||||
display: flex;
|
||||
.el-date-editor.el-input,
|
||||
.el-date-editor.el-input__inner {
|
||||
width: 226px;
|
||||
margin-right: 16px;
|
||||
}
|
||||
|
||||
.btngrop {
|
||||
margin-bottom: 16px;
|
||||
margin-left: 16px;
|
||||
height: 32px;
|
||||
.el-button--small {
|
||||
padding: 9px 8px;
|
||||
width: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,37 @@
|
||||
<template>
|
||||
<div class="itoperation">
|
||||
<div class="deviceBox">
|
||||
<iframe
|
||||
id="iframeId"
|
||||
class="iframeBox"
|
||||
src="http://dev.xinyingpower.com:40099/web/"
|
||||
width="100%"
|
||||
height="100%"
|
||||
frameborder="0"
|
||||
></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
|
||||
methods: {},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
.itoperation {
|
||||
width: calc(100% - 24px);
|
||||
height: calc(100% - 24px);
|
||||
padding: 12px 12px;
|
||||
background: @color-white;
|
||||
.deviceBox {
|
||||
border: 1px solid #dddddd;
|
||||
height: calc(100% - 0px);
|
||||
//padding: 12px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,154 +0,0 @@
|
||||
<template>
|
||||
<div class="simCardcontain">
|
||||
<div class="simBtnGroup">
|
||||
<el-button type="primary">新增</el-button>
|
||||
<el-button type="primary">修改</el-button>
|
||||
<el-button type="primary">删除</el-button>
|
||||
<el-button type="primary">查询</el-button>
|
||||
<el-button type="primary">质保延期</el-button>
|
||||
<el-button type="primary">导入</el-button>
|
||||
<el-button type="primary">导入模板下载</el-button>
|
||||
<el-button type="primary">导出</el-button>
|
||||
</div>
|
||||
<div class="searchForm">
|
||||
<el-form :inline="true" :model="formInline" class="demo-form-inline">
|
||||
<el-form-item label="单位:">
|
||||
<el-select v-model="formInline.region" placeholder="活动区域">
|
||||
<el-option label="区域一" value="shanghai"></el-option>
|
||||
<el-option label="区域二" value="beijing"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="网络类型:">
|
||||
<el-select v-model="formInline.region" placeholder="活动区域">
|
||||
<el-option label="区域一" value="shanghai"></el-option>
|
||||
<el-option label="区域二" value="beijing"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态:">
|
||||
<el-input v-model="formInline.user" placeholder="审批人"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否已使用">
|
||||
<el-select v-model="formInline.region" placeholder="活动区域">
|
||||
<el-option label="区域一" value="shanghai"></el-option>
|
||||
<el-option label="区域二" value="beijing"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="电话号码:">
|
||||
<el-input v-model="formInline.user" placeholder="审批人"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="simTable">
|
||||
<el-table
|
||||
ref="multipleTable"
|
||||
:data="tableData"
|
||||
stripe
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column type="index" width="55"> </el-table-column>
|
||||
<el-table-column type="selection" width="55"> </el-table-column>
|
||||
<el-table-column label="单位">
|
||||
<template slot-scope="scope">{{ scope.row.date }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" label="电话号码"> </el-table-column>
|
||||
<el-table-column prop="address" label="网络类型" show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" label="质保到期日"> </el-table-column>
|
||||
<el-table-column prop="name" label="流量包(M)"> </el-table-column>
|
||||
<el-table-column prop="name" label="告警阀值(%)"> </el-table-column>
|
||||
<el-table-column prop="name" label="状态"> </el-table-column>
|
||||
<el-table-column prop="name" label="是否已使用"> </el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
formInline: {
|
||||
user: "",
|
||||
region: "",
|
||||
},
|
||||
tableData: [
|
||||
{
|
||||
date: "2016-05-03",
|
||||
name: "王小虎",
|
||||
address: "上海市普陀区金沙江路 1518 弄",
|
||||
},
|
||||
{
|
||||
date: "2016-05-02",
|
||||
name: "王小虎",
|
||||
address: "上海市普陀区金沙江路 1518 弄",
|
||||
},
|
||||
{
|
||||
date: "2016-05-04",
|
||||
name: "王小虎",
|
||||
address: "上海市普陀区金沙江路 1518 弄",
|
||||
},
|
||||
{
|
||||
date: "2016-05-01",
|
||||
name: "王小虎",
|
||||
address: "上海市普陀区金沙江路 1518 弄",
|
||||
},
|
||||
{
|
||||
date: "2016-05-08",
|
||||
name: "王小虎",
|
||||
address: "上海市普陀区金沙江路 1518 弄",
|
||||
},
|
||||
{
|
||||
date: "2016-05-06",
|
||||
name: "王小虎",
|
||||
address: "上海市普陀区金沙江路 1518 弄",
|
||||
},
|
||||
{
|
||||
date: "2016-05-07",
|
||||
name: "王小虎",
|
||||
address: "上海市普陀区金沙江路 1518 弄",
|
||||
},
|
||||
],
|
||||
multipleSelection: [],
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
onSubmit() {
|
||||
console.log("submit!");
|
||||
},
|
||||
toggleSelection(rows) {
|
||||
if (rows) {
|
||||
rows.forEach((row) => {
|
||||
this.$refs.multipleTable.toggleRowSelection(row);
|
||||
});
|
||||
} else {
|
||||
this.$refs.multipleTable.clearSelection();
|
||||
}
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
.simCardcontain {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: @color-white;
|
||||
.simBtnGroup {
|
||||
padding: 16px 8px;
|
||||
}
|
||||
.searchForm {
|
||||
padding: 0px 8px;
|
||||
.el-form {
|
||||
.el-form-item {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.simTable {
|
||||
padding: 16px 8px 0 8px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,599 @@
|
||||
<template>
|
||||
<div class="deviceReport">
|
||||
<div class="reportBox">
|
||||
<div class="photoGraphicBtnGroup">
|
||||
<h4>装置报表</h4>
|
||||
<div></div>
|
||||
</div>
|
||||
<div class="searchBox">
|
||||
<el-form :inline="true" :model="formdata" class="demo-form-inline">
|
||||
<div class="selectForm">
|
||||
<el-form-item label="电压等级" class="dybox">
|
||||
<el-select v-model="formdata.dyId" @change="getSearchxl">
|
||||
<el-option
|
||||
v-for="item in dyOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="线路名称" class="xlbox">
|
||||
<el-select
|
||||
v-model="formdata.lineId"
|
||||
@change="getSearchgt"
|
||||
filterable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in xlOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="杆塔名称">
|
||||
<el-select v-model="formdata.towerId" filterable>
|
||||
<el-option
|
||||
v-for="item in gtOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="开始日期">
|
||||
<el-date-picker
|
||||
v-model="formdata.starttime"
|
||||
type="datetime"
|
||||
placeholder="开始日期"
|
||||
value-format="timestamp"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="结束日期">
|
||||
<el-date-picker
|
||||
v-model="formdata.endtime"
|
||||
type="datetime"
|
||||
default-time="23:59:59"
|
||||
placeholder="结束日期"
|
||||
value-format="timestamp"
|
||||
class="ml10"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-input
|
||||
v-model="formdata.search"
|
||||
placeholder="请输入线路/杆塔/设备编号"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="btngrop">
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit">查询</el-button>
|
||||
<el-button type="primary" @click="onReset">重置</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-document"
|
||||
@click="handleExport()"
|
||||
>导出</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="photoGraphicTable">
|
||||
<el-table
|
||||
ref="multipleTable"
|
||||
:data="terminalTableData"
|
||||
stripe
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%"
|
||||
height="calc(100% - 40px)"
|
||||
v-loading="loading"
|
||||
>
|
||||
<template slot="empty">
|
||||
<el-empty :image-size="160" description="暂无数据"></el-empty>
|
||||
</template>
|
||||
<el-table-column
|
||||
prop="dyName"
|
||||
label="电压等级"
|
||||
min-width="120"
|
||||
show-overflow-tooltip
|
||||
fixed
|
||||
>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="lineName"
|
||||
label="线路名称"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
fixed
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.lineName }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="towerName"
|
||||
label="杆塔名称"
|
||||
show-overflow-tooltip
|
||||
min-width="150"
|
||||
fixed
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.towerName }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="equipName"
|
||||
label="设备名称"
|
||||
show-overflow-tooltip
|
||||
min-width="150"
|
||||
fixed
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="cmdId"
|
||||
label="设备编号"
|
||||
show-overflow-tooltip
|
||||
min-width="150"
|
||||
fixed
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="sim"
|
||||
label="SIM卡号"
|
||||
show-overflow-tooltip
|
||||
min-width="170"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="netType"
|
||||
label="网络类型"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.netType == 1"> 移动</span>
|
||||
<span v-if="scope.row.netType == 2"> 联通</span>
|
||||
<span v-if="scope.row.netType == 3"> 电信</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="isonline"
|
||||
label="状态"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.isonline ? "在线" : "离线" }}</template
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="model"
|
||||
label="装置型号"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="bsManufacturer"
|
||||
label="装置厂家"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="规约名称"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="workingDate"
|
||||
label="投运日期"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.workingDate == null
|
||||
? ""
|
||||
: $moment(scope.row.workingDate).format("yy-MM-DD")
|
||||
}}</template
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="isonline"
|
||||
label="最新运行状态"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.isonline ? "在线" : "离线" }}</template
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="在线天数"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="图片数量"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="最后数据上送时间"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="最后图片上送时间"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="最新基本信息采集时间"
|
||||
show-overflow-tooltip
|
||||
min-width="180"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="装置名称"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="装置型号"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="装置版本号"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="生产厂家"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="生产日期"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="出厂编号"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="最新工作状态采集时间"
|
||||
show-overflow-tooltip
|
||||
min-width="180"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="电源电压"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="工作温度"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="电池电量"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="浮充状态"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="工作总时间"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="连续工作时间"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="网络连接状态"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="最新运行状态采集时间"
|
||||
show-overflow-tooltip
|
||||
min-width="180"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="4G信号强度"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="2G信号强度"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="剩余运行内存"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="剩余存储内"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="最新GPS位置采集时间"
|
||||
show-overflow-tooltip
|
||||
min-width="180"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="半径"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="维度"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="protocolName"
|
||||
label="经度"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
/>
|
||||
|
||||
<!-- <el-table-column
|
||||
prop="status"
|
||||
label="装置状态"
|
||||
show-overflow-tooltip
|
||||
v-if="roleUser != 2"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.status == 1 ? "运行中" : "已删除" }}
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
</el-table>
|
||||
<div class="pageNation">
|
||||
<el-pagination
|
||||
@current-change="handleCurrentChange"
|
||||
@size-change="handleSizeChange"
|
||||
:current-page="page"
|
||||
:page-size="pageSize"
|
||||
layout="sizes, prev, pager, next, jumper,total"
|
||||
:total="total"
|
||||
background
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getTerminalJoggle,
|
||||
getSearchInfo,
|
||||
getTerminalListExcel,
|
||||
} from "@/utils/api/index";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
dyOptions: [{ id: -1, name: "全部" }], //电压数据
|
||||
xlOptions: [{ id: -1, name: "全部" }], //线路数据
|
||||
gtOptions: [{ id: -1, name: "全部" }], //杆塔数据
|
||||
formdata: {
|
||||
dyId: -1,
|
||||
lineId: -1,
|
||||
towerId: -1,
|
||||
search: "",
|
||||
},
|
||||
terminalTableData: [], //表格数据
|
||||
page: 1, // 当前页数
|
||||
pageSize: 20, // 每页数量
|
||||
total: 0, //总条数
|
||||
loading: true,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
var that = this;
|
||||
document.onkeydown = function (e) {
|
||||
var key = window.event.keyCode;
|
||||
if (key === 13) {
|
||||
that.onSubmit(); // 触发事件
|
||||
}
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.$set(
|
||||
this.formdata,
|
||||
"starttime",
|
||||
new Date(new Date().toLocaleDateString()).getTime()
|
||||
);
|
||||
this.$set(this.formdata, "endtime", new Date().setHours(23, 59, 59, 59));
|
||||
this.getSearchdy();
|
||||
this.terminalList();
|
||||
},
|
||||
methods: {
|
||||
//获取电压信息
|
||||
getSearchdy() {
|
||||
getSearchInfo({ type: 1 })
|
||||
.then((res) => {
|
||||
this.dyOptions = [{ id: -1, name: "全部" }];
|
||||
this.dyOptions = this.dyOptions.concat(res.data.list);
|
||||
this.formdata.dyId = this.dyOptions[0].id;
|
||||
this.getSearchxl();
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//获取线路数据
|
||||
getSearchxl() {
|
||||
getSearchInfo({ type: 2, id: this.formdata.dyId })
|
||||
.then((res) => {
|
||||
this.xlOptions = [{ id: -1, name: "全部" }];
|
||||
this.xlOptions = this.xlOptions.concat(res.data.list);
|
||||
this.formdata.lineId = this.xlOptions[0].id;
|
||||
this.getSearchgt();
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//获取杆塔数据
|
||||
getSearchgt() {
|
||||
getSearchInfo({ type: 3, id: this.formdata.lineId })
|
||||
.then((res) => {
|
||||
this.gtOptions = [{ id: -1, name: "全部" }];
|
||||
this.gtOptions = this.gtOptions.concat(res.data.list);
|
||||
this.formdata.towerId = this.gtOptions[0].id;
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
|
||||
//查询
|
||||
onSubmit() {
|
||||
this.page = 1;
|
||||
this.terminalList();
|
||||
},
|
||||
//重置
|
||||
onReset() {
|
||||
this.formdata = {};
|
||||
this.getSearchdy();
|
||||
this.page = 1;
|
||||
this.pageSize = 20;
|
||||
|
||||
this.terminalList();
|
||||
},
|
||||
//获取选中的行
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val;
|
||||
},
|
||||
////获取拍照装置列表数据
|
||||
terminalList() {
|
||||
this.loading = true;
|
||||
this.$set(this.formdata, "pageindex", this.page);
|
||||
this.$set(this.formdata, "pagesize", this.pageSize);
|
||||
getTerminalJoggle(this.formdata)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
this.terminalTableData = res.data.list;
|
||||
this.total = res.data.total;
|
||||
this.loading = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err); //代码错误、请求失败捕获
|
||||
});
|
||||
},
|
||||
//导出
|
||||
handleExport() {
|
||||
//window.location.href = "/api/api/getTerminalListExcel";
|
||||
},
|
||||
//点击分页
|
||||
handleCurrentChange(val) {
|
||||
this.page = val;
|
||||
this.terminalList(); //刷新
|
||||
},
|
||||
|
||||
//每页条数
|
||||
handleSizeChange(val) {
|
||||
this.pageSize = val;
|
||||
this.terminalList();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
.deviceReport {
|
||||
width: calc(100% - 24px);
|
||||
height: calc(100% - 24px);
|
||||
padding: 12px 12px;
|
||||
background: #ffffff;
|
||||
.reportBox {
|
||||
border: 1px solid #dddddd;
|
||||
height: calc(100% - 24px);
|
||||
padding: 12px;
|
||||
border-radius: 4px;
|
||||
.searchBox {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.ml10 {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.el-form {
|
||||
.el-date-editor.el-input,
|
||||
.el-date-editor.el-input__inner {
|
||||
width: 185px;
|
||||
}
|
||||
.dybox {
|
||||
.el-form-item__content {
|
||||
width: 120px;
|
||||
}
|
||||
}
|
||||
.xlbox {
|
||||
.el-form-item__content {
|
||||
width: 160px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.photoGraphicBtnGroup {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
.searchBox {
|
||||
margin-top: 8px;
|
||||
}
|
||||
.photoGraphicTable {
|
||||
// margin-top: 16px;
|
||||
//margin-top: 36px;
|
||||
height: calc(100% - 130px);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,212 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
class="baseInforDialog"
|
||||
title="基本信息"
|
||||
:visible.sync="isShow"
|
||||
:close-on-click-modal="false"
|
||||
width="1280px"
|
||||
>
|
||||
<el-form :inline="true" :model="formdata" class="demo-form-inline">
|
||||
<el-form-item label="开始日期">
|
||||
<el-date-picker
|
||||
v-model="formdata.starttime"
|
||||
type="datetime"
|
||||
placeholder="开始日期"
|
||||
value-format="timestamp"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="结束日期">
|
||||
<el-date-picker
|
||||
v-model="formdata.endtime"
|
||||
type="datetime"
|
||||
default-time="23:59:59"
|
||||
placeholder="结束日期"
|
||||
value-format="timestamp"
|
||||
class="ml10"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit">查询</el-button>
|
||||
<el-button type="primary">导出</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
ref="multipleTable"
|
||||
:data="listData"
|
||||
stripe
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%"
|
||||
v-loading="loading"
|
||||
>
|
||||
<template slot="empty">
|
||||
<el-empty :image-size="160" description="暂无数据"></el-empty>
|
||||
</template>
|
||||
<el-table-column min-width="45" label="序号">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ (page - 1) * pageSize + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="采集时间"
|
||||
min-width="120"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="设备名称"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="设备编号"
|
||||
min-width="120"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="装置名称"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="装置型号"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="装置版本号"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="生产厂家"
|
||||
min-width="100"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="生产日期"
|
||||
min-width="120"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="出厂编号"
|
||||
min-width="100"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
</el-table>
|
||||
<div class="pageNation">
|
||||
<el-pagination
|
||||
@current-change="handleCurrentChange"
|
||||
@size-change="handleSizeChange"
|
||||
:current-page="page"
|
||||
:page-size="pageSize"
|
||||
layout="sizes, prev, pager, next, jumper,total"
|
||||
:total="total"
|
||||
background
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="isShow = false">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { getLineListJoggle } from "@/utils/api/index";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
isShow: false,
|
||||
formdata: {},
|
||||
listData: [
|
||||
{
|
||||
name: "测试",
|
||||
},
|
||||
{
|
||||
name: "测试2",
|
||||
},
|
||||
],
|
||||
loading: false,
|
||||
seltermid: "", //装置id
|
||||
selcmdId: "", //cmdId
|
||||
requestId: "",
|
||||
page: 1, // 当前页数
|
||||
pageSize: 20, // 每页数量
|
||||
total: 0, //总条数
|
||||
};
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
//查询
|
||||
onSubmit() {
|
||||
if (this.formdata.starttime > this.formdata.endtime) {
|
||||
return this.$message({
|
||||
duration: 1500,
|
||||
showClose: true,
|
||||
message: "开始日期不能大于结束日期",
|
||||
type: "warning",
|
||||
});
|
||||
}
|
||||
this.getlistnr();
|
||||
},
|
||||
//获取数据
|
||||
getlistnr(val) {
|
||||
console.log(val);
|
||||
this.seltermid = val.id;
|
||||
this.selcmdId = val.cmdid;
|
||||
this.loading = true;
|
||||
getLineListJoggle({
|
||||
pageindex: this.page,
|
||||
pagesize: this.pageSize,
|
||||
}).then((res) => {
|
||||
this.listData = res.data.list;
|
||||
this.total = res.data.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
//点击分页
|
||||
handleCurrentChange(val) {
|
||||
this.page = val;
|
||||
this.getlistnr();
|
||||
},
|
||||
//每页条数
|
||||
handleSizeChange(val) {
|
||||
this.pageSize = val;
|
||||
this.getlistnr();
|
||||
},
|
||||
display() {
|
||||
this.isShow = true;
|
||||
},
|
||||
hide() {
|
||||
this.isShow = false;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<<<<<<< HEAD
|
||||
<style lang="less">
|
||||
.baseInforDialog {
|
||||
.pageNation {
|
||||
justify-content: flex-start;
|
||||
margin-top: 16px;
|
||||
.el-pagination {
|
||||
padding: 0px;
|
||||
.el-select .el-input {
|
||||
margin-left: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
=======
|
||||
<style lang="less" scoped></style>
|
||||
>>>>>>> hn1.0
|
@ -0,0 +1,194 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
class="gpsSiteDialog"
|
||||
title="GPS位置数据"
|
||||
:visible.sync="isShow"
|
||||
:close-on-click-modal="false"
|
||||
width="1280px"
|
||||
>
|
||||
<el-form :inline="true" :model="formdata" class="demo-form-inline">
|
||||
<el-form-item label="开始日期">
|
||||
<el-date-picker
|
||||
v-model="formdata.starttime"
|
||||
type="datetime"
|
||||
placeholder="开始日期"
|
||||
value-format="timestamp"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="结束日期">
|
||||
<el-date-picker
|
||||
v-model="formdata.endtime"
|
||||
type="datetime"
|
||||
default-time="23:59:59"
|
||||
placeholder="结束日期"
|
||||
value-format="timestamp"
|
||||
class="ml10"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit">查询</el-button>
|
||||
<el-button type="primary">导出</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
ref="multipleTable"
|
||||
:data="listData"
|
||||
stripe
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%"
|
||||
v-loading="loading"
|
||||
>
|
||||
<template slot="empty">
|
||||
<el-empty :image-size="160" description="暂无数据"></el-empty>
|
||||
</template>
|
||||
<el-table-column min-width="45" label="序号">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ (page - 1) * pageSize + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="采集时间"
|
||||
min-width="120"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="设备名称"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="设备编号"
|
||||
min-width="120"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="半径"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="维度"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="经度"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
</el-table>
|
||||
<div class="pageNation">
|
||||
<el-pagination
|
||||
@current-change="handleCurrentChange"
|
||||
@size-change="handleSizeChange"
|
||||
:current-page="page"
|
||||
:page-size="pageSize"
|
||||
layout="sizes, prev, pager, next, jumper,total"
|
||||
:total="total"
|
||||
background
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="isShow = false">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { getLineListJoggle } from "@/utils/api/index";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
isShow: false,
|
||||
formdata: {},
|
||||
listData: [
|
||||
{
|
||||
name: "测试",
|
||||
},
|
||||
{
|
||||
name: "测试2",
|
||||
},
|
||||
],
|
||||
loading: false,
|
||||
seltermid: "", //装置id
|
||||
selcmdId: "", //cmdId
|
||||
requestId: "",
|
||||
page: 1, // 当前页数
|
||||
pageSize: 20, // 每页数量
|
||||
total: 0, //总条数
|
||||
};
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
//查询
|
||||
onSubmit() {
|
||||
if (this.formdata.starttime > this.formdata.endtime) {
|
||||
return this.$message({
|
||||
duration: 1500,
|
||||
showClose: true,
|
||||
message: "开始日期不能大于结束日期",
|
||||
type: "warning",
|
||||
});
|
||||
}
|
||||
this.getlistnr();
|
||||
},
|
||||
//获取数据
|
||||
getlistnr(val) {
|
||||
console.log(val);
|
||||
this.seltermid = val.id;
|
||||
this.selcmdId = val.cmdid;
|
||||
this.loading = true;
|
||||
getLineListJoggle({
|
||||
pageindex: this.page,
|
||||
pagesize: this.pageSize,
|
||||
}).then((res) => {
|
||||
this.listData = res.data.list;
|
||||
this.total = res.data.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
//点击分页
|
||||
handleCurrentChange(val) {
|
||||
this.page = val;
|
||||
this.getlistnr();
|
||||
},
|
||||
//每页条数
|
||||
handleSizeChange(val) {
|
||||
this.pageSize = val;
|
||||
this.getlistnr();
|
||||
},
|
||||
display() {
|
||||
this.isShow = true;
|
||||
},
|
||||
hide() {
|
||||
this.isShow = false;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<<<<<<< HEAD
|
||||
<style lang="less">
|
||||
.gpsSiteDialog {
|
||||
.pageNation {
|
||||
justify-content: flex-start;
|
||||
margin-top: 16px;
|
||||
.el-pagination {
|
||||
padding: 0px;
|
||||
.el-select .el-input {
|
||||
margin-left: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
=======
|
||||
<style lang="less" scoped></style>
|
||||
>>>>>>> hn1.0
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,425 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
class="setimgDialog"
|
||||
title="图像采集参数"
|
||||
:visible.sync="isShow"
|
||||
:close-on-click-modal="false"
|
||||
width="60%"
|
||||
@close="handleclose"
|
||||
>
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick" v-loading="loading">
|
||||
<el-tab-pane label="查询实际参数" name="1">
|
||||
<div class="flexnr">
|
||||
<div class="wt80">通道:</div>
|
||||
<el-select v-model="selaccess" placeholder="请选择" class="mr20">
|
||||
<el-option
|
||||
v-for="item in accesslist"
|
||||
:key="item.channelid"
|
||||
:label="item.channelname"
|
||||
:value="item.channelid"
|
||||
></el-option>
|
||||
</el-select>
|
||||
<el-button
|
||||
:loading="searchloading"
|
||||
type="primary"
|
||||
@click="inquirebtn()"
|
||||
>查询</el-button
|
||||
>
|
||||
</div>
|
||||
<div class="flexno bt30">
|
||||
<div class="wt80">色彩选择:</div>
|
||||
<el-select v-model="capturenr.color" class="wt280" :disabled="true">
|
||||
<el-option
|
||||
v-for="item in colorlist"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="flexno bt30">
|
||||
<div class="wt80">图像分辨率:</div>
|
||||
<el-select
|
||||
v-model="capturenr.resolution"
|
||||
class="wt280"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in ratiolist"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="flexno bt30">
|
||||
<div class="wt80">亮度:</div>
|
||||
<el-input
|
||||
v-model="capturenr.luminance"
|
||||
:disabled="true"
|
||||
class="wt280"
|
||||
></el-input>
|
||||
</div>
|
||||
<div class="flexno bt30">
|
||||
<div class="wt80">对比度:</div>
|
||||
<el-input
|
||||
v-model="capturenr.contrast"
|
||||
:disabled="true"
|
||||
class="wt280"
|
||||
></el-input>
|
||||
</div>
|
||||
<div class="flexno bt30">
|
||||
<div class="wt80">饱和度:</div>
|
||||
<el-input
|
||||
v-model="capturenr.saturation"
|
||||
:disabled="true"
|
||||
class="wt280"
|
||||
></el-input>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="设置参数" name="2">
|
||||
<el-form
|
||||
:model="setForm"
|
||||
:rules="rules"
|
||||
ref="setForm"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-form-item label="通道" prop="channelId">
|
||||
<el-select
|
||||
v-model="setForm.channelId"
|
||||
placeholder="请选择"
|
||||
class="mr20"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in accesslist"
|
||||
:key="item.channelid"
|
||||
:label="item.channelname"
|
||||
:value="item.channelid"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="色彩选择" prop="color">
|
||||
<el-select
|
||||
v-model="setForm.color"
|
||||
placeholder="请选择"
|
||||
class="mr20"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in colorlist"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="图像分辨率" prop="resolution">
|
||||
<el-select
|
||||
v-model="setForm.resolution"
|
||||
placeholder="请选择"
|
||||
class="mr20"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in ratiolist"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="亮度" prop="luminance">
|
||||
<el-input-number
|
||||
v-model="setForm.luminance"
|
||||
:min="1"
|
||||
:max="100"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="对比度" prop="contrast">
|
||||
<el-input-number
|
||||
v-model="setForm.contrast"
|
||||
:min="1"
|
||||
:max="100"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="饱和度" prop="saturation">
|
||||
<el-input-number
|
||||
v-model="setForm.saturation"
|
||||
:min="1"
|
||||
:max="100"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitbtn('setForm')"
|
||||
>确认</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
getChannelListJoggle,
|
||||
getPhotoParamApi,
|
||||
setPhotoParamApi,
|
||||
getPhotoParamnrApi,
|
||||
getResolutionRatio,
|
||||
} from "@/utils/api/index";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
isShow: false,
|
||||
searchloading: false,
|
||||
activeName: "1", //选项卡
|
||||
accesslist: [], //通道选择器
|
||||
colorlist: [
|
||||
{
|
||||
name: "黑白",
|
||||
id: 0,
|
||||
},
|
||||
{
|
||||
name: "彩色",
|
||||
id: 1,
|
||||
},
|
||||
], //色彩选择器
|
||||
ratiolist: [], //图像分辨率
|
||||
selaccess: "", //选中的通道
|
||||
capturenr: {}, //查询后的内容
|
||||
setForm: {}, //设置参数
|
||||
rules: {
|
||||
channelId: [{ required: true, message: "请选择通道", trigger: "blur" }],
|
||||
color: [{ required: true, message: "请选择色彩", trigger: "blur" }],
|
||||
contrast: [
|
||||
{ required: true, message: "请输入对比度", trigger: "blur" },
|
||||
],
|
||||
luminance: [{ required: true, message: "请输入亮度", trigger: "blur" }],
|
||||
resolution: [
|
||||
{ required: true, message: "请选择图像分辨率", trigger: "blur" },
|
||||
],
|
||||
saturation: [
|
||||
{ required: true, message: "请输入饱和度", trigger: "blur" },
|
||||
],
|
||||
},
|
||||
timer: null,
|
||||
i: 0,
|
||||
seltermid: "", //装置id
|
||||
selcmdId: "", //cmdId
|
||||
requestId: "",
|
||||
};
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
handleClick(tab, event) {
|
||||
console.log(tab, event);
|
||||
},
|
||||
//获取设备通道
|
||||
getSingleAccess(val) {
|
||||
this.setForm = {};
|
||||
console.log(val);
|
||||
this.seltermid = val.id;
|
||||
this.selcmdId = val.cmdId;
|
||||
getChannelListJoggle({ termid: this.seltermid })
|
||||
.then((res) => {
|
||||
this.accesslist = res.data.list;
|
||||
this.selaccess = res.data.list[0].channelid;
|
||||
this.$set(this.setForm, "channelId", res.data.list[0].channelid);
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//获取图像分辨率
|
||||
getRatio() {
|
||||
this.$set(this.setForm, "color", this.colorlist[0].id);
|
||||
getResolutionRatio({ type: 0 })
|
||||
.then((res) => {
|
||||
this.ratiolist = res.data.list;
|
||||
this.$set(this.setForm, "resolution", res.data.list[0].id);
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//查询触发
|
||||
inquirebtn() {
|
||||
this.loading = true;
|
||||
this.searchloading = true;
|
||||
getPhotoParamApi({
|
||||
channelId: this.selaccess,
|
||||
termId: this.seltermid,
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.requestId = res.data.requestId;
|
||||
this.inquirenr();
|
||||
this.timer = window.setInterval(() => {
|
||||
this.inquirenr();
|
||||
this.i++;
|
||||
}, 1000);
|
||||
} else {
|
||||
this.$message.error(res.code.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//查询接口
|
||||
inquirenr() {
|
||||
getPhotoParamnrApi({
|
||||
channelId: this.selaccess,
|
||||
termId: this.seltermid,
|
||||
requestId: this.requestId,
|
||||
})
|
||||
.then((res) => {
|
||||
this.loading = false;
|
||||
if (res.code == 200) {
|
||||
this.capturenr = res.data;
|
||||
if (res.data.isNew == true) {
|
||||
this.searchloading = false;
|
||||
this.i = 0;
|
||||
this.$message.success("查询已更新");
|
||||
clearInterval(this.timer);
|
||||
this.timer = null;
|
||||
} else if (this.i > 9) {
|
||||
this.searchloading = false;
|
||||
this.i = 0;
|
||||
this.$message.warning("暂无响应,请稍后再试!");
|
||||
|
||||
clearInterval(this.timer);
|
||||
this.timer = null;
|
||||
}
|
||||
} else {
|
||||
this.$message.error(res.code.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//确认
|
||||
submitbtn(setForm) {
|
||||
this.$set(this.setForm, "cmdId", this.selcmdId);
|
||||
this.$set(this.setForm, "termId", this.seltermid);
|
||||
this.$refs[setForm].validate((valid) => {
|
||||
if (valid) {
|
||||
setPhotoParamApi(this.setForm)
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.$message.success("设置成功");
|
||||
this.isShow = false;
|
||||
} else {
|
||||
this.$message.error(res.code.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error("设置失败");
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
display() {
|
||||
this.isShow = true;
|
||||
},
|
||||
hide() {
|
||||
this.isShow = false;
|
||||
},
|
||||
handleclose() {
|
||||
this.searchloading = false;
|
||||
this.i = 0;
|
||||
clearInterval(this.timer);
|
||||
this.timer = null;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
.setimgDialog {
|
||||
.el-tabs__content {
|
||||
height: 400px;
|
||||
overflow: auto;
|
||||
.el-tab-pane {
|
||||
height: calc(100% - 16px);
|
||||
}
|
||||
}
|
||||
.flexonly {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.flexno {
|
||||
display: flex;
|
||||
margin-top: 24px;
|
||||
padding: 0px 8px;
|
||||
align-items: center;
|
||||
}
|
||||
.flexnr {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 16px;
|
||||
padding: 0px 8px;
|
||||
}
|
||||
.mt10 {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.mr10 {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.w8 {
|
||||
width: 8%;
|
||||
}
|
||||
.wt80 {
|
||||
width: 80px;
|
||||
}
|
||||
.wt280 {
|
||||
width: 280px;
|
||||
}
|
||||
.w80 {
|
||||
width: 90%;
|
||||
overflow-y: auto;
|
||||
height: 300px;
|
||||
}
|
||||
.mr20 {
|
||||
margin-right: 20px;
|
||||
}
|
||||
.bt30 {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
.deviceTable {
|
||||
padding: 16px 8px 0 8px;
|
||||
height: calc(100% - 16px);
|
||||
.rulesBox {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
li {
|
||||
list-style: none;
|
||||
margin-right: 24px;
|
||||
line-height: 24px;
|
||||
span {
|
||||
margin-right: 4px;
|
||||
}
|
||||
.el-tag--small {
|
||||
height: 16px;
|
||||
padding: 0 8px;
|
||||
line-height: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.setRoadDialog {
|
||||
.el-dialog__body {
|
||||
height: 400px;
|
||||
overflow: auto;
|
||||
.el-form {
|
||||
height: 100%;
|
||||
//background: #fcc;
|
||||
}
|
||||
.setTimeTd {
|
||||
h3 {
|
||||
margin: 8px 0px;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
}
|
||||
.timename {
|
||||
margin: 8px 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,196 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
class="runStatusDialog"
|
||||
title="装置运行状态"
|
||||
:visible.sync="isShow"
|
||||
:close-on-click-modal="false"
|
||||
width="1280px"
|
||||
>
|
||||
<el-form :inline="true" :model="formdata" class="demo-form-inline">
|
||||
<el-form-item label="开始日期">
|
||||
<el-date-picker
|
||||
v-model="formdata.starttime"
|
||||
type="datetime"
|
||||
placeholder="开始日期"
|
||||
value-format="timestamp"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="结束日期">
|
||||
<el-date-picker
|
||||
v-model="formdata.endtime"
|
||||
type="datetime"
|
||||
default-time="23:59:59"
|
||||
placeholder="结束日期"
|
||||
value-format="timestamp"
|
||||
class="ml10"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit">查询</el-button>
|
||||
<el-button type="primary">导出</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
ref="multipleTable"
|
||||
:data="listData"
|
||||
stripe
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%"
|
||||
v-loading="loading"
|
||||
>
|
||||
<template slot="empty">
|
||||
<el-empty :image-size="160" description="暂无数据"></el-empty>
|
||||
</template>
|
||||
<el-table-column min-width="45" label="序号">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ (page - 1) * pageSize + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="采集时间"
|
||||
min-width="120"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="设备名称"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="设备编号"
|
||||
min-width="120"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="4G信号强度"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="2G信号强度"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="剩余运行内存"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="剩余存储内存"
|
||||
min-width="100"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
</el-table>
|
||||
<div class="pageNation">
|
||||
<el-pagination
|
||||
@current-change="handleCurrentChange"
|
||||
@size-change="handleSizeChange"
|
||||
:current-page="page"
|
||||
:page-size="pageSize"
|
||||
layout="sizes, prev, pager, next, jumper,total"
|
||||
:total="total"
|
||||
background
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="isShow = false">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { getLineListJoggle } from "@/utils/api/index";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
isShow: false,
|
||||
formdata: {},
|
||||
listData: [
|
||||
{
|
||||
name: "测试",
|
||||
},
|
||||
{
|
||||
name: "测试2",
|
||||
},
|
||||
],
|
||||
loading: false,
|
||||
seltermid: "", //装置id
|
||||
selcmdId: "", //cmdId
|
||||
requestId: "",
|
||||
page: 1, // 当前页数
|
||||
pageSize: 20, // 每页数量
|
||||
total: 0, //总条数
|
||||
};
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
//查询
|
||||
onSubmit() {
|
||||
if (this.formdata.starttime > this.formdata.endtime) {
|
||||
return this.$message({
|
||||
duration: 1500,
|
||||
showClose: true,
|
||||
message: "开始日期不能大于结束日期",
|
||||
type: "warning",
|
||||
});
|
||||
}
|
||||
this.getlistnr();
|
||||
},
|
||||
//获取数据
|
||||
getlistnr(val) {
|
||||
console.log(val);
|
||||
this.seltermid = val.id;
|
||||
this.selcmdId = val.cmdid;
|
||||
this.loading = true;
|
||||
getLineListJoggle({
|
||||
pageindex: this.page,
|
||||
pagesize: this.pageSize,
|
||||
}).then((res) => {
|
||||
this.listData = res.data.list;
|
||||
this.total = res.data.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
//点击分页
|
||||
handleCurrentChange(val) {
|
||||
this.page = val;
|
||||
this.getlistnr();
|
||||
},
|
||||
//每页条数
|
||||
handleSizeChange(val) {
|
||||
this.pageSize = val;
|
||||
this.getlistnr();
|
||||
},
|
||||
display() {
|
||||
this.isShow = true;
|
||||
},
|
||||
hide() {
|
||||
this.isShow = false;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
.runStatusDialog {
|
||||
.pageNation {
|
||||
justify-content: flex-start;
|
||||
margin-top: 16px;
|
||||
.el-pagination {
|
||||
padding: 0px;
|
||||
.el-select .el-input {
|
||||
margin-left: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,149 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
class="addtowerDialog"
|
||||
title="修改杆塔"
|
||||
:visible.sync="isShow"
|
||||
:close-on-click-modal="false"
|
||||
width="470px"
|
||||
@close="handleClose"
|
||||
>
|
||||
<el-form
|
||||
label-position="left"
|
||||
ref="formInfo"
|
||||
label-width="100px"
|
||||
:rules="rules"
|
||||
:model="formdata"
|
||||
>
|
||||
<el-form-item label="线路名称:" prop="lineId">
|
||||
<el-select v-model="formdata.lineId" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in lineOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="杆塔名称:" prop="name">
|
||||
<el-input v-model="formdata.towerName" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="杆塔地址:" prop="address">
|
||||
<el-input v-model="formdata.address" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="排序号:" prop="order">
|
||||
<el-input-number
|
||||
controls-position="right"
|
||||
v-model="formdata.order"
|
||||
:min="0"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="isShow = false">取 消</el-button>
|
||||
<el-button type="primary" @click="submitForm()">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { getLineListApi, addTowerApi, updateTowerApi } from "@/utils/api/index";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
isShow: false,
|
||||
lineOptions: [],
|
||||
formdata: {},
|
||||
rules: {
|
||||
towerName: [
|
||||
{ required: true, message: "请输入杆塔名称", trigger: "blur" },
|
||||
],
|
||||
lineId: [
|
||||
{ required: true, message: "请选择线路编号", trigger: "blur" },
|
||||
],
|
||||
// address: [
|
||||
// { required: true, message: "请输入杆塔地址", trigger: "blur" },
|
||||
// ],
|
||||
order: [{ required: true, message: "请输入排序号", trigger: "blur" }],
|
||||
},
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getLineListdata();
|
||||
},
|
||||
methods: {
|
||||
getLineListdata() {
|
||||
getLineListApi({ pageindex: 1, pagesize: 100 })
|
||||
.then((res) => {
|
||||
this.lineOptions = res.data.list;
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//判断
|
||||
getdataform(val) {
|
||||
//this.formdata = val;
|
||||
this.formdata.order = 0;
|
||||
this.formdata = JSON.parse(JSON.stringify(val));
|
||||
},
|
||||
// 保存确定操作
|
||||
submitForm() {
|
||||
this.$refs.formInfo.validate((valid) => {
|
||||
if (valid) {
|
||||
updateTowerApi({
|
||||
id: this.formdata.towerId,
|
||||
name: this.formdata.towerName,
|
||||
address: null,
|
||||
lineId: this.formdata.lineId,
|
||||
lineName: this.formdata.lineName,
|
||||
order: this.formdata.order,
|
||||
})
|
||||
.then((res) => {
|
||||
this.isShow = false;
|
||||
//this.$message.success("修改成功");
|
||||
this.$message({
|
||||
duration: 1500,
|
||||
showClose: true,
|
||||
message: "修改成功",
|
||||
type: "success",
|
||||
});
|
||||
this.$parent.terminalList(); //刷新
|
||||
})
|
||||
.catch((err) => {
|
||||
//this.$message.error("修改失败");
|
||||
this.$message({
|
||||
duration: 1500,
|
||||
showClose: true,
|
||||
message: "修改失败",
|
||||
type: "error",
|
||||
});
|
||||
});
|
||||
} else {
|
||||
console.log("error submit!!");
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
display() {
|
||||
this.isShow = true;
|
||||
},
|
||||
hide() {
|
||||
this.isShow = false;
|
||||
},
|
||||
handleClose() {
|
||||
this.$parent.terminalList(); //刷新
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
.addtowerDialog {
|
||||
.el-select {
|
||||
width: 100%;
|
||||
}
|
||||
.el-input-number {
|
||||
width: 100%;
|
||||
}
|
||||
.el-input-number .el-input__inner {
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,383 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
class="setimgDialog"
|
||||
title="视频采集参数"
|
||||
:visible.sync="isShow"
|
||||
:close-on-click-modal="false"
|
||||
width="60%"
|
||||
@close="handleclose"
|
||||
>
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick" v-loading="loading">
|
||||
<el-tab-pane label="查询实际参数" name="1">
|
||||
<div class="flexnr">
|
||||
<div class="wt80">通道:</div>
|
||||
<el-select v-model="selaccess" placeholder="请选择" class="mr20">
|
||||
<el-option
|
||||
v-for="item in accesslist"
|
||||
:key="item.channelid"
|
||||
:label="item.channelname"
|
||||
:value="item.channelid"
|
||||
></el-option>
|
||||
</el-select>
|
||||
<el-button
|
||||
:loading="searchloading"
|
||||
type="primary"
|
||||
@click="inquirebtn()"
|
||||
>查询</el-button
|
||||
>
|
||||
</div>
|
||||
<div class="flexno bt30">
|
||||
<div class="wt80">视频分辨率:</div>
|
||||
<el-select
|
||||
v-model="capturenr.videoFormat"
|
||||
class="wt280"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in ratiolist"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="flexno bt30">
|
||||
<div class="wt80">预置位:</div>
|
||||
<el-input
|
||||
v-model="capturenr.preset"
|
||||
:disabled="true"
|
||||
class="wt280"
|
||||
></el-input>
|
||||
</div>
|
||||
<div class="flexno bt30">
|
||||
<div class="wt80">录制时长:</div>
|
||||
<el-input
|
||||
v-model="capturenr.videoTime"
|
||||
:disabled="true"
|
||||
class="wt280"
|
||||
>
|
||||
<template slot="append">s (秒)</template>
|
||||
</el-input>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="设置参数" name="2">
|
||||
<el-form
|
||||
:model="setForm"
|
||||
:rules="rules"
|
||||
ref="setForm"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-form-item label="通道" prop="channelId">
|
||||
<el-select
|
||||
v-model="setForm.channelId"
|
||||
placeholder="请选择"
|
||||
class="mr20"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in accesslist"
|
||||
:key="item.channelid"
|
||||
:label="item.channelname"
|
||||
:value="item.channelid"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="视频分辨率" prop="videoFormat">
|
||||
<el-select
|
||||
v-model="setForm.videoFormat"
|
||||
placeholder="请选择"
|
||||
class="mr20"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in ratiolist"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="预置位" prop="preset">
|
||||
<el-input-number
|
||||
v-model="setForm.preset"
|
||||
:min="1"
|
||||
:max="255"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="录制时长 s(秒)" prop="videoTime">
|
||||
<el-input-number
|
||||
v-model="setForm.videoTime"
|
||||
:min="1"
|
||||
:max="100"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitbtn('setForm')"
|
||||
>确认</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
getChannelListJoggle,
|
||||
getVideoParamApi,
|
||||
setVideoParamApi,
|
||||
getVideoParamnrApi,
|
||||
getResolutionRatio,
|
||||
} from "@/utils/api/index";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
isShow: false,
|
||||
searchloading: false,
|
||||
activeName: "1", //选项卡
|
||||
accesslist: [], //通道选择器
|
||||
ratiolist: [], //分辨率
|
||||
selaccess: "", //选中的通道
|
||||
capturenr: {}, //查询后的内容
|
||||
setForm: {}, //设置参数
|
||||
rules: {
|
||||
channelId: [{ required: true, message: "请选择通道", trigger: "blur" }],
|
||||
videoTime: [
|
||||
{ required: true, message: "请输入录制时长", trigger: "blur" },
|
||||
],
|
||||
preset: [{ required: true, message: "请输入预置位", trigger: "blur" }],
|
||||
videoFormat: [
|
||||
{ required: true, message: "请选择视频分辨率", trigger: "blur" },
|
||||
],
|
||||
},
|
||||
timer: null,
|
||||
i: 0,
|
||||
seltermid: "", //装置id
|
||||
selcmdId: "", //cmdId
|
||||
requestId: "",
|
||||
};
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
handleClick(tab, event) {
|
||||
console.log(tab, event);
|
||||
},
|
||||
//获取设备通道
|
||||
getSingleAccess(val) {
|
||||
this.setForm = {};
|
||||
console.log(val);
|
||||
this.seltermid = val.id;
|
||||
this.selcmdId = val.cmdId;
|
||||
getChannelListJoggle({ termid: this.seltermid })
|
||||
.then((res) => {
|
||||
this.accesslist = res.data.list;
|
||||
this.selaccess = res.data.list[0].channelid;
|
||||
this.$set(this.setForm, "channelId", res.data.list[0].channelid);
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//获取分辨率
|
||||
getRatio() {
|
||||
getResolutionRatio({ type: 1 })
|
||||
.then((res) => {
|
||||
this.ratiolist = res.data.list;
|
||||
this.$set(this.setForm, "videoFormat", res.data.list[0].id);
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//查询触发
|
||||
inquirebtn() {
|
||||
this.loading = true;
|
||||
this.searchloading = true;
|
||||
getVideoParamApi({
|
||||
channelId: this.selaccess,
|
||||
termId: this.seltermid,
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.requestId = res.data.requestId;
|
||||
this.inquirenr();
|
||||
this.timer = window.setInterval(() => {
|
||||
this.inquirenr();
|
||||
this.i++;
|
||||
}, 1000);
|
||||
} else {
|
||||
this.$message.error(res.code.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//查询接口
|
||||
inquirenr() {
|
||||
getVideoParamnrApi({
|
||||
// channelId: this.selaccess,
|
||||
// termId: this.seltermid,
|
||||
requestId: this.requestId,
|
||||
})
|
||||
.then((res) => {
|
||||
this.loading = false;
|
||||
if (res.code == 200) {
|
||||
this.capturenr = res.data;
|
||||
if (res.data.isNew == true) {
|
||||
this.searchloading = false;
|
||||
this.i = 0;
|
||||
|
||||
this.$message({
|
||||
duration: 1500,
|
||||
showClose: true,
|
||||
message: "查询已更新",
|
||||
type: "success",
|
||||
});
|
||||
clearInterval(this.timer);
|
||||
this.timer = null;
|
||||
} else if (this.i > 9) {
|
||||
this.searchloading = false;
|
||||
this.i = 0;
|
||||
|
||||
this.$message({
|
||||
duration: 1500,
|
||||
showClose: true,
|
||||
message: "暂无响应,请稍后再试!",
|
||||
type: "warning",
|
||||
});
|
||||
|
||||
clearInterval(this.timer);
|
||||
this.timer = null;
|
||||
}
|
||||
} else {
|
||||
this.$message.error(res.code.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//确认
|
||||
submitbtn(setForm) {
|
||||
this.$set(this.setForm, "cmdId", this.selcmdId);
|
||||
// this.$set(this.setForm, "termId", this.seltermid);
|
||||
this.$refs[setForm].validate((valid) => {
|
||||
if (valid) {
|
||||
setVideoParamApi(this.setForm)
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.$message.success("设置成功");
|
||||
this.isShow = false;
|
||||
} else {
|
||||
this.$message.error(res.code.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error("设置失败");
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
display() {
|
||||
this.isShow = true;
|
||||
},
|
||||
hide() {
|
||||
this.isShow = false;
|
||||
},
|
||||
handleclose() {
|
||||
this.searchloading = false;
|
||||
this.i = 0;
|
||||
clearInterval(this.timer);
|
||||
this.timer = null;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
.setimgDialog {
|
||||
.el-tabs__content {
|
||||
height: 400px;
|
||||
overflow: auto;
|
||||
.el-tab-pane {
|
||||
height: calc(100% - 16px);
|
||||
}
|
||||
}
|
||||
.flexonly {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.flexno {
|
||||
display: flex;
|
||||
margin-top: 24px;
|
||||
padding: 0px 8px;
|
||||
align-items: center;
|
||||
}
|
||||
.flexnr {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 16px;
|
||||
padding: 0px 8px;
|
||||
}
|
||||
.mt10 {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.mr10 {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.w8 {
|
||||
width: 8%;
|
||||
}
|
||||
.wt80 {
|
||||
width: 80px;
|
||||
}
|
||||
.wt280 {
|
||||
width: 280px;
|
||||
}
|
||||
.w80 {
|
||||
width: 90%;
|
||||
overflow-y: auto;
|
||||
height: 300px;
|
||||
}
|
||||
.mr20 {
|
||||
margin-right: 20px;
|
||||
}
|
||||
.bt30 {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
.deviceTable {
|
||||
padding: 16px 8px 0 8px;
|
||||
height: calc(100% - 16px);
|
||||
.rulesBox {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
li {
|
||||
list-style: none;
|
||||
margin-right: 24px;
|
||||
line-height: 24px;
|
||||
span {
|
||||
margin-right: 4px;
|
||||
}
|
||||
.el-tag--small {
|
||||
height: 16px;
|
||||
padding: 0 8px;
|
||||
line-height: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.setRoadDialog {
|
||||
.el-dialog__body {
|
||||
height: 400px;
|
||||
overflow: auto;
|
||||
.el-form {
|
||||
height: 100%;
|
||||
//background: #fcc;
|
||||
}
|
||||
.setTimeTd {
|
||||
h3 {
|
||||
margin: 8px 0px;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
}
|
||||
.timename {
|
||||
margin: 8px 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,226 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
class="workStatus"
|
||||
title="工作状态"
|
||||
:visible.sync="isShow"
|
||||
:close-on-click-modal="false"
|
||||
width="1280px"
|
||||
>
|
||||
<el-form :inline="true" :model="formdata" class="demo-form-inline">
|
||||
<el-form-item label="开始日期">
|
||||
<el-date-picker
|
||||
v-model="formdata.starttime"
|
||||
type="datetime"
|
||||
placeholder="开始日期"
|
||||
value-format="timestamp"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="结束日期">
|
||||
<el-date-picker
|
||||
v-model="formdata.endtime"
|
||||
type="datetime"
|
||||
default-time="23:59:59"
|
||||
placeholder="结束日期"
|
||||
value-format="timestamp"
|
||||
class="ml10"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit">查询</el-button>
|
||||
<el-button type="primary">导出</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
ref="multipleTable"
|
||||
:data="listData"
|
||||
stripe
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%"
|
||||
v-loading="loading"
|
||||
>
|
||||
<template slot="empty">
|
||||
<el-empty :image-size="160" description="暂无数据"></el-empty>
|
||||
</template>
|
||||
<el-table-column min-width="45" label="序号">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ (page - 1) * pageSize + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="采集时间"
|
||||
min-width="120"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="设备名称"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="设备编号"
|
||||
min-width="120"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="电源电压"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="工作温度"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="电池电量"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="浮充状态"
|
||||
min-width="100"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">{{
|
||||
scope.row.name == 0 ? "充电" : "放电"
|
||||
}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="工作总时间"
|
||||
min-width="120"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="连续工作时间"
|
||||
min-width="100"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="网络连接状态"
|
||||
min-width="100"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">{{
|
||||
scope.row.name == 0 ? "已连接" : "未连接"
|
||||
}}</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="pageNation">
|
||||
<el-pagination
|
||||
@current-change="handleCurrentChange"
|
||||
@size-change="handleSizeChange"
|
||||
:current-page="page"
|
||||
:page-size="pageSize"
|
||||
layout="sizes, prev, pager, next, jumper,total"
|
||||
:total="total"
|
||||
background
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="isShow = false">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { getLineListJoggle } from "@/utils/api/index";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
isShow: false,
|
||||
formdata: {},
|
||||
listData: [
|
||||
{
|
||||
name: "测试",
|
||||
},
|
||||
{
|
||||
name: "测试2",
|
||||
},
|
||||
],
|
||||
loading: false,
|
||||
seltermid: "", //装置id
|
||||
selcmdId: "", //cmdId
|
||||
requestId: "",
|
||||
page: 1, // 当前页数
|
||||
pageSize: 20, // 每页数量
|
||||
total: 0, //总条数
|
||||
};
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
//查询
|
||||
onSubmit() {
|
||||
if (this.formdata.starttime > this.formdata.endtime) {
|
||||
return this.$message({
|
||||
duration: 1500,
|
||||
showClose: true,
|
||||
message: "开始日期不能大于结束日期",
|
||||
type: "warning",
|
||||
});
|
||||
}
|
||||
this.getlistnr();
|
||||
},
|
||||
//获取数据
|
||||
getlistnr(val) {
|
||||
console.log(val);
|
||||
this.seltermid = val.id;
|
||||
this.selcmdId = val.cmdid;
|
||||
this.loading = true;
|
||||
getLineListJoggle({
|
||||
pageindex: this.page,
|
||||
pagesize: this.pageSize,
|
||||
}).then((res) => {
|
||||
this.listData = res.data.list;
|
||||
this.total = res.data.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
//点击分页
|
||||
handleCurrentChange(val) {
|
||||
this.page = val;
|
||||
this.getlistnr();
|
||||
},
|
||||
//每页条数
|
||||
handleSizeChange(val) {
|
||||
this.pageSize = val;
|
||||
this.getlistnr();
|
||||
},
|
||||
display() {
|
||||
this.isShow = true;
|
||||
},
|
||||
hide() {
|
||||
this.isShow = false;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<<<<<<< HEAD
|
||||
<style lang="less">
|
||||
.workStatus {
|
||||
.pageNation {
|
||||
justify-content: flex-start;
|
||||
margin-top: 16px;
|
||||
.el-pagination {
|
||||
padding: 0px;
|
||||
.el-select .el-input {
|
||||
margin-left: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
=======
|
||||
<style lang="less" scoped></style>
|
||||
>>>>>>> hn1.0
|
@ -0,0 +1,807 @@
|
||||
<template>
|
||||
<div class="photoGraphicDevice">
|
||||
<div class="photoBox">
|
||||
<div class="photoGraphicBtnGroup">
|
||||
<h4>拍照装置管理</h4>
|
||||
<el-button type="primary" icon="el-icon-plus" @click="handleAddPhoto()"
|
||||
>新增</el-button
|
||||
>
|
||||
</div>
|
||||
<div class="searchBox">
|
||||
<el-form :inline="true" :model="formdata" class="demo-form-inline">
|
||||
<el-form-item label="电压等级" class="dybox">
|
||||
<el-select v-model="formdata.dyId" @change="getSearchxl">
|
||||
<el-option
|
||||
v-for="item in dyOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="线路名称" class="xlbox">
|
||||
<el-select
|
||||
v-model="formdata.lineId"
|
||||
@change="getSearchgt"
|
||||
filterable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in xlOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="杆塔名称">
|
||||
<el-select v-model="formdata.towerId" filterable>
|
||||
<el-option
|
||||
v-for="item in gtOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-input
|
||||
v-model="formdata.search"
|
||||
placeholder="请输入线路/杆塔/设备编号"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit">查询</el-button>
|
||||
<el-button type="primary" @click="onReset">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="photoGraphicTable">
|
||||
<el-table
|
||||
ref="multipleTable"
|
||||
:data="terminalTableData"
|
||||
stripe
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%"
|
||||
height="calc(100% - 40px)"
|
||||
@selection-change="handleSelectionChange"
|
||||
@row-click="handleRowClick"
|
||||
v-loading="loading"
|
||||
>
|
||||
<!-- <el-table-column
|
||||
prop="cmdid"
|
||||
label="电压等级"
|
||||
show-overflow-tooltip
|
||||
|
||||
>
|
||||
</el-table-column> -->
|
||||
<template slot="empty">
|
||||
<el-empty :image-size="160" description="暂无数据"></el-empty>
|
||||
</template>
|
||||
<el-table-column
|
||||
prop="lineName"
|
||||
label="线路名称"
|
||||
show-overflow-tooltip
|
||||
min-width="120"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="towerName"
|
||||
label="杆塔名称"
|
||||
show-overflow-tooltip
|
||||
min-width="150"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="equipName"
|
||||
label="设备名称"
|
||||
show-overflow-tooltip
|
||||
min-width="150"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="cmdId"
|
||||
label="设备编号"
|
||||
show-overflow-tooltip
|
||||
min-width="150"
|
||||
>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column
|
||||
prop="cmdid"
|
||||
label="SIM卡号"
|
||||
show-overflow-tooltip
|
||||
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="cmdid"
|
||||
label="网络类型"
|
||||
show-overflow-tooltip
|
||||
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="cmdid"
|
||||
label="状态"
|
||||
show-overflow-tooltip
|
||||
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="cmdid"
|
||||
label="装置型号"
|
||||
show-overflow-tooltip
|
||||
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="cmdid"
|
||||
label="装置厂家"
|
||||
show-overflow-tooltip
|
||||
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="cmdid"
|
||||
label="规约版本"
|
||||
show-overflow-tooltip
|
||||
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="cmdid"
|
||||
label="投运日期"
|
||||
show-overflow-tooltip
|
||||
|
||||
:formatter="dateFormat"
|
||||
>
|
||||
</el-table-column> -->
|
||||
<el-table-column
|
||||
prop="lastHeartbeat"
|
||||
label="最后一次心跳时间"
|
||||
show-overflow-tooltip
|
||||
min-width="150"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.lastHeartbeat == null || scope.row.lastHeartbeat == 0
|
||||
? ""
|
||||
: $moment(scope.row.lastHeartbeat * 1000).format(
|
||||
"yy-MM-DD HH:mm:ss"
|
||||
)
|
||||
}}</template
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="bootTime"
|
||||
label="装置上次启动时间"
|
||||
show-overflow-tooltip
|
||||
min-width="150"
|
||||
>
|
||||
<template slot-scope="scope"
|
||||
>{{
|
||||
scope.row.bootTime == null
|
||||
? ""
|
||||
: $moment(scope.row.bootTime * 1000).format(
|
||||
"yy-MM-DD HH:mm:ss"
|
||||
)
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="电量/电压"
|
||||
show-overflow-tooltip
|
||||
min-width="80"
|
||||
><template slot-scope="scope"
|
||||
>{{ scope.row.batteryCapacity }} /
|
||||
{{
|
||||
scope.row.batteryVoltage.toFixed(1) == 0.0
|
||||
? 0
|
||||
: scope.row.batteryVoltage.toFixed(1)
|
||||
}}V</template
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="signalStrength4g"
|
||||
label="4G信号强度"
|
||||
show-overflow-tooltip
|
||||
min-width="90"
|
||||
>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column
|
||||
prop="cmdid"
|
||||
label=" 连续工作时间
|
||||
剩余运行内存
|
||||
剩余存储内存"
|
||||
show-overflow-tooltip
|
||||
|
||||
>
|
||||
</el-table-column> -->
|
||||
|
||||
<!-- <el-table-column
|
||||
prop="updateTime"
|
||||
label="修改时间"
|
||||
:show-overflow-tooltip="true"
|
||||
:formatter="dateFormat"
|
||||
|
||||
>
|
||||
</el-table-column> -->
|
||||
|
||||
<!-- <el-table-column
|
||||
prop="createTime"
|
||||
label="创建时间"
|
||||
:show-overflow-tooltip="true"
|
||||
:formatter="dateFormat"
|
||||
>
|
||||
</el-table-column> -->
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
label="操作"
|
||||
width="520"
|
||||
v-if="roleUser != 2"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
@click.native.stop="handleRevisePhoto(scope.row)"
|
||||
type="text"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
@click.native.stop="handlepicture(scope.row)"
|
||||
>图片标记</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
@click.native.stop="handleDeviceReset(scope.row)"
|
||||
>装置复位</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
@click.native.stop="handleImageCapture(scope.row)"
|
||||
>图像参数</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
@click.native.stop="handleVideoCapture(scope.row)"
|
||||
>视频参数</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
@click.native.stop="handleShowGPS(scope.row)"
|
||||
>获取GPS位置</el-button
|
||||
>
|
||||
<!-- <el-select
|
||||
class="dropgps"
|
||||
v-model="gpsvalue"
|
||||
placeholder="请选择"
|
||||
popper-class="gpsdropbox"
|
||||
@change="gpsChange(scope.row)"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in gpsOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select> -->
|
||||
<el-dropdown
|
||||
class="dropgps"
|
||||
trigger="click"
|
||||
@command="
|
||||
(command) => {
|
||||
handleCommand(command, scope.row);
|
||||
}
|
||||
"
|
||||
>
|
||||
<span class="el-dropdown-link">
|
||||
GPS开关<i class="el-icon-arrow-down el-icon--right"></i>
|
||||
</span>
|
||||
<el-dropdown-menu slot="dropdown" class="gpsdropStyle">
|
||||
<el-dropdown-item command="open">开启GPS</el-dropdown-item>
|
||||
<el-dropdown-item command="close">关闭GPS</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
<!-- <el-button
|
||||
type="text"
|
||||
class="deleteText"
|
||||
@click.native.stop="handleDelete(scope.row)"
|
||||
>删除</el-button
|
||||
> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" label="操作" width="320" v-else>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
@click.native.stop="handleRevisePhoto(scope.row)"
|
||||
type="text"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
@click.native.stop="handlepicture(scope.row)"
|
||||
>图片标记</el-button
|
||||
>
|
||||
|
||||
<el-button
|
||||
type="text"
|
||||
@click.native.stop="handleShowGPS(scope.row)"
|
||||
>获取GPS位置</el-button
|
||||
>
|
||||
|
||||
<el-dropdown
|
||||
class="dropgps"
|
||||
trigger="click"
|
||||
@command="
|
||||
(command) => {
|
||||
handleCommand(command, scope.row);
|
||||
}
|
||||
"
|
||||
>
|
||||
<span class="el-dropdown-link">
|
||||
GPS开关<i class="el-icon-arrow-down el-icon--right"></i>
|
||||
</span>
|
||||
<el-dropdown-menu slot="dropdown" class="gpsdropStyle">
|
||||
<el-dropdown-item command="open">开启GPS</el-dropdown-item>
|
||||
<el-dropdown-item command="close">关闭GPS</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
<!-- <el-button
|
||||
type="text"
|
||||
class="deleteText"
|
||||
@click.native.stop="handleDelete(scope.row)"
|
||||
>删除</el-button
|
||||
> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="pageNation">
|
||||
<el-pagination
|
||||
@current-change="handleCurrentChange"
|
||||
@size-change="handleSizeChange"
|
||||
:current-page="page"
|
||||
:page-size="pageSize"
|
||||
layout="sizes, prev, pager, next, jumper,total"
|
||||
:total="total"
|
||||
background
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<addPhotoDialog
|
||||
:photoDialogTitle="photoDialogTitle"
|
||||
ref="addPhotoDialogref"
|
||||
></addPhotoDialog>
|
||||
<imageCapturebak ref="imageCaptureref"></imageCapturebak>
|
||||
<videoCapturebak ref="videoCaptureref"></videoCapturebak>
|
||||
<pictureTags ref="picturetagsref"></pictureTags>
|
||||
<gps-position ref="gpsdialog_ref"></gps-position>
|
||||
<parameterSetDialog ref="parameterSetref"></parameterSetDialog>
|
||||
<baseInfor ref="baseInfor_ref"></baseInfor>
|
||||
<workStatus ref="workStatus_ref"></workStatus>
|
||||
<runStatus ref="runStatus_ref"></runStatus>
|
||||
<gpsSite ref="gpsSite_ref"></gpsSite>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
getTerminalJoggle,
|
||||
deleteTerminalJoggle,
|
||||
resetTerminalApi,
|
||||
setTermGPSJoggle,
|
||||
getSearchInfo,
|
||||
} from "@/utils/api/index";
|
||||
import moment from "moment";
|
||||
import addPhotoDialog from "./components/addPhotoDialog.vue";
|
||||
import imageCapturebak from "./components/imageCapturebak.vue";
|
||||
import videoCapturebak from "./components/videoCapturebak.vue";
|
||||
import pictureTags from "./components/pictureTags.vue";
|
||||
import gpsPosition from "./components/gpsPosition.vue";
|
||||
import parameterSetDialog from "./components/parameterSetDialog.vue";
|
||||
import baseInfor from "./components/baseInfor.vue";
|
||||
import workStatus from "./components/workStatus.vue";
|
||||
import runStatus from "./components/runStatus.vue";
|
||||
import gpsSite from "./components/gpsSite.vue";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
addPhotoDialog,
|
||||
imageCapturebak,
|
||||
videoCapturebak,
|
||||
pictureTags,
|
||||
gpsPosition,
|
||||
parameterSetDialog,
|
||||
baseInfor,
|
||||
workStatus,
|
||||
runStatus,
|
||||
gpsSite,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dyOptions: [{ id: -1, name: "全部" }], //电压数据
|
||||
xlOptions: [{ id: -1, name: "全部" }], //线路数据
|
||||
gtOptions: [{ id: -1, name: "全部" }], //杆塔数据
|
||||
formdata: {
|
||||
dyId: -1,
|
||||
lineId: -1,
|
||||
towerId: -1,
|
||||
search: "",
|
||||
},
|
||||
roleUser: "",
|
||||
terminalTableData: [], //表格数据
|
||||
photoDialog: false, //新增弹窗
|
||||
photoDialogTitle: "", //弹窗标题
|
||||
deleteArr: [], //删除数组
|
||||
multipleSelection: [], //当前选中数组
|
||||
formphotoInfo: {}, //弹窗传值
|
||||
page: 1, // 当前页数
|
||||
pageSize: 20, // 每页数量
|
||||
total: 0, //总条数
|
||||
loading: true,
|
||||
|
||||
gpsOptions: [
|
||||
{
|
||||
value: "1",
|
||||
label: "GPS关闭",
|
||||
},
|
||||
{
|
||||
value: "2",
|
||||
label: "GPS开启",
|
||||
},
|
||||
],
|
||||
gpsvalue: "1",
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getSearchdy();
|
||||
this.terminalList();
|
||||
this.roleUser = localStorage.getItem("role");
|
||||
console.log(this.roleUser);
|
||||
},
|
||||
methods: {
|
||||
//获取电压信息
|
||||
getSearchdy() {
|
||||
getSearchInfo({ type: 1 })
|
||||
.then((res) => {
|
||||
this.dyOptions = [{ id: -1, name: "全部" }];
|
||||
this.dyOptions = this.dyOptions.concat(res.data.list);
|
||||
this.formdata.dyId = this.dyOptions[0].id;
|
||||
this.getSearchxl();
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//获取线路数据
|
||||
getSearchxl() {
|
||||
getSearchInfo({ type: 2, id: this.formdata.dyId })
|
||||
.then((res) => {
|
||||
this.xlOptions = [{ id: -1, name: "全部" }];
|
||||
this.xlOptions = this.xlOptions.concat(res.data.list);
|
||||
this.formdata.lineId = this.xlOptions[0].id;
|
||||
this.getSearchgt();
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//获取杆塔数据
|
||||
getSearchgt() {
|
||||
getSearchInfo({ type: 3, id: this.formdata.lineId })
|
||||
.then((res) => {
|
||||
this.gtOptions = [{ id: -1, name: "全部" }];
|
||||
this.gtOptions = this.gtOptions.concat(res.data.list);
|
||||
this.formdata.towerId = this.gtOptions[0].id;
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//查询
|
||||
onSubmit() {
|
||||
this.terminalList();
|
||||
},
|
||||
//重置
|
||||
onReset() {
|
||||
this.formdata = {};
|
||||
this.getSearchdy();
|
||||
this.page = 1;
|
||||
this.pageSize = 20;
|
||||
this.terminalList();
|
||||
},
|
||||
////获取拍照装置列表数据
|
||||
terminalList() {
|
||||
this.loading = true;
|
||||
this.$set(this.formdata, "pageindex", this.page);
|
||||
this.$set(this.formdata, "pagesize", this.pageSize);
|
||||
getTerminalJoggle(this.formdata)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
this.terminalTableData = res.data.list;
|
||||
this.total = res.data.total;
|
||||
this.loading = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err); //代码错误、请求失败捕获
|
||||
});
|
||||
},
|
||||
//点击行选中当前行
|
||||
handleRowClick(row, column, event) {
|
||||
this.$refs.multipleTable.toggleRowSelection(row);
|
||||
},
|
||||
//获取选中的行
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val;
|
||||
},
|
||||
//时间转化
|
||||
dateFormat(row, column) {
|
||||
var date = row[column.property];
|
||||
if (date == undefined) {
|
||||
return "";
|
||||
}
|
||||
return moment(date).format("YYYY-MM-DD HH:mm:ss");
|
||||
},
|
||||
// 新建弹窗
|
||||
handleAddPhoto() {
|
||||
this.photoDialogTitle = "新增";
|
||||
this.$refs.addPhotoDialogref.display();
|
||||
this.$refs.addPhotoDialogref.getdataform(null);
|
||||
},
|
||||
//handleResive 修改线路数据
|
||||
handleRevisePhoto(data) {
|
||||
this.photoDialogTitle = "修改";
|
||||
this.$refs.addPhotoDialogref.display();
|
||||
this.$refs.addPhotoDialogref.getdataform(data);
|
||||
console.log(data);
|
||||
},
|
||||
//装置复位
|
||||
handleDeviceReset(data) {
|
||||
this.$confirm("此操作将复位装置, 是否继续?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
resetTerminalApi({ cmId: data.cmdId })
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.$message({
|
||||
duration: 1500,
|
||||
showClose: true,
|
||||
message: "装置已复位",
|
||||
type: "success",
|
||||
});
|
||||
} else {
|
||||
this.$message({
|
||||
duration: 1500,
|
||||
showClose: true,
|
||||
message: res.msg,
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch((err) => {});
|
||||
})
|
||||
.catch(() => {
|
||||
// this.$message({
|
||||
// duration: 1500,
|
||||
// showClose: true,
|
||||
// type: "info",
|
||||
// message: "已取消删除",
|
||||
// });
|
||||
});
|
||||
},
|
||||
//获取GPS位置
|
||||
handleShowGPS(data) {
|
||||
// this.$refs.gpsdialog_ref.display();
|
||||
// this.$refs.gpsdialog_ref.getgpsData(data);
|
||||
this.$refs.gpsdialog_ref.display(data);
|
||||
this.$refs.gpsdialog_ref.getgpssql();
|
||||
console.log(data);
|
||||
},
|
||||
|
||||
//切换gps开启关闭
|
||||
changeGPS(val, row) {
|
||||
console.log(val, row);
|
||||
setTermGPSJoggle({ gpsstatus: val, cmdId: row.cmdId })
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
if (val == 0) {
|
||||
this.$message({
|
||||
duration: 1500,
|
||||
message: "关闭GPS",
|
||||
type: "success",
|
||||
showClose: true,
|
||||
});
|
||||
} else {
|
||||
this.$message({
|
||||
duration: 1500,
|
||||
message: "成功开启GPS",
|
||||
type: "success",
|
||||
showClose: true,
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err); //代码错误、请求失败捕获
|
||||
});
|
||||
},
|
||||
handleCommand(command, row) {
|
||||
console.log(command, row);
|
||||
switch (command) {
|
||||
case "open": //开启
|
||||
this.changeGPS(1, row);
|
||||
break;
|
||||
case "close": //关闭
|
||||
this.changeGPS(0, row);
|
||||
break;
|
||||
}
|
||||
},
|
||||
//
|
||||
// gpsChange(val) {
|
||||
// console.log(val);
|
||||
// },
|
||||
//图像采集参数
|
||||
handleImageCapture(data) {
|
||||
this.$refs.imageCaptureref.display();
|
||||
this.$refs.imageCaptureref.getSingleAccess(data);
|
||||
this.$refs.imageCaptureref.getRatio();
|
||||
},
|
||||
//视频采集参数
|
||||
handleVideoCapture(data) {
|
||||
this.$refs.videoCaptureref.display();
|
||||
this.$refs.videoCaptureref.getSingleAccess(data);
|
||||
this.$refs.videoCaptureref.getRatio();
|
||||
},
|
||||
|
||||
//线缆绘制
|
||||
handlepicture(data) {
|
||||
console.log(data);
|
||||
this.$refs.picturetagsref.display(data);
|
||||
},
|
||||
//数据查询
|
||||
handleSearchCommand(command, row) {
|
||||
console.log(command, row);
|
||||
switch (command) {
|
||||
case "info":
|
||||
this.$refs.baseInfor_ref.display();
|
||||
break;
|
||||
case "workStatus":
|
||||
this.$refs.workStatus_ref.display();
|
||||
break;
|
||||
case "runStatus":
|
||||
this.$refs.runStatus_ref.display();
|
||||
break;
|
||||
case "GPS":
|
||||
this.$refs.gpsSite_ref.display();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
},
|
||||
//参数配置
|
||||
handleParameterSet(data) {
|
||||
this.$refs.parameterSetref.display(data);
|
||||
},
|
||||
|
||||
// //新建弹窗handleAddPhoto
|
||||
// handleAddPhoto() {
|
||||
// this.photoDialog = true;
|
||||
// this.photoDialogTitle = "新增";
|
||||
// },
|
||||
// //修改弹窗handleRevisePhoto
|
||||
// handleRevisePhoto(data) {
|
||||
// this.photoDialog = true;
|
||||
// this.photoDialogTitle = "修改";
|
||||
// this.formphotoInfo = Object.assign({}, data);
|
||||
// },
|
||||
|
||||
//删除数据
|
||||
handleDelete(data) {
|
||||
console.log(data);
|
||||
this.deleteArr.push({
|
||||
termid: data.id,
|
||||
});
|
||||
console.log(this.deleteArr);
|
||||
this.$confirm("确定要删除记录吗,同时删除关联关系?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
// 行设置向后台请求删除数据
|
||||
deleteTerminalJoggle({ list: this.deleteArr }).then((res) => {
|
||||
console.log(res);
|
||||
this.terminalList(); //刷新
|
||||
});
|
||||
this.$message({
|
||||
duration: 1500,
|
||||
type: "success",
|
||||
message: "删除成功!",
|
||||
showClose: true,
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
// this.$message({
|
||||
// duration: 1500,
|
||||
// type: "info",
|
||||
// message: "已取消删除",
|
||||
// showClose: true,
|
||||
// });
|
||||
});
|
||||
},
|
||||
//点击分页
|
||||
handleCurrentChange(val) {
|
||||
this.page = val;
|
||||
this.terminalList(); //刷新
|
||||
},
|
||||
//每页条数
|
||||
handleSizeChange(val) {
|
||||
this.pageSize = val;
|
||||
this.terminalList();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
.photoGraphicDevice {
|
||||
width: calc(100% - 24px);
|
||||
height: calc(100% - 24px);
|
||||
padding: 12px 12px;
|
||||
background: @color-white;
|
||||
.photoBox {
|
||||
border: 1px solid #dddddd;
|
||||
height: calc(100% - 24px);
|
||||
padding: 12px;
|
||||
border-radius: 4px;
|
||||
.searchBox {
|
||||
.ml10 {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.el-form {
|
||||
.dybox {
|
||||
.el-form-item__content {
|
||||
width: 120px;
|
||||
}
|
||||
}
|
||||
.xlbox {
|
||||
.el-form-item__content {
|
||||
width: 160px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.photoGraphicBtnGroup {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
.searchBox {
|
||||
margin-top: 8px;
|
||||
}
|
||||
.photoGraphicTable {
|
||||
// margin-top: 16px;
|
||||
//margin-top: 36px;
|
||||
height: calc(100% - 94px);
|
||||
}
|
||||
.dropgps {
|
||||
color: @color-primary;
|
||||
margin-left: 16px;
|
||||
// margin-right: 16px;
|
||||
cursor: pointer;
|
||||
font-size: 12px;
|
||||
width: 80px;
|
||||
.el-input__inner {
|
||||
padding: 0px;
|
||||
border: none;
|
||||
color: @color-primary;
|
||||
font-size: 12px;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
.gpsdropbox {
|
||||
.el-select-dropdown__item {
|
||||
line-height: 27px;
|
||||
padding: 0 15px;
|
||||
font-size: 12px;
|
||||
height: 27px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,316 @@
|
||||
<template>
|
||||
<div class="waterMark">
|
||||
<div class="deviceBox">
|
||||
<div class="deviceBtnGroup">
|
||||
<h4>水印下发</h4>
|
||||
<!-- <el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
@click.native.stop="handleAdddevice()"
|
||||
>导入</el-button
|
||||
> -->
|
||||
</div>
|
||||
|
||||
<div class="deviceTable">
|
||||
<div class="batchBox" v-if="this.multipleSelection.length !== 0">
|
||||
<el-button type="text" icon="el-icon-s-promotion">批量下发</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
ref="multipleTable"
|
||||
:data="tableData"
|
||||
tooltip-effect="dark"
|
||||
stripe
|
||||
style="width: 100%"
|
||||
height="calc(100% - 40px)"
|
||||
v-loading="loading"
|
||||
:row-class-name="tableRowClassName"
|
||||
highlight-current-row
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<template slot="empty">
|
||||
<el-empty :image-size="160" description="暂无数据"></el-empty>
|
||||
</template>
|
||||
<el-table-column type="selection" width="55"> </el-table-column>
|
||||
<el-table-column label="设备CMD_ID" width="125">
|
||||
<template slot-scope="scope">{{ scope.row.cmdid }}</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="channel" label="通道"> </el-table-column> -->
|
||||
<el-table-column
|
||||
prop="bottomLeft"
|
||||
label="通道1左下角水印"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-input
|
||||
v-if="scope.row.index == tableCli"
|
||||
v-model="scope.row.bottomLeft"
|
||||
/>
|
||||
<span v-else>{{ scope.row.bottomLeft }}</span></template
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="bottomRIght"
|
||||
label="通道1右下角水印"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-input
|
||||
v-if="scope.row.index == tableCli"
|
||||
v-model="scope.row.bottomRIght"
|
||||
/>
|
||||
<span v-else>{{ scope.row.bottomRIght }}</span></template
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="bottomLeft"
|
||||
label="通道2左下角水印"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-input
|
||||
v-if="scope.row.index == tableCli"
|
||||
v-model="scope.row.bottomLeft"
|
||||
/>
|
||||
<span v-else>{{ scope.row.bottomLeft }}</span></template
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="bottomRIght"
|
||||
label="通道2右下角水印"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-input
|
||||
v-if="scope.row.index == tableCli"
|
||||
v-model="scope.row.bottomRIght"
|
||||
/>
|
||||
<span v-else>{{ scope.row.bottomRIght }}</span></template
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="bottomLeft"
|
||||
label="通道3左下角水印"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-input
|
||||
v-if="scope.row.index == tableCli"
|
||||
v-model="scope.row.bottomLeft"
|
||||
/>
|
||||
<span v-else>{{ scope.row.bottomLeft }}</span></template
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="bottomRIght"
|
||||
label="通道3右下角水印"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-input
|
||||
v-if="scope.row.index == tableCli"
|
||||
v-model="scope.row.bottomRIght"
|
||||
/>
|
||||
<span v-else>{{ scope.row.bottomRIght }}</span></template
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="bottomLeft"
|
||||
label="通道4左下角水印"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-input
|
||||
v-if="scope.row.index == tableCli"
|
||||
v-model="scope.row.bottomLeft"
|
||||
/>
|
||||
<span v-else>{{ scope.row.bottomLeft }}</span></template
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="bottomRIght"
|
||||
label="通道4右下角水印"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-input
|
||||
v-if="scope.row.index == tableCli"
|
||||
v-model="scope.row.bottomRIght"
|
||||
/>
|
||||
<span v-else>{{ scope.row.bottomRIght }}</span></template
|
||||
>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column fixed="right" label="操作" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
v-if="scope.row.index == tableCli"
|
||||
:disabled="multipleSelection.length !== 0"
|
||||
@click="handleSave(scope.row, scope)"
|
||||
>保存</el-button
|
||||
>
|
||||
<el-button
|
||||
v-else
|
||||
type="text"
|
||||
:disabled="multipleSelection.length !== 0"
|
||||
@click="handleEdit(scope.row, scope)"
|
||||
>编辑</el-button
|
||||
>
|
||||
<el-button type="text" :disabled="multipleSelection.length !== 0"
|
||||
>下发</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="pageNation">
|
||||
<el-pagination
|
||||
@current-change="handleCurrentChange"
|
||||
@size-change="handleSizeChange"
|
||||
:current-page="page"
|
||||
:page-size="pageSize"
|
||||
layout="sizes, prev, pager, next, jumper,total"
|
||||
:total="total"
|
||||
background
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
// import { getTowerListApi, delTowerApi } from "@/utils/api/index";
|
||||
export default {
|
||||
components: {},
|
||||
data() {
|
||||
return {
|
||||
tableData: [
|
||||
{
|
||||
cmdid: "10020",
|
||||
bottomLeft: "省检-四班-500kV芜城5382线038#小号侧 ",
|
||||
bottomRIght: "西格玛-2020-09-10",
|
||||
},
|
||||
|
||||
{
|
||||
cmdid: "10021",
|
||||
channel: "通道1",
|
||||
bottomLeft: "上海市普陀区金沙江路 1518 弄",
|
||||
bottomRIght: "上海市普陀区金沙江路 1518 弄",
|
||||
},
|
||||
{
|
||||
cmdid: "10021",
|
||||
channel: "通道2",
|
||||
bottomLeft: "上海市普陀区金沙江路 1518 弄",
|
||||
bottomRIght: "上海市普陀区金沙江路 1518 弄",
|
||||
},
|
||||
{
|
||||
cmdid: "10021",
|
||||
channel: "通道3",
|
||||
bottomLeft: "上海市普陀区金沙江路 1518 弄",
|
||||
bottomRIght: "上海市普陀区金沙江路 1518 弄",
|
||||
},
|
||||
{
|
||||
cmdid: "10021",
|
||||
channel: "通道4",
|
||||
bottomLeft: "上海市普陀区金沙江路 1518 弄",
|
||||
bottomRIght: "上海市普陀区金沙江路 1518 弄",
|
||||
},
|
||||
],
|
||||
multipleSelection: [],
|
||||
isEdit: false,
|
||||
tableCli: -1,
|
||||
page: 1, // 当前页数
|
||||
pageSize: 20, // 每页数量
|
||||
total: 0, //总条数
|
||||
loading: false,
|
||||
};
|
||||
},
|
||||
watch: {},
|
||||
created() {},
|
||||
mounted() {},
|
||||
methods: {
|
||||
//选中
|
||||
handleSelectionChange(val) {
|
||||
console.log(val);
|
||||
this.multipleSelection = val;
|
||||
this.tableCli = -1;
|
||||
},
|
||||
tableRowClassName({ row, rowIndex }) {
|
||||
// 把每一行的索引放进row
|
||||
row.index = rowIndex;
|
||||
},
|
||||
handleEdit(val, scope) {
|
||||
console.log(val, scope);
|
||||
this.tableCli = scope.$index;
|
||||
console.log(this.tableCli);
|
||||
},
|
||||
handleSave(val, scope) {
|
||||
this.tableCli = -1;
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.page = val;
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.pageSize = val;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
.waterMark {
|
||||
width: calc(100% - 24px);
|
||||
height: calc(100% - 24px);
|
||||
padding: 12px 12px;
|
||||
background: @color-white;
|
||||
.deviceBox {
|
||||
border: 1px solid #dddddd;
|
||||
height: calc(100% - 24px);
|
||||
padding: 12px;
|
||||
border-radius: 4px;
|
||||
.searchBox {
|
||||
margin-top: 8px;
|
||||
.ml10 {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.el-form {
|
||||
.dybox {
|
||||
.el-form-item__content {
|
||||
width: 120px;
|
||||
}
|
||||
}
|
||||
.xlbox {
|
||||
.el-form-item__content {
|
||||
width: 160px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.deviceBtnGroup {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
.deviceTable {
|
||||
margin-top: 8px;
|
||||
height: calc(100% - 40px);
|
||||
position: releative;
|
||||
.batchBox {
|
||||
height: 40px;
|
||||
position: absolute;
|
||||
line-height: 40px;
|
||||
background: #fafafa;
|
||||
width: calc(100% - 116px);
|
||||
left: 78px;
|
||||
z-index: 4;
|
||||
top: 55px;
|
||||
}
|
||||
.el-input--small {
|
||||
font-size: 12px;
|
||||
.el-input__inner {
|
||||
padding: 0px 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
File diff suppressed because it is too large
Load Diff
@ -1,216 +0,0 @@
|
||||
<template>
|
||||
<div class="parameterArea">
|
||||
<div class="timeBox"></div>
|
||||
<div class="monitorItemBox">
|
||||
<h3>检测项</h3>
|
||||
<div class="btnBox">
|
||||
<el-button
|
||||
type="primary"
|
||||
v-for="(item, index) in MonitorItem"
|
||||
:key="index"
|
||||
icon="el-icon-thumb"
|
||||
>{{ item.name }}</el-button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div class="monitorPointBox">
|
||||
<h3>监拍点</h3>
|
||||
<div class="btnBox">
|
||||
<el-button
|
||||
type="primary"
|
||||
v-for="(item, index) in MonitorPoint"
|
||||
:key="index"
|
||||
icon="el-icon-thumb"
|
||||
>{{ item.name }}</el-button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div class="actionItem">
|
||||
<h3>操作项</h3>
|
||||
<div class="btnBox">
|
||||
<el-button
|
||||
type="primary"
|
||||
v-for="(item, index) in actionItem"
|
||||
:key="index"
|
||||
icon="el-icon-thumb"
|
||||
>{{ item.name }}</el-button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div class="configItem">
|
||||
<h3>配置项</h3>
|
||||
<div class="btnBox">
|
||||
<el-button
|
||||
type="primary"
|
||||
v-for="(item, index) in configItem"
|
||||
:key="index"
|
||||
icon="el-icon-thumb"
|
||||
>{{ item.name }}</el-button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
//检测项
|
||||
MonitorItem: [
|
||||
{
|
||||
name: "图片视频",
|
||||
},
|
||||
{
|
||||
name: "测温",
|
||||
},
|
||||
{
|
||||
name: "微气象",
|
||||
},
|
||||
{
|
||||
name: "倾斜监测",
|
||||
},
|
||||
{
|
||||
name: "风偏监测",
|
||||
},
|
||||
{
|
||||
name: "覆冰检测",
|
||||
},
|
||||
{
|
||||
name: "实时视频",
|
||||
},
|
||||
{
|
||||
name: "弧垂",
|
||||
},
|
||||
{
|
||||
name: "电压检测",
|
||||
},
|
||||
],
|
||||
//监拍点
|
||||
MonitorPoint: [
|
||||
{
|
||||
name: "小号侧",
|
||||
},
|
||||
{
|
||||
name: "大号侧",
|
||||
},
|
||||
],
|
||||
//操作项
|
||||
actionItem: [
|
||||
{
|
||||
name: "主动拍照",
|
||||
},
|
||||
{
|
||||
name: "主动录像",
|
||||
},
|
||||
{
|
||||
name: "声光报警",
|
||||
},
|
||||
{
|
||||
name: "图片调阅",
|
||||
},
|
||||
{
|
||||
name: "微信推送",
|
||||
},
|
||||
{
|
||||
name: "历史图片",
|
||||
},
|
||||
{
|
||||
name: "线缆绘制",
|
||||
},
|
||||
{
|
||||
name: "清除绘制",
|
||||
},
|
||||
{
|
||||
name: "主动巡检",
|
||||
},
|
||||
{
|
||||
name: "指令集",
|
||||
},
|
||||
{
|
||||
name: "开启雨刮",
|
||||
},
|
||||
{
|
||||
name: "喊话",
|
||||
},
|
||||
{
|
||||
name: "上一设备",
|
||||
},
|
||||
{
|
||||
name: "下一设备",
|
||||
},
|
||||
{
|
||||
name: "返回",
|
||||
},
|
||||
{
|
||||
name: "历史对比",
|
||||
},
|
||||
{
|
||||
name: "图片标记",
|
||||
},
|
||||
{
|
||||
name: "主动巡航",
|
||||
},
|
||||
],
|
||||
//配置项
|
||||
configItem: [
|
||||
{
|
||||
name: "设置分组",
|
||||
},
|
||||
{
|
||||
name: "隐患类型",
|
||||
},
|
||||
{
|
||||
name: "地图查看",
|
||||
},
|
||||
{
|
||||
name: "监拍点信息",
|
||||
},
|
||||
{
|
||||
name: "告警级别",
|
||||
},
|
||||
{
|
||||
name: "设备信息",
|
||||
},
|
||||
{
|
||||
name: "设置漏告",
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
// .parameterArea {
|
||||
// width: 300px;
|
||||
// padding: 16px 8px;
|
||||
// .monitorItemBox,
|
||||
// .monitorPointBox,
|
||||
// .actionItem,
|
||||
// .configItem {
|
||||
// border: 1px solid @border-color-base;
|
||||
// padding: 8px 16px 8px 16px;
|
||||
// margin-bottom: 32px;
|
||||
// h3 {
|
||||
// font-size: 16px;
|
||||
// margin-bottom: 8px;
|
||||
// background: transparent;
|
||||
// color: @color-text-regular;
|
||||
// }
|
||||
// .btnBox {
|
||||
// display: flex;
|
||||
// flex-wrap: wrap;
|
||||
// justify-content: space-between;
|
||||
// .el-button {
|
||||
// width: 84px;
|
||||
// padding: 6px 0px;
|
||||
// font-size: 12px;
|
||||
// margin-bottom: 8px;
|
||||
// }
|
||||
// .el-button + .el-button {
|
||||
// margin-left: 0px;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
</style>
|
File diff suppressed because it is too large
Load Diff
@ -1,191 +0,0 @@
|
||||
<template>
|
||||
<div class="picture" v-if="photoData">
|
||||
<div class="picTop">
|
||||
<h3>{{ photoData.text }}</h3>
|
||||
<div class="total">
|
||||
<span>监拍设备:14套 监拍点:14个 视频:0套 测温:0 套 微气象:0 套</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="picmain">
|
||||
<div class="photosPic">
|
||||
<div class="topTitle">
|
||||
<h4>{{ photoData.children[0].text }};大号侧</h4>
|
||||
<div class="iconList">
|
||||
<i class="el-icon-video-camera" title="主副机"></i>
|
||||
<i class="el-icon-video-camera" title="夜视"></i>
|
||||
<i class="el-icon-video-camera" title="云台"></i>
|
||||
<i class="el-icon-video-camera" title="T基+通道"></i>
|
||||
<i class="el-icon-video-camera" title="声光告警"></i>
|
||||
<i class="el-icon-video-camera" title="测温"></i>
|
||||
<i class="el-icon-video-camera" title="微气象"></i>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="picShow">
|
||||
<li
|
||||
v-for="(item, index) in lagrePic.slice(0, 4)"
|
||||
:key="index"
|
||||
@click="picShow(index)"
|
||||
>
|
||||
<img :src="'http://180.166.218.222:8104/media/' + item.filePath" />
|
||||
<span class="timeShow">{{ item.captureTime }}</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="photosPic">
|
||||
<div class="topTitle">
|
||||
<h4>{{ photoData.children[0].text }};小号测</h4>
|
||||
<div class="iconList">
|
||||
<i class="el-icon-video-camera" title="主副机"></i>
|
||||
<i class="el-icon-video-camera" title="夜视"></i>
|
||||
<i class="el-icon-video-camera" title="云台"></i>
|
||||
<i class="el-icon-video-camera" title="T基+通道"></i>
|
||||
<i class="el-icon-video-camera" title="声光告警"></i>
|
||||
<i class="el-icon-video-camera" title="测温"></i>
|
||||
<i class="el-icon-video-camera" title="微气象"></i>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="picShow">
|
||||
<li
|
||||
v-for="(item, index) in smallPic.slice(0, 4)"
|
||||
:key="index"
|
||||
@click="picShow(index)"
|
||||
>
|
||||
<img :src="'http://180.166.218.222:8104/media/' + item.filePath" />
|
||||
<span class="timeShow">{{ item.captureTime }}</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page">
|
||||
<el-pagination
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="currentPage4"
|
||||
:page-size="100"
|
||||
layout="prev, pager, next, jumper,total"
|
||||
:total="400"
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
props: ["photoData"],
|
||||
data() {
|
||||
return {
|
||||
dataPhoto: "",
|
||||
lagrePic: [],
|
||||
smallPic: [],
|
||||
currentPage4: 4,
|
||||
};
|
||||
},
|
||||
mounted: function () {
|
||||
this.getPhoto();
|
||||
},
|
||||
methods: {
|
||||
handleSizeChange(val) {
|
||||
console.log(`每页 ${val} 条`);
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
console.log(`当前页: ${val}`);
|
||||
},
|
||||
getPhoto() {
|
||||
console.log(photo);
|
||||
//this.dataPhoto = photo;
|
||||
photo.forEach((item) => {
|
||||
console.log(item);
|
||||
if (item.orientation === "1") {
|
||||
this.lagrePic.push(item);
|
||||
} else {
|
||||
this.smallPic.push(item);
|
||||
}
|
||||
});
|
||||
},
|
||||
picShow(index) {
|
||||
console.log(index);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
.picture {
|
||||
flex: 1;
|
||||
padding: 16px;
|
||||
width: 100%;
|
||||
.picTop {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: baseline;
|
||||
h3 {
|
||||
font-size: 24px;
|
||||
line-height: 30px;
|
||||
color: @color-text-regular;
|
||||
}
|
||||
.total span {
|
||||
color: @color-text-secondary;
|
||||
font-size: 14px;
|
||||
line-height: 30px;
|
||||
}
|
||||
}
|
||||
.picmain {
|
||||
border: 1px solid @border-color-base;
|
||||
.photosPic {
|
||||
padding-bottom: 12px;
|
||||
border-bottom: 1px solid @border-color-base;
|
||||
&:last-child {
|
||||
border-bottom: 0px solid @border-color-base;
|
||||
}
|
||||
.topTitle {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
h4 {
|
||||
padding: 0 10px;
|
||||
display: inline-block;
|
||||
line-height: 45px;
|
||||
color: @color-text-regular;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.iconList {
|
||||
i {
|
||||
color: @color-text-secondary;
|
||||
margin-right: 12px;
|
||||
font-size: 28px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.picShow {
|
||||
display: flex;
|
||||
padding-left: 6px;
|
||||
justify-content: space-between;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 24.5%;
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.timeShow {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: @color-primary;
|
||||
display: inline-block;
|
||||
color: @color-white;
|
||||
font-size: 14px;
|
||||
padding: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.page {
|
||||
margin-top: 16px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,168 +1,240 @@
|
||||
|
||||
|
||||
<template>
|
||||
<div style="padding: 20px">
|
||||
<el-card
|
||||
><el-tabs type="border-card" v-model="tabName" @tab-click="handleClick"
|
||||
><el-tab-pane label="用户管理" name="用户管理"
|
||||
><div class="echart-top">
|
||||
<div id="echart1" style="width: 100%; height: 100%"></div>
|
||||
<div id="echart2" style="width: 100%; height: 100%"></div></div></el-tab-pane
|
||||
><el-tab-pane label="配置管理" name="配置管理"
|
||||
><div class="echart-top">
|
||||
<div id="echart3" style="width: 100%; height: 100%"></div>
|
||||
<div id="echart4" style="width: 100%; height: 100%"></div></div></el-tab-pane></el-tabs
|
||||
></el-card>
|
||||
<div class="echartsPage">
|
||||
<div class="echart-top">
|
||||
<el-card class="box-card">
|
||||
<div id="echart1" style="width: 100%; height: 100%"></div>
|
||||
</el-card>
|
||||
<el-card class="box-card">
|
||||
<div id="echart2" style="width: 100%; height: 100%"></div>
|
||||
</el-card>
|
||||
</div>
|
||||
<div class="echart-top">
|
||||
<el-card class="box-card">
|
||||
<div id="echart3" style="width: 100%; height: 100%"></div>
|
||||
</el-card>
|
||||
<el-card class="box-card">
|
||||
<div id="echart4" style="width: 100%; height: 100%"></div>
|
||||
</el-card>
|
||||
</div>
|
||||
<!-- <el-card>
|
||||
<el-tabs type="border-card" v-model="tabName" @tab-click="handleClick"
|
||||
><el-tab-pane label="用户管理" name="用户管理"></el-tab-pane
|
||||
><el-tab-pane label="配置管理" name="配置管理"></el-tab-pane></el-tabs
|
||||
></el-card> -->
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: '',
|
||||
data() {
|
||||
return { tabName: '配置管理', myChart1: '', myChart2: '', myChart3: '', myChart4: '' };
|
||||
name: "",
|
||||
data() {
|
||||
return {
|
||||
tabName: "配置管理",
|
||||
myChart1: "",
|
||||
myChart2: "",
|
||||
myChart3: "",
|
||||
myChart4: "",
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.init();
|
||||
},
|
||||
watch: {
|
||||
"$store.state.collapse"(val) {
|
||||
console.log(val);
|
||||
setTimeout(() => {
|
||||
//echarts得重绘方法
|
||||
this.myChart1.resize();
|
||||
this.myChart2.resize();
|
||||
this.myChart3.resize();
|
||||
this.myChart4.resize();
|
||||
}, 300);
|
||||
},
|
||||
mounted() {
|
||||
this.init();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.getEchart1();
|
||||
this.getEchart2();
|
||||
this.getEchart3();
|
||||
this.getEchart4();
|
||||
},
|
||||
watch: {
|
||||
'$store.state.collapse'(val) {
|
||||
console.log(val);
|
||||
setTimeout(() => {
|
||||
//echarts得重绘方法
|
||||
this.myChart1.resize();
|
||||
this.myChart2.resize();
|
||||
this.myChart3.resize();
|
||||
this.myChart4.resize();
|
||||
}, 300);
|
||||
}
|
||||
handleClick(value) {
|
||||
console.log("value", value);
|
||||
if (value.name === "用户管理") {
|
||||
this.getEchart1();
|
||||
this.getEchart2();
|
||||
} else {
|
||||
this.getEchart3();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.getEchart1();
|
||||
this.getEchart2();
|
||||
this.getEchart3();
|
||||
this.getEchart4();
|
||||
},
|
||||
handleClick(value) {
|
||||
console.log('value', value);
|
||||
if (value.name === '用户管理') {
|
||||
this.getEchart1();
|
||||
this.getEchart2();
|
||||
} else {
|
||||
this.getEchart3();
|
||||
}
|
||||
},
|
||||
getEchart1() {
|
||||
this.$nextTick(() => {
|
||||
this.$echarts.init(document.getElementById('echart1')).dispose();
|
||||
this.myChart1 = this.$echarts.init(document.getElementById('echart1'));
|
||||
let option = {
|
||||
legend: { top: 'bottom' },
|
||||
toolbox: {
|
||||
show: true,
|
||||
feature: {
|
||||
mark: { show: true },
|
||||
dataView: { show: true, readOnly: false },
|
||||
restore: { show: true },
|
||||
saveAsImage: { show: true }
|
||||
}
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: '面积模式',
|
||||
type: 'pie',
|
||||
radius: [50, 250],
|
||||
center: ['50%', '50%'],
|
||||
roseType: 'area',
|
||||
itemStyle: { borderRadius: 8 },
|
||||
data: [
|
||||
{ value: 40, name: 'rose 1' },
|
||||
{ value: 38, name: 'rose 2' },
|
||||
{ value: 32, name: 'rose 3' },
|
||||
{ value: 30, name: 'rose 4' },
|
||||
{ value: 28, name: 'rose 5' },
|
||||
{ value: 26, name: 'rose 6' },
|
||||
{ value: 22, name: 'rose 7' },
|
||||
{ value: 18, name: 'rose 8' }
|
||||
]
|
||||
}
|
||||
]
|
||||
};
|
||||
this.myChart1.setOption(option);
|
||||
window.addEventListener('resize', () => {
|
||||
this.myChart1.resize();
|
||||
});
|
||||
});
|
||||
},
|
||||
getEchart2() {
|
||||
this.$nextTick(() => {
|
||||
this.$echarts.init(document.getElementById('echart2')).dispose();
|
||||
this.myChart2 = this.$echarts.init(document.getElementById('echart2'));
|
||||
let option = {
|
||||
xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
|
||||
yAxis: { type: 'value' },
|
||||
series: [
|
||||
{
|
||||
data: [120, 200, 150, 80, 70, 110, 130],
|
||||
type: 'bar',
|
||||
showBackground: true,
|
||||
backgroundStyle: { color: 'rgba(180, 180, 180, 0.2)' }
|
||||
}
|
||||
]
|
||||
};
|
||||
this.myChart2.setOption(option);
|
||||
window.addEventListener('resize', () => {
|
||||
this.myChart2.resize();
|
||||
});
|
||||
});
|
||||
},
|
||||
getEchart3() {
|
||||
this.$nextTick(() => {
|
||||
this.$echarts.init(document.getElementById('echart3')).dispose();
|
||||
this.myChart3 = this.$echarts.init(document.getElementById('echart3'));
|
||||
let option = {
|
||||
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
|
||||
yAxis: { type: 'value' },
|
||||
series: [{ data: [820, 932, 901, 934, 1290, 1330, 1320], type: 'line', areaStyle: {} }]
|
||||
};
|
||||
this.myChart3.setOption(option);
|
||||
window.addEventListener('resize', () => {
|
||||
this.myChart3.resize();
|
||||
});
|
||||
});
|
||||
},
|
||||
getEchart4() {
|
||||
this.$nextTick(() => {
|
||||
this.$echarts.init(document.getElementById('echart4')).dispose();
|
||||
this.myChart4 = this.$echarts.init(document.getElementById('echart4'));
|
||||
let option = {
|
||||
xAxis: {},
|
||||
yAxis: {},
|
||||
series: [
|
||||
{
|
||||
data: [
|
||||
[10, 40],
|
||||
[50, 100],
|
||||
[40, 20]
|
||||
],
|
||||
type: 'line'
|
||||
}
|
||||
]
|
||||
};
|
||||
this.myChart4.setOption(option);
|
||||
window.addEventListener('resize', () => {
|
||||
this.myChart4.resize();
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
getEchart1() {
|
||||
this.$nextTick(() => {
|
||||
this.$echarts.init(document.getElementById("echart1")).dispose();
|
||||
this.myChart1 = this.$echarts.init(document.getElementById("echart1"));
|
||||
let option = {
|
||||
title: {
|
||||
text: "装置数量统计",
|
||||
},
|
||||
legend: { top: "bottom" },
|
||||
toolbox: {
|
||||
show: true,
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: "面积模式",
|
||||
type: "pie",
|
||||
radius: [50, 120],
|
||||
center: ["50%", "50%"],
|
||||
roseType: "area",
|
||||
itemStyle: { borderRadius: 8 },
|
||||
data: [
|
||||
{ value: 40, name: "rose 1" },
|
||||
{ value: 38, name: "rose 2" },
|
||||
{ value: 32, name: "rose 3" },
|
||||
{ value: 30, name: "rose 4" },
|
||||
{ value: 28, name: "rose 5" },
|
||||
{ value: 26, name: "rose 6" },
|
||||
{ value: 22, name: "rose 7" },
|
||||
{ value: 18, name: "rose 8" },
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
this.myChart1.setOption(option);
|
||||
window.addEventListener("resize", () => {
|
||||
this.myChart1.resize();
|
||||
});
|
||||
});
|
||||
},
|
||||
getEchart2() {
|
||||
this.$nextTick(() => {
|
||||
this.$echarts.init(document.getElementById("echart2")).dispose();
|
||||
this.myChart2 = this.$echarts.init(document.getElementById("echart2"));
|
||||
let option = {
|
||||
title: {
|
||||
text: "隐患分类统计",
|
||||
},
|
||||
xAxis: {
|
||||
type: "category",
|
||||
data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
|
||||
},
|
||||
yAxis: { type: "value" },
|
||||
series: [
|
||||
{
|
||||
data: [120, 200, 150, 80, 70, 110, 130],
|
||||
type: "bar",
|
||||
showBackground: true,
|
||||
backgroundStyle: { color: "rgba(180, 180, 180, 0.2)" },
|
||||
},
|
||||
],
|
||||
};
|
||||
this.myChart2.setOption(option);
|
||||
window.addEventListener("resize", () => {
|
||||
this.myChart2.resize();
|
||||
});
|
||||
});
|
||||
},
|
||||
getEchart3() {
|
||||
this.$nextTick(() => {
|
||||
this.$echarts.init(document.getElementById("echart3")).dispose();
|
||||
this.myChart3 = this.$echarts.init(document.getElementById("echart3"));
|
||||
let option = {
|
||||
title: {
|
||||
text: "装置信息统计",
|
||||
},
|
||||
xAxis: {
|
||||
type: "category",
|
||||
boundaryGap: false,
|
||||
data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
|
||||
},
|
||||
yAxis: { type: "value" },
|
||||
series: [
|
||||
{
|
||||
data: [820, 932, 901, 934, 1290, 1330, 1320],
|
||||
type: "line",
|
||||
areaStyle: {},
|
||||
},
|
||||
],
|
||||
};
|
||||
this.myChart3.setOption(option);
|
||||
window.addEventListener("resize", () => {
|
||||
this.myChart3.resize();
|
||||
});
|
||||
});
|
||||
},
|
||||
getEchart4() {
|
||||
this.$nextTick(() => {
|
||||
this.$echarts.init(document.getElementById("echart4")).dispose();
|
||||
this.myChart4 = this.$echarts.init(document.getElementById("echart4"));
|
||||
let option = {
|
||||
title: {
|
||||
text: "装置在线统计",
|
||||
},
|
||||
tooltip: {
|
||||
trigger: "item",
|
||||
},
|
||||
legend: {
|
||||
top: "5%",
|
||||
left: "center",
|
||||
},
|
||||
series: [
|
||||
{
|
||||
type: "pie",
|
||||
radius: ["40%", "70%"],
|
||||
avoidLabelOverlap: false,
|
||||
itemStyle: {
|
||||
borderRadius: 10,
|
||||
borderColor: "#fff",
|
||||
borderWidth: 2,
|
||||
},
|
||||
label: {
|
||||
show: false,
|
||||
position: "center",
|
||||
},
|
||||
emphasis: {
|
||||
label: {
|
||||
show: true,
|
||||
fontSize: 40,
|
||||
fontWeight: "bold",
|
||||
},
|
||||
},
|
||||
labelLine: {
|
||||
show: false,
|
||||
},
|
||||
data: [
|
||||
{ value: 1048, name: "在线" },
|
||||
{ value: 735, name: "离线" },
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
this.myChart4.setOption(option);
|
||||
window.addEventListener("resize", () => {
|
||||
this.myChart4.resize();
|
||||
});
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.echart-top {
|
||||
<style lang="less">
|
||||
.echartsPage {
|
||||
height: calc(100% - 32px);
|
||||
padding: 16px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
.echart-top {
|
||||
display: flex;
|
||||
height: 48%;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
height: 500px;
|
||||
|
||||
.el-card {
|
||||
width: 48%;
|
||||
height: 100%;
|
||||
.el-card__body {
|
||||
height: calc(100% - 40px);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
Loading…
Reference in New Issue