index.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. import Vue from "vue";
  2. import Vuex from "vuex";
  3. Vue.use(Vuex);
  4. // 定义是否菜单可取消选中(true:可取消选中,false:不可取消选中)【取消选中:当菜单已经为选中状态,再次点击会取消选中状态】
  5. const menus = true;
  6. export default new Vuex.Store({
  7. state: {
  8. baseMapType: 1, //当前的底图类型 0 - 影像图; 1 - 蓝黑图, 2-街道图
  9. // 头部菜单选中菜单对象(主要用于元素判断是否显示)
  10. navSelect: window.localStorage.getItem("navSelect")
  11. ? JSON.parse(window.localStorage.getItem("navSelect"))
  12. : { index: "1", name: "首页", subIndex: "" },
  13. // 左侧菜单选中菜单title(主要用于疑点筛查点击某个子菜单时,跳转到综合分析页面综合分析页面自动选中操作。以及元素判断是否显示)
  14. leftMenuTitle: "",
  15. // 左侧菜单跳转menu变量暂存(主要用于疑点筛查点击某个子菜单时,跳转到综合分析页面综合分析页面显示返回按钮,以及返回菜单的依据)
  16. backMenu: {},
  17. // 底部菜单选中菜单index,subIndex(主要用于元素判断是否高亮)
  18. bottomMenuIndexs: { index: -1, subIndex: -1 },
  19. // 卷帘对比状态同步
  20. jlActiveState: false,
  21. // 当前浏览器窗口的宽高(优化自适应布局)
  22. windowsSize: {
  23. width: document.body.clientWidth,
  24. height: document.body.clientHeight,
  25. },
  26. // 地图常用方法集合
  27. mapMethodsCollection: new Map(),
  28. // 自定义模型状态改变 -- 修改或创建
  29. modelStatus: "create",
  30. // 法律法规弹窗
  31. lawPopupShow: false,
  32. // 法规法规弹窗资源类型
  33. lawSourceType: "",
  34. // 底图切换距离右侧的位置
  35. baseMapRight: 23,
  36. // 我的标记中的疑点数据
  37. myLabelPointsArr: [],
  38. // 存储所有图层中的层级数据结构 -- 方便自定义模型传数据
  39. treeDataCollection: new Map(),
  40. // 用户信息(登录成功后保存)
  41. userInfo: {},
  42. // 综合分析疑点属性弹窗
  43. attrTableShow: false,
  44. // 综合分析修改标记弹窗
  45. updateCasePopupShow: false,
  46. // 首页所属街道全局暂存变量
  47. homeSpecialTown: "全部",
  48. // 全局类型变量
  49. selectSelectDataMap: {},
  50. preModelLayerMap: [],
  51. // 同屏对比中选中图层暂存详细信息
  52. mapMarkInfo: {},
  53. // 综合分析中点击图版cid
  54. map2DViewerPolygonsCid: {},
  55. // 卷帘对比右侧map地址
  56. JLControlRightMapUrl: "",
  57. },
  58. getters: {
  59. myLabelPointsArr: (state) => state.myLabelPointsArr,
  60. treeDataCollection: (state) => state.treeDataCollection,
  61. },
  62. mutations: {
  63. changeHomeSpecialTown(state, homeSpecialTown) {
  64. state.homeSpecialTown = homeSpecialTown;
  65. },
  66. changeBackMenu(state, backMenu) {
  67. state.backMenu = backMenu;
  68. },
  69. changeJlActiveState(state, jlActiveState) {
  70. state.jlActiveState = jlActiveState;
  71. },
  72. // 用户信息修改(登录或退出时操作)
  73. changeUserInfo(state, userInfo) {
  74. state.userInfo = userInfo;
  75. },
  76. baseMapRight(state, position) {
  77. state.baseMapRight = position;
  78. },
  79. // 用户点击头部菜单,更新暂存对象
  80. changeNavSelect(state, navSelect) {
  81. state.navSelect = navSelect;
  82. window.localStorage.setItem("navSelect", JSON.stringify(state.navSelect));
  83. },
  84. // 用户点击左侧菜单,更新暂存对象(当menus为true时,点击相同的菜单会取消选中)
  85. changeLeftMenuTitle(state, leftMenuTitle) {
  86. state.leftMenuTitle = leftMenuTitle;
  87. },
  88. // 用户点击底部菜单,更新暂存对象(当menus为true时,点击相同的菜单会取消选中)
  89. changeBottomMenu(state, bottomMenuIndex) {
  90. if (
  91. bottomMenuIndex.index == state.bottomMenuIndexs.index &&
  92. bottomMenuIndex.subIndex == state.bottomMenuIndexs.subIndex &&
  93. menus
  94. ) {
  95. state.bottomMenuIndexs = { index: -1, subIndex: -1 };
  96. } else {
  97. state.bottomMenuIndexs = bottomMenuIndex;
  98. }
  99. },
  100. changeWindowsSize(state, windowWidth, windowHeight) {
  101. state.windowsSize = { width: windowWidth, height: windowHeight };
  102. },
  103. mapMethods: (state, options) => {
  104. state.mapMethodsCollection.set(options.name, options.value);
  105. },
  106. changeModelStatus: (state, data) => {
  107. state.modelStatus = data;
  108. },
  109. changeMyLabelData: (state, data) => {
  110. state.myLabelPointsArr = data;
  111. },
  112. //
  113. changeTreeData: (state, option) => {
  114. state.treeDataCollection.set(option.name, option.value);
  115. },
  116. // 预设模型图层组
  117. changePreModelData: (state, data) => {
  118. state.preModelLayerMap = data;
  119. },
  120. },
  121. actions: {},
  122. modules: {},
  123. });