+
+
+ 取消跟踪
+
+
跟踪
+
轨迹
@@ -519,7 +527,8 @@
- {{scope.row.my_info.employee_.post_name}}
+ {{scope.row.my_info.employee_.post_name}}
@@ -835,6 +844,7 @@
countIndex: '2',
markList: [false, false, false, false, false, false, false],
autoRun: false,
+ tracking: false,
areaDetail: false,
screenJob: false,
screenUser: false,
@@ -845,13 +855,13 @@
showUserSelect: false,
warningDetail: false,
filterCtrlFocus: true,
- warningListTotal:0,
- warningData:{
- list:[],
- total:0,
- params:{
- page:1,
- page_size:10
+ warningListTotal: 0,
+ warningData: {
+ list: [],
+ total: 0,
+ params: {
+ page: 1,
+ page_size: 10
}
},
Vchannels: [],//摄像头列表
@@ -903,7 +913,7 @@
mark: '1',
},
LBType: '1',
- userMarker:{},
+ userMarker: {},
}
},
created() {
@@ -1051,6 +1061,10 @@
//人员
that.screenUserItem = item.properties.get("employee");
that.screenUser = true;
+ debugger;
+ window.map.flyToMarker(that.userMarker[that.screenUserItem.mac],{
+ duration:1000
+ })
}
}
@@ -1077,55 +1091,57 @@
this.getAllPost();//岗位
setInterval(function () {
- },3000)
+ }, 3000)
},
methods: {
- areaRowClick(){
+ areaRowClick(data) {
this.areaDetail = true;
+ console.log(data);
+ debugger;
},
//岗位
- getAllPost(){
- this.$API.system.post.list.req({page:0}).then(res=>{
+ getAllPost() {
+ this.$API.system.post.list.req({page: 0}).then(res => {
let arr = [];
let children = genTree(res);
- for(let i=0;i<4;i++){
- let obj=new Object();
- if(i===0){
- obj.id='';
+ for (let i = 0; i < 4; i++) {
+ let obj = new Object();
+ if (i === 0) {
+ obj.id = '';
obj.name = '全部';
obj.label = '全部';
- }else if(i===1){
- obj.id='';
+ } else if (i === 1) {
+ obj.id = '';
obj.name = '内部员工';
obj.label = '内部员工';
obj.children = children;
- }else if(i===2){
- obj.id='';
+ } else if (i === 2) {
+ obj.id = '';
obj.name = '相关方';
obj.label = '相关方';
- }else if(i===3){
- obj.id='';
+ } else if (i === 3) {
+ obj.id = '';
obj.name = '访客';
obj.label = '访客';
}
arr.push(obj)
}
- this.postList =arr;
+ this.postList = arr;
// console.log(arr)
})
},
//人员统计
getManCount() {
let that = this;
- if(that.countIndex==='2'){
+ if (that.countIndex === '2') {
that.$API.third.blt.countNow.req().then(res => {
if (res.err_msg) {
} else {
that.userCount = {...res};
}
})
- }else{
+ } else {
that.$API.third.blt.countBind.req().then(res => {
if (res.err_msg) {
} else {
@@ -1180,11 +1196,11 @@
that.userList = res.filter(item => {
return item.my_info.employee
});
- that.showUserMarkers();
+ that.showUserMarkers(that.userList);
}
})
},
- handleCurrentChange(){
+ handleCurrentChange() {
this.getWarnings();
},
//获取报警列表
@@ -1222,7 +1238,7 @@
//获取人员详细信息
showUserDetail() {
this.screenUserDetail = true;
- this.$API.hrm.employee.item.req(this.screenUserItem.id).then(res=>{
+ this.$API.hrm.employee.item.req(this.screenUserItem.id).then(res => {
// console.log(res);
this.screenUserItemDetail = res;
})
@@ -1232,12 +1248,12 @@
let that = this;
this.showUserSelect = false;
this.screenUser = true;
- that.screenUserItem.name=this.userList[0].my_info.employee_.name;
- that.screenUserItem.type=this.userList[0].my_info.employee_.type;
- that.screenUserItem.id=this.userList[0].my_info.employee_.id;
- that.screenUserItem.photo=this.userList[0].my_info.employee_.photo?this.userList[0].my_info.employee_.photo:'';
- that.screenUserItem.post_name=this.userList[0].my_info.employee_.post_name?this.userList[0].my_info.employee_.post_name:'';
- that.screenUserItem.belong_dept_name=this.userList[0].my_info.employee_.belong_dept_name?this.userList[0].my_info.employee_.belong_dept_name:'';
+ that.screenUserItem.name = this.userList[0].my_info.employee_.name;
+ that.screenUserItem.type = this.userList[0].my_info.employee_.type;
+ that.screenUserItem.id = this.userList[0].my_info.employee_.id;
+ that.screenUserItem.photo = this.userList[0].my_info.employee_.photo ? this.userList[0].my_info.employee_.photo : '';
+ that.screenUserItem.post_name = this.userList[0].my_info.employee_.post_name ? this.userList[0].my_info.employee_.post_name : '';
+ that.screenUserItem.belong_dept_name = this.userList[0].my_info.employee_.belong_dept_name ? this.userList[0].my_info.employee_.belong_dept_name : '';
},
//风险区域layer
riskMaskerLayers() {
@@ -1417,16 +1433,20 @@
})
},
//人员
- showUserMarkers() {
+ showUserMarkers(userList) {
+
let that = this;
let iconTextMarker = null;
- if(that.userList.length>0){
- let lng = [114.62923138539462,114.6315404372349];//经度
- let i=0;
- iconTextMarker = that.userList[0].mac+'userMarker';
- let employee_ = that.userList[0].my_info.employee_;
+ if (userList.length > 0) {
+ 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_)
+ debugger;
that.userMarker[iconTextMarker] = new jsmap.JSIconTextMarker({
- id: that.userList[0].my_info.code,
+ id: userList[0].my_info.code,
position: {x: 114.62923138539462, y: 38.8133418942645, z: 0}, //坐标
floorId: 1, //楼层id,默认为1(地面)
image: "/img/user.png",
@@ -1450,75 +1470,70 @@
});
that.userMaskerLayer.addMarker(that.userMarker[iconTextMarker]);
setInterval(function () {
- i=(i+1)%2;
- that.userMaskerLayer.updateMarkerPosition(that.userMarker[iconTextMarker],{
- floorId:1,
- position: {x:lng[i], y:38.8133418942642, z:0},
- animate: {duration: 8000,}
+ i = (i + 1) % 2;
+ that.userMaskerLayer.updateMarkerPosition(that.userMarker[iconTextMarker], {
+ floorId: 1,
+ position: {x: lng[i], y: 38.8133418942642, z: 0},
+ animate: {duration: 10000,}
});//动画效果,持续时间一秒
- },8500)
+ },11000)
}
- /*that.userList.forEach(item => {
- if (item.my_info.code) {
- let employee_ = item.my_info.employee_;
- //{114.62923138539462,38.8133418942642}
- iconTextMarker = new jsmap.JSIconTextMarker({
- id: item.my_info.code,
- position: {x: 114.6315404372349, y: 38.813557855009435, z: 0}, //坐标
- floorId: 1, //楼层id,默认为1(地面)
- image: "/img/user.png",
- text: employee_.name,
- font: '10px sans-serif',
- fontColor: '#ffffff',
- imageHeight: 25,
- imageWidth: 25,
- backgroundColor: 'rgba(0,0,0,0.3)',
- backgroundRadius: 1,
- backgroundStrokeColor: 'rgba(0,0,0,0.3)',
- backgroundStrokeWidth: 1,
- iconTextType: jsmap.JSIconTextType.TOPTEXT_BOTTOMICON,
- allowPicking: true,
- displayCondition: new jsmap.JSDisplayCondition(0.0, 1000),
- nearFarScale: new jsmap.JSNearFarScale(0.0, 1, 500, 1),
- show: true,
- properties: {
- employee: employee_
- },
- callback: (marker) => {
- return employee_
- }
+ /*setInterval(function () {
+ that.refreshUserMarker();
+ }, 8500)*/
+ },
+ //更新人员标记
+ refreshUserMarker() {
+ let that = this;
+ that.$API.third.blt.all.req().then(res => {
+ if (res.err_msg) {
+ } else {
+ let userList = res.filter(item => {
+ return item.my_info.employee
});
- that.userMaskerLayer.addMarker(iconTextMarker);
- iconTextMarker1 = new jsmap.JSIconTextMarker({
- id: item.my_info.code,
- position: {x: 114.62923138539462, y: 38.8133418942642, z: 0}, //坐标
- floorId: 1, //楼层id,默认为1(地面)
- image: "/img/user.png",
- text: employee_.name,
- font: '10px sans-serif',
- fontColor: '#ffffff',
- imageHeight: 25,
- imageWidth: 25,
- backgroundColor: 'rgba(0,0,0,0.3)',
- backgroundRadius: 1,
- backgroundStrokeColor: 'rgba(0,0,0,0.3)',
- backgroundStrokeWidth: 1,
- iconTextType: jsmap.JSIconTextType.TOPTEXT_BOTTOMICON,
- allowPicking: true,
- displayCondition: new jsmap.JSDisplayCondition(0.0, 1000),
- nearFarScale: new jsmap.JSNearFarScale(0.0, 1, 500, 1),
- show: true,
- properties: {
- employee: employee_
- },
- callback: (marker) => {
- return employee_
- }
- });
- that.userMaskerLayer.addMarker(iconTextMarker1);
+ let addUser = that.func(userList, that.userList)[0];
+ let refreshList = that.func(userList, that.userList)[1];
+ let subUser = that.func(that.userList, userList)[0];
+ that.userList = refreshList.concat(addUser);//更新userList
+ that.showUserMarkers(addUser);//增加新进在线员工
+ //that.userMaskerLayer.removeMarker(sectorMarker)(addUser);//删除离线员工
+ refreshList.forEach(item => {
+ that.userMaskerLayer.updateMarkerPosition(that.userMarker[item.id], {
+ floorId: 1,
+ position: {x: item.longitude, y: item.latitude, z: item.z},
+ animate: {duration: 1000,}
+ });//动画效果,持续时间一秒
+ })
}
-
- })*/
+ })
+ },
+ //比较两次获取的人数的变动 func(a,b)//a与b相比多出来的
+ func(arr1, arr2) {
+ /*var arr1 = [{name:1},{name:2},{name:3},{name:4}];
+ var arr2 = [{name:2},{name:3},{name:4},{name:5}];*/
+ let arr = [];
+ let list = [];
+ let bool = false;
+ let same = false;
+ for (let i = 0; i < arr1.length; i++) {
+ for (let j = 0; j < arr2.length; j++) {
+ //遇到相同直接跳出循环
+ if (arr1[i].id === arr2[j].id) {
+ same = i;
+ bool = false;
+ break;
+ } else {
+ same = false;
+ bool = i;
+ }
+ }
+ if (same !== false) list.push(arr1[same]);
+ if (bool !== false) arr.push(arr1[bool]);
+ }
+ let arrList = [arr,list];
+ debugger;
+ console.log(arrList);
+ return arrList;
},
//危险作业
showPolygonMarkers() {
@@ -1546,9 +1561,10 @@
});
this.polygonMaskerLayer.addMarker(polygonMarker);
},
+ //危险作业图片标记
showJobDomMarkers() {
let domMarker = new jsmap.JSDomMarker({
- id: 'polygonmark',
+ id: 'polygonmark',
position: new jsmap.JSPoint(114.63168864138028, 38.81254802029822, 0),
floorId: 1,
depthTest: true,
@@ -1738,19 +1754,27 @@
})
},
//员工列表点击
- userRowClick(row){
+ userRowClick(row) {
debugger;
console.log(row);
let that = this;
- that.screenUserItem.name=row.my_info.employee_.name;
- that.screenUserItem.type=row.my_info.employee_.type;
- that.screenUserItem.id=row.my_info.employee_.id;
- that.screenUserItem.photo=row.my_info.employee_.photo?row.my_info.employee_.photo:'';
- that.screenUserItem.post_name=row.my_info.employee_.post_name?row.my_info.employee_.post_name:'';
- that.screenUserItem.belong_dept_name=row.my_info.employee_.belong_dept_name?row.my_info.employee_.belong_dept_name:'';
+ that.screenUserItem.name = row.my_info.employee_.name;
+ that.screenUserItem.type = row.my_info.employee_.type;
+ that.screenUserItem.id = row.my_info.employee_.id;
+ that.screenUserItem.photo = row.my_info.employee_.photo ? row.my_info.employee_.photo : '';
+ that.screenUserItem.post_name = row.my_info.employee_.post_name ? row.my_info.employee_.post_name : '';
+ that.screenUserItem.belong_dept_name = row.my_info.employee_.belong_dept_name ? row.my_info.employee_.belong_dept_name : '';
},
- userTrack(){
-
+ //人员追踪
+ userTrack() {
+ this.tracking = true;
+ window.map.trackMarker(this.userMarker[this.screenUserItem.mac],{
+ range:150
+ })
+ },
+ userUnTrack(){
+ window.map.cancelTrack();
+ this.tracking = false;
},
//区域/部门切换
cockpitChange(index) {
@@ -2750,6 +2774,7 @@
border-radius: 4px;
transition: .5s;
z-index: 10;
+
.drop-content-item {
color: #fff;
position: relative;
diff --git a/src/views/hrm/employee.vue b/src/views/hrm/employee.vue
index 15a2bea1..d1791251 100644
--- a/src/views/hrm/employee.vue
+++ b/src/views/hrm/employee.vue
@@ -48,9 +48,7 @@
>
- {{
- scope.row.belong_dept_.name
- }}
+ {{scope.row.belong_dept_.name}}
绑定证书
-
+
查看
-
+
编辑
-
+
-
+
{
- this.bltList = res/*.filter(item=>{
- return item.my_info.code === undefined
- })*/
+ getBltList() {
+ let that = this;
+ that.$API.third.tdevice.list.req({type: 30, page: 0}).then(res => {
+ that.tdevice = res;
+ that.bltList = res.filter(item => {
+ return item.employee_ === null
+ })
+ ;
+ console.log(res);
+ console.log(that.bltList);
})
},
- handleBindBlt(type,row) {
+ handleBindBlt(type, row) {
+ this.dis = false;
this.bindBltName = row.name;
this.form.type = type;
this.form.employee = row.id;
+ if(type===20){
+ this.dis = true;
+ this.form.blt = row.blt_.id;
+ }
this.showBindBlt = true;
},
- submitBindBlt(){
- this.$API.third.tdevice.bltBind.req(this.form).then(res=>{
- this.bltList = res.filter(item=>{
-
- })
+ submitBindBlt() {
+ let that = this;
+ that.$API.third.tdevice.bltBind.req(this.form).then(res => {
+ if(res.err_msg){}else{
+ that.showBindBlt = false;
+ that.$refs.table.refresh();
+ }
})
},
},