index.js 4.9 KB

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