Browse Source

feat(preferences): add toggle for copy preferences button (#7594)

Co-authored-by: hl <hl@nmcsoft.com>
pull/7603/head
han 3 weeks ago
committed by GitHub
parent
commit
b8a0199cde
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 3
      docs/src/en/guide/essentials/settings.md
  2. 3
      docs/src/guide/essentials/settings.md
  3. 1
      packages/@core/preferences/__tests__/__snapshots__/config.test.ts.snap
  4. 1
      packages/@core/preferences/src/config.ts
  5. 2
      packages/@core/preferences/src/types.ts
  6. 4
      packages/effects/layouts/src/widgets/preferences/blocks/general/general.vue
  7. 3
      packages/effects/layouts/src/widgets/preferences/preferences-drawer.vue
  8. 1
      packages/locales/src/langs/en-US/preferences.json
  9. 1
      packages/locales/src/langs/zh-CN/preferences.json

3
docs/src/en/guide/essentials/settings.md

@ -219,6 +219,7 @@ const defaultPreferences: Preferences = {
dynamicTitle: true, dynamicTitle: true,
enableCheckUpdates: true, enableCheckUpdates: true,
enablePreferences: true, enablePreferences: true,
enableCopyPreferences: true,
enableRefreshToken: false, enableRefreshToken: false,
isMobile: false, isMobile: false,
layout: 'sidebar-nav', layout: 'sidebar-nav',
@ -376,6 +377,8 @@ interface AppPreferences {
enableCheckUpdates: boolean; enableCheckUpdates: boolean;
/** Whether to display preferences */ /** Whether to display preferences */
enablePreferences: boolean; enablePreferences: boolean;
/** Whether to display copy preferences button */
enableCopyPreferences: boolean;
/** /**
* @zh_CN Whether to enable refreshToken * @zh_CN Whether to enable refreshToken
*/ */

3
docs/src/guide/essentials/settings.md

@ -218,6 +218,7 @@ const defaultPreferences: Preferences = {
dynamicTitle: true, dynamicTitle: true,
enableCheckUpdates: true, enableCheckUpdates: true,
enablePreferences: true, enablePreferences: true,
enableCopyPreferences: true,
enableRefreshToken: false, enableRefreshToken: false,
isMobile: false, isMobile: false,
layout: 'sidebar-nav', layout: 'sidebar-nav',
@ -375,6 +376,8 @@ interface AppPreferences {
enableCheckUpdates: boolean; enableCheckUpdates: boolean;
/** 是否显示偏好设置 */ /** 是否显示偏好设置 */
enablePreferences: boolean; enablePreferences: boolean;
/** 是否显示复制偏好设置按钮 */
enableCopyPreferences: boolean;
/** /**
* @zh_CN 是否开启refreshToken * @zh_CN 是否开启refreshToken
*/ */

1
packages/@core/preferences/__tests__/__snapshots__/config.test.ts.snap

@ -21,6 +21,7 @@ exports[`defaultPreferences immutability test > should not modify the config obj
"dynamicTitle": true, "dynamicTitle": true,
"enableCheckUpdates": true, "enableCheckUpdates": true,
"enablePreferences": true, "enablePreferences": true,
"enableCopyPreferences": true,
"enableRefreshToken": false, "enableRefreshToken": false,
"enableStickyPreferencesNavigationBar": true, "enableStickyPreferencesNavigationBar": true,
"isMobile": false, "isMobile": false,

1
packages/@core/preferences/src/config.ts

@ -21,6 +21,7 @@ const defaultPreferences: Preferences = {
dynamicTitle: true, dynamicTitle: true,
enableCheckUpdates: true, enableCheckUpdates: true,
enablePreferences: true, enablePreferences: true,
enableCopyPreferences: true,
enableRefreshToken: false, enableRefreshToken: false,
enableStickyPreferencesNavigationBar: true, enableStickyPreferencesNavigationBar: true,
isMobile: false, isMobile: false,

2
packages/@core/preferences/src/types.ts

@ -55,6 +55,8 @@ interface AppPreferences {
enableCheckUpdates: boolean; enableCheckUpdates: boolean;
/** 是否显示偏好设置 */ /** 是否显示偏好设置 */
enablePreferences: boolean; enablePreferences: boolean;
/** 是否显示复制偏好设置按钮 */
enableCopyPreferences: boolean;
/** /**
* @zh_CN refreshToken * @zh_CN refreshToken
*/ */

4
packages/effects/layouts/src/widgets/preferences/blocks/general/general.vue

@ -15,6 +15,7 @@ const appDynamicTitle = defineModel<boolean>('appDynamicTitle');
const appWatermark = defineModel<boolean>('appWatermark'); const appWatermark = defineModel<boolean>('appWatermark');
const appWatermarkContent = defineModel<string>('appWatermarkContent'); const appWatermarkContent = defineModel<string>('appWatermarkContent');
const appEnableCheckUpdates = defineModel<boolean>('appEnableCheckUpdates'); const appEnableCheckUpdates = defineModel<boolean>('appEnableCheckUpdates');
const appEnableCopyPreferences = defineModel<boolean>('appEnableCopyPreferences');
</script> </script>
<template> <template>
@ -44,4 +45,7 @@ const appEnableCheckUpdates = defineModel<boolean>('appEnableCheckUpdates');
<SwitchItem v-model="appEnableCheckUpdates"> <SwitchItem v-model="appEnableCheckUpdates">
{{ $t('preferences.checkUpdates') }} {{ $t('preferences.checkUpdates') }}
</SwitchItem> </SwitchItem>
<SwitchItem v-model="appEnableCopyPreferences">
{{ $t('preferences.enableCopyPreferences') }}
</SwitchItem>
</template> </template>

3
packages/effects/layouts/src/widgets/preferences/preferences-drawer.vue

@ -70,6 +70,7 @@ const appContentCompact = defineModel<ContentCompactType>('appContentCompact');
const appWatermark = defineModel<boolean>('appWatermark'); const appWatermark = defineModel<boolean>('appWatermark');
const appWatermarkContent = defineModel<string>('appWatermarkContent'); const appWatermarkContent = defineModel<string>('appWatermarkContent');
const appEnableCheckUpdates = defineModel<boolean>('appEnableCheckUpdates'); const appEnableCheckUpdates = defineModel<boolean>('appEnableCheckUpdates');
const appEnableCopyPreferences = defineModel<boolean>('appEnableCopyPreferences');
const appEnableStickyPreferencesNavigationBar = defineModel<boolean>( const appEnableStickyPreferencesNavigationBar = defineModel<boolean>(
'appEnableStickyPreferencesNavigationBar', 'appEnableStickyPreferencesNavigationBar',
); );
@ -300,6 +301,7 @@ async function handleReset() {
<General <General
v-model:app-dynamic-title="appDynamicTitle" v-model:app-dynamic-title="appDynamicTitle"
v-model:app-enable-check-updates="appEnableCheckUpdates" v-model:app-enable-check-updates="appEnableCheckUpdates"
v-model:app-enable-copy-preferences="appEnableCopyPreferences"
v-model:app-locale="appLocale" v-model:app-locale="appLocale"
v-model:app-watermark="appWatermark" v-model:app-watermark="appWatermark"
v-model:app-watermark-content="appWatermarkContent" v-model:app-watermark-content="appWatermarkContent"
@ -467,6 +469,7 @@ async function handleReset() {
<template #footer> <template #footer>
<VbenButton <VbenButton
v-if="appEnableCopyPreferences"
:disabled="!diffPreference" :disabled="!diffPreference"
class="mx-4 w-full" class="mx-4 w-full"
size="sm" size="sm"

1
packages/locales/src/langs/en-US/preferences.json

@ -31,6 +31,7 @@
"plain": "Plain", "plain": "Plain",
"rounded": "Rounded", "rounded": "Rounded",
"copyPreferences": "Copy Preferences", "copyPreferences": "Copy Preferences",
"enableCopyPreferences": "Show copy preferences button",
"copyPreferencesSuccessTitle": "Copy successful", "copyPreferencesSuccessTitle": "Copy successful",
"copyPreferencesSuccess": "Copy successful, please override in `src/preferences.ts` under app", "copyPreferencesSuccess": "Copy successful, please override in `src/preferences.ts` under app",
"clearAndLogout": "Clear Cache & Logout", "clearAndLogout": "Clear Cache & Logout",

1
packages/locales/src/langs/zh-CN/preferences.json

@ -31,6 +31,7 @@
"plain": "朴素", "plain": "朴素",
"rounded": "圆润", "rounded": "圆润",
"copyPreferences": "复制偏好设置", "copyPreferences": "复制偏好设置",
"enableCopyPreferences": "显示复制偏好设置按钮",
"copyPreferencesSuccessTitle": "复制成功", "copyPreferencesSuccessTitle": "复制成功",
"copyPreferencesSuccess": "复制成功,请在 app 下的 `src/preferences.ts`内进行覆盖", "copyPreferencesSuccess": "复制成功,请在 app 下的 `src/preferences.ts`内进行覆盖",
"clearAndLogout": "清空缓存 & 退出登录", "clearAndLogout": "清空缓存 & 退出登录",

Loading…
Cancel
Save