master
parent
a1f05f665f
commit
aa548cae9f
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
@ -0,0 +1,117 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
class="addLineDialog"
|
||||
:title="title"
|
||||
:visible.sync="isShow"
|
||||
:close-on-click-modal="false"
|
||||
width="470px"
|
||||
>
|
||||
<el-form
|
||||
label-position="left"
|
||||
ref="formInfo"
|
||||
label-width="80px"
|
||||
:rules="rules"
|
||||
:model="formdata"
|
||||
>
|
||||
<el-form-item label="名称:" prop="name">
|
||||
<el-input v-model="formdata.name" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="时间:" prop="time">
|
||||
<el-time-picker
|
||||
is-range
|
||||
v-model="formdata.time"
|
||||
range-separator="至"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
value-format="HH:mm:ss"
|
||||
>
|
||||
</el-time-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="间隔:" prop="span">
|
||||
<!-- <el-input v-model="formdata.span" autocomplete="off" type="number"></el-input> -->
|
||||
<el-input-number v-model="formdata.span" :min="1"></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注:" prop="remark">
|
||||
<el-input v-model="formdata.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,
|
||||
formdata: {},
|
||||
rules: {
|
||||
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
|
||||
time: [{ required: true, message: "请选择时间", trigger: "blur" }],
|
||||
span: [{ required: true, message: "请输入间隔", trigger: "blur" }],
|
||||
remark: [{ required: true, message: "请输入备注", trigger: "blur" }],
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
//判断
|
||||
getdataform(val) {
|
||||
console.log(val);
|
||||
if (val == null) {
|
||||
return (this.formdata = {});
|
||||
}
|
||||
this.formdata = val;
|
||||
this.$set(this.formdata, "time", [val.startTime, val.endTime]);
|
||||
},
|
||||
// 保存确定操作
|
||||
submitForm() {
|
||||
this.$refs.formInfo.validate((valid) => {
|
||||
if (valid) {
|
||||
this.formdata.startTime = this.formdata.time[0];
|
||||
this.formdata.endTime = this.formdata.time[1];
|
||||
delete this.formdata.time;
|
||||
if (this.title == "新增") {
|
||||
let formArr = [];
|
||||
formArr.push(this.formdata);
|
||||
addScheduleRulel({ list: formArr })
|
||||
.then((res) => {
|
||||
this.isShow = false;
|
||||
this.$message.success("添加成功");
|
||||
this.$parent.deviceList();
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error("添加失败");
|
||||
});
|
||||
} else {
|
||||
updateScheduleRulel(this.formdata)
|
||||
.then((res) => {
|
||||
this.isShow = false;
|
||||
this.$message.success("修改成功");
|
||||
this.$parent.deviceList();
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error("修改失败");
|
||||
});
|
||||
}
|
||||
} else {
|
||||
console.log("error submit!!");
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
display() {
|
||||
this.isShow = true;
|
||||
},
|
||||
hide() {
|
||||
this.isShow = false;
|
||||
},
|
||||
},
|
||||
mounted() {},
|
||||
};
|
||||
</script>
|
@ -0,0 +1,201 @@
|
||||
<template>
|
||||
<div class="camerChannel">
|
||||
<div class="deviceBox">
|
||||
<div class="deviceBtnGroup">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
@click.native.stop="handleAdddevice()"
|
||||
>新增</el-button
|
||||
>
|
||||
</div>
|
||||
<div class="deviceTable">
|
||||
<el-table
|
||||
ref="multipleTable"
|
||||
:data="deviceTableData"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%"
|
||||
height="calc(100% - 40px)"
|
||||
@selection-change="handleSelectionChange"
|
||||
@row-click="handleRowClick"
|
||||
>
|
||||
<!-- <el-table-column type="index" width="55"> </el-table-column>
|
||||
<el-table-column type="selection" width="55"> </el-table-column> -->
|
||||
<el-table-column label="单位" show-overflow-tooltip>
|
||||
<template slot-scope="scope">{{ scope.row.name }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="时间表类型" show-overflow-tooltip>
|
||||
<template>时间表类型</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="startTime"
|
||||
label="开始时间"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="endTime"
|
||||
label="结束时间"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="span"
|
||||
label="间隔(分)"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="remark"
|
||||
label="备注"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column fixed="right" label="操作" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
@click.native.stop="handleResive(scope.row)"
|
||||
type="text"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
class="deleteText"
|
||||
@click.native.stop="handleDelete(scope.row)"
|
||||
>删除</el-button
|
||||
>
|
||||
<el-button type="text" @click.native.stop="handleSet(scope.row)"
|
||||
>设置</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="pageNation">
|
||||
<el-pagination
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="page"
|
||||
:page-size="pageSize"
|
||||
layout=" prev, pager, next, jumper,total"
|
||||
:total="total"
|
||||
background
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 新增时间表 -->
|
||||
<adddeviceDialog :title="title" ref="adddeviceDialogref"></adddeviceDialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import adddeviceDialog from "./components/adddeviceDialog.vue";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
adddeviceDialog,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: "", //弹窗标题
|
||||
deviceTableData: [],
|
||||
//multipleSelection: [], //获取当前选中
|
||||
page: 1, // 当前页数
|
||||
pageSize: 10, // 每页数量
|
||||
total: 0, //总条数
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.deviceList();
|
||||
},
|
||||
methods: {
|
||||
//获取线路列表数据
|
||||
deviceList() {
|
||||
getScheduleRulelListJoggle({
|
||||
pageindex: this.page,
|
||||
pagesize: this.pageSize,
|
||||
})
|
||||
.then((res) => {
|
||||
this.deviceTableData = res.data.list;
|
||||
this.total = res.data.total;
|
||||
})
|
||||
.catch((err) => {});
|
||||
},
|
||||
//点击行选中
|
||||
handleRowClick(row, column, event) {
|
||||
this.$refs.multipleTable.toggleRowSelection(row);
|
||||
},
|
||||
//获取选中的行
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val;
|
||||
},
|
||||
|
||||
// 新建
|
||||
handleAdddevice() {
|
||||
this.title = "新增";
|
||||
this.$refs.adddeviceDialogref.display();
|
||||
this.$refs.adddeviceDialogref.getdataform(null);
|
||||
},
|
||||
|
||||
//修改
|
||||
handleResive(data) {
|
||||
this.title = "修改";
|
||||
this.$refs.adddeviceDialogref.display();
|
||||
this.$refs.adddeviceDialogref.getdataform(data);
|
||||
},
|
||||
|
||||
//设置
|
||||
handleSet(data) {
|
||||
this.$refs.setdeviceDialogref.display();
|
||||
this.$refs.setdeviceDialogref.getdataform(data);
|
||||
},
|
||||
|
||||
//删除数据
|
||||
handleDelete(data) {
|
||||
let deleteArr = [];
|
||||
deleteArr.push({
|
||||
id: data.id,
|
||||
});
|
||||
this.$confirm("确定要删除记录吗,同时删除关联关系?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
deleteScheduleRulel({ list: deleteArr }).then((res) => {
|
||||
this.deviceList(); //刷新
|
||||
});
|
||||
this.$message({ type: "success", message: "删除成功!" });
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({ type: "info", message: "已取消删除" });
|
||||
});
|
||||
},
|
||||
//点击分页
|
||||
handleCurrentChange(val) {
|
||||
this.page = val;
|
||||
this.deviceList();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
.camerChannel {
|
||||
width: calc(100% - 32px);
|
||||
height: calc(100% - 32px);
|
||||
padding: 16px 16px;
|
||||
background: @color-white;
|
||||
|
||||
.deviceBox {
|
||||
border: 1px solid #dddddd;
|
||||
height: calc(100% - 32px);
|
||||
padding: 16px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.deviceBtnGroup {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.deviceTable {
|
||||
margin-top: 16px;
|
||||
height: calc(100% - 48px);
|
||||
//background: #fcc;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -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>
|
@ -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: 16px;
|
||||
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>
|
Loading…
Reference in New Issue