From fbde521b53ed8fc5bdb9c4bbb6cf8f6871378ec2 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Fri, 26 Nov 2021 10:09:06 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/zhba_regulatory
---
src/views/home/index_1600_900.scss | 60 +
src/views/map/carGps.vue | 227 +++++
src/api/map/people.js | 18
src/store/modules/user.js | 2
package-lock.json | 44 +
src/router/axios.js | 2
src/views/statisticalQueryManagement/businessStatisticsFwdq.vue | 6
src/views/statisticalQueryManagement/securityGuardDetail.vue | 2
src/views/map/carGps copy.vue | 422 ++++++++++++
src/views/home/index.scss | 47 +
src/views/commandQuery/taskDistribution.vue | 77 +
src/views/home/index.vue | 925 ++++++++++++++------------
src/api/index/index.js | 2
src/views/map/peopleGps.vue | 99 ++
src/views/home/index_1280_1024.scss | 59 +
package.json | 2
src/api/map/car.js | 24
17 files changed, 1,473 insertions(+), 545 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 8d9d4bc..a14fed7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5391,6 +5391,31 @@
"resolved": "https://registry.nlark.com/d3-array/download/d3-array-1.2.4.tgz",
"integrity": "sha1-Y1zk1e6nWfb2BYY9vPww7cc39x8="
},
+ "d3-dsv": {
+ "version": "3.0.1",
+ "resolved": "https://registry.nlark.com/d3-dsv/download/d3-dsv-3.0.1.tgz",
+ "integrity": "sha1-xjr5ePTWoNCEpSpnOSK+IWB4m3M=",
+ "requires": {
+ "commander": "7",
+ "iconv-lite": "0.6",
+ "rw": "1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/commander/download/commander-7.2.0.tgz?cache=0&sync_timestamp=1634886357672&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcommander%2Fdownload%2Fcommander-7.2.0.tgz",
+ "integrity": "sha1-o2y1fQtQHOEI5NIFWaFQo5HZerc="
+ },
+ "iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.nlark.com/iconv-lite/download/iconv-lite-0.6.3.tgz",
+ "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ }
+ }
+ }
+ },
"d3-geo": {
"version": "1.7.1",
"resolved": "https://registry.nlark.com/d3-geo/download/d3-geo-1.7.1.tgz",
@@ -6133,6 +6158,11 @@
"is-date-object": "^1.0.1",
"is-symbol": "^1.0.2"
}
+ },
+ "es6-promise": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.8.tgz",
+ "integrity": "sha1-TrIVlMlyvEBVPSduUQU5FD21Pgo="
},
"escalade": {
"version": "3.1.1",
@@ -6933,6 +6963,15 @@
"requires": {
"inherits": "^2.0.3",
"readable-stream": "^2.3.6"
+ }
+ },
+ "flv.js": {
+ "version": "1.6.2",
+ "resolved": "https://registry.nlark.com/flv.js/download/flv.js-1.6.2.tgz",
+ "integrity": "sha1-+jNA/j9+4B05d/eHau5muENuWSI=",
+ "requires": {
+ "es6-promise": "^4.2.8",
+ "webworkify-webpack": "^2.1.5"
}
},
"follow-redirects": {
@@ -14439,6 +14478,11 @@
"integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
"dev": true
},
+ "webworkify-webpack": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npm.taobao.org/webworkify-webpack/download/webworkify-webpack-2.1.5.tgz",
+ "integrity": "sha1-v0M2YkwGJsvoXPH/3hV/eqkLHRw="
+ },
"which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
diff --git a/package.json b/package.json
index c6e557a..a68e805 100644
--- a/package.json
+++ b/package.json
@@ -17,9 +17,11 @@
"babel-polyfill": "^6.26.0",
"classlist-polyfill": "^1.2.0",
"crypto-js": "^4.0.0",
+ "d3-dsv": "^3.0.1",
"echarts": "^5.1.2",
"element-ui": "^2.15.1",
"file-saver": "^2.0.5",
+ "flv.js": "^1.6.2",
"js-base64": "^2.5.1",
"js-cookie": "^2.2.0",
"js-md5": "^0.7.3",
diff --git a/src/api/index/index.js b/src/api/index/index.js
index 7bae3f0..c22df6f 100644
--- a/src/api/index/index.js
+++ b/src/api/index/index.js
@@ -87,7 +87,7 @@
method: "post"
});
};
-// 资格审查异常人员清单
+// 资格审查异常人员清单/现实表现差人员清单
export const qualificationPages = params => {
return request({
url: "/api/blade-user/pages",
diff --git a/src/api/map/car.js b/src/api/map/car.js
index cfb85a1..7eab094 100644
--- a/src/api/map/car.js
+++ b/src/api/map/car.js
@@ -23,3 +23,27 @@
params: param
})
}
+
+export const getNewPosition = (param) => {
+ return request({
+ url: '/api/car/locationcar',
+ method: 'get',
+ params: param
+ })
+}
+
+export const getNewCarTark = (param) => {
+ return request({
+ url: '/api/car/locationhistoryTrack',
+ method: 'get',
+ params: param
+ })
+}
+
+export const getVideoSrc = (param) => {
+ return request({
+ url: '/api/car/cmd',
+ method: 'get',
+ params: param
+ })
+}
diff --git a/src/api/map/people.js b/src/api/map/people.js
index 8098bed..5f37987 100644
--- a/src/api/map/people.js
+++ b/src/api/map/people.js
@@ -38,4 +38,20 @@
method: 'get',
params: param
})
-}
\ No newline at end of file
+}
+
+export const getNewPeople = (param) => {
+ return request({
+ url: '/api/car/Peo',
+ method: 'get',
+ params: param
+ })
+}
+
+export const getNewTark = (param) => {
+ return request({
+ url: '/api/car/Peog',
+ method: 'get',
+ params: param
+ })
+}
diff --git a/src/router/axios.js b/src/router/axios.js
index 9d05a2f..ccded2a 100644
--- a/src/router/axios.js
+++ b/src/router/axios.js
@@ -17,7 +17,7 @@
import 'nprogress/nprogress.css';
//默认超时时间
-axios.defaults.timeout = 10000;
+axios.defaults.timeout = 60000;
//返回其他状态码
axios.defaults.validateStatus = function (status) {
return status >= 200 && status <= 500;
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index fff4a83..8512ba8 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -239,7 +239,7 @@
},
SET_USER_INFO: (state, userInfo) => {
if (validatenull(userInfo.avatar)) {
- userInfo.avatar = "http://47.49.36.190:9000/zhba/upload/picture/mrtx.png\n";
+ userInfo.avatar = "http://47.49.36.190:9000/zhba/upload/picture/mrtx.png";
}
state.userInfo = userInfo;
setStore({ name: 'userInfo', content: state.userInfo })
diff --git a/src/views/commandQuery/taskDistribution.vue b/src/views/commandQuery/taskDistribution.vue
index eed42be..37beb26 100644
--- a/src/views/commandQuery/taskDistribution.vue
+++ b/src/views/commandQuery/taskDistribution.vue
@@ -2,7 +2,7 @@
* @Author: Morpheus
* @Date: 2021-07-07 17:30:05
* @Last Modified by: Morpheus
- * @Last Modified time: 2021-11-17 09:21:36
+ * @Last Modified time: 2021-11-25 14:54:40
* menu-name 监管信息
*/
<template>
@@ -43,7 +43,7 @@
:visible.sync="seeLocationFlag"
:modal-append-to-body="false"
width="width">
- <Map ref="locationForm" />
+ <Map v-if="seeLocationFlag" ref="locationForm" />
</el-dialog>
<el-dialog class="see-track"
@@ -67,7 +67,7 @@
</el-button>
</div>
- <Map ref="tarckForm" />
+ <Map v-if="seeTrackFlag" ref="tarckForm" />
</el-dialog>
</basic-container>
</template>
@@ -84,7 +84,8 @@
// import { datasing } from "./dataqualificationExamination";
// import { getList } from "@/api/qualificationExamination/qualificationExamination";
import { getLisperetaskDistribution } from "@/api/commandQuery/commandQuery";
-import { getDirectiveLiveLocationVoList, getDirectiveLocusInfoList } from "@/api/map/people";
+import { getDirectiveLiveLocationVoList, getDirectiveLocusInfoList, getNewPeople, getNewTark } from "@/api/map/people";
+
import peoplePng from "@/assets/img/people.png";
export default {
@@ -380,13 +381,17 @@
this.seeLocationFlag = true
getDirectiveLiveLocationVoList({ type: 1, userIds: row.receiveDirectiveIds }).then((result) => {
- var res = result.data.data;
- if (JSON.stringify(res) != "[]") {
- res.forEach((data)=>{
+ getNewPeople().then(res => {
+
+ if (JSON.stringify(res.data) != "{}") {
+ var arr = res.data.sort(function (a, b) {
+ return a['date'] < b['date'] ? 1 : -1
+ })
+
this.$refs.locationForm.addEntitys(
{
- LGTD: data.longitude,
- LTTD: data.latitude,
+ LGTD: arr[0].gis_jd,
+ LTTD: arr[0].gis_wd,
name: "人员位置",
},
peoplePng,
@@ -394,9 +399,25 @@
"peoplelayer",
"peopleAddlayer"
);
- })
+ }
+ })
- }
+ // var res = result.data.data;
+ // if (JSON.stringify(res) != "[]") {
+ // res.forEach((data)=>{
+ // this.$refs.locationForm.addEntitys(
+ // {
+ // LGTD: data.longitude,
+ // LTTD: data.latitude,
+ // name: "人员位置",
+ // },
+ // peoplePng,
+ // 0.5,
+ // "peoplelayer",
+ // "peopleAddlayer"
+ // );
+ // })
+ // }
});
},
@@ -449,20 +470,38 @@
startTime: start,
endTime: end,
}).then((res) => {
- var result = res.data.data;
- if (JSON.stringify(res) != "[]") {
- result.forEach((item) => {
- if (item.length > 1) {
+ getNewTark().then(res => {
+
+ if (JSON.stringify(res.data.track) != "{}") {
+
+ if (res.data.track.length > 1) {
let arr = [];
- item.forEach((data) => {
- arr.push([Number(data.longitude), Number(data.latitude)]);
+ res.data.track.forEach((item) => {
+ arr.push([Number(item.gis_jd), Number(item.gis_wd)]);
});
this.$refs.tarckForm.addLines(arr);
}
- })
- }
+
+ }
+
+ })
+
+ // var result = res.data.data;
+ // if (JSON.stringify(res) != "[]") {
+ // result.forEach((item) => {
+ // if (item.length > 1) {
+ // let arr = [];
+
+ // item.forEach((data) => {
+ // arr.push([Number(data.longitude), Number(data.latitude)]);
+ // });
+
+ // this.$refs.tarckForm.addLines(arr);
+ // }
+ // })
+ // }
});
},
diff --git a/src/views/home/index.scss b/src/views/home/index.scss
index b3f7c47..6c4b929 100644
--- a/src/views/home/index.scss
+++ b/src/views/home/index.scss
@@ -238,12 +238,12 @@
}
}
.middle {
- .el-table {
- width: calc(100% - 40px);
- height: calc(100% - 65px);
- margin: 0px 20px 15px;
- top: 50px;
- }
+ // .el-table {
+ // width: calc(100% - 40px);
+ // height: calc(100% - 65px);
+ // margin: 0px 20px 15px;
+ // top: 50px;
+ // }
/deep/ .el-table--striped .el-table__body tr.el-table__row--striped td {
background: #031d4b !important;
}
@@ -405,10 +405,10 @@
.mapBtn:nth-child(3) {
margin-top: 160px;
}
- /deep/ .el-table__body-wrapper {
- overflow: auto;
- height: calc(100% - 50px);
- }
+ // /deep/ .el-table__body-wrapper {
+ // overflow: auto;
+ // height: calc(100% - 50px);
+ // }
}
.left2-btn {
height: 21px;
@@ -694,3 +694,30 @@
height: 77%;
}
}
+.bottom-table{
+ width: calc(100% - 40px);
+ height: 100%;
+ margin: 0px 20px 15px;
+ top: 50px;
+ .el-table{
+ width: 100%;
+ height: calc(100% - 65px);
+ top: 50px;
+ overflow-y: auto;
+ }
+}
+::-webkit-scrollbar{
+ display: none;
+}
+.dialog-table{
+ top: 0px !important;
+ margin: 0px !important;
+ width: 100% !important;
+ height: calc(100% - 50px) !important;
+ overflow: auto;
+ .el-table{
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ }
+}
diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index f6e0e4e..70bdd3e 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -115,119 +115,121 @@
<div class="leftbottom"></div>
<div class="righttop"></div>
<div class="rightbottom"></div>
- <el-table :data="tableData" stripe ref="indexTable">
- <template v-if="curTableType === 2">
- <el-table-column
- :key="curTableType"
- type="index"
- label="序号"
- width="50"
- ></el-table-column>
- <el-table-column
- :key="curTableType"
- prop="carNum"
- label="押运车辆车牌号"
- width="180"
- ></el-table-column>
- <el-table-column
- :key="curTableType"
- show-overflow-tooltip
- prop="location"
- label="实时位置"
- ></el-table-column>
- <el-table-column
- :key="curTableType"
- show-overflow-tooltip
- prop="company"
- label="所属公司"
- ></el-table-column>
- <el-table-column
- :key="curTableType"
- show-overflow-tooltip
- prop="linkman"
- label="联系人"
- ></el-table-column>
- <el-table-column
- :key="curTableType"
- show-overflow-tooltip
- prop="tel"
- label="联系电话"
- ></el-table-column>
- </template>
- <template v-if="curTableType === 1">
- <el-table-column
- :key="curTableType"
- type="index"
- label="序号"
- width="50"
- ></el-table-column>
- <el-table-column
- :key="curTableType"
- show-overflow-tooltip
- prop="name"
- label="押运人员名称"
- width="180"
- ></el-table-column>
- <el-table-column
- :key="curTableType"
- show-overflow-tooltip
- prop="location"
- label="实时位置"
- ></el-table-column>
- <el-table-column
- :key="curTableType"
- show-overflow-tooltip
- prop="company"
- label="所属公司"
- ></el-table-column>
- <el-table-column
- :key="curTableType"
- show-overflow-tooltip
- prop="tel"
- label="联系电话"
- ></el-table-column>
- <!-- <el-table-column :key="curTableType" prop="bz" label="备注">
+ <div class="bottom-table">
+ <el-table :data="tableData" stripe ref="indexTable">
+ <template v-if="curTableType === 2">
+ <el-table-column
+ :key="curTableType"
+ type="index"
+ label="序号"
+ width="50"
+ ></el-table-column>
+ <el-table-column
+ :key="curTableType"
+ prop="carNum"
+ label="押运车辆车牌号"
+ width="180"
+ ></el-table-column>
+ <el-table-column
+ :key="curTableType"
+ show-overflow-tooltip
+ prop="location"
+ label="实时位置"
+ ></el-table-column>
+ <el-table-column
+ :key="curTableType"
+ show-overflow-tooltip
+ prop="company"
+ label="所属公司"
+ ></el-table-column>
+ <el-table-column
+ :key="curTableType"
+ show-overflow-tooltip
+ prop="linkman"
+ label="联系人"
+ ></el-table-column>
+ <el-table-column
+ :key="curTableType"
+ show-overflow-tooltip
+ prop="tel"
+ label="联系电话"
+ ></el-table-column>
+ </template>
+ <template v-if="curTableType === 1">
+ <el-table-column
+ :key="curTableType"
+ type="index"
+ label="序号"
+ width="50"
+ ></el-table-column>
+ <el-table-column
+ :key="curTableType"
+ show-overflow-tooltip
+ prop="name"
+ label="押运人员名称"
+ width="180"
+ ></el-table-column>
+ <el-table-column
+ :key="curTableType"
+ show-overflow-tooltip
+ prop="location"
+ label="实时位置"
+ ></el-table-column>
+ <el-table-column
+ :key="curTableType"
+ show-overflow-tooltip
+ prop="company"
+ label="所属公司"
+ ></el-table-column>
+ <el-table-column
+ :key="curTableType"
+ show-overflow-tooltip
+ prop="tel"
+ label="联系电话"
+ ></el-table-column>
+ <!-- <el-table-column :key="curTableType" prop="bz" label="备注">
</el-table-column>-->
- </template>
- <template v-if="curTableType === 3">
- <el-table-column
- :key="curTableType"
- type="index"
- label="序号"
- width="50"
- ></el-table-column>
- <el-table-column
- :key="curTableType"
- show-overflow-tooltip
- prop="number"
- label="枪支编号"
- width="180"
- ></el-table-column>
- <el-table-column
- :key="curTableType"
- show-overflow-tooltip
- prop="location"
- label="实时位置"
- ></el-table-column>
- <el-table-column
- :key="curTableType"
- show-overflow-tooltip
- prop="company"
- label="所属公司"
- ></el-table-column>
- <el-table-column
- :key="curTableType"
- show-overflow-tooltip
- prop="linkman"
- label="负责人"
- ></el-table-column>
- <el-table-column
- :key="curTableType"
- prop="tel"
- label="联系电话"
- ></el-table-column>
- </template>
- </el-table>
+ </template>
+ <template v-if="curTableType === 3">
+ <el-table-column
+ :key="curTableType"
+ type="index"
+ label="序号"
+ width="50"
+ ></el-table-column>
+ <el-table-column
+ :key="curTableType"
+ show-overflow-tooltip
+ prop="number"
+ label="枪支编号"
+ width="180"
+ ></el-table-column>
+ <el-table-column
+ :key="curTableType"
+ show-overflow-tooltip
+ prop="location"
+ label="实时位置"
+ ></el-table-column>
+ <el-table-column
+ :key="curTableType"
+ show-overflow-tooltip
+ prop="company"
+ label="所属公司"
+ ></el-table-column>
+ <el-table-column
+ :key="curTableType"
+ show-overflow-tooltip
+ prop="linkman"
+ label="负责人"
+ ></el-table-column>
+ <el-table-column
+ :key="curTableType"
+ prop="tel"
+ label="联系电话"
+ ></el-table-column>
+ </template>
+ </el-table>
+ </div>
</div>
</div>
<div class="right">
@@ -269,8 +271,12 @@
<img src="../../../public/img/bajgxt/u4.png" />
<img src="../../../public/img/bajgxt/u256.png" />
<img src="../../../public/img/bajgxt/u1.png" />
- <span>{{ rightData.poorPerformance }}</span>
- <span>现实表现差</span>
+ <span class="showDialog" @click="shoeDialog('xs')">{{
+ rightData.poorPerformance
+ }}</span>
+ <span class="showDialog" @click="shoeDialog('xs')"
+ >现实表现差</span
+ >
</div>
<div class="card-list">
<img src="../../../public/img/bajgxt/u4.png" />
@@ -389,307 +395,321 @@
element-loading-text="数据加载中"
:visible.sync="dialogTableVisible"
>
- <el-table :data="gridData.data">
- <template v-if="gridData.type === 'zg'">
- <el-table-column
- label="序号"
- width="50"
- :key="gridData.type"
- type="index"
- >
- </el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="realName"
- label="保安姓名"
- :show-overflow-tooltip="true"
- width="100"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="deptName"
- label="保安公司"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="sex"
- label="性别"
- :formatter="sexFormatter"
- :show-overflow-tooltip="true"
- width="100"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="cardid"
- label="身份证号"
- :show-overflow-tooltip="true"
- width="180"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="age"
- label="年龄"
- :show-overflow-tooltip="true"
- width="100"
- ></el-table-column>
- <!-- <el-table-column
+ <div class="dialog-table">
+ <el-table :data="gridData.data">
+ <template v-if="gridData.type === 'zg' || gridData.type === 'xs'">
+ <el-table-column
+ label="序号"
+ width="50"
+ :key="gridData.type"
+ type="index"
+ >
+ </el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="realName"
+ label="保安姓名"
+ :show-overflow-tooltip="true"
+ width="100"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="deptName"
+ label="保安公司"
+ :show-overflow-tooltip="true"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="sex"
+ label="性别"
+ :formatter="sexFormatter"
+ :show-overflow-tooltip="true"
+ width="100"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="cardid"
+ label="身份证号"
+ :show-overflow-tooltip="true"
+ width="180"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="age"
+ label="年龄"
+ :show-overflow-tooltip="true"
+ width="100"
+ ></el-table-column>
+ <!-- <el-table-column
prop="birthday"
label="出生日期"
:show-overflow-tooltip="true"
></el-table-column> -->
- <el-table-column
- :key="gridData.type"
- prop="securitynumber"
- label="保安员证编号"
- :show-overflow-tooltip="true"
- width="150"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="phone"
- label="联系方式"
- :show-overflow-tooltip="true"
- width="150"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="examinationType"
- label="审查状态"
- :formatter="examinationFormatter"
- :show-overflow-tooltip="true"
- width="100"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="examinationMx"
- label="审查明细"
- :show-overflow-tooltip="true"
- width="150"
- ></el-table-column>
- </template>
- <template v-if="gridData.type === 'wg'">
- <el-table-column
- label="序号"
- width="50"
- :key="gridData.type"
- type="index"
- >
- </el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="enterpriseName"
- label="公司名称"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="znum"
- label="保安员数量"
- :show-overflow-tooltip="true"
- width="150"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="cznum"
- label="持证保安"
- :show-overflow-tooltip="true"
- width="150"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="czl"
- label="持证率"
- :show-overflow-tooltip="true"
- width="150"
- >
- </el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="sbnum"
- label="缴纳社保人数"
- :show-overflow-tooltip="true"
- width="150"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="sbl"
- label="缴纳社保比例"
- :show-overflow-tooltip="true"
- width="150"
- ></el-table-column>
- </template>
- <template v-if="gridData.type === 'jy'">
- <el-table-column
- label="序号"
- width="50"
- :key="gridData.type"
- type="index"
- >
- </el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="enterpriseName"
- label="公司名称"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="znum"
- label="保安员数量"
- :show-overflow-tooltip="true"
- width="150"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="cznum"
- label="持证保安"
- :show-overflow-tooltip="true"
- width="150"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="painum"
- label="派遣人数"
- :show-overflow-tooltip="true"
- width="150"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="fwnum"
- label="服务对象数量"
- :show-overflow-tooltip="true"
- width="150"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="pql"
- label="派遣率"
- :show-overflow-tooltip="true"
- width="150"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="pjpqrs"
- label="平均派遣人数"
- :show-overflow-tooltip="true"
- width="150"
- ></el-table-column>
- </template>
- <template v-if="gridData.type === 'ym'">
- <el-table-column
- label="序号"
- width="50"
- :key="gridData.type"
- type="index"
- >
- </el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="enterpriseName"
- label="公司名称"
- :show-overflow-tooltip="true"
- width="450"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="znum"
- label="保安员数量"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="cznum"
- label="持证保安"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="painum"
- label="派遣人数"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="fwnum"
- label="服务对象数量"
- :show-overflow-tooltip="true"
- ></el-table-column
- >gridData
- </template>
- <template v-if="gridData.type === 'jg'">
- <el-table-column
- label="序号"
- width="50"
- :key="gridData.type"
- type="index"
- >
- </el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="enterpriseName"
- label="公司名称"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="punishtype"
- label="处罚类别"
- :formatter="punishType"
- :show-overflow-tooltip="true"
- width="150"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="punishreason"
- label="处罚原因"
- :show-overflow-tooltip="true"
- width="200"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="penalty"
- label="处罚单位"
- :show-overflow-tooltip="true"
- width="200"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="punishtime"
- label="处罚时间"
- :show-overflow-tooltip="true"
- width="100"
- ></el-table-column>
- </template>
- <template v-if="gridData.type === 'ywdx_gs'">
- <el-table-column
- label="序号"
- width="50"
- :key="gridData.type"
- type="index"
- >
- </el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="enterprisename"
- label="保安公司名称"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="stats"
- label="保安公司类型"
- :formatter="companyFormatter"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :key="gridData.type"
- prop="jurisdictionName"
- label="所属辖区"
- :show-overflow-tooltip="true"
- ></el-table-column>
- </template>
- </el-table>
+ <el-table-column
+ :key="gridData.type"
+ prop="securitynumber"
+ label="保安员证编号"
+ :show-overflow-tooltip="true"
+ width="150"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="phone"
+ label="联系方式"
+ :show-overflow-tooltip="true"
+ width="150"
+ ></el-table-column>
+ <el-table-column
+ v-if="gridData.type === 'zg'"
+ :key="gridData.type"
+ prop="examinationType"
+ label="审查状态"
+ :formatter="examinationFormatter"
+ :show-overflow-tooltip="true"
+ width="100"
+ ></el-table-column>
+ <el-table-column
+ v-if="gridData.type === 'zg'"
+ :key="gridData.type"
+ prop="examinationMx"
+ label="审查明细"
+ :show-overflow-tooltip="true"
+ width="150"
+ ></el-table-column>
+ <el-table-column
+ v-if="gridData.type === 'xs'"
+ :key="gridData.type"
+ prop="score"
+ label="现实表现情况"
+ :show-overflow-tooltip="true"
+ width="150"
+ :formatter="scoreFormatter"
+ ></el-table-column>
+ </template>
+ <template v-if="gridData.type === 'wg'">
+ <el-table-column
+ label="序号"
+ width="50"
+ :key="gridData.type"
+ type="index"
+ >
+ </el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="enterpriseName"
+ label="公司名称"
+ :show-overflow-tooltip="true"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="znum"
+ label="保安员数量"
+ :show-overflow-tooltip="true"
+ width="150"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="cznum"
+ label="持证保安"
+ :show-overflow-tooltip="true"
+ width="150"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="czl"
+ label="持证率"
+ :show-overflow-tooltip="true"
+ width="150"
+ >
+ </el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="sbnum"
+ label="缴纳社保人数"
+ :show-overflow-tooltip="true"
+ width="150"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="sbl"
+ label="缴纳社保比例"
+ :show-overflow-tooltip="true"
+ width="150"
+ ></el-table-column>
+ </template>
+ <template v-if="gridData.type === 'jy'">
+ <el-table-column
+ label="序号"
+ width="50"
+ :key="gridData.type"
+ type="index"
+ >
+ </el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="enterpriseName"
+ label="公司名称"
+ :show-overflow-tooltip="true"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="znum"
+ label="保安员数量"
+ :show-overflow-tooltip="true"
+ width="150"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="cznum"
+ label="持证保安"
+ :show-overflow-tooltip="true"
+ width="150"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="painum"
+ label="派遣人数"
+ :show-overflow-tooltip="true"
+ width="150"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="fwnum"
+ label="服务对象数量"
+ :show-overflow-tooltip="true"
+ width="150"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="pql"
+ label="派遣率"
+ :show-overflow-tooltip="true"
+ width="150"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="pjpqrs"
+ label="平均派遣人数"
+ :show-overflow-tooltip="true"
+ width="150"
+ ></el-table-column>
+ </template>
+ <template v-if="gridData.type === 'ym'">
+ <el-table-column
+ label="序号"
+ width="50"
+ :key="gridData.type"
+ type="index"
+ >
+ </el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="enterpriseName"
+ label="公司名称"
+ :show-overflow-tooltip="true"
+ width="450"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="znum"
+ label="保安员数量"
+ :show-overflow-tooltip="true"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="cznum"
+ label="持证保安"
+ :show-overflow-tooltip="true"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="painum"
+ label="派遣人数"
+ :show-overflow-tooltip="true"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="fwnum"
+ label="服务对象数量"
+ :show-overflow-tooltip="true"
+ ></el-table-column
+ >gridData
+ </template>
+ <template v-if="gridData.type === 'jg'">
+ <el-table-column
+ label="序号"
+ width="50"
+ :key="gridData.type"
+ type="index"
+ >
+ </el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="enterpriseName"
+ label="公司名称"
+ :show-overflow-tooltip="true"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="punishtype"
+ label="处罚类别"
+ :formatter="punishType"
+ :show-overflow-tooltip="true"
+ width="150"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="punishreason"
+ label="处罚原因"
+ :show-overflow-tooltip="true"
+ width="200"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="penalty"
+ label="处罚单位"
+ :show-overflow-tooltip="true"
+ width="200"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="punishtime"
+ label="处罚时间"
+ :show-overflow-tooltip="true"
+ width="100"
+ ></el-table-column>
+ </template>
+ <template v-if="gridData.type === 'ywdx_gs'">
+ <el-table-column
+ label="序号"
+ width="50"
+ :key="gridData.type"
+ type="index"
+ >
+ </el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="enterprisename"
+ label="保安公司名称"
+ :show-overflow-tooltip="true"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="stats"
+ label="保安公司类型"
+ :formatter="companyFormatter"
+ :show-overflow-tooltip="true"
+ ></el-table-column>
+ <el-table-column
+ :key="gridData.type"
+ prop="jurisdictionName"
+ label="所属辖区"
+ :show-overflow-tooltip="true"
+ ></el-table-column>
+ </template>
+ </el-table>
+ </div>
+
<el-pagination
@current-change="changePage"
@size-change="changePage"
@@ -745,6 +765,8 @@
lazyTrees,
getSecurityUnitInfoPage
} from "../../api/index/index";
+import { getPosition, getNewPeople } from "@/api/map/people";
+import { getNewPosition } from "@/api/map/car";
import car from "@/assets/img/car.png";
import peo from "@/assets/img/people.png";
@@ -828,7 +850,9 @@
// },
node1: {}, //选中的记录
node2: {},
- params: null
+ params: null,
+ peopleGps: {},
+ carGps: {}
};
},
computed: {
@@ -840,6 +864,34 @@
}
},
methods: {
+ getPeoplePosition() {
+ getPosition({ type: 1, workerId: "1432897970143014913" }).then(result => {
+ getNewPeople().then(res => {
+ if (JSON.stringify(res.data) != "{}") {
+ var arr = res.data.sort(function(a, b) {
+ return a["date"] < b["date"] ? 1 : -1;
+ });
+ this.peopleGps = {
+ LGTD: arr[0].gis_jd,
+ LTTD: arr[0].gis_wd
+ };
+ }
+ this.getTableData(0);
+ });
+ });
+ },
+ getCarPosition() {
+ getNewPosition({ imei: "861636056082414" }).then(result => {
+ var res = result.data.data;
+ if (JSON.stringify(res) != "{}") {
+ this.carGps = {
+ LGTD: res.x,
+ LTTD: res.y
+ };
+ }
+ this.getTableData(0);
+ });
+ },
//点击节点
handleNodeClick1(data) {
this.value1 = data;
@@ -863,6 +915,11 @@
return "异常";
} else if (row.examinationType === "0") {
return "正常";
+ }
+ },
+ scoreFormatter(row) {
+ if (row.score === "3") {
+ return "差";
}
},
punishType(row) {
@@ -1111,11 +1168,30 @@
// name: type,
// value: [Number(m.longitude), Number(m.latitude)],
// };
- middleData[m.type]["geoData"].push([
- Number(m.longitude),
- Number(m.latitude)
- ]);
- middleData[m.type]["table"].push(obj);
+ if (m.type === 1) {
+ middleData[m.type]["geoData"].push([
+ Number(this.peopleGps.LGTD),
+ Number(this.peopleGps.LTTD)
+ ]);
+ middleData[m.type]["table"].push(obj);
+ } else if (m.type === 2) {
+ middleData[m.type]["geoData"].push([
+ Number(this.carGps.LGTD),
+ Number(this.carGps.LTTD)
+ ]);
+ middleData[m.type]["table"].push(obj);
+ } else {
+ middleData[m.type]["geoData"].push([
+ Number(m.longitude),
+ Number(m.latitude)
+ ]);
+ middleData[m.type]["table"].push(obj);
+ }
+ // middleData[m.type]["geoData"].push([
+ // Number(m.longitude),
+ // Number(m.latitude)
+ // ]);
+ // middleData[m.type]["table"].push(obj);
});
this.carNum = middleData[2]["table"].length;
this.peoNum = middleData[1]["table"].length;
@@ -1170,6 +1246,9 @@
} else if (type === "jg") {
this.gridData.title = "受监管处罚公司清单(保安公司存在被处罚记录)";
this.getPunishList(1);
+ } else if (type === "xs") {
+ this.gridData.title = "现实表现差人员清单";
+ this.getQualificationPages(1);
}
},
getWgTable() {
@@ -1230,7 +1309,7 @@
});
},
changePage(page) {
- if (this.gridData.type === "zg") {
+ if (this.gridData.type === "zg" || this.gridData.type === "xs") {
this.getQualificationPages(page);
} else if (this.gridData.type === "wg") {
this.gridData.data = this.dialogTable.wgTable.slice(
@@ -1260,9 +1339,13 @@
let params = {
current: this.gridData.current,
size: 10,
- examinationType: 1,
jurisdiction: this.value1
};
+ if (this.gridData.type === "zg") {
+ Object.assign(params, { examinationType: 1 });
+ } else if (this.gridData.type === "xs") {
+ Object.assign(params, { score: 3 });
+ }
qualificationPages(params).then(res => {
if (res.data.code === 200) {
this.gridData.data = res.data.data.records;
@@ -1405,12 +1488,14 @@
}
},
mounted() {
+ this.getPeoplePosition();
+ this.getCarPosition();
this.initEchart();
this.getHolderNum(0);
// this.getPoorPerformance(3);
// this.getTableData("car");
// this.initMap();
- this.getTableData(0);
+ // this.getTableData(0);
// this.initMapEchart();
this.getOfficeData();
}
diff --git a/src/views/home/index_1280_1024.scss b/src/views/home/index_1280_1024.scss
index 85157b8..a38d30e 100644
--- a/src/views/home/index_1280_1024.scss
+++ b/src/views/home/index_1280_1024.scss
@@ -238,12 +238,12 @@
}
}
.middle {
- .el-table {
- width: calc(100% - 40px);
- height: calc(100% - 65px);
- margin: 0px 20px 15px;
- top: 50px;
- }
+ // .el-table {
+ // width: calc(100% - 40px);
+ // height: calc(100% - 65px);
+ // margin: 0px 20px 15px;
+ // top: 50px;
+ // }
/deep/ .el-table--striped .el-table__body tr.el-table__row--striped td {
background: #031d4b !important;
}
@@ -408,10 +408,10 @@
.mapBtn:nth-child(3) {
margin-top: 160px;
}
- /deep/ .el-table__body-wrapper {
- overflow: auto;
- height: calc(100% - 50px);
- }
+ // /deep/ .el-table__body-wrapper {
+ // overflow: auto;
+ // height: calc(100% - 50px);
+ // }
}
.left2-btn {
height: 19px;
@@ -663,17 +663,17 @@
/deep/.dialog {
z-index: 10000000 !important;
.el-table {
- top: 0px !important;
- margin: 0px !important;
- width: 100% !important;
- height: calc(100% - 50px) !important;
+ // top: 0px !important;
+ // margin: 0px !important;
+ // width: 100% !important;
+ // height: calc(100% - 50px) !important;
.el-table__header {
background-color: #2d5cc8 !important;
}
.el-table__body-wrapper {
height: calc(100% - 50px);
- overflow-x: hidden;
- overflow-y: auto;
+ // overflow-x: hidden;
+ // overflow-y: auto;
}
}
.el-pagination {
@@ -697,3 +697,30 @@
height: 77%;
}
}
+.bottom-table{
+ width: calc(100% - 40px);
+ height: 100%;
+ margin: 0px 20px 15px;
+ top: 50px;
+ .el-table{
+ width: 100%;
+ height: calc(100% - 65px);
+ top: 50px;
+ overflow-y: auto;
+ }
+}
+::-webkit-scrollbar{
+ display: none;
+}
+.dialog-table{
+ top: 0px !important;
+ margin: 0px !important;
+ width: 100% !important;
+ height: calc(100% - 50px) !important;
+ overflow: auto;
+ .el-table{
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ }
+}
diff --git a/src/views/home/index_1600_900.scss b/src/views/home/index_1600_900.scss
index 90cc048..8d0d434 100644
--- a/src/views/home/index_1600_900.scss
+++ b/src/views/home/index_1600_900.scss
@@ -238,12 +238,12 @@
}
}
.middle {
- .el-table {
- width: calc(100% - 40px);
- height: calc(100% - 65px);
- margin: 0px 20px 15px;
- top: 50px;
- }
+ // .el-table {
+ // width: calc(100% - 40px);
+ // height: calc(100% - 65px);
+ // margin: 0px 20px 15px;
+ // top: 50px;
+ // }
/deep/ .el-table--striped .el-table__body tr.el-table__row--striped td {
background: #031d4b !important;
}
@@ -407,10 +407,10 @@
.mapBtn:nth-child(3) {
margin-top: 160px;
}
- /deep/ .el-table__body-wrapper {
- overflow: auto;
- height: calc(100% - 50px);
- }
+ // /deep/ .el-table__body-wrapper {
+ // overflow: auto;
+ // height: calc(100% - 50px);
+ // }
}
.left2-btn {
height: 21px;
@@ -662,17 +662,16 @@
/deep/.dialog {
z-index: 10000000 !important;
.el-table {
- top: 0px !important;
- margin: 0px !important;
- width: 100% !important;
- height: calc(100% - 50px) !important;
+ // top: 0px !important;
+ // margin: 0px !important;
+ // width: 100% !important;
+ // height: calc(100% - 50px) !important;
.el-table__header {
background-color: #2d5cc8 !important;
}
.el-table__body-wrapper {
- height: calc(100% - 50px);
- overflow-x: hidden;
- overflow-y: auto;
+ height: 100%;
+ overflow:hidden;
}
}
.el-pagination {
@@ -696,3 +695,30 @@
height: 77%;
}
}
+.bottom-table{
+ width: calc(100% - 40px);
+ height: 100%;
+ margin: 0px 20px 15px;
+ top: 50px;
+ .el-table{
+ width: 100%;
+ height: calc(100% - 65px);
+ top: 50px;
+ overflow-y: auto;
+ }
+}
+::-webkit-scrollbar{
+ display: none;
+}
+.dialog-table{
+ top: 0px !important;
+ margin: 0px !important;
+ width: 100% !important;
+ height: calc(100% - 30px) !important;
+ // overflow: auto;
+ .el-table{
+ width: 100%;
+ height: 100%;
+ overflow-y: auto;
+ }
+}
diff --git a/src/views/map/carGps copy.vue b/src/views/map/carGps copy.vue
new file mode 100644
index 0000000..f34b320
--- /dev/null
+++ b/src/views/map/carGps copy.vue
@@ -0,0 +1,422 @@
+/*
+ * @Author: Morpheus
+ * @Date: 2021-07-05 16:31:54
+ * @Last Modified by: Morpheus
+ * @Last Modified time: 2021-11-17 09:20:19
+ * menu-name 押运人员定位
+ */
+<template>
+ <el-row class="morpheus-map-box">
+ <el-col :span="24">
+ <el-card>
+ <div class="card-body">
+ <div>
+ <Map @childParameter="childParameter"
+ ref="modalForm" />
+ </div>
+ <div>
+ <div class="data-table map-people-table"
+ v-show="!detailFlag">
+ <el-table :data="tableData"
+ style="width: 100%"
+ v-loading="loading">
+ <el-table-column align="center"
+ prop="mode"
+ label="车辆型号"
+ width="136">
+ </el-table-column>
+
+ <el-table-column align="center"
+ prop="personInCharge"
+ label="责任人">
+ </el-table-column>
+
+ <el-table-column label="操作"
+ width="136"
+ align="center">
+ <template slot-scope="scope">
+ <el-button @click="positionClick(scope.row)"
+ type="text"
+ size="small"
+ title="定位">
+ <i class="el-icon-location"></i>
+ </el-button>
+ <el-button @click="detailsClick(scope.row)"
+ type="text"
+ size="small"
+ title="轨迹">
+ <i class="el-icon-position"></i>
+ </el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <div ref="tablePagination">
+ <el-pagination @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ background
+ :page-sizes="[10, 30, 50, 100]"
+ layout="sizes, prev, pager, next"
+ :current-page="page.currentPage"
+ :page-size="page.pageSize"
+ :pager-count="3"
+ :total="page.total">
+ </el-pagination>
+ </div>
+ </div>
+ <div class="track-box"
+ v-show="detailFlag">
+ <div>
+ <el-button @click="goOut"
+ type="text"
+ size="small"
+ title="轨迹">
+ <i class="el-icon-back"></i>
+ </el-button>
+
+ 详细资料及轨迹查询
+ </div>
+ <ul>
+ <li>
+ <div>车辆型号:</div>
+ <div>{{ detailObj.mode }}</div>
+ </li>
+
+ <li>
+ <div>责任人:</div>
+ <div>{{ detailObj.personInCharge }}</div>
+ </li>
+
+ <li>
+ <div>出场日期:</div>
+ <div>{{ detailObj.dateForProduction }}</div>
+ </li>
+
+ <li>
+ <div>厂商:</div>
+ <div>{{ detailObj.brand }}</div>
+ </li>
+
+ <li>
+ <div>选择时间:</div>
+ <div class="datetime">
+ <el-date-picker v-model="trackTime"
+ type="datetimerange"
+ range-separator="至"
+ start-placeholder="开始日期"
+ size="mini"
+ :editable="false"
+ end-placeholder="结束日期">
+ </el-date-picker>
+ </div>
+ </li>
+
+ <li>
+ <el-button type="text"
+ @click="lookTrack">
+ 查看轨迹
+ </el-button>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </el-card>
+
+ <el-dialog title=""
+ :modal='false'
+ :visible.sync="dialogVisible"
+ :before-close="dialogBeforeClose"
+ :close-on-click-modal='false'
+ class="car-video-box">
+ <iframe src="/carVideo/parent.html"
+ ref="videoIframe"
+ frameborder="0"></iframe>
+ </el-dialog>
+ </el-col>
+ </el-row>
+</template>
+
+<script>
+import { getCarList, getPosition, getTrack } from "@/api/map/car";
+
+import carPng from "@/assets/img/car.png";
+
+export default {
+ data () {
+ return {
+ tableData: [],
+ page: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 0,
+ },
+ detailFlag: false,
+ loading: true,
+ trackTime: [],
+ detailObj: {},
+ dialogVisible: false,
+ map: null,
+ };
+ },
+ created () {
+ this.getList();
+ },
+ mounted () {
+
+
+
+
+
+ },
+ methods: {
+ getList () {
+ getCarList({
+ current: this.page.currentPage,
+ size: this.page.pageSize,
+ }).then((res) => {
+ var data = res.data.data;
+ this.tableData = data.records;
+ this.page.total = data.total;
+ this.loading = false;
+ });
+ },
+ handleSizeChange (val) {
+ this.page.pageSize = val;
+ this.loading = true;
+ this.getList();
+ },
+ handleCurrentChange (val) {
+ this.page.currentPage = val;
+ this.loading = true;
+ this.getList();
+ },
+
+ positionClick (val) {
+ getPosition({ type: 2, workerId: val.id }).then((result) => {
+ var res = result.data.data;
+ if (JSON.stringify(res) != "{}") {
+ this.$refs.modalForm.addEntitys(
+ {
+ LGTD: 115.86,
+ LTTD: 28.71,
+ name: "枪支位置",
+ },
+ carPng,
+ 0.8,
+ "gunlayer",
+ "gunAddlayer"
+ );
+ }
+ });
+ },
+
+ detailsClick (row) {
+ this.detailFlag = true;
+ this.detailObj = {
+ mode: row.mode,
+ personInCharge: row.personInCharge,
+ dateForProduction: row.dateForProduction,
+ brand: row.brand,
+ id: row.id,
+ };
+ },
+
+ lookTrack () {
+ if (this.trackTime.length == 0) {
+ this.$message({ message: "请选择开始时间", duration: 2000 });
+ return;
+ }
+ const startTime = new Date(this.trackTime[0]);
+ const start =
+ startTime.getFullYear() +
+ "-" +
+ this.disposeTime(startTime.getMonth() + 1) +
+ "-" +
+ this.disposeTime(startTime.getDate()) +
+ " " +
+ this.disposeTime(startTime.getHours()) +
+ ":" +
+ this.disposeTime(startTime.getMinutes()) +
+ ":" +
+ this.disposeTime(startTime.getSeconds());
+ if (this.trackTime.length == 1) {
+ this.$message({ message: "请选择结束时间", duration: 2000 });
+ return;
+ }
+ const endTime = new Date(this.trackTime[1]);
+ const end =
+ endTime.getFullYear() +
+ "-" +
+ this.disposeTime(endTime.getMonth() + 1) +
+ "-" +
+ this.disposeTime(endTime.getDate()) +
+ " " +
+ this.disposeTime(endTime.getHours()) +
+ ":" +
+ this.disposeTime(endTime.getMinutes()) +
+ ":" +
+ this.disposeTime(endTime.getSeconds());
+
+ getTrack({
+ workerId: this.detailObj.id,
+ type: 2,
+ startTime: start,
+ endTime: end,
+ }).then((res) => {
+ var result = res.data.data;
+ if (result.length > 1) {
+ let arr = [];
+
+ result.forEach((item) => {
+ arr.push([Number(item.longitude), Number(item.latitude)]);
+ });
+
+ this.$refs.modalForm.addLines(arr);
+ }
+ });
+ },
+ // 处理时间补零操作
+ disposeTime (s) {
+ return s < 10 ? "0" + s : s;
+ },
+
+ goOut () {
+ this.detailFlag = !this.detailFlag;
+ this.$refs.modalForm.clearLine();
+ this.trackTime = [];
+ },
+
+ childParameter (data) {
+ this.map = data;
+ this.$nextTick(function () {
+ data.on('singleclick', this.realVideo)
+ })
+
+ },
+
+ realVideo (e) {
+ var that = this;
+ // 在点击时获取像素区域
+ var pixel = this.map.getEventPixel(e.originalEvent)
+
+ this.map.forEachFeatureAtPixel(pixel, function (feature) {
+
+ const cont = feature.values_.attributes
+
+ if (cont != undefined) {
+ that.dialogVisible = true
+
+ setTimeout(() =>{
+ that.$refs.videoIframe.contentWindow.startVideo()
+ },3000);
+ }
+ })
+
+ },
+
+ dialogBeforeClose() {
+ this.dialogVisible = false
+
+ this.$refs.videoIframe.contentWindow.closeVideo()
+
+ }
+
+ },
+ destroyed () {
+ window.ol2d.removeLayer(this.peopleAddlayer);
+ },
+};
+</script>
+
+<style lang="scss" scoped>
+.data-table {
+ border: 1px solid transparent !important;
+ box-shadow: 3px 3px 15px -2px rgb(0, 0, 0) !important;
+}
+.card-body {
+ display: flex;
+ & > div:first-child {
+ flex: 8;
+ }
+
+ & > div:last-child {
+ position: relative;
+
+ flex: 3;
+ & > div {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+
+ & > .el-table {
+ height: calc(100% - 34px);
+ }
+ }
+
+ .track-box {
+ & > div {
+ position: relative;
+ height: 42px;
+ line-height: 42px;
+ text-align: center;
+ color: #fff;
+ border-bottom: 1px solid #fff;
+ .el-button {
+ padding: 0 !important;
+ position: absolute;
+ top: 4px;
+ left: 4px;
+ width: 42px;
+ height: 28px;
+ line-height: 28px;
+ }
+ }
+ ul {
+ margin: 0;
+ padding: 0px;
+ }
+ li {
+ margin: 0;
+ padding: 0 4px;
+ list-style: none;
+ height: 42px;
+ line-height: 42px;
+ display: flex;
+ color: #fff;
+ border-bottom: 1px solid #fff;
+ & > div {
+ text-align: center;
+ }
+ & > div:first-child {
+ flex: 2;
+ }
+ & > div:last-child {
+ flex: 6;
+ & > div {
+ width: 100% !important;
+ }
+ }
+ }
+
+ li:last-child {
+ text-align: center;
+ position: relative;
+ .el-button {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ margin: auto;
+ padding: 0 !important;
+ width: 68px;
+ height: 32px;
+ line-height: 32px;
+ }
+ }
+ }
+ }
+}
+</style>
diff --git a/src/views/map/carGps.vue b/src/views/map/carGps.vue
index f34b320..73a1371 100644
--- a/src/views/map/carGps.vue
+++ b/src/views/map/carGps.vue
@@ -2,7 +2,7 @@
* @Author: Morpheus
* @Date: 2021-07-05 16:31:54
* @Last Modified by: Morpheus
- * @Last Modified time: 2021-11-17 09:20:19
+ * @Last Modified time: 2021-11-25 15:24:53
* menu-name 押运人员定位
*/
<template>
@@ -122,24 +122,38 @@
</div>
</el-card>
- <el-dialog title=""
+ <el-dialog title="视频监控"
:modal='false'
:visible.sync="dialogVisible"
:before-close="dialogBeforeClose"
:close-on-click-modal='false'
+ @closed="videoClose"
class="car-video-box">
- <iframe src="/carVideo/parent.html"
- ref="videoIframe"
- frameborder="0"></iframe>
+ <div class="container"
+ v-loading="videoLoading">
+ <video id="videoElementOne"
+ controls="controls"></video>
+ <video id="videoElementTwo"
+ controls="controls"></video>
+ <video id="videoElementThree"
+ controls="controls"></video>
+ <video id="videoElementFour"
+ controls="controls"></video>
+ </div>
</el-dialog>
</el-col>
</el-row>
</template>
<script>
-import { getCarList, getPosition, getTrack } from "@/api/map/car";
+import { getCarList, getPosition, getNewPosition, getTrack, getVideoSrc, getNewCarTark } from "@/api/map/car";
+import axios from 'axios';
import carPng from "@/assets/img/car.png";
+
+import flvjs from 'flv.js/dist/flv.min.js';
+
+const d3 = require('d3-dsv');
export default {
data () {
@@ -156,16 +170,13 @@
detailObj: {},
dialogVisible: false,
map: null,
+ videoLoading: true
};
},
created () {
this.getList();
},
mounted () {
-
-
-
-
},
methods: {
@@ -192,14 +203,17 @@
},
positionClick (val) {
- getPosition({ type: 2, workerId: val.id }).then((result) => {
+ // console.log(val)
+
+ getNewPosition({ imei: "861636056082414" }).then((result) => {
var res = result.data.data;
+
if (JSON.stringify(res) != "{}") {
this.$refs.modalForm.addEntitys(
{
- LGTD: 115.86,
- LTTD: 28.71,
- name: "枪支位置",
+ LGTD: res.x,
+ LTTD: res.y,
+ name: "车辆位置",
},
carPng,
0.8,
@@ -239,6 +253,12 @@
this.disposeTime(startTime.getMinutes()) +
":" +
this.disposeTime(startTime.getSeconds());
+
+ const startTWO =
+ startTime.getFullYear() + '' +
+ this.disposeTime(startTime.getMonth() + 1) + '' +
+ this.disposeTime(startTime.getDate());
+
if (this.trackTime.length == 1) {
this.$message({ message: "请选择结束时间", duration: 2000 });
return;
@@ -257,22 +277,48 @@
":" +
this.disposeTime(endTime.getSeconds());
+ const endTWO =
+ endTime.getFullYear() + '' +
+ this.disposeTime(endTime.getMonth() + 1) + '' +
+ this.disposeTime(endTime.getDate());
+
getTrack({
workerId: this.detailObj.id,
type: 2,
startTime: start,
endTime: end,
}).then((res) => {
- var result = res.data.data;
- if (result.length > 1) {
- let arr = [];
- result.forEach((item) => {
- arr.push([Number(item.longitude), Number(item.latitude)]);
- });
+ getNewCarTark({
+ beginTime: startTWO,
+ endTime: endTWO,
+ rectify: 0,
+ callbackId: 123
+ }).then(res => {
+ axios.get('http://s16s652780.51mypc.cn/car/' + res.data.data).then(result => {
+ var ret = d3.csvParse(result.data)
- this.$refs.modalForm.addLines(arr);
- }
+ let arr = [];
+ ret.forEach((item, index) => {
+ if (index < ret.length - 1) {
+ arr.push([Number(item.x), Number(item.y)]);
+ }
+
+ })
+
+ this.$refs.modalForm.addLines(arr);
+ })
+ })
+ // var result = res.data.data;
+ // if (result.length > 1) {
+ // let arr = [];
+
+ // result.forEach((item) => {
+ // arr.push([Number(item.longitude), Number(item.latitude)]);
+ // });
+
+ // this.$refs.modalForm.addLines(arr);
+ // }
});
},
// 处理时间补零操作
@@ -305,20 +351,101 @@
if (cont != undefined) {
that.dialogVisible = true
+ var oneflag = false, twoflag = false, threefalse = false, fourfalse = false;
+ getVideoSrc({ camera: 0, action: 'start' }).then(res => {
+ oneflag = true;
+ if (twoflag == true && threefalse == true && fourfalse == true) {
+ that.videoLoading = false;
+ }
+ if (flvjs.isSupported()) {
+ var videoElement = document.getElementById('videoElementOne')
+ var flvPlayer = flvjs.createPlayer({
+ // isLive: true,
+ // hasAudio: false,
+ type: 'flv',
+ url: res.data.data.live_url
+ })
+ flvPlayer.attachMediaElement(videoElement)
+ flvPlayer.load()
+ flvPlayer.play()
+ }
+ })
- setTimeout(() =>{
- that.$refs.videoIframe.contentWindow.startVideo()
- },3000);
+ getVideoSrc({ camera: 1, action: 'start' }).then(res => {
+ twoflag = true;
+ if (oneflag == true && threefalse == true && fourfalse == true) {
+ that.videoLoading = false;
+ }
+ if (flvjs.isSupported()) {
+ var videoElement = document.getElementById('videoElementTwo')
+ var flvPlayer = flvjs.createPlayer({
+ // isLive: true,
+ // hasAudio: false,
+ type: 'flv',
+ url: res.data.data.live_url
+ })
+ flvPlayer.attachMediaElement(videoElement)
+ flvPlayer.load()
+ flvPlayer.play()
+ }
+ })
+
+ getVideoSrc({ camera: 2, action: 'start' }).then(res => {
+ threefalse = true;
+ if (oneflag == true && twoflag == true && fourfalse == true) {
+ that.videoLoading = false;
+ }
+ if (flvjs.isSupported()) {
+ var videoElement = document.getElementById('videoElementThree')
+ var flvPlayer = flvjs.createPlayer({
+ // isLive: true,
+ // hasAudio: false,
+ type: 'flv',
+ url: res.data.data.live_url
+ })
+ flvPlayer.attachMediaElement(videoElement)
+ flvPlayer.load()
+ flvPlayer.play()
+ }
+ })
+
+ getVideoSrc({ camera: 4, action: 'start' }).then(res => {
+ fourfalse = true;
+ if (oneflag == true && twoflag == true && threefalse == true) {
+ that.videoLoading = false;
+ }
+ if (flvjs.isSupported()) {
+ var videoElement = document.getElementById('videoElementFour')
+ var flvPlayer = flvjs.createPlayer({
+ // isLive: true,
+ // hasAudio: false,
+ type: 'flv',
+ url: res.data.data.live_url
+ })
+ flvPlayer.attachMediaElement(videoElement)
+ flvPlayer.load()
+ flvPlayer.play()
+ }
+ })
+
}
})
},
- dialogBeforeClose() {
- this.dialogVisible = false
+ videoClose () {
+ this.dialogVisible = false;
+ getVideoSrc({ camera: 0, action: 'stop' })
- this.$refs.videoIframe.contentWindow.closeVideo()
+ getVideoSrc({ camera: 1, action: 'stop' })
+ getVideoSrc({ camera: 2, action: 'stop' })
+
+ getVideoSrc({ camera: 4, action: 'stop' })
+ },
+
+ dialogBeforeClose () {
+ this.dialogVisible = false
}
},
@@ -419,4 +546,48 @@
}
}
}
+
+.car-video-box {
+ .container {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ flex-wrap: wrap;
+ video {
+ flex: 1;
+ width: 50%;
+ height: 50%;
+ object-fit: fill;
+ }
+ // #videoElementOne {
+ // position: absolute;
+ // top: 0;
+ // left: 0;
+ // width: 50%;
+ // height: 50%;
+ // }
+ // #videoElementTwo {
+ // position: absolute;
+ // top: 0;
+ // right: 0;
+ // width: 50%;
+ // height: 50%;
+ // }
+ // #videoElementThree {
+ // position: absolute;
+ // bottom: 0;
+ // left: 0;
+ // width: 50%;
+ // height: 50%;
+ // }
+ // #videoElementFour {
+ // position: absolute;
+ // bottom: 0;
+ // right: 0;
+ // width: 50%;
+ // height: 50%;
+ // }
+ }
+}
</style>
diff --git a/src/views/map/peopleGps.vue b/src/views/map/peopleGps.vue
index 6827731..dc43f21 100644
--- a/src/views/map/peopleGps.vue
+++ b/src/views/map/peopleGps.vue
@@ -2,7 +2,7 @@
* @Author: Morpheus
* @Date: 2021-07-05 16:31:54
* @Last Modified by: Morpheus
- * @Last Modified time: 2021-11-17 09:21:25
+ * @Last Modified time: 2021-11-25 13:48:23
* menu-name 押运人员定位
*/
<template>
@@ -131,10 +131,9 @@
</template>
<script>
-import { getPeopleList, getPosition, getTrack } from "@/api/map/people";
+import { getPeopleList, getPosition, getTrack, getNewPeople, getNewTark } from "@/api/map/people";
import peoplePng from "@/assets/img/people.png";
-
export default {
data () {
return {
@@ -150,7 +149,10 @@
detailObj: {},
};
},
- created () { },
+ created () {
+
+
+ },
mounted () {
this.getList();
},
@@ -187,20 +189,44 @@
positionClick (val) {
getPosition({ type: 1, workerId: val.id }).then((result) => {
- var res = result.data.data;
- if (JSON.stringify(res) != "{}") {
- this.$refs.modalForm.addEntitys(
- {
- LGTD: res.longitude,
- LTTD: res.latitude,
- name: "人员位置",
- },
- peoplePng,
- 0.5,
- "peoplelayer",
- "peopleAddlayer"
- );
- }
+
+ getNewPeople().then(res => {
+
+ if (JSON.stringify(res.data) != "{}") {
+ var arr = res.data.sort(function (a, b) {
+ return a['date'] < b['date'] ? 1 : -1
+ })
+
+ this.$refs.modalForm.addEntitys(
+ {
+ LGTD: arr[0].gis_jd,
+ LTTD: arr[0].gis_wd,
+ name: "人员位置",
+ },
+ peoplePng,
+ 0.5,
+ "peoplelayer",
+ "peopleAddlayer"
+ );
+ }
+ })
+
+
+ // var res = result.data.data;
+ // if (JSON.stringify(res) != "{}") {
+ // this.$refs.modalForm.addEntitys(
+ // {
+ // LGTD: res.longitude,
+ // LTTD: res.latitude,
+ // name: "人员位置",
+ // },
+ // peoplePng,
+ // 0.5,
+ // "peoplelayer",
+ // "peopleAddlayer"
+ // );
+ // }
+
});
},
@@ -256,17 +282,36 @@
type: 1,
startTime: start,
endTime: end,
- }).then((res) => {
- var result = res.data.data;
- if (result.length > 1) {
- let arr = [];
+ }).then((result) => {
- result.forEach((item) => {
- arr.push([Number(item.longitude), Number(item.latitude)]);
- });
+ getNewTark().then(res => {
- this.$refs.modalForm.addLines(arr);
- }
+ if (JSON.stringify(res.data.track) != "{}") {
+
+ if (res.data.track.length > 1) {
+ let arr = [];
+
+ res.data.track.forEach((item) => {
+ arr.push([Number(item.gis_jd), Number(item.gis_wd)]);
+ });
+
+ this.$refs.modalForm.addLines(arr);
+ }
+
+ }
+
+ })
+
+ // var result = res.data.data;
+ // if (result.length > 1) {
+ // let arr = [];
+
+ // result.forEach((item) => {
+ // arr.push([Number(item.longitude), Number(item.latitude)]);
+ // });
+
+ // this.$refs.modalForm.addLines(arr);
+ // }
});
},
// 处理时间补零操作
diff --git a/src/views/statisticalQueryManagement/businessStatisticsFwdq.vue b/src/views/statisticalQueryManagement/businessStatisticsFwdq.vue
index 025de21..aa9f880 100644
--- a/src/views/statisticalQueryManagement/businessStatisticsFwdq.vue
+++ b/src/views/statisticalQueryManagement/businessStatisticsFwdq.vue
@@ -92,7 +92,7 @@
},
{
label: "所属保安公司",
- prop: "tenantName",
+ prop: "deptName",
width: 300,
display: false
},
@@ -107,8 +107,8 @@
display: false
},
{
- label: "保安员姓名",
- prop: "realName",
+ label: "保安员数量",
+ prop: "num",
display: false
},
{
diff --git a/src/views/statisticalQueryManagement/securityGuardDetail.vue b/src/views/statisticalQueryManagement/securityGuardDetail.vue
index 490f22a..f83a833 100644
--- a/src/views/statisticalQueryManagement/securityGuardDetail.vue
+++ b/src/views/statisticalQueryManagement/securityGuardDetail.vue
@@ -220,7 +220,7 @@
label: "是否持证",
prop: "hold",
type: "select",
- search: true,
+ search: !this.paramCz,
searchSpan: 4,
dicData: [
{
--
Gitblit v1.9.3