app.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. import Vue from 'vue'
  2. import {
  3. SIDEBAR_TYPE,
  4. DEFAULT_THEME,
  5. DEFAULT_LAYOUT_MODE,
  6. DEFAULT_COLOR,
  7. DEFAULT_COLOR_WEAK,
  8. DEFAULT_FIXED_HEADER,
  9. DEFAULT_FIXED_SIDEMENU,
  10. DEFAULT_FIXED_HEADER_HIDDEN,
  11. DEFAULT_CONTENT_WIDTH_TYPE,
  12. DEFAULT_MULTI_TAB
  13. } from '@/store/mutation-types'
  14. const app = {
  15. state: {
  16. sidebar: true,
  17. device: 'desktop',
  18. theme: '',
  19. layout: '',
  20. contentWidth: '',
  21. fixedHeader: false,
  22. fixSiderbar: false,
  23. autoHideHeader: false,
  24. color: null,
  25. weak: false,
  26. multiTab: true,
  27. isMapFull: false
  28. },
  29. mutations: {
  30. SET_SIDEBAR_TYPE: (state, type) => {
  31. state.sidebar = type
  32. Vue.ls.set(SIDEBAR_TYPE, type)
  33. },
  34. CLOSE_SIDEBAR: (state) => {
  35. Vue.ls.set(SIDEBAR_TYPE, true)
  36. state.sidebar = false
  37. },
  38. TOGGLE_DEVICE: (state, device) => {
  39. state.device = device
  40. },
  41. TOGGLE_THEME: (state, theme) => {
  42. // setStore('_DEFAULT_THEME', theme)
  43. Vue.ls.set(DEFAULT_THEME, theme)
  44. state.theme = theme
  45. },
  46. TOGGLE_LAYOUT_MODE: (state, layout) => {
  47. Vue.ls.set(DEFAULT_LAYOUT_MODE, layout)
  48. state.layout = layout
  49. },
  50. TOGGLE_FIXED_HEADER: (state, fixed) => {
  51. Vue.ls.set(DEFAULT_FIXED_HEADER, fixed)
  52. state.fixedHeader = fixed
  53. },
  54. TOGGLE_FIXED_SIDERBAR: (state, fixed) => {
  55. Vue.ls.set(DEFAULT_FIXED_SIDEMENU, fixed)
  56. state.fixSiderbar = fixed
  57. },
  58. TOGGLE_FIXED_HEADER_HIDDEN: (state, show) => {
  59. Vue.ls.set(DEFAULT_FIXED_HEADER_HIDDEN, show)
  60. state.autoHideHeader = show
  61. },
  62. TOGGLE_CONTENT_WIDTH: (state, type) => {
  63. Vue.ls.set(DEFAULT_CONTENT_WIDTH_TYPE, type)
  64. state.contentWidth = type
  65. },
  66. TOGGLE_COLOR: (state, color) => {
  67. Vue.ls.set(DEFAULT_COLOR, color)
  68. state.color = color
  69. },
  70. TOGGLE_WEAK: (state, flag) => {
  71. Vue.ls.set(DEFAULT_COLOR_WEAK, flag)
  72. state.weak = flag
  73. },
  74. TOGGLE_MULTI_TAB: (state, bool) => {
  75. Vue.ls.set(DEFAULT_MULTI_TAB, bool)
  76. state.multiTab = bool
  77. },
  78. TOGGLE_MAPFULL: (state, bool) => {
  79. state.isMapFull = bool
  80. },
  81. },
  82. actions: {
  83. setSidebar ({ commit }, type) {
  84. commit('SET_SIDEBAR_TYPE', type)
  85. },
  86. CloseSidebar ({ commit }) {
  87. commit('CLOSE_SIDEBAR')
  88. },
  89. ToggleDevice ({ commit }, device) {
  90. commit('TOGGLE_DEVICE', device)
  91. },
  92. ToggleTheme ({ commit }, theme) {
  93. commit('TOGGLE_THEME', theme)
  94. },
  95. ToggleLayoutMode ({ commit }, mode) {
  96. commit('TOGGLE_LAYOUT_MODE', mode)
  97. },
  98. ToggleFixedHeader ({ commit }, fixedHeader) {
  99. if (!fixedHeader) {
  100. commit('TOGGLE_FIXED_HEADER_HIDDEN', false)
  101. }
  102. commit('TOGGLE_FIXED_HEADER', fixedHeader)
  103. },
  104. ToggleFixSiderbar ({ commit }, fixSiderbar) {
  105. commit('TOGGLE_FIXED_SIDERBAR', fixSiderbar)
  106. },
  107. ToggleFixedHeaderHidden ({ commit }, show) {
  108. commit('TOGGLE_FIXED_HEADER_HIDDEN', show)
  109. },
  110. ToggleContentWidth ({ commit }, type) {
  111. commit('TOGGLE_CONTENT_WIDTH', type)
  112. },
  113. ToggleColor ({ commit }, color) {
  114. commit('TOGGLE_COLOR', color)
  115. },
  116. ToggleWeak ({ commit }, weakFlag) {
  117. commit('TOGGLE_WEAK', weakFlag)
  118. },
  119. ToggleMultiTab ({ commit }, bool) {
  120. commit('TOGGLE_MULTI_TAB', bool)
  121. },
  122. ToggleMapFull ({ commit }, bool) {
  123. commit('TOGGLE_MAPFULL', bool)
  124. },
  125. }
  126. }
  127. export default app