app.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  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. DEFAULT_FONT_SIZE
  14. } from '@/store/mutation-types'
  15. const app = {
  16. state: {
  17. sidebar: true,
  18. device: 'desktop',
  19. theme: '',
  20. fontSize:'small',
  21. layout: '',
  22. contentWidth: '',
  23. fixedHeader: false,
  24. fixSiderbar: false,
  25. autoHideHeader: false,
  26. color: null,
  27. weak: false,
  28. multiTab: true,
  29. nowRoute: '', // 当前路由
  30. isShowVideo: false, // 是否显示视频弹窗
  31. isNewTab: false,
  32. closeTabPages: [], // 已关闭的页面
  33. isNewSubTab: false,
  34. updateList: false,
  35. loadingStatus: false,
  36. winHeight: 0 ,// 窗口高度
  37. isLastDayForMonth: false, // 是否是当月最后一天
  38. showPdfPrintView: false, // pdf 打印预览
  39. pdfPrintList: [] // 打印的pdf 文件
  40. },
  41. mutations: {
  42. SET_SIDEBAR_TYPE: (state, type) => {
  43. state.sidebar = type
  44. Vue.ls.set(SIDEBAR_TYPE, type)
  45. },
  46. CLOSE_SIDEBAR: (state) => {
  47. Vue.ls.set(SIDEBAR_TYPE, true)
  48. state.sidebar = false
  49. },
  50. TOGGLE_DEVICE: (state, device) => {
  51. state.device = device
  52. },
  53. TOGGLE_THEME: (state, theme) => {
  54. Vue.ls.set(DEFAULT_THEME, theme)
  55. localStorage.setItem(DEFAULT_THEME,theme)
  56. state.theme = theme
  57. },
  58. TOGGLE_FONTSIZE:(state, size) => {
  59. localStorage.setItem(DEFAULT_FONT_SIZE,size)
  60. state.fontSize = size
  61. document.body.className = size
  62. },
  63. TOGGLE_LAYOUT_MODE: (state, layout) => {
  64. Vue.ls.set(DEFAULT_LAYOUT_MODE, layout)
  65. state.layout = layout
  66. },
  67. TOGGLE_FIXED_HEADER: (state, fixed) => {
  68. Vue.ls.set(DEFAULT_FIXED_HEADER, fixed)
  69. state.fixedHeader = fixed
  70. },
  71. TOGGLE_FIXED_SIDERBAR: (state, fixed) => {
  72. Vue.ls.set(DEFAULT_FIXED_SIDEMENU, fixed)
  73. state.fixSiderbar = fixed
  74. },
  75. TOGGLE_FIXED_HEADER_HIDDEN: (state, show) => {
  76. Vue.ls.set(DEFAULT_FIXED_HEADER_HIDDEN, show)
  77. state.autoHideHeader = show
  78. },
  79. TOGGLE_CONTENT_WIDTH: (state, type) => {
  80. Vue.ls.set(DEFAULT_CONTENT_WIDTH_TYPE, type)
  81. state.contentWidth = type
  82. },
  83. TOGGLE_COLOR: (state, color) => {
  84. Vue.ls.set(DEFAULT_COLOR, color)
  85. state.color = color
  86. },
  87. TOGGLE_WEAK: (state, flag) => {
  88. Vue.ls.set(DEFAULT_COLOR_WEAK, flag)
  89. state.weak = flag
  90. },
  91. TOGGLE_MULTI_TAB: (state, bool) => {
  92. Vue.ls.set(DEFAULT_MULTI_TAB, bool)
  93. state.multiTab = bool
  94. },
  95. // 当前路由
  96. TOGGLE_NOW_ROUTER: (state, bool) => {
  97. state.nowRoute = bool
  98. },
  99. // 是否显示视频弹窗
  100. IS_ShOW_VIDEO: (state, bool) => {
  101. state.isShowVideo = bool
  102. },
  103. SET_WIN_HEIGHT: (state, val) => {
  104. state.winHeight = val
  105. },
  106. SET_loadingStatus: (state, val) => {
  107. state.loadingStatus = val
  108. },
  109. SET_pdfPrintList: (state, val) => {
  110. console.log(val)
  111. state.pdfPrintList = val
  112. state.showPdfPrintView = val && val.length > 0
  113. },
  114. },
  115. actions: {
  116. setSidebar ({
  117. commit
  118. }, type) {
  119. commit('SET_SIDEBAR_TYPE', type)
  120. },
  121. CloseSidebar ({
  122. commit
  123. }) {
  124. commit('CLOSE_SIDEBAR')
  125. },
  126. ToggleDevice ({
  127. commit
  128. }, device) {
  129. commit('TOGGLE_DEVICE', device)
  130. },
  131. ToggleTheme ({
  132. commit
  133. }, theme) {
  134. commit('TOGGLE_THEME', theme)
  135. },
  136. ToggleFontSize({
  137. commit
  138. }, size) {
  139. commit('TOGGLE_FONTSIZE', size)
  140. },
  141. ToggleLayoutMode ({
  142. commit
  143. }, mode) {
  144. commit('TOGGLE_LAYOUT_MODE', mode)
  145. },
  146. ToggleFixedHeader ({
  147. commit
  148. }, fixedHeader) {
  149. if (!fixedHeader) {
  150. commit('TOGGLE_FIXED_HEADER_HIDDEN', false)
  151. }
  152. commit('TOGGLE_FIXED_HEADER', fixedHeader)
  153. },
  154. ToggleFixSiderbar ({
  155. commit
  156. }, fixSiderbar) {
  157. commit('TOGGLE_FIXED_SIDERBAR', fixSiderbar)
  158. },
  159. ToggleFixedHeaderHidden ({
  160. commit
  161. }, show) {
  162. commit('TOGGLE_FIXED_HEADER_HIDDEN', show)
  163. },
  164. ToggleContentWidth ({
  165. commit
  166. }, type) {
  167. commit('TOGGLE_CONTENT_WIDTH', type)
  168. },
  169. ToggleColor ({
  170. commit
  171. }, color) {
  172. commit('TOGGLE_COLOR', color)
  173. },
  174. ToggleWeak ({
  175. commit
  176. }, weakFlag) {
  177. commit('TOGGLE_WEAK', weakFlag)
  178. },
  179. ToggleMultiTab ({
  180. commit
  181. }, bool) {
  182. commit('TOGGLE_MULTI_TAB', bool)
  183. },
  184. SetWinHeight ({ commit }, val) {
  185. commit('SET_WIN_HEIGHT', val)
  186. }
  187. }
  188. }
  189. export default app