diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-sound-green.png b/src/assets/overview_images/icons/icon-sound-green.png new file mode 100644 index 0000000..8c8fbbe --- /dev/null +++ b/src/assets/overview_images/icons/icon-sound-green.png Binary files differ diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-sound-green.png b/src/assets/overview_images/icons/icon-sound-green.png new file mode 100644 index 0000000..8c8fbbe --- /dev/null +++ b/src/assets/overview_images/icons/icon-sound-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-temperature-green.png b/src/assets/overview_images/icons/icon-temperature-green.png new file mode 100644 index 0000000..ad913c2 --- /dev/null +++ b/src/assets/overview_images/icons/icon-temperature-green.png Binary files differ diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-sound-green.png b/src/assets/overview_images/icons/icon-sound-green.png new file mode 100644 index 0000000..8c8fbbe --- /dev/null +++ b/src/assets/overview_images/icons/icon-sound-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-temperature-green.png b/src/assets/overview_images/icons/icon-temperature-green.png new file mode 100644 index 0000000..ad913c2 --- /dev/null +++ b/src/assets/overview_images/icons/icon-temperature-green.png Binary files differ diff --git a/src/assets/overview_images/point-green.png b/src/assets/overview_images/point-green.png new file mode 100644 index 0000000..1459a21 --- /dev/null +++ b/src/assets/overview_images/point-green.png Binary files differ diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-sound-green.png b/src/assets/overview_images/icons/icon-sound-green.png new file mode 100644 index 0000000..8c8fbbe --- /dev/null +++ b/src/assets/overview_images/icons/icon-sound-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-temperature-green.png b/src/assets/overview_images/icons/icon-temperature-green.png new file mode 100644 index 0000000..ad913c2 --- /dev/null +++ b/src/assets/overview_images/icons/icon-temperature-green.png Binary files differ diff --git a/src/assets/overview_images/point-green.png b/src/assets/overview_images/point-green.png new file mode 100644 index 0000000..1459a21 --- /dev/null +++ b/src/assets/overview_images/point-green.png Binary files differ diff --git a/src/assets/overview_images/point-orange.png b/src/assets/overview_images/point-orange.png new file mode 100644 index 0000000..bcccc58 --- /dev/null +++ b/src/assets/overview_images/point-orange.png Binary files differ diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-sound-green.png b/src/assets/overview_images/icons/icon-sound-green.png new file mode 100644 index 0000000..8c8fbbe --- /dev/null +++ b/src/assets/overview_images/icons/icon-sound-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-temperature-green.png b/src/assets/overview_images/icons/icon-temperature-green.png new file mode 100644 index 0000000..ad913c2 --- /dev/null +++ b/src/assets/overview_images/icons/icon-temperature-green.png Binary files differ diff --git a/src/assets/overview_images/point-green.png b/src/assets/overview_images/point-green.png new file mode 100644 index 0000000..1459a21 --- /dev/null +++ b/src/assets/overview_images/point-green.png Binary files differ diff --git a/src/assets/overview_images/point-orange.png b/src/assets/overview_images/point-orange.png new file mode 100644 index 0000000..bcccc58 --- /dev/null +++ b/src/assets/overview_images/point-orange.png Binary files differ diff --git a/src/views/alarm/alarmPosition.vue b/src/views/alarm/alarmPosition.vue index 3fc004b..30804d4 100644 --- a/src/views/alarm/alarmPosition.vue +++ b/src/views/alarm/alarmPosition.vue @@ -9,7 +9,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" /> diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-sound-green.png b/src/assets/overview_images/icons/icon-sound-green.png new file mode 100644 index 0000000..8c8fbbe --- /dev/null +++ b/src/assets/overview_images/icons/icon-sound-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-temperature-green.png b/src/assets/overview_images/icons/icon-temperature-green.png new file mode 100644 index 0000000..ad913c2 --- /dev/null +++ b/src/assets/overview_images/icons/icon-temperature-green.png Binary files differ diff --git a/src/assets/overview_images/point-green.png b/src/assets/overview_images/point-green.png new file mode 100644 index 0000000..1459a21 --- /dev/null +++ b/src/assets/overview_images/point-green.png Binary files differ diff --git a/src/assets/overview_images/point-orange.png b/src/assets/overview_images/point-orange.png new file mode 100644 index 0000000..bcccc58 --- /dev/null +++ b/src/assets/overview_images/point-orange.png Binary files differ diff --git a/src/views/alarm/alarmPosition.vue b/src/views/alarm/alarmPosition.vue index 3fc004b..30804d4 100644 --- a/src/views/alarm/alarmPosition.vue +++ b/src/views/alarm/alarmPosition.vue @@ -9,7 +9,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" /> diff --git a/src/views/ctrl/overview.vue b/src/views/ctrl/overview.vue index 4532bf7..6dc20d4 100644 --- a/src/views/ctrl/overview.vue +++ b/src/views/ctrl/overview.vue @@ -222,7 +222,7 @@ -
+
设备编号 @@ -390,11 +390,12 @@ }, destroyed() { window.removeEventListener("click", this.handleKeyup, true); + this.socket.close() }, mounted() { window.addEventListener('click',this.handleKeyup, true) this.wsPath = this.wsPath.replace(/http/,'ws') - // this.webSocket() + this.webSocket() this.initWindowSize() this.fetchData() @@ -425,11 +426,8 @@ if( val.target.innerText!=='摄像头') { this.showType = false const devTypes = document.querySelectorAll('.dev-icon') - // console.log(devTypes) - // console.log(this.cameraTypeNum) for(var i=0;i { - // that.$router.push({ - // path: '/overview', - // query: { refresh: true } - // }) - // } + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } }) - // } } // 监听socket错误 this.socket.onerror = function() { @@ -493,6 +492,27 @@ handleSelect(key, keyPath) { this.selectDevByType(key,undefined) }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, // 获取窗口大小 initWindowSize() { // 获取窗体尺寸 @@ -562,19 +582,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -823,19 +843,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -954,8 +974,8 @@ } }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1304,6 +1324,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1525,6 +1567,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-sound-green.png b/src/assets/overview_images/icons/icon-sound-green.png new file mode 100644 index 0000000..8c8fbbe --- /dev/null +++ b/src/assets/overview_images/icons/icon-sound-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-temperature-green.png b/src/assets/overview_images/icons/icon-temperature-green.png new file mode 100644 index 0000000..ad913c2 --- /dev/null +++ b/src/assets/overview_images/icons/icon-temperature-green.png Binary files differ diff --git a/src/assets/overview_images/point-green.png b/src/assets/overview_images/point-green.png new file mode 100644 index 0000000..1459a21 --- /dev/null +++ b/src/assets/overview_images/point-green.png Binary files differ diff --git a/src/assets/overview_images/point-orange.png b/src/assets/overview_images/point-orange.png new file mode 100644 index 0000000..bcccc58 --- /dev/null +++ b/src/assets/overview_images/point-orange.png Binary files differ diff --git a/src/views/alarm/alarmPosition.vue b/src/views/alarm/alarmPosition.vue index 3fc004b..30804d4 100644 --- a/src/views/alarm/alarmPosition.vue +++ b/src/views/alarm/alarmPosition.vue @@ -9,7 +9,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
diff --git a/src/views/ctrl/overview.vue b/src/views/ctrl/overview.vue index 4532bf7..6dc20d4 100644 --- a/src/views/ctrl/overview.vue +++ b/src/views/ctrl/overview.vue @@ -222,7 +222,7 @@
-
+
设备编号 @@ -390,11 +390,12 @@ }, destroyed() { window.removeEventListener("click", this.handleKeyup, true); + this.socket.close() }, mounted() { window.addEventListener('click',this.handleKeyup, true) this.wsPath = this.wsPath.replace(/http/,'ws') - // this.webSocket() + this.webSocket() this.initWindowSize() this.fetchData() @@ -425,11 +426,8 @@ if( val.target.innerText!=='摄像头') { this.showType = false const devTypes = document.querySelectorAll('.dev-icon') - // console.log(devTypes) - // console.log(this.cameraTypeNum) for(var i=0;i { - // that.$router.push({ - // path: '/overview', - // query: { refresh: true } - // }) - // } + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } }) - // } } // 监听socket错误 this.socket.onerror = function() { @@ -493,6 +492,27 @@ handleSelect(key, keyPath) { this.selectDevByType(key,undefined) }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, // 获取窗口大小 initWindowSize() { // 获取窗体尺寸 @@ -562,19 +582,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -823,19 +843,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -954,8 +974,8 @@ } }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1304,6 +1324,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1525,6 +1567,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/doorIndex.vue b/src/views/overview/doorIndex.vue index 1dd2e6e..15eb719 100644 --- a/src/views/overview/doorIndex.vue +++ b/src/views/overview/doorIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -168,7 +168,7 @@
-
+
设备编号 @@ -385,19 +385,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -836,6 +836,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1057,6 +1079,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-sound-green.png b/src/assets/overview_images/icons/icon-sound-green.png new file mode 100644 index 0000000..8c8fbbe --- /dev/null +++ b/src/assets/overview_images/icons/icon-sound-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-temperature-green.png b/src/assets/overview_images/icons/icon-temperature-green.png new file mode 100644 index 0000000..ad913c2 --- /dev/null +++ b/src/assets/overview_images/icons/icon-temperature-green.png Binary files differ diff --git a/src/assets/overview_images/point-green.png b/src/assets/overview_images/point-green.png new file mode 100644 index 0000000..1459a21 --- /dev/null +++ b/src/assets/overview_images/point-green.png Binary files differ diff --git a/src/assets/overview_images/point-orange.png b/src/assets/overview_images/point-orange.png new file mode 100644 index 0000000..bcccc58 --- /dev/null +++ b/src/assets/overview_images/point-orange.png Binary files differ diff --git a/src/views/alarm/alarmPosition.vue b/src/views/alarm/alarmPosition.vue index 3fc004b..30804d4 100644 --- a/src/views/alarm/alarmPosition.vue +++ b/src/views/alarm/alarmPosition.vue @@ -9,7 +9,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
diff --git a/src/views/ctrl/overview.vue b/src/views/ctrl/overview.vue index 4532bf7..6dc20d4 100644 --- a/src/views/ctrl/overview.vue +++ b/src/views/ctrl/overview.vue @@ -222,7 +222,7 @@
-
+
设备编号 @@ -390,11 +390,12 @@ }, destroyed() { window.removeEventListener("click", this.handleKeyup, true); + this.socket.close() }, mounted() { window.addEventListener('click',this.handleKeyup, true) this.wsPath = this.wsPath.replace(/http/,'ws') - // this.webSocket() + this.webSocket() this.initWindowSize() this.fetchData() @@ -425,11 +426,8 @@ if( val.target.innerText!=='摄像头') { this.showType = false const devTypes = document.querySelectorAll('.dev-icon') - // console.log(devTypes) - // console.log(this.cameraTypeNum) for(var i=0;i { - // that.$router.push({ - // path: '/overview', - // query: { refresh: true } - // }) - // } + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } }) - // } } // 监听socket错误 this.socket.onerror = function() { @@ -493,6 +492,27 @@ handleSelect(key, keyPath) { this.selectDevByType(key,undefined) }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, // 获取窗口大小 initWindowSize() { // 获取窗体尺寸 @@ -562,19 +582,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -823,19 +843,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -954,8 +974,8 @@ } }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1304,6 +1324,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1525,6 +1567,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/doorIndex.vue b/src/views/overview/doorIndex.vue index 1dd2e6e..15eb719 100644 --- a/src/views/overview/doorIndex.vue +++ b/src/views/overview/doorIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -168,7 +168,7 @@
-
+
设备编号 @@ -385,19 +385,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -836,6 +836,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1057,6 +1079,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/fenceIndex.vue b/src/views/overview/fenceIndex.vue index e3ec0d5..0a6d139 100644 --- a/src/views/overview/fenceIndex.vue +++ b/src/views/overview/fenceIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -174,7 +174,7 @@
-
+
设备编号 @@ -390,19 +390,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -842,6 +842,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1063,6 +1085,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-sound-green.png b/src/assets/overview_images/icons/icon-sound-green.png new file mode 100644 index 0000000..8c8fbbe --- /dev/null +++ b/src/assets/overview_images/icons/icon-sound-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-temperature-green.png b/src/assets/overview_images/icons/icon-temperature-green.png new file mode 100644 index 0000000..ad913c2 --- /dev/null +++ b/src/assets/overview_images/icons/icon-temperature-green.png Binary files differ diff --git a/src/assets/overview_images/point-green.png b/src/assets/overview_images/point-green.png new file mode 100644 index 0000000..1459a21 --- /dev/null +++ b/src/assets/overview_images/point-green.png Binary files differ diff --git a/src/assets/overview_images/point-orange.png b/src/assets/overview_images/point-orange.png new file mode 100644 index 0000000..bcccc58 --- /dev/null +++ b/src/assets/overview_images/point-orange.png Binary files differ diff --git a/src/views/alarm/alarmPosition.vue b/src/views/alarm/alarmPosition.vue index 3fc004b..30804d4 100644 --- a/src/views/alarm/alarmPosition.vue +++ b/src/views/alarm/alarmPosition.vue @@ -9,7 +9,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
diff --git a/src/views/ctrl/overview.vue b/src/views/ctrl/overview.vue index 4532bf7..6dc20d4 100644 --- a/src/views/ctrl/overview.vue +++ b/src/views/ctrl/overview.vue @@ -222,7 +222,7 @@
-
+
设备编号 @@ -390,11 +390,12 @@ }, destroyed() { window.removeEventListener("click", this.handleKeyup, true); + this.socket.close() }, mounted() { window.addEventListener('click',this.handleKeyup, true) this.wsPath = this.wsPath.replace(/http/,'ws') - // this.webSocket() + this.webSocket() this.initWindowSize() this.fetchData() @@ -425,11 +426,8 @@ if( val.target.innerText!=='摄像头') { this.showType = false const devTypes = document.querySelectorAll('.dev-icon') - // console.log(devTypes) - // console.log(this.cameraTypeNum) for(var i=0;i { - // that.$router.push({ - // path: '/overview', - // query: { refresh: true } - // }) - // } + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } }) - // } } // 监听socket错误 this.socket.onerror = function() { @@ -493,6 +492,27 @@ handleSelect(key, keyPath) { this.selectDevByType(key,undefined) }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, // 获取窗口大小 initWindowSize() { // 获取窗体尺寸 @@ -562,19 +582,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -823,19 +843,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -954,8 +974,8 @@ } }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1304,6 +1324,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1525,6 +1567,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/doorIndex.vue b/src/views/overview/doorIndex.vue index 1dd2e6e..15eb719 100644 --- a/src/views/overview/doorIndex.vue +++ b/src/views/overview/doorIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -168,7 +168,7 @@
-
+
设备编号 @@ -385,19 +385,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -836,6 +836,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1057,6 +1079,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/fenceIndex.vue b/src/views/overview/fenceIndex.vue index e3ec0d5..0a6d139 100644 --- a/src/views/overview/fenceIndex.vue +++ b/src/views/overview/fenceIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -174,7 +174,7 @@
-
+
设备编号 @@ -390,19 +390,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -842,6 +842,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1063,6 +1085,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/keyIndex.vue b/src/views/overview/keyIndex.vue index 2e15516..19d844d 100644 --- a/src/views/overview/keyIndex.vue +++ b/src/views/overview/keyIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -206,7 +206,7 @@
-
+
设备编号 @@ -265,6 +265,7 @@ components: { DeviceDetail }, data() { return { + wsPath: process.env.BASE_API+'/websocket/', showAlarmDetail: false, // 是否显示设备详情 alarmForm: { id:'', @@ -369,6 +370,8 @@ }, mounted() { window.addEventListener('click',this.handleKeyup, true) + this.wsPath = this.wsPath.replace(/http/,'ws') + this.webSocket() this.initWindowSize() this.fetchData() @@ -381,6 +384,83 @@ } }, methods: { + webSocket() { + const that = this + if (typeof (WebSocket) === 'undefined') { + this.$notify({ + title: '提示', + message: '当前浏览器无法接收实时报警信息,请使用谷歌浏览器或360浏览器极速模式!', + type: 'warning', + duration: 0 + }) + } else { + // 获取token保存到vuex中的用户信息,此处仅适用于本项目,注意删除或修改 + // 实例化socket,这里我把用户名传给了后台,使后台能判断要把消息发给哪个用户,其实也可以后台直接获取用户IP来判断并推送 + const socketUrl = this.wsPath + this.$store.getters.token + this.socket = new WebSocket(socketUrl) + this.socket.onclose = function() {} + // 监听socket打开 + this.socket.onopen = function() { + console.log('浏览器WebSocket已打开') + // 加入心跳监测 + console.log(new Date()) + } + // 监听socket消息接收 + this.socket.onmessage = function(msg) { + that.fetchAlarmNowData() + // 转换为json对象 + const data = JSON.parse(msg.data) + var str = "" + if(data.alarmValue.length!==0){ + str = '('+data.alarmValue+'℃)' + } + console.log(data) + that.$notify({ + title: '报警设备:' + data.devcode, + // 这里也可以把返回信息加入到message中显示 + message: '报警内容:'+ data.alarmContent + str, + type: 'warning', + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } + }) + } + // 监听socket错误 + this.socket.onerror = function() { + that.$notify({ + title: '服务器错误', + message: '无法接收实时报警信息,请检查服务器后重新刷新页面', + type: 'error', + duration: 0 + }) + } + // 监听socket关闭 + this.socket.onclose = function(e) { + console.log('WebSocket已关闭', e, new Date()) + } + } + }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, handleKeyup(val){ //单击收起摄像头分类 this.showAlarmDetail = false this.showDevDetail = false @@ -474,19 +554,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -788,19 +868,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -866,8 +946,8 @@ this.selectDevByType('all') }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1209,6 +1289,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1430,6 +1532,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-sound-green.png b/src/assets/overview_images/icons/icon-sound-green.png new file mode 100644 index 0000000..8c8fbbe --- /dev/null +++ b/src/assets/overview_images/icons/icon-sound-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-temperature-green.png b/src/assets/overview_images/icons/icon-temperature-green.png new file mode 100644 index 0000000..ad913c2 --- /dev/null +++ b/src/assets/overview_images/icons/icon-temperature-green.png Binary files differ diff --git a/src/assets/overview_images/point-green.png b/src/assets/overview_images/point-green.png new file mode 100644 index 0000000..1459a21 --- /dev/null +++ b/src/assets/overview_images/point-green.png Binary files differ diff --git a/src/assets/overview_images/point-orange.png b/src/assets/overview_images/point-orange.png new file mode 100644 index 0000000..bcccc58 --- /dev/null +++ b/src/assets/overview_images/point-orange.png Binary files differ diff --git a/src/views/alarm/alarmPosition.vue b/src/views/alarm/alarmPosition.vue index 3fc004b..30804d4 100644 --- a/src/views/alarm/alarmPosition.vue +++ b/src/views/alarm/alarmPosition.vue @@ -9,7 +9,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
diff --git a/src/views/ctrl/overview.vue b/src/views/ctrl/overview.vue index 4532bf7..6dc20d4 100644 --- a/src/views/ctrl/overview.vue +++ b/src/views/ctrl/overview.vue @@ -222,7 +222,7 @@
-
+
设备编号 @@ -390,11 +390,12 @@ }, destroyed() { window.removeEventListener("click", this.handleKeyup, true); + this.socket.close() }, mounted() { window.addEventListener('click',this.handleKeyup, true) this.wsPath = this.wsPath.replace(/http/,'ws') - // this.webSocket() + this.webSocket() this.initWindowSize() this.fetchData() @@ -425,11 +426,8 @@ if( val.target.innerText!=='摄像头') { this.showType = false const devTypes = document.querySelectorAll('.dev-icon') - // console.log(devTypes) - // console.log(this.cameraTypeNum) for(var i=0;i { - // that.$router.push({ - // path: '/overview', - // query: { refresh: true } - // }) - // } + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } }) - // } } // 监听socket错误 this.socket.onerror = function() { @@ -493,6 +492,27 @@ handleSelect(key, keyPath) { this.selectDevByType(key,undefined) }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, // 获取窗口大小 initWindowSize() { // 获取窗体尺寸 @@ -562,19 +582,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -823,19 +843,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -954,8 +974,8 @@ } }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1304,6 +1324,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1525,6 +1567,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/doorIndex.vue b/src/views/overview/doorIndex.vue index 1dd2e6e..15eb719 100644 --- a/src/views/overview/doorIndex.vue +++ b/src/views/overview/doorIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -168,7 +168,7 @@
-
+
设备编号 @@ -385,19 +385,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -836,6 +836,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1057,6 +1079,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/fenceIndex.vue b/src/views/overview/fenceIndex.vue index e3ec0d5..0a6d139 100644 --- a/src/views/overview/fenceIndex.vue +++ b/src/views/overview/fenceIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -174,7 +174,7 @@
-
+
设备编号 @@ -390,19 +390,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -842,6 +842,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1063,6 +1085,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/keyIndex.vue b/src/views/overview/keyIndex.vue index 2e15516..19d844d 100644 --- a/src/views/overview/keyIndex.vue +++ b/src/views/overview/keyIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -206,7 +206,7 @@
-
+
设备编号 @@ -265,6 +265,7 @@ components: { DeviceDetail }, data() { return { + wsPath: process.env.BASE_API+'/websocket/', showAlarmDetail: false, // 是否显示设备详情 alarmForm: { id:'', @@ -369,6 +370,8 @@ }, mounted() { window.addEventListener('click',this.handleKeyup, true) + this.wsPath = this.wsPath.replace(/http/,'ws') + this.webSocket() this.initWindowSize() this.fetchData() @@ -381,6 +384,83 @@ } }, methods: { + webSocket() { + const that = this + if (typeof (WebSocket) === 'undefined') { + this.$notify({ + title: '提示', + message: '当前浏览器无法接收实时报警信息,请使用谷歌浏览器或360浏览器极速模式!', + type: 'warning', + duration: 0 + }) + } else { + // 获取token保存到vuex中的用户信息,此处仅适用于本项目,注意删除或修改 + // 实例化socket,这里我把用户名传给了后台,使后台能判断要把消息发给哪个用户,其实也可以后台直接获取用户IP来判断并推送 + const socketUrl = this.wsPath + this.$store.getters.token + this.socket = new WebSocket(socketUrl) + this.socket.onclose = function() {} + // 监听socket打开 + this.socket.onopen = function() { + console.log('浏览器WebSocket已打开') + // 加入心跳监测 + console.log(new Date()) + } + // 监听socket消息接收 + this.socket.onmessage = function(msg) { + that.fetchAlarmNowData() + // 转换为json对象 + const data = JSON.parse(msg.data) + var str = "" + if(data.alarmValue.length!==0){ + str = '('+data.alarmValue+'℃)' + } + console.log(data) + that.$notify({ + title: '报警设备:' + data.devcode, + // 这里也可以把返回信息加入到message中显示 + message: '报警内容:'+ data.alarmContent + str, + type: 'warning', + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } + }) + } + // 监听socket错误 + this.socket.onerror = function() { + that.$notify({ + title: '服务器错误', + message: '无法接收实时报警信息,请检查服务器后重新刷新页面', + type: 'error', + duration: 0 + }) + } + // 监听socket关闭 + this.socket.onclose = function(e) { + console.log('WebSocket已关闭', e, new Date()) + } + } + }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, handleKeyup(val){ //单击收起摄像头分类 this.showAlarmDetail = false this.showDevDetail = false @@ -474,19 +554,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -788,19 +868,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -866,8 +946,8 @@ this.selectDevByType('all') }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1209,6 +1289,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1430,6 +1532,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/regionIndex.vue b/src/views/overview/regionIndex.vue index 640a0f8..7d8bc8c 100644 --- a/src/views/overview/regionIndex.vue +++ b/src/views/overview/regionIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -169,7 +169,7 @@
-
+
设备编号 @@ -389,19 +389,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -835,6 +835,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1056,6 +1078,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-sound-green.png b/src/assets/overview_images/icons/icon-sound-green.png new file mode 100644 index 0000000..8c8fbbe --- /dev/null +++ b/src/assets/overview_images/icons/icon-sound-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-temperature-green.png b/src/assets/overview_images/icons/icon-temperature-green.png new file mode 100644 index 0000000..ad913c2 --- /dev/null +++ b/src/assets/overview_images/icons/icon-temperature-green.png Binary files differ diff --git a/src/assets/overview_images/point-green.png b/src/assets/overview_images/point-green.png new file mode 100644 index 0000000..1459a21 --- /dev/null +++ b/src/assets/overview_images/point-green.png Binary files differ diff --git a/src/assets/overview_images/point-orange.png b/src/assets/overview_images/point-orange.png new file mode 100644 index 0000000..bcccc58 --- /dev/null +++ b/src/assets/overview_images/point-orange.png Binary files differ diff --git a/src/views/alarm/alarmPosition.vue b/src/views/alarm/alarmPosition.vue index 3fc004b..30804d4 100644 --- a/src/views/alarm/alarmPosition.vue +++ b/src/views/alarm/alarmPosition.vue @@ -9,7 +9,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
diff --git a/src/views/ctrl/overview.vue b/src/views/ctrl/overview.vue index 4532bf7..6dc20d4 100644 --- a/src/views/ctrl/overview.vue +++ b/src/views/ctrl/overview.vue @@ -222,7 +222,7 @@
-
+
设备编号 @@ -390,11 +390,12 @@ }, destroyed() { window.removeEventListener("click", this.handleKeyup, true); + this.socket.close() }, mounted() { window.addEventListener('click',this.handleKeyup, true) this.wsPath = this.wsPath.replace(/http/,'ws') - // this.webSocket() + this.webSocket() this.initWindowSize() this.fetchData() @@ -425,11 +426,8 @@ if( val.target.innerText!=='摄像头') { this.showType = false const devTypes = document.querySelectorAll('.dev-icon') - // console.log(devTypes) - // console.log(this.cameraTypeNum) for(var i=0;i { - // that.$router.push({ - // path: '/overview', - // query: { refresh: true } - // }) - // } + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } }) - // } } // 监听socket错误 this.socket.onerror = function() { @@ -493,6 +492,27 @@ handleSelect(key, keyPath) { this.selectDevByType(key,undefined) }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, // 获取窗口大小 initWindowSize() { // 获取窗体尺寸 @@ -562,19 +582,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -823,19 +843,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -954,8 +974,8 @@ } }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1304,6 +1324,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1525,6 +1567,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/doorIndex.vue b/src/views/overview/doorIndex.vue index 1dd2e6e..15eb719 100644 --- a/src/views/overview/doorIndex.vue +++ b/src/views/overview/doorIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -168,7 +168,7 @@
-
+
设备编号 @@ -385,19 +385,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -836,6 +836,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1057,6 +1079,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/fenceIndex.vue b/src/views/overview/fenceIndex.vue index e3ec0d5..0a6d139 100644 --- a/src/views/overview/fenceIndex.vue +++ b/src/views/overview/fenceIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -174,7 +174,7 @@
-
+
设备编号 @@ -390,19 +390,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -842,6 +842,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1063,6 +1085,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/keyIndex.vue b/src/views/overview/keyIndex.vue index 2e15516..19d844d 100644 --- a/src/views/overview/keyIndex.vue +++ b/src/views/overview/keyIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -206,7 +206,7 @@
-
+
设备编号 @@ -265,6 +265,7 @@ components: { DeviceDetail }, data() { return { + wsPath: process.env.BASE_API+'/websocket/', showAlarmDetail: false, // 是否显示设备详情 alarmForm: { id:'', @@ -369,6 +370,8 @@ }, mounted() { window.addEventListener('click',this.handleKeyup, true) + this.wsPath = this.wsPath.replace(/http/,'ws') + this.webSocket() this.initWindowSize() this.fetchData() @@ -381,6 +384,83 @@ } }, methods: { + webSocket() { + const that = this + if (typeof (WebSocket) === 'undefined') { + this.$notify({ + title: '提示', + message: '当前浏览器无法接收实时报警信息,请使用谷歌浏览器或360浏览器极速模式!', + type: 'warning', + duration: 0 + }) + } else { + // 获取token保存到vuex中的用户信息,此处仅适用于本项目,注意删除或修改 + // 实例化socket,这里我把用户名传给了后台,使后台能判断要把消息发给哪个用户,其实也可以后台直接获取用户IP来判断并推送 + const socketUrl = this.wsPath + this.$store.getters.token + this.socket = new WebSocket(socketUrl) + this.socket.onclose = function() {} + // 监听socket打开 + this.socket.onopen = function() { + console.log('浏览器WebSocket已打开') + // 加入心跳监测 + console.log(new Date()) + } + // 监听socket消息接收 + this.socket.onmessage = function(msg) { + that.fetchAlarmNowData() + // 转换为json对象 + const data = JSON.parse(msg.data) + var str = "" + if(data.alarmValue.length!==0){ + str = '('+data.alarmValue+'℃)' + } + console.log(data) + that.$notify({ + title: '报警设备:' + data.devcode, + // 这里也可以把返回信息加入到message中显示 + message: '报警内容:'+ data.alarmContent + str, + type: 'warning', + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } + }) + } + // 监听socket错误 + this.socket.onerror = function() { + that.$notify({ + title: '服务器错误', + message: '无法接收实时报警信息,请检查服务器后重新刷新页面', + type: 'error', + duration: 0 + }) + } + // 监听socket关闭 + this.socket.onclose = function(e) { + console.log('WebSocket已关闭', e, new Date()) + } + } + }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, handleKeyup(val){ //单击收起摄像头分类 this.showAlarmDetail = false this.showDevDetail = false @@ -474,19 +554,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -788,19 +868,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -866,8 +946,8 @@ this.selectDevByType('all') }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1209,6 +1289,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1430,6 +1532,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/regionIndex.vue b/src/views/overview/regionIndex.vue index 640a0f8..7d8bc8c 100644 --- a/src/views/overview/regionIndex.vue +++ b/src/views/overview/regionIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -169,7 +169,7 @@
-
+
设备编号 @@ -389,19 +389,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -835,6 +835,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1056,6 +1078,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/visitor/visitorCarTodayList.vue b/src/views/visitor/visitorCarTodayList.vue index 9e2afc8..6d78a80 100644 --- a/src/views/visitor/visitorCarTodayList.vue +++ b/src/views/visitor/visitorCarTodayList.vue @@ -54,6 +54,7 @@ @@ -73,6 +74,7 @@
+
@@ -81,10 +83,10 @@ import { getVisitorCarList } from '@/api/visitor' import { visitorCarExport } from '@/api/batch' import { getDate, formatToString } from '@/utils/calendarUtil' - +import VisitorTrace from '@/views/visitor/visitorTrace' export default { name: 'VisitorCarToday', - components: { VisitorCarDetail }, + components: { VisitorCarDetail,VisitorTrace }, props: { showDateRange: { type: Boolean, @@ -150,6 +152,7 @@ timeRange: [], listLoading: false, // 加载动画 fullscreenLoading: false, // 全屏加载动画 + dialogFormVisible1: false, // 全屏加载动画 dialogFormVisible: false } }, @@ -207,6 +210,11 @@ this.dialogFormVisible = true this.$refs.visitorCarDetail.initDialog('detail', this.dialogFormVisible, row) }, + //轨迹 + trace(row) { + this.dialogFormVisible1 = true + this.$refs.visitorTrace.initDialog('car', this.dialogFormVisible1, row) + }, // 查询数据 search() { this.fetchData(false) diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-sound-green.png b/src/assets/overview_images/icons/icon-sound-green.png new file mode 100644 index 0000000..8c8fbbe --- /dev/null +++ b/src/assets/overview_images/icons/icon-sound-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-temperature-green.png b/src/assets/overview_images/icons/icon-temperature-green.png new file mode 100644 index 0000000..ad913c2 --- /dev/null +++ b/src/assets/overview_images/icons/icon-temperature-green.png Binary files differ diff --git a/src/assets/overview_images/point-green.png b/src/assets/overview_images/point-green.png new file mode 100644 index 0000000..1459a21 --- /dev/null +++ b/src/assets/overview_images/point-green.png Binary files differ diff --git a/src/assets/overview_images/point-orange.png b/src/assets/overview_images/point-orange.png new file mode 100644 index 0000000..bcccc58 --- /dev/null +++ b/src/assets/overview_images/point-orange.png Binary files differ diff --git a/src/views/alarm/alarmPosition.vue b/src/views/alarm/alarmPosition.vue index 3fc004b..30804d4 100644 --- a/src/views/alarm/alarmPosition.vue +++ b/src/views/alarm/alarmPosition.vue @@ -9,7 +9,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" /> diff --git a/src/views/ctrl/overview.vue b/src/views/ctrl/overview.vue index 4532bf7..6dc20d4 100644 --- a/src/views/ctrl/overview.vue +++ b/src/views/ctrl/overview.vue @@ -222,7 +222,7 @@ -
+
设备编号 @@ -390,11 +390,12 @@ }, destroyed() { window.removeEventListener("click", this.handleKeyup, true); + this.socket.close() }, mounted() { window.addEventListener('click',this.handleKeyup, true) this.wsPath = this.wsPath.replace(/http/,'ws') - // this.webSocket() + this.webSocket() this.initWindowSize() this.fetchData() @@ -425,11 +426,8 @@ if( val.target.innerText!=='摄像头') { this.showType = false const devTypes = document.querySelectorAll('.dev-icon') - // console.log(devTypes) - // console.log(this.cameraTypeNum) for(var i=0;i { - // that.$router.push({ - // path: '/overview', - // query: { refresh: true } - // }) - // } + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } }) - // } } // 监听socket错误 this.socket.onerror = function() { @@ -493,6 +492,27 @@ handleSelect(key, keyPath) { this.selectDevByType(key,undefined) }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, // 获取窗口大小 initWindowSize() { // 获取窗体尺寸 @@ -562,19 +582,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -823,19 +843,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -954,8 +974,8 @@ } }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1304,6 +1324,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1525,6 +1567,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/doorIndex.vue b/src/views/overview/doorIndex.vue index 1dd2e6e..15eb719 100644 --- a/src/views/overview/doorIndex.vue +++ b/src/views/overview/doorIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -168,7 +168,7 @@
-
+
设备编号 @@ -385,19 +385,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -836,6 +836,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1057,6 +1079,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/fenceIndex.vue b/src/views/overview/fenceIndex.vue index e3ec0d5..0a6d139 100644 --- a/src/views/overview/fenceIndex.vue +++ b/src/views/overview/fenceIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -174,7 +174,7 @@
-
+
设备编号 @@ -390,19 +390,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -842,6 +842,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1063,6 +1085,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/keyIndex.vue b/src/views/overview/keyIndex.vue index 2e15516..19d844d 100644 --- a/src/views/overview/keyIndex.vue +++ b/src/views/overview/keyIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -206,7 +206,7 @@
-
+
设备编号 @@ -265,6 +265,7 @@ components: { DeviceDetail }, data() { return { + wsPath: process.env.BASE_API+'/websocket/', showAlarmDetail: false, // 是否显示设备详情 alarmForm: { id:'', @@ -369,6 +370,8 @@ }, mounted() { window.addEventListener('click',this.handleKeyup, true) + this.wsPath = this.wsPath.replace(/http/,'ws') + this.webSocket() this.initWindowSize() this.fetchData() @@ -381,6 +384,83 @@ } }, methods: { + webSocket() { + const that = this + if (typeof (WebSocket) === 'undefined') { + this.$notify({ + title: '提示', + message: '当前浏览器无法接收实时报警信息,请使用谷歌浏览器或360浏览器极速模式!', + type: 'warning', + duration: 0 + }) + } else { + // 获取token保存到vuex中的用户信息,此处仅适用于本项目,注意删除或修改 + // 实例化socket,这里我把用户名传给了后台,使后台能判断要把消息发给哪个用户,其实也可以后台直接获取用户IP来判断并推送 + const socketUrl = this.wsPath + this.$store.getters.token + this.socket = new WebSocket(socketUrl) + this.socket.onclose = function() {} + // 监听socket打开 + this.socket.onopen = function() { + console.log('浏览器WebSocket已打开') + // 加入心跳监测 + console.log(new Date()) + } + // 监听socket消息接收 + this.socket.onmessage = function(msg) { + that.fetchAlarmNowData() + // 转换为json对象 + const data = JSON.parse(msg.data) + var str = "" + if(data.alarmValue.length!==0){ + str = '('+data.alarmValue+'℃)' + } + console.log(data) + that.$notify({ + title: '报警设备:' + data.devcode, + // 这里也可以把返回信息加入到message中显示 + message: '报警内容:'+ data.alarmContent + str, + type: 'warning', + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } + }) + } + // 监听socket错误 + this.socket.onerror = function() { + that.$notify({ + title: '服务器错误', + message: '无法接收实时报警信息,请检查服务器后重新刷新页面', + type: 'error', + duration: 0 + }) + } + // 监听socket关闭 + this.socket.onclose = function(e) { + console.log('WebSocket已关闭', e, new Date()) + } + } + }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, handleKeyup(val){ //单击收起摄像头分类 this.showAlarmDetail = false this.showDevDetail = false @@ -474,19 +554,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -788,19 +868,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -866,8 +946,8 @@ this.selectDevByType('all') }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1209,6 +1289,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1430,6 +1532,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/regionIndex.vue b/src/views/overview/regionIndex.vue index 640a0f8..7d8bc8c 100644 --- a/src/views/overview/regionIndex.vue +++ b/src/views/overview/regionIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -169,7 +169,7 @@
-
+
设备编号 @@ -389,19 +389,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -835,6 +835,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1056,6 +1078,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/visitor/visitorCarTodayList.vue b/src/views/visitor/visitorCarTodayList.vue index 9e2afc8..6d78a80 100644 --- a/src/views/visitor/visitorCarTodayList.vue +++ b/src/views/visitor/visitorCarTodayList.vue @@ -54,6 +54,7 @@ @@ -73,6 +74,7 @@
+
@@ -81,10 +83,10 @@ import { getVisitorCarList } from '@/api/visitor' import { visitorCarExport } from '@/api/batch' import { getDate, formatToString } from '@/utils/calendarUtil' - +import VisitorTrace from '@/views/visitor/visitorTrace' export default { name: 'VisitorCarToday', - components: { VisitorCarDetail }, + components: { VisitorCarDetail,VisitorTrace }, props: { showDateRange: { type: Boolean, @@ -150,6 +152,7 @@ timeRange: [], listLoading: false, // 加载动画 fullscreenLoading: false, // 全屏加载动画 + dialogFormVisible1: false, // 全屏加载动画 dialogFormVisible: false } }, @@ -207,6 +210,11 @@ this.dialogFormVisible = true this.$refs.visitorCarDetail.initDialog('detail', this.dialogFormVisible, row) }, + //轨迹 + trace(row) { + this.dialogFormVisible1 = true + this.$refs.visitorTrace.initDialog('car', this.dialogFormVisible1, row) + }, // 查询数据 search() { this.fetchData(false) diff --git a/src/views/visitor/visitorTodayList.vue b/src/views/visitor/visitorTodayList.vue index 4bd19a0..1bde7e2 100644 --- a/src/views/visitor/visitorTodayList.vue +++ b/src/views/visitor/visitorTodayList.vue @@ -72,6 +72,7 @@ + @@ -80,10 +81,11 @@ import { getVisitorList } from '@/api/visitor' import { getDate, formatToString } from '@/utils/calendarUtil' import VisitorDetail from '@/views/visitor/visitorDetail' +import VisitorTrace from '@/views/visitor/visitorTrace' export default { name: 'VisitorToday', - components: { VisitorDetail }, + components: { VisitorDetail, VisitorTrace }, props: { showDateRange: { type: Boolean, @@ -148,6 +150,7 @@ timeRange: [], listLoading: false, // 加载动画 fullscreenLoading: false, // 全屏加载动画 + dialogFormVisible1: false, // 全屏加载动画 dialogFormVisible: false } }, @@ -205,6 +208,11 @@ this.dialogFormVisible = true this.$refs.visitorDetail.initDialog('detail', this.dialogFormVisible, row) }, + //轨迹 + trace(row) { + this.dialogFormVisible1 = true + this.$refs.visitorTrace.initDialog('person', this.dialogFormVisible1, row) + }, // 查询数据 search() { this.fetchData(false) @@ -218,6 +226,7 @@ getVisitorList(this.listQuery).then(response => { if (response.code === 200) { this.list = response.data.rows + this.list = [{id:'111',name:'1111',deptname:'sss',visitTime:'saaaaddddaaaaaaa',outTime:'saaaaaddddaaaaaa'}] this.total = parseInt(response.data.total) } else { this.$message.error(response.message) diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-sound-green.png b/src/assets/overview_images/icons/icon-sound-green.png new file mode 100644 index 0000000..8c8fbbe --- /dev/null +++ b/src/assets/overview_images/icons/icon-sound-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-temperature-green.png b/src/assets/overview_images/icons/icon-temperature-green.png new file mode 100644 index 0000000..ad913c2 --- /dev/null +++ b/src/assets/overview_images/icons/icon-temperature-green.png Binary files differ diff --git a/src/assets/overview_images/point-green.png b/src/assets/overview_images/point-green.png new file mode 100644 index 0000000..1459a21 --- /dev/null +++ b/src/assets/overview_images/point-green.png Binary files differ diff --git a/src/assets/overview_images/point-orange.png b/src/assets/overview_images/point-orange.png new file mode 100644 index 0000000..bcccc58 --- /dev/null +++ b/src/assets/overview_images/point-orange.png Binary files differ diff --git a/src/views/alarm/alarmPosition.vue b/src/views/alarm/alarmPosition.vue index 3fc004b..30804d4 100644 --- a/src/views/alarm/alarmPosition.vue +++ b/src/views/alarm/alarmPosition.vue @@ -9,7 +9,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" /> diff --git a/src/views/ctrl/overview.vue b/src/views/ctrl/overview.vue index 4532bf7..6dc20d4 100644 --- a/src/views/ctrl/overview.vue +++ b/src/views/ctrl/overview.vue @@ -222,7 +222,7 @@ -
+
设备编号 @@ -390,11 +390,12 @@ }, destroyed() { window.removeEventListener("click", this.handleKeyup, true); + this.socket.close() }, mounted() { window.addEventListener('click',this.handleKeyup, true) this.wsPath = this.wsPath.replace(/http/,'ws') - // this.webSocket() + this.webSocket() this.initWindowSize() this.fetchData() @@ -425,11 +426,8 @@ if( val.target.innerText!=='摄像头') { this.showType = false const devTypes = document.querySelectorAll('.dev-icon') - // console.log(devTypes) - // console.log(this.cameraTypeNum) for(var i=0;i { - // that.$router.push({ - // path: '/overview', - // query: { refresh: true } - // }) - // } + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } }) - // } } // 监听socket错误 this.socket.onerror = function() { @@ -493,6 +492,27 @@ handleSelect(key, keyPath) { this.selectDevByType(key,undefined) }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, // 获取窗口大小 initWindowSize() { // 获取窗体尺寸 @@ -562,19 +582,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -823,19 +843,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -954,8 +974,8 @@ } }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1304,6 +1324,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1525,6 +1567,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/doorIndex.vue b/src/views/overview/doorIndex.vue index 1dd2e6e..15eb719 100644 --- a/src/views/overview/doorIndex.vue +++ b/src/views/overview/doorIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -168,7 +168,7 @@
-
+
设备编号 @@ -385,19 +385,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -836,6 +836,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1057,6 +1079,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/fenceIndex.vue b/src/views/overview/fenceIndex.vue index e3ec0d5..0a6d139 100644 --- a/src/views/overview/fenceIndex.vue +++ b/src/views/overview/fenceIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -174,7 +174,7 @@
-
+
设备编号 @@ -390,19 +390,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -842,6 +842,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1063,6 +1085,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/keyIndex.vue b/src/views/overview/keyIndex.vue index 2e15516..19d844d 100644 --- a/src/views/overview/keyIndex.vue +++ b/src/views/overview/keyIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -206,7 +206,7 @@
-
+
设备编号 @@ -265,6 +265,7 @@ components: { DeviceDetail }, data() { return { + wsPath: process.env.BASE_API+'/websocket/', showAlarmDetail: false, // 是否显示设备详情 alarmForm: { id:'', @@ -369,6 +370,8 @@ }, mounted() { window.addEventListener('click',this.handleKeyup, true) + this.wsPath = this.wsPath.replace(/http/,'ws') + this.webSocket() this.initWindowSize() this.fetchData() @@ -381,6 +384,83 @@ } }, methods: { + webSocket() { + const that = this + if (typeof (WebSocket) === 'undefined') { + this.$notify({ + title: '提示', + message: '当前浏览器无法接收实时报警信息,请使用谷歌浏览器或360浏览器极速模式!', + type: 'warning', + duration: 0 + }) + } else { + // 获取token保存到vuex中的用户信息,此处仅适用于本项目,注意删除或修改 + // 实例化socket,这里我把用户名传给了后台,使后台能判断要把消息发给哪个用户,其实也可以后台直接获取用户IP来判断并推送 + const socketUrl = this.wsPath + this.$store.getters.token + this.socket = new WebSocket(socketUrl) + this.socket.onclose = function() {} + // 监听socket打开 + this.socket.onopen = function() { + console.log('浏览器WebSocket已打开') + // 加入心跳监测 + console.log(new Date()) + } + // 监听socket消息接收 + this.socket.onmessage = function(msg) { + that.fetchAlarmNowData() + // 转换为json对象 + const data = JSON.parse(msg.data) + var str = "" + if(data.alarmValue.length!==0){ + str = '('+data.alarmValue+'℃)' + } + console.log(data) + that.$notify({ + title: '报警设备:' + data.devcode, + // 这里也可以把返回信息加入到message中显示 + message: '报警内容:'+ data.alarmContent + str, + type: 'warning', + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } + }) + } + // 监听socket错误 + this.socket.onerror = function() { + that.$notify({ + title: '服务器错误', + message: '无法接收实时报警信息,请检查服务器后重新刷新页面', + type: 'error', + duration: 0 + }) + } + // 监听socket关闭 + this.socket.onclose = function(e) { + console.log('WebSocket已关闭', e, new Date()) + } + } + }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, handleKeyup(val){ //单击收起摄像头分类 this.showAlarmDetail = false this.showDevDetail = false @@ -474,19 +554,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -788,19 +868,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -866,8 +946,8 @@ this.selectDevByType('all') }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1209,6 +1289,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1430,6 +1532,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/regionIndex.vue b/src/views/overview/regionIndex.vue index 640a0f8..7d8bc8c 100644 --- a/src/views/overview/regionIndex.vue +++ b/src/views/overview/regionIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -169,7 +169,7 @@
-
+
设备编号 @@ -389,19 +389,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -835,6 +835,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1056,6 +1078,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/visitor/visitorCarTodayList.vue b/src/views/visitor/visitorCarTodayList.vue index 9e2afc8..6d78a80 100644 --- a/src/views/visitor/visitorCarTodayList.vue +++ b/src/views/visitor/visitorCarTodayList.vue @@ -54,6 +54,7 @@ @@ -73,6 +74,7 @@
+
@@ -81,10 +83,10 @@ import { getVisitorCarList } from '@/api/visitor' import { visitorCarExport } from '@/api/batch' import { getDate, formatToString } from '@/utils/calendarUtil' - +import VisitorTrace from '@/views/visitor/visitorTrace' export default { name: 'VisitorCarToday', - components: { VisitorCarDetail }, + components: { VisitorCarDetail,VisitorTrace }, props: { showDateRange: { type: Boolean, @@ -150,6 +152,7 @@ timeRange: [], listLoading: false, // 加载动画 fullscreenLoading: false, // 全屏加载动画 + dialogFormVisible1: false, // 全屏加载动画 dialogFormVisible: false } }, @@ -207,6 +210,11 @@ this.dialogFormVisible = true this.$refs.visitorCarDetail.initDialog('detail', this.dialogFormVisible, row) }, + //轨迹 + trace(row) { + this.dialogFormVisible1 = true + this.$refs.visitorTrace.initDialog('car', this.dialogFormVisible1, row) + }, // 查询数据 search() { this.fetchData(false) diff --git a/src/views/visitor/visitorTodayList.vue b/src/views/visitor/visitorTodayList.vue index 4bd19a0..1bde7e2 100644 --- a/src/views/visitor/visitorTodayList.vue +++ b/src/views/visitor/visitorTodayList.vue @@ -72,6 +72,7 @@ + @@ -80,10 +81,11 @@ import { getVisitorList } from '@/api/visitor' import { getDate, formatToString } from '@/utils/calendarUtil' import VisitorDetail from '@/views/visitor/visitorDetail' +import VisitorTrace from '@/views/visitor/visitorTrace' export default { name: 'VisitorToday', - components: { VisitorDetail }, + components: { VisitorDetail, VisitorTrace }, props: { showDateRange: { type: Boolean, @@ -148,6 +150,7 @@ timeRange: [], listLoading: false, // 加载动画 fullscreenLoading: false, // 全屏加载动画 + dialogFormVisible1: false, // 全屏加载动画 dialogFormVisible: false } }, @@ -205,6 +208,11 @@ this.dialogFormVisible = true this.$refs.visitorDetail.initDialog('detail', this.dialogFormVisible, row) }, + //轨迹 + trace(row) { + this.dialogFormVisible1 = true + this.$refs.visitorTrace.initDialog('person', this.dialogFormVisible1, row) + }, // 查询数据 search() { this.fetchData(false) @@ -218,6 +226,7 @@ getVisitorList(this.listQuery).then(response => { if (response.code === 200) { this.list = response.data.rows + this.list = [{id:'111',name:'1111',deptname:'sss',visitTime:'saaaaddddaaaaaaa',outTime:'saaaaaddddaaaaaa'}] this.total = parseInt(response.data.total) } else { this.$message.error(response.message) diff --git a/src/views/visitor/visitorTrace.vue b/src/views/visitor/visitorTrace.vue new file mode 100644 index 0000000..86d37c9 --- /dev/null +++ b/src/views/visitor/visitorTrace.vue @@ -0,0 +1,194 @@ + + + + + + diff --git a/src/api/visitor.js b/src/api/visitor.js index 187fe16..05ed6ea 100644 --- a/src/api/visitor.js +++ b/src/api/visitor.js @@ -55,3 +55,22 @@ }) } + +//轨迹 +// 查询车辆轨迹 +export function getVisitorCarTrace(params) { + return request({ + url: '/visitorCar/trace', + method: 'post', + params + }) +} +// 查询人员轨迹 +export function getVisitorTrace(params) { + return request({ + url: '/visitorPerson/trace', + method: 'post', + params + }) +} + diff --git a/src/assets/overview_images/dev-info-1366-red.png b/src/assets/overview_images/dev-info-1366-red.png new file mode 100644 index 0000000..9606620 --- /dev/null +++ b/src/assets/overview_images/dev-info-1366-red.png Binary files differ diff --git a/src/assets/overview_images/dev-info-red.png b/src/assets/overview_images/dev-info-red.png new file mode 100644 index 0000000..01745b0 --- /dev/null +++ b/src/assets/overview_images/dev-info-red.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-blue.png b/src/assets/overview_images/icons/camera-blue.png index 3fe070e..c644829 100644 --- a/src/assets/overview_images/icons/camera-blue.png +++ b/src/assets/overview_images/icons/camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-green.png b/src/assets/overview_images/icons/camera-green.png index e8a0d66..ed3029f 100644 --- a/src/assets/overview_images/icons/camera-green.png +++ b/src/assets/overview_images/icons/camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/camera-red.png b/src/assets/overview_images/icons/camera-red.png index 14fc247..62c60e9 100644 --- a/src/assets/overview_images/icons/camera-red.png +++ b/src/assets/overview_images/icons/camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-blue.png b/src/assets/overview_images/icons/half-camera-blue.png index 5c56a20..2d7136c 100644 --- a/src/assets/overview_images/icons/half-camera-blue.png +++ b/src/assets/overview_images/icons/half-camera-blue.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-green.png b/src/assets/overview_images/icons/half-camera-green.png index bc8c4b6..999371e 100644 --- a/src/assets/overview_images/icons/half-camera-green.png +++ b/src/assets/overview_images/icons/half-camera-green.png Binary files differ diff --git a/src/assets/overview_images/icons/half-camera-red.png b/src/assets/overview_images/icons/half-camera-red.png index fa07acd..1443478 100644 --- a/src/assets/overview_images/icons/half-camera-red.png +++ b/src/assets/overview_images/icons/half-camera-red.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-smoking-green.png b/src/assets/overview_images/icons/icon-smoking-green.png new file mode 100644 index 0000000..3bc64a9 --- /dev/null +++ b/src/assets/overview_images/icons/icon-smoking-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-sound-green.png b/src/assets/overview_images/icons/icon-sound-green.png new file mode 100644 index 0000000..8c8fbbe --- /dev/null +++ b/src/assets/overview_images/icons/icon-sound-green.png Binary files differ diff --git a/src/assets/overview_images/icons/icon-temperature-green.png b/src/assets/overview_images/icons/icon-temperature-green.png new file mode 100644 index 0000000..ad913c2 --- /dev/null +++ b/src/assets/overview_images/icons/icon-temperature-green.png Binary files differ diff --git a/src/assets/overview_images/point-green.png b/src/assets/overview_images/point-green.png new file mode 100644 index 0000000..1459a21 --- /dev/null +++ b/src/assets/overview_images/point-green.png Binary files differ diff --git a/src/assets/overview_images/point-orange.png b/src/assets/overview_images/point-orange.png new file mode 100644 index 0000000..bcccc58 --- /dev/null +++ b/src/assets/overview_images/point-orange.png Binary files differ diff --git a/src/views/alarm/alarmPosition.vue b/src/views/alarm/alarmPosition.vue index 3fc004b..30804d4 100644 --- a/src/views/alarm/alarmPosition.vue +++ b/src/views/alarm/alarmPosition.vue @@ -9,7 +9,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" /> diff --git a/src/views/ctrl/overview.vue b/src/views/ctrl/overview.vue index 4532bf7..6dc20d4 100644 --- a/src/views/ctrl/overview.vue +++ b/src/views/ctrl/overview.vue @@ -222,7 +222,7 @@ -
+
设备编号 @@ -390,11 +390,12 @@ }, destroyed() { window.removeEventListener("click", this.handleKeyup, true); + this.socket.close() }, mounted() { window.addEventListener('click',this.handleKeyup, true) this.wsPath = this.wsPath.replace(/http/,'ws') - // this.webSocket() + this.webSocket() this.initWindowSize() this.fetchData() @@ -425,11 +426,8 @@ if( val.target.innerText!=='摄像头') { this.showType = false const devTypes = document.querySelectorAll('.dev-icon') - // console.log(devTypes) - // console.log(this.cameraTypeNum) for(var i=0;i { - // that.$router.push({ - // path: '/overview', - // query: { refresh: true } - // }) - // } + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } }) - // } } // 监听socket错误 this.socket.onerror = function() { @@ -493,6 +492,27 @@ handleSelect(key, keyPath) { this.selectDevByType(key,undefined) }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, // 获取窗口大小 initWindowSize() { // 获取窗体尺寸 @@ -562,19 +582,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -823,19 +843,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -954,8 +974,8 @@ } }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1304,6 +1324,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1525,6 +1567,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/doorIndex.vue b/src/views/overview/doorIndex.vue index 1dd2e6e..15eb719 100644 --- a/src/views/overview/doorIndex.vue +++ b/src/views/overview/doorIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -168,7 +168,7 @@
-
+
设备编号 @@ -385,19 +385,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -836,6 +836,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1057,6 +1079,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/fenceIndex.vue b/src/views/overview/fenceIndex.vue index e3ec0d5..0a6d139 100644 --- a/src/views/overview/fenceIndex.vue +++ b/src/views/overview/fenceIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -174,7 +174,7 @@
-
+
设备编号 @@ -390,19 +390,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -842,6 +842,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1063,6 +1085,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/keyIndex.vue b/src/views/overview/keyIndex.vue index 2e15516..19d844d 100644 --- a/src/views/overview/keyIndex.vue +++ b/src/views/overview/keyIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -206,7 +206,7 @@
-
+
设备编号 @@ -265,6 +265,7 @@ components: { DeviceDetail }, data() { return { + wsPath: process.env.BASE_API+'/websocket/', showAlarmDetail: false, // 是否显示设备详情 alarmForm: { id:'', @@ -369,6 +370,8 @@ }, mounted() { window.addEventListener('click',this.handleKeyup, true) + this.wsPath = this.wsPath.replace(/http/,'ws') + this.webSocket() this.initWindowSize() this.fetchData() @@ -381,6 +384,83 @@ } }, methods: { + webSocket() { + const that = this + if (typeof (WebSocket) === 'undefined') { + this.$notify({ + title: '提示', + message: '当前浏览器无法接收实时报警信息,请使用谷歌浏览器或360浏览器极速模式!', + type: 'warning', + duration: 0 + }) + } else { + // 获取token保存到vuex中的用户信息,此处仅适用于本项目,注意删除或修改 + // 实例化socket,这里我把用户名传给了后台,使后台能判断要把消息发给哪个用户,其实也可以后台直接获取用户IP来判断并推送 + const socketUrl = this.wsPath + this.$store.getters.token + this.socket = new WebSocket(socketUrl) + this.socket.onclose = function() {} + // 监听socket打开 + this.socket.onopen = function() { + console.log('浏览器WebSocket已打开') + // 加入心跳监测 + console.log(new Date()) + } + // 监听socket消息接收 + this.socket.onmessage = function(msg) { + that.fetchAlarmNowData() + // 转换为json对象 + const data = JSON.parse(msg.data) + var str = "" + if(data.alarmValue.length!==0){ + str = '('+data.alarmValue+'℃)' + } + console.log(data) + that.$notify({ + title: '报警设备:' + data.devcode, + // 这里也可以把返回信息加入到message中显示 + message: '报警内容:'+ data.alarmContent + str, + type: 'warning', + onClick: () => { + that.clickAlarm(data.deviceId,data.picture) + } + }) + } + // 监听socket错误 + this.socket.onerror = function() { + that.$notify({ + title: '服务器错误', + message: '无法接收实时报警信息,请检查服务器后重新刷新页面', + type: 'error', + duration: 0 + }) + } + // 监听socket关闭 + this.socket.onclose = function(e) { + console.log('WebSocket已关闭', e, new Date()) + } + } + }, + clickAlarm(val,pic){ + console.log(val) + if(pic==='1'){ + this.changeMap('tg_main') + }else if(pic==='2'){ + this.changeMap('tg_3_1') + }else if(pic==='3'){ + this.changeMap('tg_4_1') + }else if(pic==='4'){ + this.changeMap('tg_4_1') + } + setTimeout(() => { + var obj = document.getElementById(val.toString()); + var timer = setInterval(() => { + obj.style.display = obj.style.display=="none"?"":"none"; + }, 500) + setTimeout(() => { + clearInterval(timer ) + }, 10000); + }, 1000); + }, handleKeyup(val){ //单击收起摄像头分类 this.showAlarmDetail = false this.showDevDetail = false @@ -474,19 +554,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -788,19 +868,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -866,8 +946,8 @@ this.selectDevByType('all') }, // 点击报警列表 - alarmRowClick(dev, column, event) { - + alarmRowClick(row) { + this.clickAlarm(row.deviceId,row.picture) }, // 清除设备详情 resetDevDetail() { @@ -1209,6 +1289,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1430,6 +1532,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/overview/regionIndex.vue b/src/views/overview/regionIndex.vue index 640a0f8..7d8bc8c 100644 --- a/src/views/overview/regionIndex.vue +++ b/src/views/overview/regionIndex.vue @@ -89,7 +89,7 @@ :id="item.id" :key="item.id" :src="item.imgUrl" - :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: item.y * imgSize.height / imgSizeOriginal.height + 'px', left: (item.x * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" + :style="{ transform: 'rotate('+ item.angle +'deg)', position: 'absolute', top: (item.y-25) * imgSize.height / imgSizeOriginal.height + 'px', left: ((item.x-25) * imgSize.width / imgSizeOriginal.width + halfLeft) + 'px' }" class="point-camera" @click="detailDev(item, $event)" />
@@ -169,7 +169,7 @@
-
+
设备编号 @@ -389,19 +389,19 @@ } }else if(dev.type===1){ //温湿度 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===2){ //烟感 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-temperature-checked.png") } }else if(dev.type===12){ //声光 if(dev.deviceStatus === 0){ //normal - dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-unchecked.png") + dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-green.png") }else{ //alarm dev.imgUrl = require("../../assets/overview_images/icons/icon-sound-checked.png") } @@ -835,6 +835,28 @@ cursor: pointer; } } + .alarm-detail-block { + /*position: absolute;*/ + /*right: 20px;*/ + /*bottom: 100px;*/ + width: 520px; + height: 335px; + font-size: 24px; + font-family: "Microsoft YaHei"; + padding: 45px 60px; + line-height: 35px; + background: url("../../assets/overview_images/dev-info-red.png"); + .dev-detail-span { + margin-left: 20px; + } + .dev-detail-close::before { + content: "\2716"; + position: relative; + top: -20px; + right: -410px; + cursor: pointer; + } + } .dev-footer { position: absolute; @@ -1056,6 +1078,18 @@ right: -312px; } } + .alarm-detail-block { + width: 390px; + height: 251px; + font-size: 16px; + padding: 30px 40px; + line-height: 28px; + background: url("../../assets/overview_images/dev-info-1366-red.png"); + .dev-detail-close::before { + top: -12px; + right: -312px; + } + } .dev-footer { bottom: 20px; diff --git a/src/views/visitor/visitorCarTodayList.vue b/src/views/visitor/visitorCarTodayList.vue index 9e2afc8..6d78a80 100644 --- a/src/views/visitor/visitorCarTodayList.vue +++ b/src/views/visitor/visitorCarTodayList.vue @@ -54,6 +54,7 @@ @@ -73,6 +74,7 @@
+
@@ -81,10 +83,10 @@ import { getVisitorCarList } from '@/api/visitor' import { visitorCarExport } from '@/api/batch' import { getDate, formatToString } from '@/utils/calendarUtil' - +import VisitorTrace from '@/views/visitor/visitorTrace' export default { name: 'VisitorCarToday', - components: { VisitorCarDetail }, + components: { VisitorCarDetail,VisitorTrace }, props: { showDateRange: { type: Boolean, @@ -150,6 +152,7 @@ timeRange: [], listLoading: false, // 加载动画 fullscreenLoading: false, // 全屏加载动画 + dialogFormVisible1: false, // 全屏加载动画 dialogFormVisible: false } }, @@ -207,6 +210,11 @@ this.dialogFormVisible = true this.$refs.visitorCarDetail.initDialog('detail', this.dialogFormVisible, row) }, + //轨迹 + trace(row) { + this.dialogFormVisible1 = true + this.$refs.visitorTrace.initDialog('car', this.dialogFormVisible1, row) + }, // 查询数据 search() { this.fetchData(false) diff --git a/src/views/visitor/visitorTodayList.vue b/src/views/visitor/visitorTodayList.vue index 4bd19a0..1bde7e2 100644 --- a/src/views/visitor/visitorTodayList.vue +++ b/src/views/visitor/visitorTodayList.vue @@ -72,6 +72,7 @@ + @@ -80,10 +81,11 @@ import { getVisitorList } from '@/api/visitor' import { getDate, formatToString } from '@/utils/calendarUtil' import VisitorDetail from '@/views/visitor/visitorDetail' +import VisitorTrace from '@/views/visitor/visitorTrace' export default { name: 'VisitorToday', - components: { VisitorDetail }, + components: { VisitorDetail, VisitorTrace }, props: { showDateRange: { type: Boolean, @@ -148,6 +150,7 @@ timeRange: [], listLoading: false, // 加载动画 fullscreenLoading: false, // 全屏加载动画 + dialogFormVisible1: false, // 全屏加载动画 dialogFormVisible: false } }, @@ -205,6 +208,11 @@ this.dialogFormVisible = true this.$refs.visitorDetail.initDialog('detail', this.dialogFormVisible, row) }, + //轨迹 + trace(row) { + this.dialogFormVisible1 = true + this.$refs.visitorTrace.initDialog('person', this.dialogFormVisible1, row) + }, // 查询数据 search() { this.fetchData(false) @@ -218,6 +226,7 @@ getVisitorList(this.listQuery).then(response => { if (response.code === 200) { this.list = response.data.rows + this.list = [{id:'111',name:'1111',deptname:'sss',visitTime:'saaaaddddaaaaaaa',outTime:'saaaaaddddaaaaaa'}] this.total = parseInt(response.data.total) } else { this.$message.error(response.message) diff --git a/src/views/visitor/visitorTrace.vue b/src/views/visitor/visitorTrace.vue new file mode 100644 index 0000000..86d37c9 --- /dev/null +++ b/src/views/visitor/visitorTrace.vue @@ -0,0 +1,194 @@ + + + + + + diff --git a/theme/index.css b/theme/index.css index 76db49d..0da7571 100644 --- a/theme/index.css +++ b/theme/index.css @@ -526,7 +526,7 @@ .el-icon-close:before { content: "\e6db"; color: #00387b; - font-size: 23px; + font-size: 18px; font-weight: bold; }