feat: 修改终端配置.

This commit is contained in:
lijiahang
2023-12-11 19:21:11 +08:00
parent b9e38a85f8
commit f2ca6abcb0
13 changed files with 345 additions and 115 deletions

View File

@@ -1,4 +1,4 @@
import type { TerminalPreference, TerminalState, TerminalTheme } from './types';
import type { TerminalDisplaySetting, TerminalPreference, TerminalState, TerminalThemeSchema } from './types';
import { defineStore } from 'pinia';
import { getPreference, updatePreferencePartial } from '@/api/user/preference';
import { Message } from '@arco-design/web-vue';
@@ -24,8 +24,9 @@ export default defineStore('terminal', {
}),
preference: {
darkTheme: 'auto',
terminalTheme: {} as TerminalTheme,
}
themeSchema: {} as TerminalThemeSchema,
displaySetting: {} as TerminalDisplaySetting
},
}),
actions: {
@@ -39,14 +40,14 @@ export default defineStore('terminal', {
try {
const { data } = await getPreference<TerminalPreference>('TERMINAL');
// 设置默认终端主题
if (!data.config.terminalTheme?.name) {
data.config.terminalTheme = DEFAULT_SCHEMA;
if (!data.config.themeSchema?.name) {
data.config.themeSchema = DEFAULT_SCHEMA;
}
this.preference = data.config;
// 设置暗色主题
const userDarkTheme = data.config.darkTheme;
if (userDarkTheme === DarkTheme.AUTO) {
this.isDarkTheme = data.config.terminalTheme?.dark === true;
this.isDarkTheme = data.config.themeSchema?.dark === true;
} else {
this.isDarkTheme = userDarkTheme === DarkTheme.DARK;
}

View File

@@ -8,11 +8,12 @@ export interface TerminalState {
// 终端配置
export interface TerminalPreference {
darkTheme: string,
terminalTheme: TerminalTheme,
themeSchema: TerminalThemeSchema,
displaySetting: TerminalDisplaySetting,
}
// 终端主题
export interface TerminalTheme {
export interface TerminalThemeSchema {
name: string;
dark: boolean;
background: string;
@@ -41,3 +42,14 @@ export interface TerminalTheme {
[key: string]: unknown;
}
// 显示设置
export interface TerminalDisplaySetting {
fontFamily?: string;
fontSize?: number;
lineHeight?: number;
fontWeight?: string | number;
fontWeightBold?: string | number;
cursorStyle?: string;
cursorBlink?: boolean;
}