index.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. import { createStore, createLogger } from "vuex";
  2. import weather from "./modules/weather";
  3. import user from "./modules/user";
  4. import routes from "./modules/router";
  5. import getters from "./getters";
  6. const debug = process.env.NODE_ENV !== "production";
  7. // 默认状态
  8. const state = {
  9. websocketTimeSec: 1000,
  10. loading: false, //全局 - 加载中....
  11. themeName: localStorage.getItem("themeName") || "dark", // 主题
  12. menuData: [],
  13. windturbineMap: {},
  14. moudleName: localStorage.getItem("ModuleName") || "",
  15. isFixed: JSON.parse(localStorage.getItem("isFixed")) || true,
  16. boosterList: localStorage.getItem("boosterList")
  17. ? JSON.parse(localStorage.getItem("boosterList"))
  18. : [],
  19. cftList: localStorage.getItem("cftList")
  20. ? JSON.parse(localStorage.getItem("cftList"))
  21. : [],
  22. stationListAll: localStorage.getItem("stationListAll")
  23. ? JSON.parse(localStorage.getItem("stationListAll"))
  24. : [],
  25. boosterAlarm: JSON.parse(localStorage.getItem("boosterAlarm")) || 0,
  26. drawer: JSON.parse(localStorage.getItem("drawer")) || false,
  27. alarmList: JSON.parse(localStorage.getItem("alarmList")) || [],
  28. warnList: [], //弹窗报警列表
  29. warningList: [], //实时报警列表
  30. //实时报警列表最大长度
  31. warningListLimitLength: 30,
  32. setConfig: 1,
  33. menuState: 1,
  34. };
  35. //改变状态的方法`
  36. const mutations = {
  37. loadingStore(state, tag) {
  38. state.loading = tag;
  39. },
  40. changeIsFixed(state, isFixed) {
  41. state.isFixed = isFixed;
  42. localStorage.setItem("isFixed", isFixed);
  43. },
  44. changeTheme(state, tag) {
  45. state.themeName = tag;
  46. },
  47. update(state, newData) {
  48. state.windturbineMap = newData.data;
  49. },
  50. //首次加载请求公共数据
  51. changeBooster(state, data) {
  52. state.boosterList = data;
  53. localStorage.setItem("boosterList", JSON.stringify(data));
  54. },
  55. changeCft(state, data) {
  56. state.cftList = data;
  57. localStorage.setItem("cftList", JSON.stringify(data));
  58. },
  59. changeStationAll(state, data) {
  60. state.stationListAll = data;
  61. localStorage.setItem("stationListAll", JSON.stringify(data));
  62. },
  63. changeBoosterAlarm(state, data) {
  64. state.boosterAlarm = data;
  65. localStorage.setItem("boosterAlarm", JSON.stringify(data));
  66. },
  67. //升压站报警列表弹窗
  68. changeDrawer(state, data) {
  69. state.drawer = data;
  70. localStorage.setItem("drawer", data);
  71. },
  72. //修改升压站报警列表
  73. changeAlarmlist(state, data) {
  74. state.alarmList = data;
  75. localStorage.setItem("alarmList", JSON.stringify(state.alarmList));
  76. },
  77. //修改弹窗报警列表事件
  78. setWarning(state, data) {
  79. state.warnList = data;
  80. },
  81. removeWarning(state, data) {
  82. if (Array.isArray(data)) {
  83. data.forEach((ele) => {
  84. for (let i = 0; i < state.warnList.length; i++) {
  85. if (
  86. `${ele.id}${ele.ts}` ===
  87. `${state.warnList[i].id}${state.warnList[i].ts}`
  88. ) {
  89. setTimeout(() => {
  90. state.warnList.splice(i, 1);
  91. }, 0);
  92. break;
  93. }
  94. }
  95. });
  96. }
  97. },
  98. emptyWarning(state) {
  99. state.warnList = [];
  100. },
  101. //修改实时报警列表事件
  102. setWarningList(state, data) {
  103. state.warningList = data;
  104. },
  105. removeWarningList(state, data) {
  106. // if (Array.isArray(data)) {
  107. // data.forEach((ele) => {
  108. // for (let i = 0; i < state.warningList.length; i++) {
  109. // if (
  110. // `${ele.id}${ele.ts}` ===
  111. // `${state.warningList[i].id}${state.warningList[i].ts}`
  112. // ) {
  113. // setTimeout(() => {
  114. // state.warningList.splice(i, 1);
  115. // }, 0);
  116. // break;
  117. // }
  118. // }
  119. // });
  120. // }
  121. if (Array.isArray(data)) {
  122. data.forEach((ele) => {
  123. for (let i = 0; i < state.warningList.length; i++) {
  124. if (
  125. `${ele.id}${ele.ts}` ===
  126. `${state.warningList[i].id}${state.warningList[i].ts}`
  127. ) {
  128. setTimeout(() => {
  129. state.warningList.splice(i, 1);
  130. }, 0);
  131. break;
  132. }
  133. }
  134. });
  135. } else {
  136. for (let i = 0; i < state.warningList.length; i++) {
  137. if (
  138. `${state.warningList[i].id}${state.warningList[i].ts}` ===
  139. `${data.id}${data.ts}`
  140. ) {
  141. state.warningList.splice(i, 1);
  142. break;
  143. }
  144. }
  145. }
  146. },
  147. emptyWarningList(state, data) {
  148. state.warningList = [];
  149. },
  150. //菜单相关
  151. changeMenuData(state, newData) {
  152. state.menuData = newData;
  153. },
  154. changeModuleName(state, newData) {
  155. state.moudleName = newData;
  156. },
  157. changeMenuState(state) {
  158. state.menuState++;
  159. },
  160. };
  161. const actions = {
  162. actionAlarmList(context, newData) {
  163. context.commit("changeAlarmlist", newData);
  164. },
  165. getupdate(context, newData) {
  166. context.commit("update", newData);
  167. },
  168. changeTheme(context, str) {
  169. context.commit("changeTheme", str);
  170. },
  171. changeMenuData(context, str) {
  172. context.commit("changeMenuData", str);
  173. },
  174. changeModuleName(context, str) {
  175. context.commit("changeModuleName", str);
  176. localStorage.setItem("ModuleName", str);
  177. },
  178. changeMenuState(state, data) {
  179. context.commit("changeMenuState");
  180. },
  181. };
  182. export default createStore({
  183. modules: {
  184. weather,
  185. user,
  186. routes,
  187. },
  188. state,
  189. mutations,
  190. actions,
  191. getters,
  192. strict: false,
  193. plugins: debug ? [createLogger()] : [],
  194. });