fix: pin settings savebar to viewport
This commit is contained in:
@@ -10,10 +10,14 @@ import type {
|
|||||||
} from "@/types";
|
} from "@/types";
|
||||||
import { outputFormatLabelMap, recordingTemplateLabelMap, saveModeLabelMap } from "@/types";
|
import { outputFormatLabelMap, recordingTemplateLabelMap, saveModeLabelMap } from "@/types";
|
||||||
import { useAuthStore } from "@/stores/auth";
|
import { useAuthStore } from "@/stores/auth";
|
||||||
|
import { useViewport } from "@/composables/useViewport";
|
||||||
|
import { useUiPreferences } from "@/composables/useUiPreferences";
|
||||||
|
|
||||||
type ScriptEventType = "live_started" | "live_ended" | "segment_completed";
|
type ScriptEventType = "live_started" | "live_ended" | "segment_completed";
|
||||||
|
|
||||||
const authStore = useAuthStore();
|
const authStore = useAuthStore();
|
||||||
|
const { isMobile } = useViewport();
|
||||||
|
const { sidebarCollapsed } = useUiPreferences();
|
||||||
|
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const saving = ref(false);
|
const saving = ref(false);
|
||||||
@@ -39,6 +43,22 @@ const retentionCleanupResult = ref<RetentionCleanupResult | null>(null);
|
|||||||
const loadError = ref("");
|
const loadError = ref("");
|
||||||
const activeSettingTab = ref("recording");
|
const activeSettingTab = ref("recording");
|
||||||
|
|
||||||
|
const savebarStyle = computed(() => {
|
||||||
|
if (isMobile.value) {
|
||||||
|
return {
|
||||||
|
left: "16px",
|
||||||
|
right: "16px",
|
||||||
|
bottom: "12px"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
left: sidebarCollapsed.value ? "120px" : "304px",
|
||||||
|
right: "28px",
|
||||||
|
bottom: "18px"
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
const form = reactive<SystemSettings>({
|
const form = reactive<SystemSettings>({
|
||||||
ffmpegPath: "ffmpeg",
|
ffmpegPath: "ffmpeg",
|
||||||
outputRoot: "records",
|
outputRoot: "records",
|
||||||
@@ -1488,13 +1508,13 @@ onMounted(loadSettings);
|
|||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="settings-savebar">
|
<div class="settings-savebar" :style="savebarStyle">
|
||||||
<div class="settings-savebar__content">
|
<div class="settings-savebar__content">
|
||||||
<div class="settings-savebar__copy">
|
<div class="settings-savebar__copy">
|
||||||
<div class="settings-savebar__title">当前修改不会自动保存</div>
|
<div class="settings-savebar__title">当前修改不会自动保存</div>
|
||||||
<div class="settings-savebar__subtitle">滚动到页面任何位置都可以直接保存当前设置。</div>
|
<div class="settings-savebar__subtitle">滚动到页面任何位置都可以直接保存当前设置。</div>
|
||||||
</div>
|
</div>
|
||||||
<el-button type="primary" :loading="saving" @click="saveSettings">淇濆瓨璁剧疆</el-button>
|
<el-button type="primary" :loading="saving" @click="saveSettings">保存设置</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1504,7 +1524,7 @@ onMounted(loadSettings);
|
|||||||
.page-stack {
|
.page-stack {
|
||||||
display: grid;
|
display: grid;
|
||||||
gap: 24px;
|
gap: 24px;
|
||||||
padding-bottom: 28px;
|
padding-bottom: 132px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-error-alert {
|
.page-error-alert {
|
||||||
@@ -1832,10 +1852,13 @@ onMounted(loadSettings);
|
|||||||
}
|
}
|
||||||
|
|
||||||
.settings-savebar {
|
.settings-savebar {
|
||||||
position: sticky;
|
position: fixed;
|
||||||
bottom: 18px;
|
z-index: 60;
|
||||||
z-index: 24;
|
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
transition:
|
||||||
|
left 0.2s ease,
|
||||||
|
right 0.2s ease,
|
||||||
|
bottom 0.2s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
.settings-savebar__content {
|
.settings-savebar__content {
|
||||||
@@ -1925,7 +1948,7 @@ onMounted(loadSettings);
|
|||||||
|
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
.page-stack {
|
.page-stack {
|
||||||
padding-bottom: 20px;
|
padding-bottom: 112px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.settings-tabs :deep(.el-tabs__nav-wrap) {
|
.settings-tabs :deep(.el-tabs__nav-wrap) {
|
||||||
@@ -1958,10 +1981,6 @@ onMounted(loadSettings);
|
|||||||
padding: 16px 16px 2px;
|
padding: 16px 16px 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.settings-savebar {
|
|
||||||
bottom: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.settings-savebar__content {
|
.settings-savebar__content {
|
||||||
padding: 12px 14px;
|
padding: 12px 14px;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
|
|||||||
Reference in New Issue
Block a user