Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions src/components/RoomCard.vue
Original file line number Diff line number Diff line change
Expand Up @@ -80,18 +80,18 @@
</n-popover>
<n-popover>
<template #trigger>
<n-button quaternary size="small" @click="splitRecord">
<n-button quaternary size="small" :disabled="isRawMode" @click="splitRecord">
<n-icon :component="CutSharp" />
</n-button>
</template>
<span>手动分段</span>
<span>{{ isRawMode ? '原始数据模式禁用手动分段' : '手动分段' }}</span>
</n-popover>
</div>
</div>
</n-card>
</template>
<script lang="ts">
import { Component, h, onMounted, onUnmounted, PropType, ref, watch } from 'vue';
import { Component, computed, h, onMounted, onUnmounted, PropType, ref, watch } from 'vue';
import {
DropdownOption, useMessage, NCard, NH3, NIcon,
NSpace, NTooltip, NDropdown, NButton, NSkeleton, useThemeVars, NPopover,
Expand Down Expand Up @@ -196,6 +196,8 @@ const props = defineProps({
'objectId': '00000000-0000-0000-0000-000000000000',
'roomId': 0,
'autoRecord': false,
'recordMode': 0,
'recordModeForThisSession': 0,
'shortId': 0,
'name': '用户昵称',
'title': '直播间标题',
Expand Down Expand Up @@ -251,6 +253,10 @@ const props = defineProps({
},
});

const isRawMode = computed(() =>
(props.room.recordModeForThisSession ?? props.room.recordMode) === 1
);

const emit = defineEmits(['start-record', 'stop-record', 'refresh-room-info', 'start-auto-record',
'stop-auto-record', 'delete', 'self-update', 'show-stats', 'room-setting']);

Expand Down
15 changes: 10 additions & 5 deletions src/components/RoomSettingModal.vue
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@
</div>
<div id="auto-split" class="setting-box">
<n-h3>自动分段</n-h3>
<n-collapse-transition :show="newRoomConfig['optionalRecordMode']?.value == 1">
<n-alert type="warning" title="提示" style="margin-bottom: 1em;">
原始数据模式下自动分段功能不可用
</n-alert>
</n-collapse-transition>
<optional-input type="enum" v-model:value="newRoomConfig['optionalCuttingMode']" :enums="CuttingModes" />
<n-collapse-transition :show="newRoomConfig['optionalCuttingMode'].value == 1">
<optional-input type="number" prefix="每" suffix="保存为一个文件"
Expand Down Expand Up @@ -75,7 +80,7 @@
<script lang="ts">
import { ref, watch } from 'vue';
import {
useLoadingBar, useMessage, NCollapseTransition, NH3,
useLoadingBar, useMessage, NAlert, NCollapseTransition, NH3,
NSpace, NButton, NModal, NSkeleton,
} from 'naive-ui';
import OptionalInput from './OptionalInput.vue';
Expand Down Expand Up @@ -158,7 +163,7 @@ async function initSetting() {
duration: 0,
});
let defaultConfig: { [key: string]: Optional<any> } = Recorder.getMockDefaultConfig() as any;
let globalConfig: { [key: string]: Optional<any> } = Recorder.getMockGlobalConfig() as any;
let globalConfigDto: { [key: string]: Optional<any> } = Recorder.getMockGlobalConfig() as any;
let roomConfig: { [key: string]: Optional<any> };
try {
defaultConfig = await recorderController.recorder.getDefaultConfig() as any;
Expand All @@ -167,7 +172,7 @@ async function initSetting() {
message.error('获取默认配置失败,部分设置可能与实际不符');
}
try {
globalConfig = await recorderController.recorder.getGlobalConfig() as any;
globalConfigDto = await recorderController.recorder.getGlobalConfig() as any;
} catch (error: any) {
message.error(error?.message || error.toString());
message.error('获取全局配置失败,部分设置可能与实际不符');
Expand All @@ -180,8 +185,8 @@ async function initSetting() {
const rawkey = key.substring(8, 9).toLowerCase() + key.substring(9);
temp[key] = {
hasValue: roomConfig[key].hasValue,
value: roomConfig[key].hasValue ? roomConfig[key].value : (globalConfig[key]?.hasValue ? globalConfig[key].value : defaultConfig[rawkey]),
defaultValue: (globalConfig[key]?.hasValue ? globalConfig[key].value : defaultConfig[rawkey]),
value: roomConfig[key].hasValue ? roomConfig[key].value : (globalConfigDto[key]?.hasValue ? globalConfigDto[key].value : defaultConfig[rawkey]),
defaultValue: (globalConfigDto[key]?.hasValue ? globalConfigDto[key].value : defaultConfig[rawkey]),
};
});
temp['autoRecord'] = {
Expand Down
2 changes: 2 additions & 0 deletions src/utils/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,8 @@ export interface RoomDto {
objectId: string;
roomId: number;
autoRecord: boolean;
recordMode: RecordMode;
recordModeForThisSession: RecordMode;
shortId: number;
name: string;
title: string;
Expand Down
21 changes: 13 additions & 8 deletions src/views/recorder/SettingPage.vue
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,11 @@
</div>
<div id="auto-split" class="setting-box">
<n-h3>自动分段</n-h3>
<n-collapse-transition :show="newConfig['optionalRecordMode']?.value == 1">
<n-alert type="warning" title="提示" style="margin-bottom: 1em;">
原始数据模式下自动分段功能不可用
</n-alert>
</n-collapse-transition>
<optional-input type="enum" label="分段模式" v-model:value="newConfig['optionalCuttingMode']" :enums="CuttingModes"
:same-as-default="true" @changed="onChanged" />
<n-collapse-transition :show="newConfig['optionalCuttingMode']?.value == 1">
Expand Down Expand Up @@ -344,14 +349,14 @@ async function init(): Promise<void> {
}
}
try {
const globalConfig = (await recorderController.recorder.getGlobalConfig()) as unknown as { [key: string]: Optional<any> };
const keys = Object.keys(globalConfig);
const globalConfigDto = (await recorderController.recorder.getGlobalConfig()) as unknown as { [key: string]: Optional<any> };
const keys = Object.keys(globalConfigDto);
const temp: any = {};
keys.forEach((key) => {
const rawkey = key.substring(8, 9).toLowerCase() + key.substring(9);
temp[key] = {
hasValue: globalConfig[key].hasValue,
value: globalConfig[key].hasValue ? globalConfig[key].value : defaultConfig.value[rawkey],
hasValue: globalConfigDto[key].hasValue,
value: globalConfigDto[key].hasValue ? globalConfigDto[key].value : defaultConfig.value[rawkey],
defaultValue: defaultConfig.value[rawkey],
};
});
Expand Down Expand Up @@ -382,14 +387,14 @@ async function saveConfig() {
duration: 0,
});
try {
const globalConfig = (await recorderController.recorder.setGlobalConfig(newConfig.value)) as unknown as { [key: string]: Optional<any> };
const keys = Object.keys(globalConfig);
const globalConfigDto = (await recorderController.recorder.setGlobalConfig(newConfig.value)) as unknown as { [key: string]: Optional<any> };
const keys = Object.keys(globalConfigDto);
const temp: any = {};
keys.forEach((key) => {
const rawkey = key.substring(8, 9).toLowerCase() + key.substring(9);
temp[key] = {
hasValue: globalConfig[key].hasValue,
value: globalConfig[key].hasValue ? globalConfig[key].value : defaultConfig.value[rawkey],
hasValue: globalConfigDto[key].hasValue,
value: globalConfigDto[key].hasValue ? globalConfigDto[key].value : defaultConfig.value[rawkey],
defaultValue: defaultConfig.value[rawkey],
};
});
Expand Down