iconChange

This commit is contained in:
shijing 2022-08-11 17:13:45 +08:00
parent c24f736937
commit d846e8d6ef
12 changed files with 2621 additions and 2559 deletions

View File

@ -5,10 +5,10 @@ NODE_ENV = development
VUE_APP_TITLE = '曲阳金隅安全智能管控平台'
# 接口地址
# VUE_APP_API_BASEURL = http://1.203.161.103:2800/api
VUE_APP_WS_API = 'ws://localhost:8000'
VUE_APP_API_BASEURL = http://127.0.0.1:8000/api
VUE_APP_BASEURL = http://127.0.0.1:8000
VUE_APP_API_BASEURL = http://1.203.161.103:2800/api
#VUE_APP_WS_API = 'ws://localhost:8000'
#VUE_APP_API_BASEURL = http://127.0.0.1:8000/api
#VUE_APP_BASEURL = http://127.0.0.1:8000
# 本地端口
VUE_APP_PORT = 2800

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

BIN
public/img/employee.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
public/img/remployee.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
public/img/visitor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -156,12 +156,11 @@ tool.dateFormat = function (date, fmt='yyyy-MM-dd hh:mm:ss') {
"s+" : date.getSeconds(), //秒
"q+" : Math.floor((date.getMonth()+3)/3), //季度
"S" : date.getMilliseconds(), //毫秒
"W" : date.getDay(), //毫秒
};
var weeks = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
var weeks = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
if(fmt==='week'){
fmt =weeks[o.w];
fmt =weeks[date.getDay()];
}else{
if(/(y+)/.test(fmt)) {
fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));

View File

@ -273,6 +273,7 @@
ref="saveRailDialog"
:areaId="areaId"
:areaName="areaName"
:areaPoints="areaPoints"
@success="handleSaveSuccess"
@closed="dialog.saveRail = false"
></save-rail-dialog>
@ -324,6 +325,7 @@ export default {
query2: {},
areaId: null,
areaName: "",
areaPoints:[],
cate_: { post: "岗位", org: "单位", people: "人员" },
};
},
@ -363,6 +365,13 @@ export default {
},
//
handleRail(row) {
debugger;
// console.log(row.third_info.xx_rail.detail.polygon.points);
if(row.third_info.xx_rail){
this.areaPoints = row.third_info.xx_rail.detail.polygon.points;
}else{
}
this.areaId = row.id;
this.areaName = row.name;
this.dialog.saveRail = true;

View File

@ -48,6 +48,9 @@
},
areaName: {
type: String,
},
areaPoints:{
type:Array,
}
},
data() {
@ -137,6 +140,42 @@
}
});
window.map.addControl(drawTool2);
//
if(that.areaPoints.length>2){
let areaPoints = [];
let point =null;
that.areaPoints.forEach(item=>{
debugger;
let obj = {lng:345,lat:268}
console.log(obj)
let tool = new jsmap.JSMapCoordTool(window.map);
let pixel = tool.screenToMapCoordinate(obj);
debugger;
console.log(pixel)
debugger;
point = new jsmap.JSPoint(item.x,item.y,0);
areaPoints.push(point)
})
let polygonMarker = new jsmap.JSPolygonMarker({
id: that.areaId,//id
position: that.areaPoints,//
floorId: 1,//id
color: 'rgba(0,0,255,.44)',//
strokeColor: 'rgba(0,0,255,.44)',//线
depthTest: false,//
// material: new jsmap.JSWaterMaterial(), //color
allowPicking: true, //
displayCondition: new jsmap.JSDisplayCondition(0.0, 1000), //
properties: {
test: 'polygonTest'
},//
callback: (marker) => {
// console.log(marker);
}//
});
window.map.addMarker(polygonMarker);
}
});
},
closeDrawer() {

View File

@ -6,7 +6,7 @@
<div class="header-right-action">
<div class="right-action-clock">
<span class="action-time">{{ currentDay }}</span>
<span class="action-time">周三下午 </span>
<span class="action-time">{{ currentWeek }} </span>
<span class="action-time">{{ currentTime }}</span>
</div>
</div>
@ -67,17 +67,9 @@
<div @click="changeDropIndex('4')" class="drop-content-item"
:class="{'active':dropIndex==='4'}">访客
</div>-->
<el-tree
ref="group"
id="bigScreenTree"
node-key="id"
:data="postList"
show-checkbox
:current-node-key="''"
:highlight-current="true"
:expand-on-click-node="false"
@node-click="groupClick"
></el-tree>
<el-tree ref="group" id="bigScreenTree" node-key="id" :data="postList" show-checkbox
:current-node-key="''" :highlight-current="true" :expand-on-click-node="false"
@node-click="groupClick"></el-tree>
<el-button type="primary" @click="userFilter">确定
</el-button>
@ -189,8 +181,9 @@
<span class="multiple-select-label">全部</span>
</div>
<div v-for="type in warningTypes" :key="type.id" class="multiple-select-li" @click="warningTypeSelected(type.id)">
<span title="超员报警" class="multiple-select-label">{{type.name}}</span>
<div v-for="typeItem in warningTypes" :key="typeItem.id"
class="multiple-select-li" @click="warningTypeSelected(typeItem.id)">
<span title="超员报警" class="multiple-select-label">{{ typeItem.name }}</span>
</div>
</div>
</div>
@ -211,13 +204,9 @@
</div>
</div>
<div v-if="warningData.total > 0" class="content-footer" style="">
<el-pagination
:page-size="warningData.params.page_size"
:pager-count="5"
v-model:currentPage="warningData.params.page"
layout="prev, pager, next"
:total="warningData.total"
@current-change="handleCurrentChange"/>
<el-pagination :page-size="warningData.params.page_size" :pager-count="5"
v-model:currentPage="warningData.params.page" layout="prev, pager, next"
:total="warningData.total" @current-change="handleCurrentChange" />
</div>
<div class="noData" v-else>
<img src="/img/nodata.png">
@ -227,21 +216,16 @@
</div>
<div class="cockpit-info">
<div class="divider"></div>
<div class="simple-title">
<div class="simple-title area-simple-title">
<div class="header-tab">
<span class="tab-item">区域信息情况</span>
<!--<span class="tab-item" :class="{'tab-item-active':LBType==='2'}" @click="cockpitChange('2')">部门信息情况</span>-->
</div>
<div class="simple-btn-bg alarm-btn">需充电卡片0人</div>
</div>
<div class="info-body">
<el-table
:data="areaList"
style="width: 100%"
highlight-current-row
class="bigScreenTable"
@row-click="areaRowClick"
>
<div class="info-body area-info-body">
<el-table :data="areaList" style="width: 100%;" :height="areaTableHeight" highlight-current-row
class="bigScreenTable" @row-click="areaRowClick">
<el-table-column label="区域" prop="name"></el-table-column>
<el-table-column label="当前人数" prop="count_people"></el-table-column>
</el-table>
@ -256,20 +240,28 @@
@node-click="groupClick"
></el-tree>-->
</div>
<div class="alarm-detail-info left_arrow" v-if="areaDetail">
<div class="alarm-detail-info left_arrow" v-if="areaDetail" style="width:150%">
<div class="simple-title">
<div><span>区域统计</span></div>
<span class="icon-close" @click="areaDetail = false"></span>
</div>
<div class="detail-content">
<div class="content-head">
<div class="{'areaActive':areaShowType==1} areaNavItem" style="color:#ffffff">围栏</div>
<div class="{'areaActive':areaShowType==2} areaNavItem" style="color:#ffffff">作业</div>
<div class="{'areaActive':areaShowType==3} areaNavItem" style="color:#ffffff">监控</div>
<div class="{'areaActive':areaShowType==4} areaNavItem" style="color:#ffffff">喇叭</div>
</div>
<div class="content-body">
<el-table>
</el-table>
</div>
</div>
</div>
</div>
</div>
<div style="display:flex;flex-direction:colum">
</div>
<!--切换-->
<!--<div class="screen-tab">
<div class="screen-tab-content">
@ -411,14 +403,8 @@
</div>
</div>
<div class="screen-per-list">
<el-table
:data="userList"
style="width: 100%"
:row-key="row =>{ return row.id }"
highlight-current-row
class="bigScreenTable"
@row-click="userRowClick"
>
<el-table :data="userList" style="width: 100%" :row-key="row => { return row.id }"
highlight-current-row class="bigScreenTable" @row-click="userRowClick">
<el-table-column label="姓名">
<template #default="scope">
<span v-if="scope.row.my_info.employee_">{{ scope.row.my_info.employee_.name }}</span>
@ -466,11 +452,13 @@
</div>
<div class="info-item">
<span class="info-item-name">部门</span>
<span class="info-item-info" v-if="screenUserItemDetail.belong_dept_">{{screenUserItemDetail.belong_dept_.name}}</span>
<span class="info-item-info"
v-if="screenUserItemDetail.belong_dept_">{{ screenUserItemDetail.belong_dept_.name }}</span>
</div>
<div class="info-item">
<span class="info-item-name">岗位</span>
<span class="info-item-info" v-if="screenUserItemDetail.post_">{{screenUserItemDetail.post_.name}}</span>
<span class="info-item-info"
v-if="screenUserItemDetail.post_">{{ screenUserItemDetail.post_.name }}</span>
</div>
<div class="info-item">
<span class="info-item-name">证件类型</span>
@ -488,8 +476,11 @@
<div class="basic-cert" style="display: none;">
<div class="el-empty">
<div class="el-empty__image" style="width: 160px;">
<img src="/img/nodata.png" ondragstart="return false"></div>
<div class="el-empty__description"><p></p></div>
<img src="/img/nodata.png" ondragstart="return false">
</div>
<div class="el-empty__description">
<p></p>
</div>
</div>
</div>
<div class="el-loading-mask" style="background-color: transparent; display: none;">
@ -637,7 +628,8 @@
</div>
<div class="risk-content">
<div class="risk-basic">
<div class="risk-item"><span class="risk-item-name">风险区域名称</span><span class="risk-item-info">重大风险区域</span>
<div class="risk-item"><span class="risk-item-name">风险区域名称</span><span
class="risk-item-info">重大风险区域</span>
</div>
<div class="risk-item"><span class="risk-item-name">风险等级</span><span
class="risk-item-info">重大风险</span>
@ -675,11 +667,13 @@
</div>
<div class="risk-item" v-if="screenWarningItem.employee_ !== null">
<span class="risk-item-name">触发人</span>
<span class="risk-item-info" v-if="screenWarningItem.employee_">{{screenWarningItem.employee_.name}}</span>
<span class="risk-item-info"
v-if="screenWarningItem.employee_">{{ screenWarningItem.employee_.name }}</span>
</div>
<div class="risk-item" v-if="screenWarningItem.employee_ !== null">
<span class="risk-item-name">触发人部门</span>
<span class="risk-item-info" v-if="screenWarningItem.employee_.belong_dept_">{{screenWarningItem.employee_.belong_dept_.name}}</span>
<span class="risk-item-info"
v-if="screenWarningItem.employee_.belong_dept_">{{ screenWarningItem.employee_.belong_dept_.name }}</span>
</div>
<div class="risk-item">
<span class="risk-item-name">触发事件</span>
@ -703,13 +697,8 @@
<div class="risk-basic">
<div class="risk-item">
<span class="risk-item-name">处理描述</span>
<el-input
class="item-textarea"
v-model="warningForm.handle_desc"
:rows="3"
type="textarea"
placeholder="请输入处理描述"
/>
<el-input class="item-textarea" v-model="warningForm.handle_desc" :rows="3" type="textarea"
placeholder="请输入处理描述" />
</div>
<div class="risk-item">
<span class="risk-item-name">事件类型</span>
@ -749,6 +738,7 @@
eareMarker: null,
dropIndex: '1',
countIndex: '2',
areaShowType:'1',
markList: [false, false, false, false, false, false, false],
autoRun: false,
tracking: false,
@ -833,6 +823,8 @@
todayDate: '',
currentDay: '',
currentTime: '',
currentWeek: '',
areaTableHeight: null,
}
},
created() {
@ -1020,11 +1012,21 @@
this.getAllPost();//
this.getWarningTotal();//
this.getWarningType();//
let pageHeight = document.getElementsByClassName('screen-cockpit')[0].clientHeight;
let height1 = document.getElementsByClassName('cockpit-count')[0].clientHeight;
let height2 = document.getElementsByClassName('cockpit-alarm')[0].clientHeight;
let height3 = document.getElementsByClassName('area-simple-title')[0].clientHeight;
let domHeight = pageHeight - height1 - height2 - 84;
let areaTableHeight = domHeight - height3 - 10;
this.areaTableHeight = areaTableHeight;
document.getElementsByClassName('cockpit-info')[0].style.height = domHeight + 'px';
// document.getElementsByClassName('area-info-body')[0].style.height = simpleBodyHeight + 'px';
setInterval(function () { }, 3000)
},
methods: {
showTime() {
this.currentTime = this.$TOOL.dateFormat(new Date(), 'hh:mm:ss');
this.currentWeek = this.$TOOL.dateFormat(new Date(), 'week');
this.currentDay = this.$TOOL.dateFormat(new Date(), 'yyyy年MM月dd日')
},
getWarningTotal() {
@ -1404,22 +1406,34 @@
},
//
showUserMarkers(userList) {
let that = this;
//mark
let iconTextMarker = null;
//
let userImage = '';
if (userList.length > 0) {
debugger;
console.log(userList);
debugger;
let lng = [114.62923138539462, 114.6315404372349];//
let i = 0;
iconTextMarker = userList[0].mac;
let employee_ = userList[0].my_info.employee_;
employee_.mac = userList[0].mac;
console.log(employee_)
console.log(userList[0].my_info.employee_.type)
debugger;
if (userList[0].my_info.employee_.type === 'employee') {
userImage = "/img/employee.png"
} else if (serList[0].my_info.employee_.type === 'remployee') {
userImage = "/img/employee.png"
} else {
userImage = "/img/visitor.png"
}
that.userMarker[iconTextMarker] = new jsmap.JSIconTextMarker({
id: userList[0].my_info.code,
position: { x: 114.62923138539462, y: 38.8133418942645, z: 0 }, //
floorId: 1, //id,1
image: "/img/user.png",
image: userImage,
text: employee_.name,
font: '10px sans-serif',
fontColor: '#ffffff',
@ -1776,8 +1790,10 @@
</script>
<style lang="scss">
.handleWarningBtn, .handleWarningBtn:active,
.handleWarningBtn:focus, .handleWarningBtn:hover {
.handleWarningBtn,
.handleWarningBtn:active,
.handleWarningBtn:focus,
.handleWarningBtn:hover {
cursor: pointer;
border: 1px solid #30ffdd;
color: #ffffff;
@ -2393,8 +2409,7 @@
flex-grow: 1;
}
.common-basic-info {
}
.common-basic-info {}
.person-cert {
right: 410px;
@ -2631,6 +2646,7 @@
width: calc(100% - 130px);
overflow: hidden;
height: fit-content;
.alarm-item {
min-width: 50%;
height: 26px;
@ -2641,6 +2657,7 @@
display: flex;
align-items: center;
float: left;
.item-name {
margin-right: 4px;
flex-shrink: 0;
@ -3017,6 +3034,7 @@
.noData {
width: 100%;
height: 300px;
img {
margin: 50px auto;
display: block;
@ -3028,7 +3046,7 @@
.alarm-detail-info {
position: absolute;
left: 445px;
top: 0;
top: -73px;
width: 390px;
background: rgba(24, 36, 51, .7);
border-radius: 4px;
@ -3259,8 +3277,14 @@
/*background: url(/public/img/left_arrow.png) no-repeat;*/
background-size: 100% 100%;
}
[class*=" el-icon-"], [class^=el-icon-] {
.areaNavItem{
color: #ffffff;
}
.areaActive{
color: #0bf1ff;
}
[class*=" el-icon-"],
[class^=el-icon-] {
font-family: element-icons !important;
speak: none;
font-style: normal;
@ -3331,7 +3355,8 @@
background-color: rgba(255, 255, 255, 0);
}
.bigScreenTable.el-table td.el-table__cell, .bigScreenTable.el-table th.el-table__cell.is-leaf {
.bigScreenTable.el-table td.el-table__cell,
.bigScreenTable.el-table th.el-table__cell.is-leaf {
border-bottom: none;
}

View File

@ -11,6 +11,7 @@
<div>
<el-badge :value="operationnumber" class="item">
<el-button
class="projecting"
icon="el-icon-document-copy"
type="primary"
size="small"
@ -21,6 +22,7 @@
<div>
<el-badge :value="rpjnumber" class="item">
<el-button
class="projecting"
icon="el-icon-document-copy"
type="warning"
size="small"
@ -31,6 +33,7 @@
<div>
<el-badge :value="visitnumber" class="item">
<el-button
class="projecting"
icon="el-icon-document-copy"
type="success"
size="small"
@ -56,7 +59,7 @@
<div class="cockpit-count">
<div class="count-list">
<div class="count-list-item">
<div class="item-img item-img2"></div>
<div class="item-img item-img1"></div>
<div class="item-info">
<div title="员工" class="normal">内部员工</div>
<div class="bottom">
@ -66,7 +69,7 @@
</div>
</div>
<div class="count-list-item">
<div class="item-img item-img1"></div>
<div class="item-img item-img2"></div>
<div class="item-info">
<div title="外来人员" class="normal">访客</div>
<div class="bottom">
@ -177,6 +180,11 @@ export default {
</script>
<style scoped lang="scss">
.projecting{
width: 45px;
height: 45px;
font-size: 25px;
}
.welcome .logo {
text-align: center;
}
@ -228,26 +236,7 @@ export default {
flex: 1;
font-size: 14px;
}
.item-img {
width: 50px;
height: 50px;
position: relative;
margin-right: 6px;
flex-shrink: 0;
}
.item-img:after {
content: "";
width: 38px;
height: 38px;
position: absolute;
left: 7px;
top: 7px;
background: url(/public/img/rotate_line.png) no-repeat;
background-size: 100% 100%;
-webkit-animation: rotate 4s linear infinite;
animation: rotate 4s linear infinite;
}
.zuoye {
background: url(/public/img/zuoye.png) no-repeat;
background-size: 100% 100%;
@ -276,33 +265,34 @@ export default {
position: relative;
margin-right: 6px;
flex-shrink: 0;
border-radius: 25px;
}
.item-img:after {
content: "";
width: 38px;
height: 38px;
position: absolute;
left: 7px;
top: 7px;
background: url(/public/img/rotate_line.png) no-repeat;
background-size: 100% 100%;
-webkit-animation: rotate 4s linear infinite;
animation: rotate 4s linear infinite;
}
// .item-img:after {
// content: "";
// width: 38px;
// height: 38px;
// position: absolute;
// left: 7px;
// top: 7px;
// background: url(/public/img/rotate_line.png) no-repeat;
// background-size: 100% 100%;
// -webkit-animation: rotate 4s linear infinite;
// animation: rotate 4s linear infinite;
// }
.item-img1 {
background: url(/public/img/icon_wlry.png) no-repeat;
background: url(/public/img/employee.png) no-repeat;
background-size: 100% 100%;
}
.item-img2 {
background: url(/public/img/icon_nbyg.png) no-repeat;
background: url(/public/img/visitor.png) no-repeat;
background-size: 100% 100%;
}
.item-img3 {
background: url(/public/img/icon_cbs.png) no-repeat;
background: url(/public/img/remployee.png) no-repeat;
background-size: 100% 100%;
}