preferences-widget.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <script lang="ts" setup>
  2. import { loadLocaleMessages } from '@vben/locales';
  3. import {
  4. COLOR_PRIMARY_RESETS,
  5. preferences,
  6. updatePreferences,
  7. } from '@vben-core/preferences';
  8. import Preferences from './preferences.vue';
  9. </script>
  10. <template>
  11. <Preferences
  12. :app-color-gray-mode="preferences.app.colorGrayMode"
  13. :app-color-weak-mode="preferences.app.colorWeakMode"
  14. :app-content-compact="preferences.app.contentCompact"
  15. :app-dynamic-title="preferences.app.dynamicTitle"
  16. :app-layout="preferences.app.layout"
  17. :app-locale="preferences.app.locale"
  18. :app-semi-dark-menu="preferences.app.semiDarkMenu"
  19. :app-theme-mode="preferences.app.themeMode"
  20. :breadcrumb-enable="preferences.breadcrumb.enable"
  21. :breadcrumb-hide-only-one="preferences.breadcrumb.hideOnlyOne"
  22. :breadcrumb-home="preferences.breadcrumb.showHome"
  23. :breadcrumb-icon="preferences.breadcrumb.showIcon"
  24. :breadcrumb-style-type="preferences.breadcrumb.styleType"
  25. :color-primary-presets="COLOR_PRIMARY_RESETS"
  26. :footer-enable="preferences.footer.enable"
  27. :footer-fixed="preferences.footer.fixed"
  28. :header-enable="preferences.header.enable"
  29. :header-mode="preferences.header.mode"
  30. :navigation-accordion="preferences.navigation.accordion"
  31. :navigation-split="preferences.navigation.split"
  32. :navigation-style-type="preferences.navigation.styleType"
  33. :shortcut-keys-enable="preferences.shortcutKeys.enable"
  34. :sidebar-collapsed="preferences.sidebar.collapsed"
  35. :sidebar-collapsed-show-title="preferences.sidebar.collapsedShowTitle"
  36. :sidebar-enable="preferences.sidebar.enable"
  37. :tabbar-enable="preferences.tabbar.enable"
  38. :tabbar-show-icon="preferences.tabbar.showIcon"
  39. :theme-color-primary="preferences.theme.colorPrimary"
  40. :transition-enable="preferences.transition.enable"
  41. :transition-name="preferences.transition.name"
  42. :transition-progress="preferences.transition.progress"
  43. @update:app-color-gray-mode="
  44. (val) => updatePreferences({ app: { colorGrayMode: val } })
  45. "
  46. @update:app-color-weak-mode="
  47. (val) => updatePreferences({ app: { colorWeakMode: val } })
  48. "
  49. @update:app-content-compact="
  50. (val) => updatePreferences({ app: { contentCompact: val } })
  51. "
  52. @update:app-dynamic-title="
  53. (val) => updatePreferences({ app: { dynamicTitle: val } })
  54. "
  55. @update:app-layout="(val) => updatePreferences({ app: { layout: val } })"
  56. @update:app-locale="
  57. (val) => {
  58. updatePreferences({ app: { locale: val } });
  59. loadLocaleMessages(val);
  60. }
  61. "
  62. @update:app-semi-dark-menu="
  63. (val) => updatePreferences({ app: { semiDarkMenu: val } })
  64. "
  65. @update:app-theme-mode="
  66. (val) => updatePreferences({ app: { themeMode: val } })
  67. "
  68. @update:breadcrumb-enable="
  69. (val) => updatePreferences({ breadcrumb: { enable: val } })
  70. "
  71. @update:breadcrumb-hide-only-one="
  72. (val) => updatePreferences({ breadcrumb: { hideOnlyOne: val } })
  73. "
  74. @update:breadcrumb-show-home="
  75. (val) => updatePreferences({ breadcrumb: { showHome: val } })
  76. "
  77. @update:breadcrumb-show-icon="
  78. (val) => updatePreferences({ breadcrumb: { showIcon: val } })
  79. "
  80. @update:breadcrumb-style-type="
  81. (val) => updatePreferences({ breadcrumb: { styleType: val } })
  82. "
  83. @update:footer-enable="
  84. (val) => updatePreferences({ footer: { enable: val } })
  85. "
  86. @update:footer-fixed="
  87. (val) => updatePreferences({ footer: { fixed: val } })
  88. "
  89. @update:header-enable="
  90. (val) => updatePreferences({ header: { enable: val } })
  91. "
  92. @update:header-mode="(val) => updatePreferences({ header: { mode: val } })"
  93. @update:navigation-accordion="
  94. (val) => updatePreferences({ navigation: { accordion: val } })
  95. "
  96. @update:navigation-split="
  97. (val) => updatePreferences({ navigation: { split: val } })
  98. "
  99. @update:navigation-style-type="
  100. (val) => updatePreferences({ navigation: { styleType: val } })
  101. "
  102. @update:shortcut-keys-enable="
  103. (val) => updatePreferences({ shortcutKeys: { enable: val } })
  104. "
  105. @update:sidebar-collapsed="
  106. (val) => updatePreferences({ sidebar: { collapsed: val } })
  107. "
  108. @update:sidebar-collapsed-show-title="
  109. (val) => updatePreferences({ sidebar: { collapsedShowTitle: val } })
  110. "
  111. @update:sidebar-enable="
  112. (val) => updatePreferences({ sidebar: { enable: val } })
  113. "
  114. @update:tabbar-enable="
  115. (val) => updatePreferences({ tabbar: { enable: val } })
  116. "
  117. @update:tabbar-show-icon="
  118. (val) => updatePreferences({ tabbar: { showIcon: val } })
  119. "
  120. @update:theme-color-primary="
  121. (val) => updatePreferences({ theme: { colorPrimary: val } })
  122. "
  123. @update:transition-enable="
  124. (val) => updatePreferences({ transition: { enable: val } })
  125. "
  126. @update:transition-name="
  127. (val) => updatePreferences({ transition: { name: val } })
  128. "
  129. @update:transition-progress="
  130. (val) => updatePreferences({ transition: { progress: val } })
  131. "
  132. />
  133. </template>