diff --git a/ah-jjzhgd-web/package.json b/ah-jjzhgd-web/package.json index 2ac725f..b6f28a2 100644 --- a/ah-jjzhgd-web/package.json +++ b/ah-jjzhgd-web/package.json @@ -26,7 +26,9 @@ "echarts": "4.2.1", "element-ui": "2.15.13", "file-saver": "2.0.1", + "flv.js": "^1.6.2", "fuse.js": "3.4.4", + "jquery": "^3.7.1", "js-cookie": "2.2.0", "jsonlint": "1.6.3", "jszip": "3.2.1", @@ -35,10 +37,11 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "path-to-regexp": "2.4.0", - "qs": "^6.11.2", + "qs": "^6.12.0", "screenfull": "4.2.0", "script-loader": "0.7.2", "sortablejs": "1.8.4", + "video.js": "^8.10.0", "vue": "2.6.10", "vue-count-to": "1.0.13", "vue-router": "3.0.2", diff --git a/ah-jjzhgd-web/src/api/video/index.js b/ah-jjzhgd-web/src/api/video/index.js new file mode 100644 index 0000000..7763034 --- /dev/null +++ b/ah-jjzhgd-web/src/api/video/index.js @@ -0,0 +1,26 @@ +import request from '@/utils/videoRequest' +import qs from 'qs' +import $ from 'jquery' + +// 视频监控相关操作 +export function handleVideoGet(url, data) { + return request({ + url, + method: 'get', + params: data + }) +} + +export function handleVideoPost(url, data, scb) { + $.ajax({ + type: 'post', + url: url, + data: data, + traditional: true, + dataType: 'json', + async: true, + complete: function(res) { + scb && scb(res) + } + }) +} diff --git a/ah-jjzhgd-web/src/main.js b/ah-jjzhgd-web/src/main.js index 3729c66..94d30f5 100644 --- a/ah-jjzhgd-web/src/main.js +++ b/ah-jjzhgd-web/src/main.js @@ -21,6 +21,10 @@ import './utils/error-log' // error log import * as filters from './filters' // global filters import qs from 'qs' + +import Video from 'video.js' +import 'video.js/dist/video-js.min.css' + /** * If you don't want to use mock-server * you want to use MockJs for mock api @@ -35,7 +39,7 @@ import qs from 'qs' // } Vue.use(Element, { - size: Cookies.get('size') || 'medium', // set element-ui default size + size: Cookies.get('size') || 'medium' // set element-ui default size // locale: enLang // 如果使用中文,无需设置,请删除 }) @@ -52,3 +56,5 @@ new Vue({ store, render: h => h(App) }) + +Vue.prototype.$video = Video diff --git a/ah-jjzhgd-web/src/utils/videoRequest.js b/ah-jjzhgd-web/src/utils/videoRequest.js new file mode 100644 index 0000000..7a9863b --- /dev/null +++ b/ah-jjzhgd-web/src/utils/videoRequest.js @@ -0,0 +1,53 @@ +import axios from 'axios' +import { MessageBox, Message } from 'element-ui' +import store from '@/store' +import { getToken, removeToken } from '@/utils/auth' +import router from '@/router' // @表示src目录 + +const service = axios.create({ + baseURL: process.env.VUE_APP_BASE_API, + timeout: 10000 +}) + +service.interceptors.request.use( + config => { + if (store.getters.token) { + config.headers['Authorization'] = getToken() + } + return config + }, + error => { + return Promise.reject(error) + } +) + +// response interceptor +service.interceptors.response.use( + response => { + const res = response.data + // console.log(res) + if (res.code === 401) { + removeToken() + MessageBox.confirm('登录已过期', '退出登录', { + confirmButtonText: '重新登录', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + router.push({ path: '/login' }) + }) + return + } + return res + }, + error => { + console.log('err' + error) // for debug + Message({ + message: error.message, + type: 'error', + duration: 5 * 1000 + }) + return Promise.reject(error) + } +) + +export default service diff --git a/ah-jjzhgd-web/src/views/basic/progress/components/ProcessTable2.vue b/ah-jjzhgd-web/src/views/basic/progress/components/ProcessTable2.vue index 859759a..78f0f2d 100644 --- a/ah-jjzhgd-web/src/views/basic/progress/components/ProcessTable2.vue +++ b/ah-jjzhgd-web/src/views/basic/progress/components/ProcessTable2.vue @@ -41,7 +41,8 @@ - + +