preferences-widget.vue 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <script lang="ts" setup>
  2. import { loadLocaleMessages } from '@vben-core/locales';
  3. import { preferences, updatePreferences } from '@vben-core/preferences';
  4. import Preferences from './preferences.vue';
  5. </script>
  6. <template>
  7. <Preferences
  8. :app-ai-assistant="preferences.app.aiAssistant"
  9. :app-color-gray-mode="preferences.app.colorGrayMode"
  10. :app-color-weak-mode="preferences.app.colorWeakMode"
  11. :app-content-compact="preferences.app.contentCompact"
  12. :app-dynamic-title="preferences.app.dynamicTitle"
  13. :app-layout="preferences.app.layout"
  14. :app-locale="preferences.app.locale"
  15. :app-semi-dark-menu="preferences.app.semiDarkMenu"
  16. :breadcrumb-enable="preferences.breadcrumb.enable"
  17. :breadcrumb-hide-only-one="preferences.breadcrumb.hideOnlyOne"
  18. :breadcrumb-show-home="preferences.breadcrumb.showHome"
  19. :breadcrumb-show-icon="preferences.breadcrumb.showIcon"
  20. :breadcrumb-style-type="preferences.breadcrumb.styleType"
  21. :copyright-company-name="preferences.copyright.companyName"
  22. :copyright-company-site-link="preferences.copyright.companySiteLink"
  23. :copyright-date="preferences.copyright.date"
  24. :copyright-enable="preferences.copyright.enable"
  25. :copyright-icp="preferences.copyright.icp"
  26. :copyright-icp-link="preferences.copyright.icpLink"
  27. :footer-enable="preferences.footer.enable"
  28. :footer-fixed="preferences.footer.fixed"
  29. :header-enable="preferences.header.enable"
  30. :header-mode="preferences.header.mode"
  31. :navigation-accordion="preferences.navigation.accordion"
  32. :navigation-split="preferences.navigation.split"
  33. :navigation-style-type="preferences.navigation.styleType"
  34. :shortcut-keys-enable="preferences.shortcutKeys.enable"
  35. :shortcut-keys-global-logout="preferences.shortcutKeys.globalLogout"
  36. :shortcut-keys-global-preferences="
  37. preferences.shortcutKeys.globalPreferences
  38. "
  39. :shortcut-keys-global-search="preferences.shortcutKeys.globalSearch"
  40. :sidebar-collapsed="preferences.sidebar.collapsed"
  41. :sidebar-collapsed-show-title="preferences.sidebar.collapsedShowTitle"
  42. :sidebar-enable="preferences.sidebar.enable"
  43. :sidebar-width="preferences.sidebar.width"
  44. :tabbar-enable="preferences.tabbar.enable"
  45. :tabbar-show-icon="preferences.tabbar.showIcon"
  46. :theme-builtin-type="preferences.theme.builtinType"
  47. :theme-color-primary="preferences.theme.colorPrimary"
  48. :theme-mode="preferences.theme.mode"
  49. :theme-radius="preferences.theme.radius"
  50. :transition-enable="preferences.transition.enable"
  51. :transition-loading="preferences.transition.loading"
  52. :transition-name="preferences.transition.name"
  53. :transition-progress="preferences.transition.progress"
  54. @update:app-ai-assistant="
  55. (val) => updatePreferences({ app: { aiAssistant: val } })
  56. "
  57. @update:app-color-gray-mode="
  58. (val) => updatePreferences({ app: { colorGrayMode: val } })
  59. "
  60. @update:app-color-weak-mode="
  61. (val) => updatePreferences({ app: { colorWeakMode: val } })
  62. "
  63. @update:app-content-compact="
  64. (val) => updatePreferences({ app: { contentCompact: val } })
  65. "
  66. @update:app-dynamic-title="
  67. (val) => updatePreferences({ app: { dynamicTitle: val } })
  68. "
  69. @update:app-layout="(val) => updatePreferences({ app: { layout: val } })"
  70. @update:app-locale="
  71. (val) => {
  72. updatePreferences({ app: { locale: val } });
  73. loadLocaleMessages(val);
  74. }
  75. "
  76. @update:app-semi-dark-menu="
  77. (val) => updatePreferences({ app: { semiDarkMenu: val } })
  78. "
  79. @update:breadcrumb-enable="
  80. (val) => updatePreferences({ breadcrumb: { enable: val } })
  81. "
  82. @update:breadcrumb-hide-only-one="
  83. (val) => updatePreferences({ breadcrumb: { hideOnlyOne: val } })
  84. "
  85. @update:breadcrumb-show-home="
  86. (val) => updatePreferences({ breadcrumb: { showHome: val } })
  87. "
  88. @update:breadcrumb-show-icon="
  89. (val) => updatePreferences({ breadcrumb: { showIcon: val } })
  90. "
  91. @update:breadcrumb-style-type="
  92. (val) => updatePreferences({ breadcrumb: { styleType: val } })
  93. "
  94. @update:copyright-company-name="
  95. (val) => updatePreferences({ copyright: { companyName: val } })
  96. "
  97. @update:copyright-company-site-link="
  98. (val) => updatePreferences({ copyright: { companySiteLink: val } })
  99. "
  100. @update:copyright-date="
  101. (val) => updatePreferences({ copyright: { date: val } })
  102. "
  103. @update:copyright-enable="
  104. (val) => updatePreferences({ copyright: { enable: val } })
  105. "
  106. @update:copyright-icp="
  107. (val) => updatePreferences({ copyright: { icp: val } })
  108. "
  109. @update:copyright-icp-link="
  110. (val) => updatePreferences({ copyright: { icpLink: val } })
  111. "
  112. @update:footer-enable="
  113. (val) => updatePreferences({ footer: { enable: val } })
  114. "
  115. @update:footer-fixed="
  116. (val) => updatePreferences({ footer: { fixed: val } })
  117. "
  118. @update:header-enable="
  119. (val) => updatePreferences({ header: { enable: val } })
  120. "
  121. @update:header-mode="(val) => updatePreferences({ header: { mode: val } })"
  122. @update:navigation-accordion="
  123. (val) => updatePreferences({ navigation: { accordion: val } })
  124. "
  125. @update:navigation-split="
  126. (val) => updatePreferences({ navigation: { split: val } })
  127. "
  128. @update:navigation-style-type="
  129. (val) => updatePreferences({ navigation: { styleType: val } })
  130. "
  131. @update:shortcut-keys-enable="
  132. (val) => updatePreferences({ shortcutKeys: { enable: val } })
  133. "
  134. @update:shortcut-keys-global-logout="
  135. (val) => updatePreferences({ shortcutKeys: { globalLogout: val } })
  136. "
  137. @update:shortcut-keys-global-preferences="
  138. (val) => updatePreferences({ shortcutKeys: { globalPreferences: val } })
  139. "
  140. @update:shortcut-keys-global-search="
  141. (val) => updatePreferences({ shortcutKeys: { globalSearch: val } })
  142. "
  143. @update:sidebar-collapsed="
  144. (val) => updatePreferences({ sidebar: { collapsed: val } })
  145. "
  146. @update:sidebar-collapsed-show-title="
  147. (val) => updatePreferences({ sidebar: { collapsedShowTitle: val } })
  148. "
  149. @update:sidebar-enable="
  150. (val) => updatePreferences({ sidebar: { enable: val } })
  151. "
  152. @update:sidebar-width="
  153. (val) => updatePreferences({ sidebar: { width: val } })
  154. "
  155. @update:tabbar-enable="
  156. (val) => updatePreferences({ tabbar: { enable: val } })
  157. "
  158. @update:tabbar-show-icon="
  159. (val) => updatePreferences({ tabbar: { showIcon: val } })
  160. "
  161. @update:theme-builtin-type="
  162. (val) => updatePreferences({ theme: { builtinType: val } })
  163. "
  164. @update:theme-color-primary="
  165. (val) => updatePreferences({ theme: { colorPrimary: val } })
  166. "
  167. @update:theme-mode="(val) => updatePreferences({ theme: { mode: val } })"
  168. @update:theme-radius="
  169. (val) => updatePreferences({ theme: { radius: val } })
  170. "
  171. @update:transition-enable="
  172. (val) => updatePreferences({ transition: { enable: val } })
  173. "
  174. @update:transition-loading="
  175. (val) => updatePreferences({ transition: { loading: val } })
  176. "
  177. @update:transition-name="
  178. (val) => updatePreferences({ transition: { name: val } })
  179. "
  180. @update:transition-progress="
  181. (val) => updatePreferences({ transition: { progress: val } })
  182. "
  183. />
  184. </template>