You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.1 KiB
Vue
49 lines
1.1 KiB
Vue
<template>
|
|
<div class="control-buttons">
|
|
<el-button
|
|
:type="streamRunning ? 'danger' : 'primary'"
|
|
size="default"
|
|
@click="$emit('toggleStream')"
|
|
:disabled="streamAddressEmpty || (algorithmRunning && !streamRunning) || hasOfflineVideo"
|
|
>
|
|
{{ streamRunning ? '关闭视频流' : '启动视频流' }}
|
|
</el-button>
|
|
<el-button
|
|
:type="algorithmRunning ? 'danger' : 'success'"
|
|
size="default"
|
|
@click="$emit('toggleAlgorithm')"
|
|
:disabled="!isLiveMode && offlineVideoMissing"
|
|
>
|
|
{{ algorithmRunning ? '关闭算法' : '启动算法' }}
|
|
</el-button>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
defineProps({
|
|
streamRunning: Boolean,
|
|
algorithmRunning: Boolean,
|
|
streamAddressEmpty: Boolean,
|
|
offlineVideoMissing: Boolean,
|
|
isLiveMode: Boolean,
|
|
hasOfflineVideo: Boolean
|
|
})
|
|
|
|
defineEmits(['toggleStream', 'toggleAlgorithm'])
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.control-buttons {
|
|
display: flex;
|
|
gap: 12px;
|
|
background: $bg-white;
|
|
padding: 16px;
|
|
border-radius: $radius-md;
|
|
box-shadow: $shadow-sm;
|
|
|
|
.el-button {
|
|
flex: 1;
|
|
}
|
|
}
|
|
</style>
|