Merge branch 'master' of http://8.136.197.230:3000/ZheJiangNingBo/pingAnQiYeWeb
After Width: | Height: | Size: 488 KiB |
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 4.3 KiB |
@ -0,0 +1,12 @@
|
||||
<template>
|
||||
<!-- 企业名单 -->
|
||||
<div>456</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: "companyList",
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
};
|
||||
</script>
|
@ -0,0 +1,101 @@
|
||||
<template>
|
||||
<!-- 系统管理左侧导航菜单 -->
|
||||
<el-menu
|
||||
default-active="this.$route.path"
|
||||
class="el-menu-vertical-demo"
|
||||
@open="handleOpen"
|
||||
@close="handleClose"
|
||||
:collapse="isCollapse"
|
||||
>
|
||||
<!-- background-color="#f5f2e9"
|
||||
text-color="#5aa4ae" -->
|
||||
<!-- 一级导航 -->
|
||||
<el-menu-item
|
||||
@click="clickMenu(item)"
|
||||
v-for="item in menuList"
|
||||
:key="item.name"
|
||||
:index="item.name"
|
||||
>
|
||||
<i :class="`el-icon-${item.icon}`"></i>
|
||||
<span slot="title">{{ item.label }}</span>
|
||||
</el-menu-item>
|
||||
</el-menu>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: "LeftNav",
|
||||
data() {
|
||||
return {
|
||||
isCollapse: false,
|
||||
menu: [
|
||||
// 导航数组
|
||||
{
|
||||
path: "/safeIndex",
|
||||
name: "safeIndex",
|
||||
label: "平安指数",
|
||||
icon: "folder-checked",
|
||||
},
|
||||
{
|
||||
path: "/companyScore",
|
||||
name: "companyScore",
|
||||
label: "企业赋分",
|
||||
icon: "folder-checked",
|
||||
},
|
||||
{
|
||||
path: "/companyList",
|
||||
name: "companyList",
|
||||
label: "企业名单",
|
||||
icon: "folder-checked",
|
||||
},
|
||||
{
|
||||
path: "/correlationEquipment",
|
||||
name: "correlationEquipment",
|
||||
label: "关联设备",
|
||||
icon: "folder-checked",
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
menuList() {
|
||||
// 一级菜单导航
|
||||
return this.menu.filter((item) => !item.children);
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// 点击跳转路由
|
||||
clickMenu(val) {
|
||||
this.$router.push({
|
||||
name: val.name,
|
||||
});
|
||||
},
|
||||
handleOpen(key, keyPath) {
|
||||
console.log(key, keyPath);
|
||||
},
|
||||
handleClose(key, keyPath) {
|
||||
console.log(key, keyPath);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.el-menu-vertical-demo:not(.el-menu--collapse) {
|
||||
width: 100%; /* 保持和大的aside同宽 */
|
||||
min-height: 98%; /* 固定侧边导航栏高度 */
|
||||
background: url("~@/assets/companyFile/导航背景.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.el-menu-vertical-demo.el-menu {
|
||||
.el-menu-item {
|
||||
color: #fff;
|
||||
font-size: 18px;
|
||||
}
|
||||
.el-menu-item:focus,
|
||||
.el-menu-item:hover {
|
||||
/* 导航选项点击触碰效果 */
|
||||
background: #daf4f6;
|
||||
color: #5a5e66;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,276 @@
|
||||
<template>
|
||||
<!-- 新建或者修改 -->
|
||||
<el-dialog
|
||||
class="dialog"
|
||||
:title="dialogTitle"
|
||||
:visible.sync="visible"
|
||||
:close-on-click-modal="false"
|
||||
width="970px"
|
||||
>
|
||||
<div class="form_body">
|
||||
<!-- 设备基础信息表单 -->
|
||||
<div class="equipment_form">
|
||||
<p>设备基础信息</p>
|
||||
<el-form ref="equipmentForm" :model="equipmentForm">
|
||||
<el-form-item label="企业名称">
|
||||
<el-select
|
||||
v-model="equipmentForm.company.villageName"
|
||||
placeholder="请选择企业"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in equipmentForm.company"
|
||||
:key="item.villageCode"
|
||||
:label="item.villageName"
|
||||
:value="item.villageCode"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备名称">
|
||||
<el-input v-model="equipmentForm.name"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备IP">
|
||||
<el-input v-model="equipmentForm.ip"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备大类">
|
||||
<el-input v-model="equipmentForm.big"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备小类">
|
||||
<el-input v-model="equipmentForm.small"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="登录账号">
|
||||
<el-input v-model="equipmentForm.passUser"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="登录密码">
|
||||
<el-input v-model="equipmentForm.passNum"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-divider></el-divider>
|
||||
<!-- 视频通道信息表单 -->
|
||||
<div class="video_form">
|
||||
<p>视频通道信息</p>
|
||||
<el-form ref="videoForm" :model="videoForm">
|
||||
<el-form-item label="通道编码">
|
||||
<el-input v-model="videoForm.channelCode"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="NVR编码">
|
||||
<el-input v-model="videoForm.NVRCode"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="通道号">
|
||||
<el-input v-model="videoForm.channelNum"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="RTSP流地址">
|
||||
<el-input v-model="videoForm.address"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-divider></el-divider>
|
||||
<!-- 设备位置信息表单 -->
|
||||
<div class="equipment_address_form">
|
||||
<p>设备位置信息</p>
|
||||
<el-form ref="addressForm" :model="addressForm">
|
||||
<el-form-item label="设备经度">
|
||||
<el-input v-model="addressForm.longitude"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备纬度">
|
||||
<el-input v-model="addressForm.latitude"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="U3D经度">
|
||||
<el-input v-model="addressForm.U3D_longitude"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="U3D纬度">
|
||||
<el-input v-model="addressForm.U3D_latitude"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备高度">
|
||||
<el-input v-model="addressForm.equipemnt_hight"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="U3D高度">
|
||||
<el-input v-model="addressForm.U3D_hight"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备方位">
|
||||
<el-select
|
||||
v-model="addressForm.equipment_orientation.orientationCode"
|
||||
placeholder="请选择设备方位"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in addressForm.equipment_orientation"
|
||||
:key="item.orientationCode"
|
||||
:label="item.orientation"
|
||||
:value="item.orientationCode"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="安装位置">
|
||||
<el-input v-model="addressForm.equipment_position"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-divider></el-divider>
|
||||
<!-- 设备其他信息表单 -->
|
||||
<div class="other_form">
|
||||
<p>设备其他信息</p>
|
||||
<el-form ref="otherForm" :model="otherForm">
|
||||
<el-form-item label="设备品牌">
|
||||
<el-input v-model="otherForm.brand"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备厂家">
|
||||
<el-input v-model="otherForm.manufacturer"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="厂家联系电话">
|
||||
<el-input v-model="otherForm.manufacturer_phone"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="SN号">
|
||||
<el-input v-model="otherForm.SN_num"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备MAC">
|
||||
<el-input v-model="otherForm.MAC"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备端口">
|
||||
<el-input v-model="otherForm.port"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="saveFormData">保 存</el-button>
|
||||
<el-button>取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import {debounce} from '@/utils/publicMethod_lxy/debounce.js'
|
||||
export default {
|
||||
name: "AddDialog",
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
dialogTitle: "新建",
|
||||
equipmentForm: {
|
||||
// 设备基础信息表单
|
||||
company: [],
|
||||
},
|
||||
// 视频通道信息表单
|
||||
videoForm: {
|
||||
channelCode: "",
|
||||
NVRCode: "",
|
||||
channelNum: "",
|
||||
address: "",
|
||||
},
|
||||
// 设备位置信息表单
|
||||
addressForm: {
|
||||
longitude: "",
|
||||
latitude: "",
|
||||
U3D_longitude: "",
|
||||
U3D_latitude: "",
|
||||
equipemnt_hight: "",
|
||||
U3D_hight: "",
|
||||
equipment_orientation: [],
|
||||
equipment_position: "",
|
||||
},
|
||||
// 设备其他信息表单
|
||||
otherForm: {
|
||||
brand: "",
|
||||
manufacturer: "",
|
||||
manufacturer_phone: "",
|
||||
SN_num: "",
|
||||
MAC: "",
|
||||
port: "",
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
open() {
|
||||
this.visible = true;
|
||||
},
|
||||
saveFormData:debounce(function() {
|
||||
this.$message.success('232324234')
|
||||
},300)
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
/deep/.el-dialog {
|
||||
.el-dialog__title {
|
||||
color: #fff;
|
||||
}
|
||||
background-image: url("~@/assets/companyFile/22136.png");
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
height: 720px;
|
||||
/* 关闭弹窗叉号 */
|
||||
.el-dialog__headerbtn {
|
||||
.el-dialog__close {
|
||||
color: #fff;
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
.el-dialog__body {
|
||||
padding: 0px;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
p {
|
||||
font-size: 16px;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
.el-button {
|
||||
width: 70px;
|
||||
border: 1px solid #4a6072;
|
||||
color: #fff;
|
||||
border-radius: 0px !important;
|
||||
background: #323f43;
|
||||
}
|
||||
.el-button:focus,
|
||||
.el-button:hover {
|
||||
color: #34e1b3;
|
||||
background: url("~@/assets/companyFile/891771.png") no-repeat !important;
|
||||
background-size: 100% 100% !important;
|
||||
}
|
||||
.form_body {
|
||||
height: 600px;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.form_body::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
background-color: #5e666a;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.form_body::-webkit-scrollbar-thumb {
|
||||
width: 9px;
|
||||
background-color: #3c4b4a;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.el-form {
|
||||
/* 表单内容浮动布局,多行多列表单 */
|
||||
width: 900px !important;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
.el-form-item {
|
||||
/* 表单域名跟input浮动布局 */
|
||||
display: flex;
|
||||
width: 30%;
|
||||
.el-form-item__label {
|
||||
width: 40%;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
}
|
||||
.el-form-item__content {
|
||||
.el-input__inner {
|
||||
width: 170px;
|
||||
border-radius: 0px;
|
||||
background: #3c4b4a;
|
||||
color: #fff;
|
||||
}
|
||||
/* 查询框点击颜色变化 */
|
||||
.el-input__inner:focus,
|
||||
.el-input__inner:hover {
|
||||
border-color: #1b3736;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,205 @@
|
||||
<template>
|
||||
<!-- 设备表格 -->
|
||||
<div class="equipment_data">
|
||||
<p>智能感知设备列表</p>
|
||||
<!-- 查询表 -->
|
||||
<div class="equipment_data_search">
|
||||
<el-form :inline="true" :model="search" class="search">
|
||||
<el-form-item>
|
||||
<el-input
|
||||
v-model="search.equipemnt"
|
||||
placeholder="输入设备名称搜索"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-form-item>
|
||||
<el-input
|
||||
v-model="search.ip"
|
||||
placeholder="输入IP名称搜索"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="onSubmit">搜索</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="onSubmit">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<!-- 增删按钮 -->
|
||||
<div class="equipment_data_btn">
|
||||
<el-button
|
||||
v-for="item in btnList"
|
||||
:key="item.value"
|
||||
@click="openDialog(item.value)"
|
||||
>
|
||||
{{ item.label }}</el-button
|
||||
>
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div class="equipment_data_table">
|
||||
<el-table
|
||||
:cell-style="{ background: 'revert', 'text-align': 'center' }"
|
||||
:header-cell-style="table_header"
|
||||
:data="tableData"
|
||||
height="305"
|
||||
:highlight-current-row="true"
|
||||
>
|
||||
<el-table-column type="selection" width="55"> </el-table-column>
|
||||
<el-table-column
|
||||
v-for="item in tableColumn"
|
||||
:key="item.prop"
|
||||
:prop="item.prop"
|
||||
:label="item.label"
|
||||
></el-table-column>
|
||||
<el-table-column prop="operation" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="small" @click="handleEdit(scope.$index, scope.row)"
|
||||
>编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
size="small"
|
||||
type="danger"
|
||||
@click="handleDelete(scope.$index, scope.row)"
|
||||
>删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="equipment_data_pagination"></div>
|
||||
<AddDialog ref="addDialog"></AddDialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import AddDialog from './addDialog';
|
||||
export default {
|
||||
name: "EquipmentTable",
|
||||
components: {
|
||||
AddDialog,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
search: {
|
||||
equipment: "",
|
||||
ip: "",
|
||||
},
|
||||
btnList: [
|
||||
{ value: "1", label: "新增" },
|
||||
{ value: "2", label: "删除" },
|
||||
{ value: "3", label: "导入" },
|
||||
{ value: "4", label: "导出" },
|
||||
],
|
||||
tableColumn: [
|
||||
{ prop: "villageName", label: "设备名称" },
|
||||
{ prop: "passTimeCn", label: "设备类型" },
|
||||
{ prop: "deviceAddress", label: "设备IP" },
|
||||
{ prop: "cameraIp", label: "设备经度" },
|
||||
{ prop: "imageTypeCn", label: "设备维度" },
|
||||
{ prop: "imageTypeC", label: "进出方向" },
|
||||
],
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
openDialog(num) {
|
||||
console.log(num,'num');
|
||||
if (num === "1") {
|
||||
console.log(num,'num');
|
||||
this.$refs.addDialog.open();
|
||||
}
|
||||
},
|
||||
table_header({ row, rowIndex }) {
|
||||
console.log(row);
|
||||
console.log(rowIndex);
|
||||
return {
|
||||
"text-align": "center",
|
||||
color: "#fff",
|
||||
};
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.equipment_data {
|
||||
p {
|
||||
color: #fff;
|
||||
margin-left: 10px;
|
||||
}
|
||||
.equipment_data_search {
|
||||
margin-left: 12px;
|
||||
/deep/.el-input__inner {
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
background: #3c4b4a;
|
||||
color: #fff;
|
||||
}
|
||||
.el-button {
|
||||
width: 100%;
|
||||
border: 1px solid #4a6072;
|
||||
color: #fff;
|
||||
border-radius: 0px !important;
|
||||
background: #323f43;
|
||||
}
|
||||
.el-button:focus,
|
||||
.el-button:hover {
|
||||
border: 1px solid#34e1b3;
|
||||
background: url("~@/assets/companyFile/2121.png") no-repeat !important;
|
||||
background-size: 100% 100% !important;
|
||||
}
|
||||
}
|
||||
.equipment_data_btn {
|
||||
margin-left: 12px;
|
||||
.el-button {
|
||||
width: 70px;
|
||||
height: 35px;
|
||||
border: 1px solid #4a6072;
|
||||
color: #fff;
|
||||
border-radius: 0px !important;
|
||||
background: #323f43;
|
||||
}
|
||||
.el-button:focus,
|
||||
.el-button:hover {
|
||||
border: 1px solid#34e1b3;
|
||||
background: url("~@/assets/companyFile/891771.png") no-repeat !important;
|
||||
background-size: 100% 100% !important;
|
||||
}
|
||||
}
|
||||
.equipment_data_table {
|
||||
width: calc(100% - 30px);
|
||||
margin-top: 12px;
|
||||
margin-left: 12px;
|
||||
height: 100%;
|
||||
.el-table,
|
||||
.el-table__expanded-cell {
|
||||
color: #fff;
|
||||
background-color: transparent;
|
||||
}
|
||||
/deep/.el-table {
|
||||
thead {
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
font-weight: 500;
|
||||
background: linear-gradient(
|
||||
to right,
|
||||
#284f49,
|
||||
#2f6363,
|
||||
#233b38
|
||||
) !important;
|
||||
& th {
|
||||
background-color: transparent;
|
||||
}
|
||||
& tr {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
.el-table::before {
|
||||
//去除底部白线
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,88 @@
|
||||
<template>
|
||||
<!-- 关联设备的右侧查询盒子 -->
|
||||
<div class="searchBox_body">
|
||||
<div class="searchBox_img">
|
||||
<div class="searchBox_img_top">
|
||||
<img :src="searchBoxData.src" alt="" />
|
||||
</div>
|
||||
<span>视频监控系统</span>
|
||||
</div>
|
||||
<ul>
|
||||
<li
|
||||
class="searchBox_btn"
|
||||
v-for="item in searchBoxData.btnList"
|
||||
:key="item.value"
|
||||
>
|
||||
<el-button> {{ item.name }} </el-button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: "searchBox",
|
||||
props: {
|
||||
searchBoxData: {},
|
||||
},
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
created() {},
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.searchBox_body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
.searchBox_img {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
width: 19.8%;
|
||||
height: 53%;
|
||||
padding-top: 8%;
|
||||
padding-left: 3%;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
.searchBox_img_top {
|
||||
width: 78%;
|
||||
height: 100%;
|
||||
margin: 0px auto;
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
span {
|
||||
margin-top: 7%;
|
||||
}
|
||||
}
|
||||
ul {
|
||||
width: 70%;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-flow: wrap;
|
||||
padding: 0px 0px 0px 10px;
|
||||
}
|
||||
.searchBox_btn {
|
||||
list-style: none;
|
||||
width: 30%;
|
||||
.el-button {
|
||||
width: 100%;
|
||||
border: 1px solid #4a6072;
|
||||
color: #fff;
|
||||
border-radius: 0px !important;
|
||||
background: #323f43;
|
||||
}
|
||||
.el-button:focus,
|
||||
.el-button:hover {
|
||||
color: #34e1b3;
|
||||
background: url("~@/assets/companyFile/891771.png") no-repeat !important;
|
||||
background-size: 100% 100% !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,254 @@
|
||||
<template>
|
||||
<!-- 关联设备 -->
|
||||
<div>
|
||||
<div class="main">
|
||||
<!-- 卡片标题 -->
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>关联设备</span>
|
||||
</div>
|
||||
<!-- 内容 -->
|
||||
<div class="cardBody">
|
||||
<!-- 左侧 -->
|
||||
<div class="cardBodyLeft">
|
||||
<!-- 左侧搜索框 -->
|
||||
<div class="cardBodyLeft_search">
|
||||
<el-input
|
||||
class="cardBodyLeft_search_input"
|
||||
placeholder="输入企业名称搜索"
|
||||
v-model="searchCompany"
|
||||
>
|
||||
</el-input>
|
||||
<div class="cardBodyLeft_search_button">
|
||||
<i class="el-icon-search"></i>
|
||||
</div>
|
||||
</div>
|
||||
<el-divider></el-divider>
|
||||
<!-- 公司树数据 -->
|
||||
<div class="cardBodyLeft_footer">
|
||||
<el-tree :data="companyTreeData">
|
||||
<span
|
||||
slot-scope="{ node }"
|
||||
:title="node.label"
|
||||
class="el-tree-node__label node-label"
|
||||
>
|
||||
{{ node.label }}
|
||||
</span>
|
||||
</el-tree>
|
||||
</div>
|
||||
</div>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<!-- 右侧 -->
|
||||
<div class="cardBodyRight">
|
||||
<p>设备列表</p>
|
||||
<div class="cardBodyRight_search">
|
||||
<div class="video">
|
||||
<SearchBox
|
||||
ref="searchBox"
|
||||
:searchBoxData="searchBox_left_text"
|
||||
></SearchBox>
|
||||
</div>
|
||||
<div class="intelligence">
|
||||
<SearchBox
|
||||
ref="searchBox"
|
||||
:searchBoxData="searchBox_right_text"
|
||||
></SearchBox>
|
||||
</div>
|
||||
</div>
|
||||
<EquipmentTable ref="equipmentTable"></EquipmentTable>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import SearchBox from "./components/searchBox.vue";
|
||||
import EquipmentTable from "./components/equipmentTable.vue";
|
||||
export default {
|
||||
name: "correlationEquipment",
|
||||
components: {
|
||||
SearchBox,
|
||||
EquipmentTable,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
searchCompany: "", // 公司搜索
|
||||
companyTreeData: [], // 公司单位树
|
||||
searchBox_left_text: {}, // 给子查询盒子传递字符和图片地址
|
||||
};
|
||||
},
|
||||
created() {
|
||||
// 给子查询盒子传递字符和图片地址
|
||||
// 左边盒子
|
||||
this.searchBox_left_text = {
|
||||
src: require("@/assets/companyFile/camera.png"),
|
||||
img_text: "视频监控系统",
|
||||
btnList: [
|
||||
{ value: "1", name: "公共区域" },
|
||||
{ value: "2", name: "地下车库" },
|
||||
{ value: "3", name: "全景监控" },
|
||||
{ value: "4", name: "人脸抓拍" },
|
||||
{ value: "5", name: "电梯监控" },
|
||||
{ value: "6", name: "人体测温" },
|
||||
{ value: "7", name: "车辆抓拍" },
|
||||
{ value: "8", name: "人脸门禁" },
|
||||
{ value: "9", name: "高空抛物" },
|
||||
],
|
||||
};
|
||||
// 右边盒子
|
||||
this.searchBox_right_text = {
|
||||
src: require("@/assets/companyFile/intelligence.png"),
|
||||
img_text: "智能感知系统",
|
||||
btnList: [
|
||||
{ value: "1", name: "车辆抓拍" },
|
||||
{ value: "2", name: "人脸抓拍" },
|
||||
{ value: "3", name: "门禁设备" },
|
||||
{ value: "4", name: "高抛抓拍" },
|
||||
{ value: "5", name: "全结构化" },
|
||||
{ value: "6", name: "智能烟感" },
|
||||
{ value: "7", name: "访客机" },
|
||||
{ value: "8", name: "多为设备" },
|
||||
{ value: "9", name: "WIFI设备" },
|
||||
],
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
/* card统一样式 */
|
||||
.el-card.box-card.is-always-shadow {
|
||||
height: calc(100vh - 116px); /* 控制card布局高度,用于适配 */
|
||||
}
|
||||
/* card统一样式 */
|
||||
/deep/.el-card__header {
|
||||
border-bottom: 1px solid #a1a1a1 !important;
|
||||
.clearfix {
|
||||
span {
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.main {
|
||||
height: 100%;
|
||||
.el-card.box-card.is-always-shadow {
|
||||
background: url("~@/assets/companyFile/22136.png") no-repeat !important;
|
||||
background-size: 100% 100% !important;
|
||||
border: 0px;
|
||||
}
|
||||
.cardBody {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
height: calc(100vh - 215px);
|
||||
/* 左侧 */
|
||||
.cardBodyLeft {
|
||||
width: 30%;
|
||||
height: 100%;
|
||||
.cardBodyLeft_search {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
.cardBodyLeft_search_input ::v-deep {
|
||||
/* 查询框 */
|
||||
width: 90%;
|
||||
.el-input__inner {
|
||||
border-radius: 4px 0px 0px 4px;
|
||||
background: #3c4b4a;
|
||||
color: #fff;
|
||||
}
|
||||
/* 查询框点击颜色变化 */
|
||||
.el-input__inner:focus,
|
||||
.el-input__inner:hover {
|
||||
border-color: #1b3736;
|
||||
}
|
||||
}
|
||||
.cardBodyLeft_search_button {
|
||||
width: 10%;
|
||||
height: 100%;
|
||||
border-radius: 0px 4px 4px 0px;
|
||||
background: #0e3936;
|
||||
text-align: center;
|
||||
font-size: 28px;
|
||||
cursor: pointer;
|
||||
.el-icon-search {
|
||||
color: #fff;
|
||||
padding: 12% 0;
|
||||
}
|
||||
}
|
||||
.cardBodyLeft_search_button:focus,
|
||||
.cardBodyLeft_search_button:hover {
|
||||
/* 放大镜点击特效 */
|
||||
background: #126a58;
|
||||
}
|
||||
}
|
||||
.cardBodyLeft_footer {
|
||||
height: 88%;
|
||||
.el-tree {
|
||||
/* 树形数据过长添加滚动条 */
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
box-shadow: 5px 5px 10px #126a58;
|
||||
border-radius: 4px;
|
||||
background: #293738;
|
||||
color: #fff;
|
||||
.node-label {
|
||||
/* 树形数据横向过长添加展开 */
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
/* hover节点时的背景颜色 */
|
||||
::v-deep .el-tree-node__content:hover {
|
||||
background: #126a58;
|
||||
color: #fff;
|
||||
}
|
||||
/* 节点选中的背景颜色 */
|
||||
::v-deep .el-tree-node:focus > .el-tree-node__content {
|
||||
background: #1b3736;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/* 竖分割线 */
|
||||
.el-divider.el-divider--vertical {
|
||||
margin-left: 13px;
|
||||
height: 100%;
|
||||
}
|
||||
/* 右侧 */
|
||||
.cardBodyRight {
|
||||
p {
|
||||
margin-left: 10px;
|
||||
height: 18px;
|
||||
color: #fff;
|
||||
font-size: 18px;
|
||||
}
|
||||
width: 70%;
|
||||
height: 100%;
|
||||
border-radius: 4px;
|
||||
box-shadow: 5px 5px 10px #126a58;
|
||||
.cardBodyRight_search {
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
width: 100%;
|
||||
height: 25%;
|
||||
.video {
|
||||
width: 48%;
|
||||
height: 100%;
|
||||
background: #3b5153;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.intelligence {
|
||||
width: 48%;
|
||||
height: 100%;
|
||||
background: #2c4046;
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,43 @@
|
||||
<template>
|
||||
<!-- 系统管理 -->
|
||||
<div>
|
||||
<el-container>
|
||||
<el-aside>
|
||||
<LeftNav></LeftNav>
|
||||
</el-aside>
|
||||
<el-container>
|
||||
<el-main>
|
||||
<router-view></router-view>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-container>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import LeftNav from "./components/leftNav.vue";
|
||||
export default {
|
||||
name: "systemManagement",
|
||||
components: {
|
||||
LeftNav,
|
||||
},
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.el-container {
|
||||
height: calc(100vh - 95px); /* 控制整体布局高度,用于适配 */
|
||||
.el-aside {
|
||||
margin-top: 15px; /* 给左上角logo留空间 -> 后面固定都给15px */
|
||||
margin-left: 15px;
|
||||
width: 13% !important; /* 控制侧边导航栏宽度 */
|
||||
height: 100%;
|
||||
}
|
||||
.el-main {
|
||||
margin: 16px 15px 0px 15px; /* 固定都给15px */
|
||||
padding: 0px;
|
||||
}
|
||||
}
|
||||
</style>
|