mirror of
https://gitee.com/JavaLionLi/plus-ui.git
synced 2026-09-14 16:17:31 +08:00
update 布局设置增加 页面圆角大小 控制器 可以根据喜好自行设置页面圆角样式
This commit is contained in:
parent
493d1131bf
commit
e77fe0e618
@ -74,7 +74,7 @@
|
|||||||
|
|
||||||
.el-dialog {
|
.el-dialog {
|
||||||
margin: 0 auto !important;
|
margin: 0 auto !important;
|
||||||
border-radius: var(--app-radius-lg);
|
border-radius: var(--app-radius-base);
|
||||||
box-shadow: var(--app-shadow-md);
|
box-shadow: var(--app-shadow-md);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
@ -158,7 +158,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.el-message-box {
|
.el-message-box {
|
||||||
border-radius: var(--app-radius-lg);
|
border-radius: var(--app-radius-base);
|
||||||
box-shadow: var(--app-shadow-md);
|
box-shadow: var(--app-shadow-md);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -215,7 +215,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.el-drawer {
|
.el-drawer {
|
||||||
border-radius: var(--app-radius-lg);
|
border-radius: var(--app-radius-base);
|
||||||
box-shadow: var(--app-shadow-md);
|
box-shadow: var(--app-shadow-md);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -227,7 +227,7 @@
|
|||||||
|
|
||||||
// Table polish
|
// Table polish
|
||||||
.el-table {
|
.el-table {
|
||||||
border-radius: var(--app-radius-lg);
|
border-radius: var(--app-radius-base);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
box-shadow: var(--app-shadow-sm);
|
box-shadow: var(--app-shadow-sm);
|
||||||
border: 1px solid var(--el-border-color-lighter);
|
border: 1px solid var(--el-border-color-lighter);
|
||||||
|
|||||||
@ -150,7 +150,7 @@ aside {
|
|||||||
padding: 20px;
|
padding: 20px;
|
||||||
background: var(--app-surface-bg);
|
background: var(--app-surface-bg);
|
||||||
border: 1px solid var(--app-surface-border);
|
border: 1px solid var(--app-surface-border);
|
||||||
border-radius: var(--app-radius-lg);
|
border-radius: var(--app-radius-base);
|
||||||
box-shadow: var(--app-shadow-sm);
|
box-shadow: var(--app-shadow-sm);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,9 +158,8 @@ aside {
|
|||||||
.panel,
|
.panel,
|
||||||
.search {
|
.search {
|
||||||
margin-bottom: 0.75rem;
|
margin-bottom: 0.75rem;
|
||||||
border-radius: var(--app-radius-lg);
|
border-radius: var(--app-radius-base);
|
||||||
border: 1px solid var(--el-border-color-light);
|
border: 1px solid var(--el-border-color-light);
|
||||||
background-color: var(--el-bg-color-overlay);
|
|
||||||
padding: 0.75rem;
|
padding: 0.75rem;
|
||||||
box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
||||||
transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
|
transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
|
||||||
|
|||||||
@ -27,9 +27,10 @@
|
|||||||
--tags-view-active-border-color: var(--el-color-primary);
|
--tags-view-active-border-color: var(--el-color-primary);
|
||||||
|
|
||||||
// Modern rounded style + soft shadows
|
// Modern rounded style + soft shadows
|
||||||
--app-radius-sm: 6px;
|
--app-radius-base: 14px;
|
||||||
--app-radius-md: 10px;
|
--app-radius-sm: calc(var(--app-radius-base) - 8px);
|
||||||
--app-radius-lg: 14px;
|
--app-radius-md: calc(var(--app-radius-base) - 4px);
|
||||||
|
--app-radius-lg: var(--app-radius-base);
|
||||||
--app-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.08), 0 6px 16px rgba(15, 23, 42, 0.08);
|
--app-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.08), 0 6px 16px rgba(15, 23, 42, 0.08);
|
||||||
--app-shadow-md: 0 8px 24px rgba(15, 23, 42, 0.12);
|
--app-shadow-md: 0 8px 24px rgba(15, 23, 42, 0.12);
|
||||||
--app-shadow-lg: 0 12px 32px rgba(15, 23, 42, 0.16);
|
--app-shadow-lg: 0 12px 32px rgba(15, 23, 42, 0.16);
|
||||||
|
|||||||
@ -75,6 +75,12 @@
|
|||||||
<el-switch v-model="isDark" class="drawer-switch" @change="toggleDark" />
|
<el-switch v-model="isDark" class="drawer-switch" @change="toggleDark" />
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="drawer-item">
|
||||||
|
<span>页面圆角</span>
|
||||||
|
<span class="comp-style">
|
||||||
|
<el-slider v-model="radiusBase" :min="0" :max="32" :step="2" style="width: 120px" @change="radiusBaseChange" />
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
<el-divider />
|
<el-divider />
|
||||||
|
|
||||||
@ -143,6 +149,7 @@ const sideTheme = ref(settingsStore.sideTheme);
|
|||||||
const storeSettings = computed(() => settingsStore);
|
const storeSettings = computed(() => settingsStore);
|
||||||
const predefineColors = ref(['#409EFF', '#ff4500', '#ff8c00', '#ffd700', '#90ee90', '#00ced1', '#1e90ff', '#c71585']);
|
const predefineColors = ref(['#409EFF', '#ff4500', '#ff8c00', '#ffd700', '#90ee90', '#00ced1', '#1e90ff', '#c71585']);
|
||||||
const navType = ref(settingsStore.navType);
|
const navType = ref(settingsStore.navType);
|
||||||
|
const radiusBase = ref(settingsStore.radiusBase);
|
||||||
// 是否暗黑模式
|
// 是否暗黑模式
|
||||||
const isDark = useDark({
|
const isDark = useDark({
|
||||||
storageKey: 'useDarkKey',
|
storageKey: 'useDarkKey',
|
||||||
@ -190,6 +197,10 @@ const themeChange = (val: string) => {
|
|||||||
settingsStore.theme = val;
|
settingsStore.theme = val;
|
||||||
handleThemeStyle(val);
|
handleThemeStyle(val);
|
||||||
};
|
};
|
||||||
|
const radiusBaseChange = (val: number) => {
|
||||||
|
settingsStore.radiusBase = val;
|
||||||
|
document.documentElement.style.setProperty('--app-radius-base', `${val}px`);
|
||||||
|
};
|
||||||
const handleTheme = (val: string) => {
|
const handleTheme = (val: string) => {
|
||||||
sideTheme.value = val;
|
sideTheme.value = val;
|
||||||
if (isDark.value && val === SideThemeEnum.LIGHT) {
|
if (isDark.value && val === SideThemeEnum.LIGHT) {
|
||||||
@ -210,6 +221,7 @@ const saveSetting = () => {
|
|||||||
settings.value.sideTheme = storeSettings.value.sideTheme;
|
settings.value.sideTheme = storeSettings.value.sideTheme;
|
||||||
settings.value.theme = storeSettings.value.theme;
|
settings.value.theme = storeSettings.value.theme;
|
||||||
settings.value.navType = storeSettings.value.navType;
|
settings.value.navType = storeSettings.value.navType;
|
||||||
|
settings.value.radiusBase = storeSettings.value.radiusBase;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
proxy?.$modal.closeLoading();
|
proxy?.$modal.closeLoading();
|
||||||
}, 1000);
|
}, 1000);
|
||||||
@ -223,6 +235,10 @@ const openSetting = () => {
|
|||||||
showSettings.value = true;
|
showSettings.value = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
radiusBaseChange(storeSettings.value.radiusBase);
|
||||||
|
});
|
||||||
|
|
||||||
defineExpose({
|
defineExpose({
|
||||||
openSetting
|
openSetting
|
||||||
});
|
});
|
||||||
|
|||||||
@ -134,7 +134,7 @@ defineExpose({
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.layout-search-dialog {
|
.layout-search-dialog {
|
||||||
:deep(.el-dialog) {
|
:deep(.el-dialog) {
|
||||||
border-radius: 14px;
|
border-radius: var(--app-radius-base);
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
.el-dialog__header,
|
.el-dialog__header,
|
||||||
.el-dialog__footer {
|
.el-dialog__footer {
|
||||||
@ -155,7 +155,7 @@ defineExpose({
|
|||||||
|
|
||||||
:deep(.el-input__wrapper) {
|
:deep(.el-input__wrapper) {
|
||||||
min-height: 44px;
|
min-height: 44px;
|
||||||
border-radius: 10px;
|
border-radius: var(--app-radius-md);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -71,6 +71,11 @@ const setting: DefaultSettings = {
|
|||||||
/**
|
/**
|
||||||
* 默认布局
|
* 默认布局
|
||||||
*/
|
*/
|
||||||
layout: ''
|
layout: '',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面圆角大小
|
||||||
|
*/
|
||||||
|
radiusBase: 14
|
||||||
};
|
};
|
||||||
export default setting;
|
export default setting;
|
||||||
|
|||||||
@ -15,7 +15,8 @@ export const useSettingsStore = defineStore('setting', () => {
|
|||||||
dynamicTitle: defaultSettings.dynamicTitle,
|
dynamicTitle: defaultSettings.dynamicTitle,
|
||||||
sideTheme: defaultSettings.sideTheme,
|
sideTheme: defaultSettings.sideTheme,
|
||||||
theme: defaultSettings.theme,
|
theme: defaultSettings.theme,
|
||||||
navType: defaultSettings.navType
|
navType: defaultSettings.navType,
|
||||||
|
radiusBase: defaultSettings.radiusBase
|
||||||
});
|
});
|
||||||
const title = ref<string>(defaultSettings.title);
|
const title = ref<string>(defaultSettings.title);
|
||||||
const theme = ref<string>(storageSetting.value.theme);
|
const theme = ref<string>(storageSetting.value.theme);
|
||||||
@ -29,6 +30,7 @@ export const useSettingsStore = defineStore('setting', () => {
|
|||||||
const animationEnable = ref<boolean>(defaultSettings.animationEnable);
|
const animationEnable = ref<boolean>(defaultSettings.animationEnable);
|
||||||
const dark = ref<boolean>(defaultSettings.dark);
|
const dark = ref<boolean>(defaultSettings.dark);
|
||||||
const navType = ref<NavTypeEnum>(storageSetting.value.navType || NavTypeEnum.LEFT);
|
const navType = ref<NavTypeEnum>(storageSetting.value.navType || NavTypeEnum.LEFT);
|
||||||
|
const radiusBase = ref<number>(storageSetting.value.radiusBase ?? defaultSettings.radiusBase);
|
||||||
|
|
||||||
const setTitle = (value: string) => {
|
const setTitle = (value: string) => {
|
||||||
title.value = value;
|
title.value = value;
|
||||||
@ -47,6 +49,7 @@ export const useSettingsStore = defineStore('setting', () => {
|
|||||||
animationEnable,
|
animationEnable,
|
||||||
dark,
|
dark,
|
||||||
navType,
|
navType,
|
||||||
|
radiusBase,
|
||||||
setTitle
|
setTitle
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|||||||
4
src/types/global.d.ts
vendored
4
src/types/global.d.ts
vendored
@ -123,6 +123,10 @@ declare global {
|
|||||||
* 主题模式
|
* 主题模式
|
||||||
*/
|
*/
|
||||||
theme: string;
|
theme: string;
|
||||||
|
/**
|
||||||
|
* 页面圆角大小
|
||||||
|
*/
|
||||||
|
radiusBase: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
declare interface DefaultSettings extends LayoutSetting {
|
declare interface DefaultSettings extends LayoutSetting {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user