This commit is contained in:
jiumikeji 2025-05-07 23:08:30 +08:00
parent 95b74b7d1a
commit 24702e3d3d
8 changed files with 70 additions and 31 deletions

View File

@ -95,5 +95,4 @@ public class LogController {
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
}
}
}

View File

@ -28,9 +28,11 @@ spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
#url: jdbc:mysql://123.6.102.223:28306/wvprtsp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
url: jdbc:mysql://127.0.0.1:3306/wvprtsp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
username: root
password: 2fbeccb829d05a67
# password: 2fbeccb829d05a67
password: 123456
#[可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
server:
port: 18080
@ -63,9 +65,10 @@ sip:
#zlm 默认服务器配置
media:
#这个ID很重要一定配zlmediakit配置文件的mediaServerId的值
id: zlmediakit-local
# [必须修改] zlm服务器的内网IP
ip: 127.0.0.1
ip: 111.7.106.28
# [必须修改] zlm服务器的http.port
http-port: 6080
# [必选选] zlm服务器的hook.admin_params=secret
@ -75,9 +78,9 @@ media:
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
enable: true
# [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性不然自动配置此属性可能不成功
port-range: 40000,45000 # 端口范围
port-range: 41000,45000 # 端口范围
# [可选] 国标级联在此范围内选择端口发送媒体流,
send-port-range: 50000,55000 # 端口范围
send-port-range: 51000,55000 # 端口范围
# [根据业务需求配置]
user-settings:
# 点播/录像回放 等待超时时间,单位:毫秒

View File

@ -12,14 +12,18 @@ module.exports = {
assetsPublicPath: '/',
proxyTable: {
'/debug': {
target: 'http://rtsp.api.hebei9.cn',
// target: 'http://111.7.106.28:18080',
// target: 'http://rtsp.api.hebei9.cn',
target: 'http://127.0.0.1:18080',
changeOrigin: true,
pathRewrite: {
'^/debug': '/'
}
},
'/static/snap': {
target: 'http://rtsp.api.hebei9.cn',
// target: 'http://111.7.106.28:18080',
// target: 'http://rtsp.api.hebei9.cn',
target: 'http://127.0.0.1:18080',
changeOrigin: true,
// pathRewrite: {
// '^/static/snap': '/static/snap'

View File

@ -79,9 +79,9 @@
</el-button>
<el-button size="medium" icon="el-icon-download" type="text" @click="downloadFile(scope.row)">下载
</el-button>
<!-- <el-button size="medium" icon="el-icon-delete" type="text" style="color: #f56c6c"-->
<!-- @click="deleteRecord(scope.row)">删除-->
<!-- </el-button>-->
<el-button size="medium" icon="el-icon-delete" type="text" style="color: #f56c6c"
@click="deleteRecord(scope.row)">删除
</el-button>
</template>
</el-table-column>
</el-table>
@ -265,25 +265,30 @@ export default {
console.log(error);
});
},
deleteRecord() {
deleteRecord(row) {
// TODO
let msg = "确定删除此录像?"
let that = this;
// console.log(row)
this.$confirm(msg, '提示', {
dangerouslyUseHTMLString: true,
confirmButtonText: '确定',
cancelButtonText: '取消',
center: true,
type: 'warning'
}).then(() => {
this.$axios({
method: 'delete',
url: `/record_proxy/api/record/delete`,
params: {
page: that.currentPage,
count: that.count
}
url: `/api/cloud/record/${row.id}/delete`,
}).then(function (res) {
console.log(res)
if (res.data.code === 0) {
that.total = res.data.data.total;
that.recordList = res.data.data.list;
}
// console.log(res)
that.getRecordList()
}).catch(function (error) {
console.log(error);
});
}).catch(() => {
});
},
formatTime(time) {
const h = parseInt(time / 3600 / 1000)

View File

@ -10,6 +10,10 @@
</div>
</div>
</div>
<!-- <div class="tishi_msg">-->
<!-- <p>穿透地址123.6.102.223</p>-->
<!-- <p>穿透端口61160</p>-->
<!-- </div>-->
<div id="shared" style="text-align: right; margin-top: 1rem; background-color: #FFFFFF; padding-top: 2rem;">
<el-row :gutter="24">
<el-col :span="11">

View File

@ -12,10 +12,17 @@
<div id="shared" style="margin-right: 18px;">
<el-form ref="pushKeyForm" :rules="rules" status-icon label-width="86px">
<el-form-item label="新pushKey" prop="newPushKey" >
<el-row :gutter="20">
<el-col :span="20">
<el-input v-model="newPushKey" autocomplete="off"></el-input>
</el-col>
<el-col :span="2">
<el-button type="warning" @click="buildCodeEvent">生成KEY</el-button>
</el-col>
</el-row>
</el-form-item>
<el-form-item>
<div style="float: right;">
<div >
<el-button type="primary" @click="onSubmit">保存</el-button>
<el-button @click="close">取消</el-button>
</div>
@ -47,6 +54,11 @@ export default {
showDialog: false,
isLoging: false,
listChangeCallback: null,
pubKeyconfig: {
prefix: 'JIUMI', //
length: 24, //
excludeChars: 'O0Il1' //
},
form: {},
rules: {
newpushKey: [{ required: true, validator: validatePass1, trigger: "blur" }],
@ -54,6 +66,16 @@ export default {
};
},
methods: {
buildCodeEvent:function (){
// 32 256
const array = new Uint8Array(32);
window.crypto.getRandomValues(array);
this.newPushKey = btoa(String.fromCharCode(...array))
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '');
},
openDialog: function (row, callback) {
console.log(row)
this.showDialog = true;

View File

@ -15,6 +15,8 @@
<el-descriptions-item label="域">{{configInfoData.sip.domain}}</el-descriptions-item>
<el-descriptions-item label="IP">{{configInfoData.sip.showIp}}</el-descriptions-item>
<el-descriptions-item label="端口">{{configInfoData.sip.port}}</el-descriptions-item>
<el-descriptions-item label="穿透地址">123.6.102.223</el-descriptions-item>
<el-descriptions-item label="穿透端口">61160</el-descriptions-item>
<el-descriptions-item label="密码">
<el-tag size="small">{{configInfoData.sip.password}}</el-tag>
</el-descriptions-item>

View File

@ -61,9 +61,9 @@
</el-button>
<el-button size="medium" icon="el-icon-download" type="text" @click="downloadFile(scope.row)">下载
</el-button>
<!-- <el-button size="medium" icon="el-icon-delete" type="text" style="color: #f56c6c"-->
<!-- @click="deleteRecord(scope.row)">删除-->
<!-- </el-button>-->
<el-button size="medium" icon="el-icon-delete" type="text" style="color: #f56c6c"
@click="deleteRecord(scope.row)">删除
</el-button>
</template>
</el-table-column>
</el-table>