[1078] 完善录像下载
This commit is contained in:
@@ -169,6 +169,22 @@ export function startPlayback(params) {
|
||||
}
|
||||
})
|
||||
}
|
||||
export function getRecordTempUrl({ phoneNumber, channelId, startTime, endTime, alarmSign, mediaType, streamType, storageType }) {
|
||||
return request({
|
||||
method: 'get',
|
||||
url: '/api/jt1078/playback/downloadUrl',
|
||||
params: {
|
||||
phoneNumber: phoneNumber,
|
||||
channelId: channelId,
|
||||
startTime: startTime,
|
||||
endTime: endTime,
|
||||
alarmSign: alarmSign,
|
||||
mediaType: mediaType,
|
||||
streamType: streamType,
|
||||
storageType: storageType
|
||||
}
|
||||
})
|
||||
}
|
||||
export function controlPlayback(params) {
|
||||
const { phoneNumber, channelId, command, playbackSpeed, time } = params
|
||||
return request({
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {
|
||||
add,
|
||||
addChannel, controlPlayback, deleteDevice,
|
||||
fillLight,
|
||||
fillLight, getRecordTempUrl,
|
||||
play, ptz,
|
||||
queryChannels, queryConfig,
|
||||
queryDeviceById,
|
||||
@@ -200,6 +200,16 @@ const actions = {
|
||||
reject(error)
|
||||
})
|
||||
})
|
||||
},
|
||||
getRecordTempUrl({ commit }, params) {
|
||||
return new Promise((resolve, reject) => {
|
||||
getRecordTempUrl(params).then(response => {
|
||||
const { data } = response
|
||||
resolve(data)
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -475,36 +475,62 @@ export default {
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
})
|
||||
const baseUrl = window.baseUrl ? window.baseUrl : ''
|
||||
const downloadFileUrl = ((process.env.NODE_ENV === 'development') ? process.env.VUE_APP_BASE_API : baseUrl) +
|
||||
`/api/jt1078/playback/download?phoneNumber=${this.phoneNumber}&channelId=${this.channelId}&startTime=${row.startTime}&endTime=${row.endTime}` +
|
||||
`&alarmSign=${row.alarmSign}&mediaType=${row.mediaType}&streamType=${row.streamType}&storageType=${row.storageType}&access-token=${this.$store.getters.token}`
|
||||
const x = new XMLHttpRequest()
|
||||
x.open('GET', downloadFileUrl, true)
|
||||
x.responseType = 'blob'
|
||||
x.onload = (e) => {
|
||||
const url = window.URL.createObjectURL(x.response)
|
||||
const a = document.createElement('a')
|
||||
a.href = url
|
||||
a.download = this.phoneNumber + '-' + this.channelId + '.mp4'
|
||||
a.click()
|
||||
// 获取下载地址
|
||||
this.$store.dispatch('jtDevice/getRecordTempUrl', {
|
||||
phoneNumber: this.phoneNumber,
|
||||
channelId: this.channelId,
|
||||
startTime: row.startTime,
|
||||
endTime: row.endTime,
|
||||
alarmSign: row.alarmSign,
|
||||
mediaType: row.mediaType,
|
||||
streamType: row.streamType,
|
||||
storageType: row.storageType
|
||||
}).then(data => {
|
||||
console.log(data)
|
||||
// const a = document.createElement('a')
|
||||
const baseUrl = window.baseUrl
|
||||
let dev = (process.env.NODE_ENV === 'development' ? process.env.VUE_APP_BASE_API : baseUrl)
|
||||
// a.href =
|
||||
// a.download = data + '.mp4'
|
||||
// a.click()
|
||||
|
||||
window.open(`${dev}/api/jt1078/playback/download?path=${data}`)
|
||||
}).finally(() => {
|
||||
loading.close()
|
||||
}
|
||||
x.ontimeout = (e) => {
|
||||
loading.close()
|
||||
this.$message.error({
|
||||
showClose: true,
|
||||
message: '加载超时'
|
||||
})
|
||||
}
|
||||
x.onerror = (e) => {
|
||||
loading.close()
|
||||
this.$message.error({
|
||||
showClose: true,
|
||||
message: e.error
|
||||
})
|
||||
}
|
||||
x.send()
|
||||
})
|
||||
|
||||
|
||||
|
||||
// const baseUrl = window.baseUrl ? window.baseUrl : ''
|
||||
// const downloadFileUrl = ((process.env.NODE_ENV === 'development') ? process.env.VUE_APP_BASE_API : baseUrl) +
|
||||
// `/api/jt1078/playback/download?phoneNumber=${this.phoneNumber}&channelId=${this.channelId}&startTime=${row.startTime}&endTime=${row.endTime}` +
|
||||
// `&alarmSign=${row.alarmSign}&mediaType=${row.mediaType}&streamType=${row.streamType}&storageType=${row.storageType}&access-token=${this.$store.getters.token}`
|
||||
// const x = new XMLHttpRequest()
|
||||
// x.open('GET', downloadFileUrl, true)
|
||||
// x.responseType = 'blob'
|
||||
// x.onload = (e) => {
|
||||
// const url = window.URL.createObjectURL(x.response)
|
||||
// const a = document.createElement('a')
|
||||
// a.href = url
|
||||
// a.download = this.phoneNumber + '-' + this.channelId + '.mp4'
|
||||
// a.click()
|
||||
// loading.close()
|
||||
// }
|
||||
// x.ontimeout = (e) => {
|
||||
// loading.close()
|
||||
// this.$message.error({
|
||||
// showClose: true,
|
||||
// message: '加载超时'
|
||||
// })
|
||||
// }
|
||||
// x.onerror = (e) => {
|
||||
// loading.close()
|
||||
// this.$message.error({
|
||||
// showClose: true,
|
||||
// message: e.error
|
||||
// })
|
||||
// }
|
||||
// x.send()
|
||||
},
|
||||
getFileShowName(item) {
|
||||
return moment(item.startTime).format('HH:mm:ss') + '-' + moment(item.endTime).format('HH:mm:ss')
|
||||
|
||||
Reference in New Issue
Block a user