diff --git a/.env.development b/.env.development index 09664d8..1143454 100644 --- a/.env.development +++ b/.env.development @@ -8,6 +8,7 @@ ENV = 'development' VUE_APP_BASE_API = '/dev-api' VUE_APP_NVR_API = '/nvr-api' +VUE_APP_DEVICE_TREE_API = 'http://192.168.1.116:18891/app/htjc6/api' # 路由懒加载 VUE_CLI_BABEL_TRANSPILE_MODULES = true diff --git a/.env.htjc6 b/.env.htjc6 index c3ee4e4..265c82e 100644 --- a/.env.htjc6 +++ b/.env.htjc6 @@ -4,6 +4,7 @@ ENV = 'production' VUE_APP_TITLE = 智能巡视 VUE_APP_BASE_API = '/prod-api' VUE_APP_NVR_API = 'http://192.168.1.86:28081' +VUE_APP_DEVICE_TREE_API = 'http://192.168.1.116:18891/app/htjc6/api' VUE_APP_PUBLIC_PATH = '/app/htjc6/' VUE_APP_OUTPUT_DIR = 'dist/app/htjc6' diff --git a/.env.production b/.env.production index ec7891a..3ee2ee3 100644 --- a/.env.production +++ b/.env.production @@ -8,3 +8,4 @@ ENV = 'production' VUE_APP_BASE_API = '/prod-api' VUE_APP_NVR_API = 'http://192.168.1.86:28081' +VUE_APP_DEVICE_TREE_API = 'http://192.168.1.116:18891/app/htjc6/api' diff --git a/public/aa-logo.png b/public/aa-logo.png new file mode 100644 index 0000000..bf790f3 Binary files /dev/null and b/public/aa-logo.png differ diff --git a/public/index.html b/public/index.html index 114e98b..d1adedb 100644 --- a/public/index.html +++ b/public/index.html @@ -5,7 +5,7 @@ - + <%= webpackConfig.name %> diff --git a/src/api/nvrVideo.js b/src/api/nvrVideo.js index 39495c9..4534438 100644 --- a/src/api/nvrVideo.js +++ b/src/api/nvrVideo.js @@ -1,80 +1,129 @@ -import axios from 'axios' +import request from '@/utils/request' -const nvr = axios.create({ - baseURL: process.env.VUE_APP_NVR_API || '/nvr-api', - timeout: 30000, - withCredentials: false +const unwrap = promise => promise.then(result => { + if (result && Object.prototype.hasOwnProperty.call(result, 'data')) return result.data + return result }) -nvr.interceptors.response.use( - response => response, - error => { - const response = error.response - const data = response && response.data - const message = data && (data.message || data.msg) - const normalized = new Error(message || error.message || 'NVR 服务请求失败') - normalized.status = response && response.status - normalized.response = response - return Promise.reject(normalized) +function encodeCameraCodeSegments(cameraCode) { + const value = String(cameraCode || '') + const separatorIndex = value.indexOf('#') + if (separatorIndex <= 0 || separatorIndex === value.length - 1) { + throw new Error('摄像机编码格式不正确') } -) - -const data = promise => promise.then(response => response.data) -const uiBase = '/hik/nvr/playback/hls/ui' -const playbackBase = '/hik/nvr/playback/hls' + return [ + encodeURIComponent(value.slice(0, separatorIndex)), + encodeURIComponent(value.slice(separatorIndex + 1)) + ] +} export function getNvrConfig() { - return data(nvr.get(`${uiBase}/config`)) + return unwrap(request({ url: '/patrol/video/config', method: 'get' })) } -export function startLive(cameraCode) { - return data(nvr.post(`${uiBase}/actions/live/start`, { cameraCode, streamType: 1 })) +export function startLive(channel) { + return unwrap(request({ + url: '/patrol/video/realtime/start', + method: 'post', + data: { + cameraCode: channel.cameraCode || channel.channelCode, + streamType: 1 + } + })) } export function getLiveStatus(cameraCode) { - return data(nvr.get(`${uiBase}/actions/live/status`, { params: { cameraCode }})) + return unwrap(request({ + url: '/patrol/video/realtime/status', + method: 'get', + params: { cameraCode } + })) } export function stopLive(cameraCode) { - return data(nvr.post(`${uiBase}/actions/live/stop`, { cameraCode })) + return unwrap(request({ + url: '/patrol/video/realtime/stop', + method: 'post', + data: { cameraCode } + })) } export function controlPtz(payload) { - return data(nvr.post('/device/ptzcontrol', payload)) + return unwrap(request({ + url: '/patrol/preset/ptzControl', + method: 'post', + data: payload + })) } -export function getPresetList(deviceCode, domainCode) { - return data(nvr.get(`/device/ptzpresetlist/${encodeURIComponent(deviceCode)}/${encodeURIComponent(domainCode)}`)) +export function getPresetList(cameraCode) { + const [device, domain] = encodeCameraCodeSegments(cameraCode) + return unwrap(request({ + url: `/patrol/preset/presetList/${device}/${domain}`, + method: 'get' + })) } export function createPreset(payload) { - return data(nvr.post(`${uiBase}/actions/preset/create`, payload)) + return unwrap(request({ + url: '/patrol/preset/presetCreate', + method: 'post', + data: payload + })) } -export function createSnapshot(deviceCode, domainCode) { - return data(nvr.get(`/platform/platformSnapshot/${encodeURIComponent(deviceCode)}/${encodeURIComponent(domainCode)}`)) +export function createSnapshot(cameraCode) { + const [device, domain] = encodeCameraCodeSegments(cameraCode) + return unwrap(request({ + url: `/patrol/videotape/snapshot/task/${device}/${domain}`, + method: 'get' + })) } export function downloadSnapshot(taskId) { - return nvr.get(`/platform/snapshot/${encodeURIComponent(taskId)}`, { responseType: 'blob' }) + return request({ + url: `/patrol/videotape/snapshot/${encodeURIComponent(taskId)}`, + method: 'get', + responseType: 'blob' + }) } export function createPlaybackSession(payload) { - return data(nvr.post(`${uiBase}/sessions`, payload)) + return unwrap(request({ + url: '/patrol/videotape/hls/ui/session/create', + method: 'post', + data: payload + })) } export function getPlaybackSession(sessionId) { - return data(nvr.get(`${playbackBase}/sessions/${encodeURIComponent(sessionId)}`)) + return unwrap(request({ + url: `/patrol/videotape/hls/session/query/${encodeURIComponent(sessionId)}`, + method: 'get' + })) } export function controlPlayback(sessionId, payload) { - return data(nvr.post(`${uiBase}/sessions/${encodeURIComponent(sessionId)}/controls`, payload)) + return unwrap(request({ + url: `/patrol/videotape/hls/ui/session/control/${encodeURIComponent(sessionId)}`, + method: 'post', + data: payload + })) } export function deletePlaybackSession(sessionId) { - return data(nvr.delete(`${playbackBase}/sessions/${encodeURIComponent(sessionId)}`)) + return unwrap(request({ + url: `/patrol/videotape/hls/session/delete/${encodeURIComponent(sessionId)}`, + method: 'delete' + })) } export function downloadPlaybackClip(payload) { - return nvr.post('/hik/nvr/playback/clips/download', payload, { responseType: 'blob', timeout: 120000 }) + return request({ + url: '/patrol/videotape/clip/download', + method: 'post', + data: payload, + responseType: 'blob', + timeout: 120000 + }) } diff --git a/src/api/videosMonitor/index.js b/src/api/videosMonitor/index.js index 279bc11..efe759c 100644 --- a/src/api/videosMonitor/index.js +++ b/src/api/videosMonitor/index.js @@ -7,11 +7,20 @@ import { defectList } from "../home/index"; * @returns */ export function getAreaEqubookTreeSelect(params) { + const query = params || {}; + const patroldeviceName = encodeURIComponent(query.patroldeviceName || ""); + const onlineStatus = encodeURIComponent(query.onlineStatus || ""); + const patroldeviceTypeFlag = encodeURIComponent( + query.patroldeviceTypeFlag || "ipc" + ); return request({ - // url: '/basedata/eqpbook/getAreaEqubookTreeSelect', - url: "/basedata/eqpbook/getAreaEqubookTreeSelectForFilter", + baseURL: process.env.VUE_APP_DEVICE_TREE_API, + url: + "/basedata/eqpbook/getAreaEqubookTreeSelectForFilter" + + `?patroldeviceName=${patroldeviceName}` + + `&onlineStatus=${onlineStatus}` + + `&patroldeviceTypeFlag=${patroldeviceTypeFlag}`, method: "get", - params, }); } /** diff --git a/src/assets/images/aa-logo.png b/src/assets/images/aa-logo.png new file mode 100644 index 0000000..bf790f3 Binary files /dev/null and b/src/assets/images/aa-logo.png differ diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 9ae92d2..da5a576 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -47,7 +47,7 @@ trigger="click" >
- +
@@ -71,6 +71,7 @@ import { mapGetters } from "vuex"; import TopNav from "@/components/TopNav"; import Screenfull from "@/components/Screenfull"; import headerLogo from "@/assets/images/header/logo.png"; +import loginAvatar from "@/assets/images/aa-logo.png"; // import { changeLanguage } from "@/api/login"; export default { components: { @@ -79,7 +80,8 @@ export default { }, data() { return { - headerLogo + headerLogo, + loginAvatar }; }, computed: { diff --git a/src/store/modules/user.js b/src/store/modules/user.js index a8e01cf..0db53db 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -1,5 +1,6 @@ import { login, logout, getInfo, refreshToken } from "@/api/login"; import { getToken, setToken, setExpiresIn, removeToken } from "@/utils/auth"; +import defaultAvatar from "@/assets/images/aa-logo.png"; const user = { state: { @@ -84,7 +85,7 @@ const user = { const user = res.user; const avatar = user.avatar == "" || user.avatar == null - ? require("@/assets/images/profile.jpg") + ? defaultAvatar : user.avatar; if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组 diff --git a/src/views/cards/patrolPlan/notstart.vue b/src/views/cards/patrolPlan/notstart.vue index a43a06e..ad8340f 100644 --- a/src/views/cards/patrolPlan/notstart.vue +++ b/src/views/cards/patrolPlan/notstart.vue @@ -106,14 +106,21 @@ align="center" :index="table_index" /> - - - - + + + + @@ -123,7 +130,7 @@ prop="taskCycle" :formatter="stateTask" /> --> - +