| | |
| | | </div> |
| | | </div> |
| | | <div class="center_box"> |
| | | <div class="center_box_one"> |
| | | <div v-if="showJk" class="jiankong"> |
| | | <img class="jk_bg" src="@/assets/images/SecurityControl/jiankong_bg@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="video"></div> |
| | | </div> |
| | | <div class="right_wrap"> |
| | | <div class="menus"> |
| | | <div class="search_wrap"> |
| | | <img class="search" src="@/assets/images/SecurityControl/ic_search@2x.png" alt=""> |
| | | <input class="input" type="text" placeholder="搜索监控名称"> |
| | | </div> |
| | | <div class="menu_wrap"> |
| | | <div class="menu" v-for="menu,i in jkList"> |
| | | <div class="menu_name" @click="menuClick(i)"> |
| | | <div class="name">{{ menu.name }}</div> |
| | | <img v-if="activeJkIndex == i" class="open" src="@/assets/images/SecurityControl/ar_close@2x.png" alt=""> |
| | | <img v-else class="icon" src="@/assets/images/SecurityControl/ar_open@2x.png" alt=""> |
| | | </div> |
| | | <div v-if="activeJkIndex == i" class="list"> |
| | | <div class="item" @click="menuItemClick(item.name)" v-for="item in menu.childen"> |
| | | <img v-if="activeMenu == item.name" class="icon" src="@/assets/images/SecurityControl/ic_jiankong_sel@2x.png" alt=""> |
| | | <img v-else class="icon" src="@/assets/images/SecurityControl/ic_jiankon.png" alt=""> |
| | | <span :class="{active: activeMenu == item.name}">{{ item.name }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <div v-else class="center_box_one"> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="name_wrap"> |
| | |
| | | </div> |
| | | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="monitoring"> |
| | | <img src="@/assets/images/SecurityControl/jiankong.png" class="icon" alt=""> |
| | | <div class="monitoring" @click="showJk = !showJk"> |
| | | <img src="@/assets/images/SecurityControl/ic_jiankong@2x.png" class="icon" alt=""> |
| | | <div>监控列表</div> |
| | | <img src="@/assets/images/SecurityControl/jiankong_ic_open@2x.png" class="top" alt=""> |
| | | <img v-if="showJk" src="@/assets/images/SecurityControl/jiankong_ic_close@2x.png" class="top" alt=""> |
| | | <img v-else src="@/assets/images/SecurityControl/jiankong_ic_open@2x.png" class="top" alt=""> |
| | | </div> |
| | | <div class="content"> |
| | | <div class="sa_static"> |
| | |
| | | time.value = dayjs().format('HH:mm:ss') |
| | | |
| | | }, 1000) |
| | | |
| | | const showJk = ref(true) |
| | | const activeJkIndex = ref(0) |
| | | const activeMenu = ref('') |
| | | const jkList = ref([ |
| | | { |
| | | name: '月台区', |
| | | childen: [ |
| | | { name: '月台1', id: 0 }, |
| | | { name: '月台2', id: 0 }, |
| | | { name: '月台3', id: 0 }, |
| | | ] |
| | | }, |
| | | { |
| | | name: '办公楼', |
| | | childen: [] |
| | | }, |
| | | { |
| | | name: '厂房', |
| | | childen: [] |
| | | }, |
| | | { |
| | | name: '大门', |
| | | childen: [] |
| | | }, |
| | | ]) |
| | | const menuClick = (val) => { |
| | | if (val == activeJkIndex.value) { |
| | | activeJkIndex.value = -1 |
| | | } else { |
| | | activeJkIndex.value = val |
| | | } |
| | | } |
| | | const menuItemClick = (val) => { |
| | | activeMenu.value = val |
| | | } |
| | | |
| | | |
| | | const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a'] |
| | | const initEnergy = () => { |
| | |
| | | color: '#61d3f9' |
| | | }])] |
| | | const data = [] |
| | | data.push({ name: '待访问', value: data4.value.waitVisitNum,rate: data4.value.waitVisitRata }) |
| | | data.push({ name: '已登记', value: data4.value.registerVisitNum,rate: data4.value.registerVisitRata }) |
| | | data.push({ name: '已离开', value: data4.value.levelNum,rate: data4.value.levelRata }) |
| | | data.push({ name: '滞留', value: data4.value.retentionNum,rate: data4.value.retentionRata }) |
| | | data.push({ name: '待访问', value: data4.value.waitVisitNum, rate: data4.value.waitVisitRata }) |
| | | data.push({ name: '已登记', value: data4.value.registerVisitNum, rate: data4.value.registerVisitRata }) |
| | | data.push({ name: '已离开', value: data4.value.levelNum, rate: data4.value.levelRata }) |
| | | data.push({ name: '滞留', value: data4.value.retentionNum, rate: data4.value.retentionRata }) |
| | | const option = { |
| | | color: colors, |
| | | tooltip: { |
| | |
| | | const getData4 = () => { |
| | | afgetVisitData().then(res => { |
| | | const result = res.data || {} |
| | | dataList4.value = result |
| | | data4.value = result |
| | | initEchart3() |
| | | }) |
| | | } |
| | |
| | | getData2() |
| | | getData3() |
| | | getData4() |
| | | |
| | | |
| | | // initEchart1() |
| | | }) |
| | | |
| | |
| | | .center_box { |
| | | flex: 1; |
| | | margin: 0 20px; |
| | | |
| | | .jiankong { |
| | | margin: 0 48px; |
| | | display: flex; |
| | | height: calc(100% - 40px); |
| | | position: relative; |
| | | |
| | | .jk_bg { |
| | | width: 100%; |
| | | height: 100%; |
| | | position: absolute; |
| | | z-index: -1; |
| | | } |
| | | |
| | | .content { |
| | | flex: 1; |
| | | /* height: calc( 100% - 30px ); */ |
| | | padding: 16px 0px 32px 20px; |
| | | |
| | | .video { |
| | | height: 100%; |
| | | border: 1px solid; |
| | | } |
| | | } |
| | | |
| | | .right_wrap { |
| | | margin-left: 15px; |
| | | width: 250px; |
| | | padding: 16px 20px 32px 0; |
| | | |
| | | .menus { |
| | | height: 100%; |
| | | background: #002A42; |
| | | border: 1px solid rgba(1, 171, 254, 0.8); |
| | | padding: 15px; |
| | | |
| | | .search_wrap { |
| | | display: flex; |
| | | align-items: center; |
| | | box-shadow: inset 0px 0px 6px 0px rgba(1, 171, 254, 0.5); |
| | | border-radius: 2px; |
| | | border: 1px solid rgba(1, 171, 254, 0.8); |
| | | height: 34px; |
| | | line-height: 34px; |
| | | padding-left: 12px; |
| | | |
| | | .search { |
| | | width: 12px; |
| | | height: 12px; |
| | | margin-right: 3px; |
| | | } |
| | | |
| | | .input { |
| | | flex: 1; |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | |
| | | .menu_wrap { |
| | | margin-top: 15px; |
| | | |
| | | .menu { |
| | | .menu_name { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | height: 34px; |
| | | border-bottom: 2px solid rgba(210, 224, 255, 0.2); |
| | | cursor: pointer; |
| | | .name {} |
| | | |
| | | .icon { |
| | | width: 8px; |
| | | } |
| | | .open{ |
| | | width: 14px; |
| | | } |
| | | } |
| | | |
| | | .list { |
| | | .item { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 34px; |
| | | margin-left: 10px; |
| | | cursor: pointer; |
| | | color: #D2E0FF; |
| | | .icon{ |
| | | width: 15px; |
| | | height: 14px; |
| | | margin-right: 8px; |
| | | } |
| | | .active{ |
| | | color: #01D9FE; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | .center_box_one { |
| | | padding: 8px 60px; |
| | |
| | | |
| | | .monitoring { |
| | | position: absolute; |
| | | cursor: pointer; |
| | | top: -60px; |
| | | right: 0; |
| | | display: flex; |
| | |
| | | border: 1px solid rgba(12, 153, 236, 0.68); |
| | | |
| | | .icon { |
| | | width: 30px; |
| | | width: 16px; |
| | | height: 16px; |
| | | margin-right: 4px; |
| | | } |
| | | |
| | | .top { |