master
fanluyan 2 years ago
parent a1f05f665f
commit aa548cae9f

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

@ -63,14 +63,14 @@ export default {
value: "#20a0ff", value: "#20a0ff",
label: "蓝色", label: "蓝色",
}, },
{ // {
value: "#EE320C", // value: "#EE320C",
label: "红色", // label: "",
}, // },
{ // {
value: "#00a096", // value: "#00a096",
label: "绿色", // label: "绿",
}, // },
{ {
value: "#f08200", value: "#f08200",
label: "橙色", label: "橙色",
@ -150,8 +150,8 @@ export default {
}, },
}, },
created() { created() {
this.colorValue = this.colorList[3].label; this.colorValue = this.colorList[0].label;
this.changeTheme(this.colorList[3].value); this.changeTheme(this.colorList[0].value);
}, },
mounted() {}, mounted() {},
}; };

@ -1,71 +1,71 @@
<template> <template>
<div class="wrapper"> <div class="wrapper">
<v-head></v-head> <v-head></v-head>
<!-- <v-sidebar></v-sidebar> --> <!-- <v-sidebar></v-sidebar> -->
<div class="content-box"> <div class="content-box">
<v-tags></v-tags> <!-- <v-tags></v-tags> -->
<div class="content"> <div class="content">
<transition name="move" mode="out-in"> <transition name="move" mode="out-in">
<keep-alive :include="tagsList"> <keep-alive :include="tagsList">
<router-view></router-view> <router-view></router-view>
</keep-alive> </keep-alive>
</transition> </transition>
<el-backtop target=".content"></el-backtop> <el-backtop target=".content"></el-backtop>
</div> </div>
</div>
</div> </div>
</div>
</template> </template>
<script> <script>
import vHead from './Header.vue'; import vHead from "./Header.vue";
//import vSidebar from './Sidebar.vue'; //import vSidebar from './Sidebar.vue';
import vTags from './Tags.vue'; // import vTags from './Tags.vue';
import bus from './bus'; import bus from "./bus";
export default { export default {
data() { data() {
return { return {
tagsList: [], tagsList: [],
collapse: false collapse: false,
}; };
}, },
components: { components: {
vHead, vHead,
//vSidebar, //vSidebar,
vTags // vTags
}, },
created() { created() {
bus.$on('collapse-content', (msg) => { bus.$on("collapse-content", (msg) => {
this.collapse = msg; this.collapse = msg;
}); });
// 使keep-alive // 使keep-alive
bus.$on('tags', (msg) => { bus.$on("tags", (msg) => {
let arr = []; let arr = [];
for (let i = 0, len = msg.length; i < len; i++) { for (let i = 0, len = msg.length; i < len; i++) {
msg[i].name && arr.push(msg[i].name); msg[i].name && arr.push(msg[i].name);
} }
this.tagsList = arr; this.tagsList = arr;
}); });
} },
}; };
</script> </script>
<style lang="less"> <style lang="less">
.content-box { .content-box {
position: absolute; position: absolute;
left: 0px; left: 0px;
right: 0; right: 0;
top: 70px; top: 70px;
bottom: 0; bottom: 0;
//padding-bottom: 30px; //padding-bottom: 30px;
-webkit-transition: left 0.3s ease-in-out; -webkit-transition: left 0.3s ease-in-out;
transition: left 0.3s ease-in-out; transition: left 0.3s ease-in-out;
background: @background-color-base; background: @background-color-base;
.content { .content {
width: 100%; width: 100%;
height: calc(100% - 48px); height: 100%;
padding: 10px; //padding: 10px;
overflow-y: auto; overflow-y: auto;
box-sizing: border-box; box-sizing: border-box;
} }
} }
</style> </style>

@ -71,6 +71,11 @@ export default {
title: "拍照时间表设置", title: "拍照时间表设置",
}, },
// { // {
// icon: "el-icon-coin",
// index: "cameraChannel",
// title: "",
// },
// {
// icon: "el-icon-film", // icon: "el-icon-film",
// index: "pictureRotation", // index: "pictureRotation",
// title: "", // title: "",

@ -73,6 +73,18 @@ const routes = [
), ),
meta: { title: "拍照时间表设置", icon: "el-icon-setting" }, meta: { title: "拍照时间表设置", icon: "el-icon-setting" },
}, },
{
path: "/cameraChannel",
component: () =>
import(
/* webpackChunkName: "icon" */ "../views/cameraChannel/index.vue"
),
meta: {
title: "通道设置",
icon: "el-icon-coin",
},
},
{ {
path: "/photoAlarm", path: "/photoAlarm",
component: () => component: () =>

@ -1,36 +1,4 @@
import axios from "axios"; import axios from "axios";
import { Loading } from "element-ui"; //项目已经全局引入element的话可以不单独引入
let loading; //定义loading变量
function startLoading() {
//使用Element loading-start 方法
loading = Loading.service({
lock: true,
text: "加载中……",
background: "rgba(255, 255, 255, 0.7)",
});
}
function endLoading() {
//使用Element loading-close 方法
loading.close();
}
// 那么 showFullScreenLoading() tryHideFullScreenLoading() 要干的事儿就是将同一时刻的请求合并。
// 声明一个变量 needLoadingRequestCount每次调用showFullScreenLoading方法 needLoadingRequestCount + 1。
// 调用tryHideFullScreenLoading()方法needLoadingRequestCount - 1。needLoadingRequestCount为 0 时,结束 loading。
let needLoadingRequestCount = 0;
export function showFullScreenLoading() {
if (needLoadingRequestCount === 0) {
startLoading();
}
needLoadingRequestCount++;
}
export function tryHideFullScreenLoading() {
if (needLoadingRequestCount <= 0) return;
needLoadingRequestCount--;
if (needLoadingRequestCount === 0) {
endLoading();
}
}
const service = axios.create({ const service = axios.create({
// process.env.NODE_ENV === 'development' 来判断是否开发环境 // process.env.NODE_ENV === 'development' 来判断是否开发环境
@ -43,7 +11,6 @@ const service = axios.create({
service.interceptors.request.use( service.interceptors.request.use(
(config) => { (config) => {
showFullScreenLoading();
return config; return config;
}, },
(error) => { (error) => {
@ -55,7 +22,6 @@ service.interceptors.request.use(
service.interceptors.response.use( service.interceptors.response.use(
(response) => { (response) => {
if (response.status === 200) { if (response.status === 200) {
tryHideFullScreenLoading();
return response.data; return response.data;
} else { } else {
Promise.reject(); Promise.reject();

@ -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>

@ -71,7 +71,7 @@ export default {
data() { data() {
return { return {
swiperOptionTop: { swiperOptionTop: {
loop: true, // loop: true,
loopedSlides: 5, // looped slides should be the same loopedSlides: 5, // looped slides should be the same
spaceBetween: 10, spaceBetween: 10,
navigation: { navigation: {
@ -80,7 +80,7 @@ export default {
}, },
}, },
swiperOptionThumbs: { swiperOptionThumbs: {
loop: true, //loop: true,
loopedSlides: 5, // looped slides should be the same loopedSlides: 5, // looped slides should be the same
spaceBetween: 10, spaceBetween: 10,
centeredSlides: true, centeredSlides: true,
@ -121,10 +121,12 @@ export default {
.bigimg { .bigimg {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: flex;
align-items: center;
} }
img { img {
width: 100%; width: 100%;
height: 100%; //height: 100%;
// object-fit: cover; // object-fit: cover;
} }
} }
@ -142,7 +144,7 @@ export default {
img { img {
width: 100%; width: 100%;
height: 100%; //height: 100%;
//object-fit: cover; //object-fit: cover;
} }

@ -184,10 +184,9 @@ export default {
</script> </script>
<style lang="less"> <style lang="less">
.deviceInformation { .deviceInformation {
width: 100%; width: calc(100% - 32px);
width: calc(100% - 16px);
height: calc(100% - 32px); height: calc(100% - 32px);
padding: 16px 8px; padding: 16px 16px;
background: @color-white; background: @color-white;
.deviceBox { .deviceBox {

@ -3,61 +3,58 @@
class="addPhotoDialog" class="addPhotoDialog"
:title="photoDialogTitle" :title="photoDialogTitle"
:visible.sync="photoDialog" :visible.sync="photoDialog"
width="654px" width="830px"
> >
<el-form <el-form
label-position="left" label-position="left"
label-width="92px" label-width="98px"
ref="formPhotoInfo" ref="formPhotoInfo"
:rules="rules" :rules="rules"
:model="formInfo" :model="formInfo"
> >
<el-form-item label="出厂编号" prop="bsIdentifier" required> <el-form-item label="显示名:" prop="displayName" required>
<el-input v-model="formInfo.bsIdentifier"></el-input> <el-input v-model="formInfo.displayName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="生产厂家" prop="bsManufacturer" required> <el-form-item label="装置ID" prop="cmdid" required>
<el-input v-model="formInfo.bsManufacturer"></el-input> <el-input v-model="formInfo.cmdid"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="生产日期" prop="bsProductionDate" required> <el-form-item label="线路编号:" prop="lineid" required>
<el-input v-model="formInfo.bsProductionDate"></el-input> <el-input v-model="formInfo.lineid"></el-input>
</el-form-item> </el-form-item>
<el-form-item label=" 图像监测装置 ID" prop="cmdid" required> <el-form-item label="杆塔编号:" prop="towerid" required>
<el-input v-model="formInfo.cmdid"></el-input> <el-input v-model="formInfo.towerid"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="显示名" prop="displayName" required> <el-form-item label="是否带云台:" prop="hasPan" required>
<el-input v-model="formInfo.displayName"></el-input> <el-input v-model="formInfo.hasPan"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="装置名称" prop="equipName" required> <el-form-item label="装置名称" prop="equipName" required>
<el-input v-model="formInfo.equipName"></el-input> <el-input v-model="formInfo.equipName"></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="装置型号:" prop="model" required>
label="装置基本信息版本号" <el-input v-model="formInfo.model"></el-input>
prop="essentialInfoVersion"
required
>
<el-input v-model="formInfo.essentialInfoVersion"></el-input>
</el-form-item>
<el-form-item label="是否带云台" prop="hasPan" required>
<el-input v-model="formInfo.hasPan"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="纬度" prop="latitude" required> <el-form-item label="纬度:" prop="latitude" required>
<el-input v-model.number="formInfo.latitude"></el-input> <el-input v-model.number="formInfo.latitude"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="线路编号" prop="lineid" required>
<el-input v-model="formInfo.lineid"></el-input> <el-form-item label="经度:" prop="longitude" required>
</el-form-item>
<el-form-item label="经度" prop="longitude" required>
<el-input v-model.number="formInfo.longitude"></el-input> <el-input v-model.number="formInfo.longitude"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="装置型号" prop="model" required> <el-form-item label="原始 ID" prop="orgId" required>
<el-input v-model="formInfo.model"></el-input>
</el-form-item>
<el-form-item label="原始 ID" prop="orgId" required>
<el-input v-model="formInfo.orgId"></el-input> <el-input v-model="formInfo.orgId"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="杆塔编号" prop="towerid" required> <el-form-item label="版本号:" prop="essentialInfoVersion" required>
<el-input v-model="formInfo.towerid"></el-input> <el-input v-model="formInfo.essentialInfoVersion"></el-input>
</el-form-item>
<el-form-item label="出厂编号:" prop="bsIdentifier" required>
<el-input v-model="formInfo.bsIdentifier"></el-input>
</el-form-item>
<el-form-item label="生产厂家:" prop="bsManufacturer" required>
<el-input v-model="formInfo.bsManufacturer"></el-input>
</el-form-item>
<el-form-item label="生产日期:" prop="bsProductionDate" required>
<el-input v-model="formInfo.bsProductionDate"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -89,41 +86,38 @@ export default {
return { return {
formInfo: {}, formInfo: {},
rules: { rules: {
bsIdentifier: [ displayName: [
{ required: true, message: "请输入公司名称", trigger: "blur" }, { required: true, message: "请输入显示名", trigger: "blur" },
], ],
bsManufacturer: [ cmdid: [{ required: true, message: "请输入装置ID", trigger: "blur" }],
{ required: true, message: "请输入公司名称", trigger: "blur" }, lineid: [
{ required: true, message: "请输入线路编号", trigger: "blur" },
], ],
bsProductionDate: [ towerid: [
{ required: true, message: "请输入公司名称", trigger: "blur" }, { required: true, message: "请输入杆塔编号", trigger: "blur" },
], ],
cmdid: [{ required: true, message: "请输入公司名称", trigger: "blur" }], hasPan: [
displayName: [ { required: true, message: "请输入是否带云台", trigger: "blur" },
{ required: true, message: "请输入公司名称", trigger: "blur" },
], ],
equipName: [ equipName: [
{ required: true, message: "请输入公司名称", trigger: "blur" }, { required: true, message: "请输入装置名称", trigger: "blur" },
], ],
model: [{ required: true, message: "请输入装置型号", trigger: "blur" }],
latitude: [{ required: true, message: "请输入纬度", trigger: "blur" }],
longitude: [{ required: true, message: "请输入经度", trigger: "blur" }],
orgId: [{ required: true, message: "请输入原始 ID", trigger: "blur" }],
essentialInfoVersion: [ essentialInfoVersion: [
{ required: true, message: "请输入公司名称", trigger: "blur" }, { required: true, message: "请输入版本号", trigger: "blur" },
],
hasPan: [
{ required: true, message: "请输入公司名称", trigger: "blur" },
],
latitude: [
{ required: true, message: "请输入公司名称", trigger: "blur" },
], ],
lineid: [ bsIdentifier: [
{ required: true, message: "请输入公司名称", trigger: "blur" }, { required: true, message: "请输入出厂编号", trigger: "blur" },
], ],
longitude: [ bsManufacturer: [
{ required: true, message: "请输入公司名称", trigger: "blur" }, { required: true, message: "请输入生产厂家", trigger: "blur" },
], ],
model: [{ required: true, message: "请输入公司名称", trigger: "blur" }], bsProductionDate: [
orgId: [{ required: true, message: "请输入公司名称", trigger: "blur" }], { required: true, message: "请输入生产日期", trigger: "blur" },
towerid: [
{ required: true, message: "请输入公司名称", trigger: "blur" },
], ],
}, },
// //
@ -232,7 +226,13 @@ export default {
.el-form { .el-form {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; .el-form-item {
width: 246px;
margin-right: 16px;
.el-form-item__label {
padding-right: 0px;
}
}
} }
} }
} }

@ -16,8 +16,6 @@
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
@row-click="handleRowClick" @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 <el-table-column
prop="displayName" prop="displayName"
label="显示名" label="显示名"
@ -25,25 +23,45 @@
width="160px" width="160px"
> >
</el-table-column> </el-table-column>
<el-table-column prop="equipName" label="装置名称" width="140px">
</el-table-column>
<el-table-column <el-table-column
prop="cmdid" prop="cmdid"
label="图像监测装置ID" label="图像监测装置ID"
show-overflow-tooltip show-overflow-tooltip
width="120px" width="160px"
>
</el-table-column>
<el-table-column prop="lineid" label="线路编号"> </el-table-column>
<el-table-column prop="towerid" label="杆塔编号"> </el-table-column>
<el-table-column prop="hasPan" label="是否带云台">
<template slot-scope="scope">
<span v-if="scope.row.hasPan == 0"></span>
<span v-if="scope.row.hasPan == 1"></span>
</template>
</el-table-column>
<el-table-column
prop="updateTime"
label="修改时间"
:show-overflow-tooltip="true"
:formatter="dateFormat"
width="160px"
> >
</el-table-column> </el-table-column>
<el-table-column prop="equipName" label="装置名称"> </el-table-column>
<el-table-column prop="model" label="装置型号"> </el-table-column>
<el-table-column label="经维度">
<template slot-scope="scope" v-if="scope.row.longitude">
<span>({{ scope.row.longitude }},</span>
<span>{{ scope.row.latitude }})</span>
</template>
</el-table-column>
<el-table-column prop="orgId" label="原始ID"> </el-table-column>
<el-table-column <el-table-column
prop="essentialInfoVersion" prop="essentialInfoVersion"
label="装置基本信息版本号" label="装置基本信息版本号"
width="140px" width="140px"
> >
</el-table-column> </el-table-column>
<el-table-column prop="lineid" label="线路编号"> </el-table-column>
<el-table-column prop="model" label="装置型号"> </el-table-column>
<el-table-column prop="orgId" label="原始ID"> </el-table-column>
<el-table-column prop="towerid" label="杆塔编号"> </el-table-column>
<el-table-column label="出厂编号"> <el-table-column label="出厂编号">
<template slot-scope="scope">{{ scope.row.bsIdentifier }}</template> <template slot-scope="scope">{{ scope.row.bsIdentifier }}</template>
</el-table-column> </el-table-column>
@ -54,7 +72,6 @@
label="生产日期" label="生产日期"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
:formatter="dateFormat" :formatter="dateFormat"
width="140px"
> >
</el-table-column> </el-table-column>
@ -63,27 +80,9 @@
label="创建时间" label="创建时间"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
:formatter="dateFormat" :formatter="dateFormat"
width="140px"
> >
</el-table-column> </el-table-column>
<el-table-column prop="hasPan" label="是否带云台">
<template slot-scope="scope">
<span v-if="scope.row.hasPan == 0"></span>
<span v-if="scope.row.hasPan == 1"></span>
</template>
</el-table-column>
<!-- <el-table-column prop="latitude" label="维度"> </el-table-column>
<el-table-column prop="longitude" label="经度"> </el-table-column> -->
<el-table-column
prop="updateTime"
label="修改时间"
:show-overflow-tooltip="true"
:formatter="dateFormat"
width="100px"
>
</el-table-column>
<el-table-column fixed="right" label="操作" width="160"> <el-table-column fixed="right" label="操作" width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -240,12 +239,9 @@ export default {
</script> </script>
<style lang="less"> <style lang="less">
.photoGraphicDevice { .photoGraphicDevice {
width: 100%; width: calc(100% - 32px);
height: 100%;
background: @color-white;
width: calc(100% - 16px);
height: calc(100% - 32px); height: calc(100% - 32px);
padding: 16px 8px; padding: 16px 16px;
background: @color-white; background: @color-white;
.photoBox { .photoBox {
border: 1px solid #dddddd; border: 1px solid #dddddd;

@ -175,9 +175,9 @@ export default {
</script> </script>
<style lang="less"> <style lang="less">
.lineInformation { .lineInformation {
width: calc(100% - 16px); width: calc(100% - 32px);
height: calc(100% - 32px); height: calc(100% - 32px);
padding: 16px 8px; padding: 16px 16px;
background: @color-white; background: @color-white;
.lineBox { .lineBox {
border: 1px solid #dddddd; border: 1px solid #dddddd;

@ -3,8 +3,6 @@
<div class="monitor-container"> <div class="monitor-container">
<!-- 左侧数据列表树 --> <!-- 左侧数据列表树 -->
<div class="sideBar"> <div class="sideBar">
<!-- <treeSide></treeSide> -->
<!-- <el-tree ref="tree" :data="barData" @node-click="handleNodeClick" :props="defaultProps"></el-tree> -->
<el-tree <el-tree
:data="lineTreeData" :data="lineTreeData"
:props="defaultProps" :props="defaultProps"
@ -26,9 +24,7 @@
</span> </span>
</el-tree> </el-tree>
</div> </div>
<!-- <router-view></router-view> -->
<!-- 中心内容 -->
<!-- <picturemain :photoData="photoData" v-if="showBigPic"></picturemain> -->
<!-- 带参数的中心内容右侧参数区 --> <!-- 带参数的中心内容右侧参数区 -->
<div class="picSetBox"> <div class="picSetBox">
<div class="swiperBox"> <div class="swiperBox">
@ -39,7 +35,7 @@
</div> </div>
<div class="parameterArea"> <div class="parameterArea">
<div class="paramsDate"> <div class="paramsDate">
<h3>期选择</h3> <h3>历快速查询</h3>
<el-date-picker <el-date-picker
v-model="dateValue" v-model="dateValue"
type="date" type="date"
@ -50,7 +46,7 @@
</el-date-picker> </el-date-picker>
</div> </div>
<div class="monitorItemBox" v-if="channelOption.length !== 0"> <div class="monitorItemBox" v-if="channelOption.length !== 0">
<h3>通道</h3> <h3>选择通道监拍点</h3>
<el-select <el-select
v-model="channelValue" v-model="channelValue"
placeholder="请选择" placeholder="请选择"
@ -66,17 +62,43 @@
</el-select> </el-select>
</div> </div>
<div class="setTimebtn"> <div class="setTimebtn">
<h3>设置</h3> <h3>操作项</h3>
<div class="buttonGroup"> <div class="buttonGroup">
<el-button type="primary" @click.native.stop="handleSetSchedule()" <el-button type="primary" @click.native.stop="handleSetSchedule()"
>时间表设置</el-button >时间表设置</el-button
> >
<el-button type="primary">手动拍照</el-button> <el-button type="primary" @click="handleShowErr"
>主动拍照</el-button
>
<el-button type="primary" @click="handleShowErr"
>主动录像</el-button
>
<el-button type="primary" @click="handleShowErr"
>历史图片</el-button
>
<el-button type="primary" @click="handleShowErr"
>历史图片对比</el-button
>
<el-button type="primary" @click="handleShowErr"
>图片标记</el-button
>
<el-button type="primary" @click="handleShowErr"
>主动巡航</el-button
>
<el-button type="primary" @click="handleShowErr"
>隐患类型</el-button
>
<el-button type="primary" @click="handleShowErr"
>监拍点信息</el-button
>
<el-button type="primary" @click="handleShowErr">
设备信息</el-button
>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- <paramArea></paramArea> -->
<setschedule ref="setschedule_ref"></setschedule> <setschedule ref="setschedule_ref"></setschedule>
</div> </div>
</div> </div>
@ -90,14 +112,10 @@ import {
} from "@/utils/api/index"; } from "@/utils/api/index";
import carouselChart from "../components/carouselChart.vue"; import carouselChart from "../components/carouselChart.vue";
import picturemain from "./picturemain.vue"; //
import paramArea from "./paramArea.vue"; //
import setschedule from "./components/setschedule.vue"; import setschedule from "./components/setschedule.vue";
export default { export default {
components: { components: {
picturemain,
paramArea,
carouselChart, carouselChart,
setschedule, setschedule,
}, },
@ -118,7 +136,7 @@ export default {
channelValue: "", channelValue: "",
terminalPhoto: [], // terminalPhoto: [], //
dateValue: "", // dateValue: "", //
nopicPath: require("@/assets/img/noPhoto.png"), nopicPath: require("@/assets/img/nopic.jpg"),
}; };
}, },
watch: {}, watch: {},
@ -139,7 +157,7 @@ export default {
console.log(this.dateValue); console.log(this.dateValue);
console.log(this.channelList); console.log(this.channelList);
this.getTerminalPhotoList( this.getTerminalPhotoList(
this.channelList[0].id, this.channelList[0].channelid,
this.dateValue, this.dateValue,
this.channelList[0].termId this.channelList[0].termId
); );
@ -248,15 +266,21 @@ export default {
this.$refs.setschedule_ref.getSingleAccess(this.channelId); this.$refs.setschedule_ref.getSingleAccess(this.channelId);
this.$refs.setschedule_ref.deviceList(); this.$refs.setschedule_ref.deviceList();
}, },
handleShowErr() {
this.$message({
message: "该功能暂未开发,敬请期待",
type: "warning",
});
},
}, },
}; };
</script> </script>
<style lang="less"> <style lang="less">
.monitorBox { .monitorBox {
width: calc(100% - 16px); width: calc(100% - 32px);
height: calc(100% - 32px); height: calc(100% - 32px);
padding: 16px 8px; padding: 16px 16px;
background: #ffffff; background: #ffffff;
.monitor-container { .monitor-container {
display: flex; display: flex;
@ -316,6 +340,20 @@ export default {
width: 215px; width: 215px;
} }
} }
.setTimebtn {
.buttonGroup {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.el-button {
margin-bottom: 8px;
width: 104px;
}
.el-button + .el-button {
margin-left: 0px;
}
}
}
} }
} }
} }

@ -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…
Cancel
Save