index.ts 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. import Vue from "vue";
  2. import Vuex from "vuex";
  3. Vue.use(Vuex);
  4. export default new Vuex.Store({
  5. state: {
  6. editCmd: "", //编辑器编辑命令
  7. legendObj: null, //获取的相关图例数据obj
  8. name: "", //图名称
  9. folderId: "", //文件id
  10. folderName: "", //文件夹名称
  11. buildingId: "", //建筑id
  12. floorId: "", //楼层id
  13. floorMap: "", //floorMap
  14. floorLocalName: "", //楼层本地名称
  15. id: "", //图id
  16. graphId: "", //图graphId
  17. state: "", //图状态, Draft: 未发布, WaitCheck: 待审核, Checked: 审核完成, Recyle: 回收站, Publish: 发布
  18. // graphId: '', //图 id 用于读图
  19. // id: '', // id 用于读图
  20. isPub: 0, // 用于读图 区分读取 已发布 or 未发布
  21. projectId: "Pj1101050029", // projectId
  22. categoryId: "", //类型id 用于读图
  23. // folderId: '',// 文件夹id
  24. tupoName: "", //拓扑图名称
  25. version: "", //版本号
  26. equipmentItemList: [], // 图上相关的设备实例
  27. equipmentItemNum: 0, // 图上相关的设备实例的数量
  28. equipItemList: {}, // 图上相关的设备实例
  29. equipItemNum: 0, // 图上相关的设备的数量
  30. zoneItemList: {}, // 图上相关的空间实例
  31. zoneItemNum: 0, // 图上相关的空间实例的数量
  32. style: {}, // 样式库信息
  33. equiPos: {}, // 设备位置信息
  34. },
  35. mutations: {
  36. // 修改编辑器命令
  37. SETCHOICELEHEND(state, data) {
  38. state.editCmd = data;
  39. },
  40. // 修改编辑器图例
  41. SETLEGENDOBJ(state, data) {
  42. state.legendObj = data;
  43. },
  44. // 设置项目信息
  45. SETPROJECT(state, data) {
  46. // name:'',//图名称
  47. // folderId: "", //文件id
  48. // folderName: "", //文件夹名称
  49. // buildingId: "", //建筑id
  50. // floorId: "", //楼层id
  51. // floorMap: "", //floorMap
  52. // floorLocalName: "", //楼层本地名称
  53. // id: "", //图id
  54. // graphId: "", //图graphId
  55. // state:'', //图状态, Draft: 未发布, WaitCheck: 待审核, Checked: 审核完成, Recyle: 回收站, Publish: 发布
  56. // const { folderId, folderName, buildingId, floorId, floorMap, floorLocalName, id, graphId, state } = data;
  57. const arr = ["name", "folderId", "folderName", "buildingId", "floorId", "floorMap", "floorLocalName", "id", "graphId", "state"];
  58. arr.map((key) => {
  59. // 对传入的参数进行修改
  60. if (data[key] !== undefined) {
  61. // @ts-ignore
  62. state[key] = data[key];
  63. }
  64. });
  65. },
  66. // 设置项目id
  67. SETISPUB(state, val) {
  68. state.isPub = val; // 是否发布 用于读图
  69. },
  70. // 设置类型id
  71. SETCATEGROY(state, val) {
  72. state.categoryId = val.categoryId;
  73. // state.folderId = val.folderId;
  74. state.tupoName = val.name; //拓扑图名称
  75. state.version = val.version; //版本号
  76. },
  77. SETVERSION(state, val) {
  78. console.log("asdfasfas", val);
  79. state.version = val; //版本号
  80. },
  81. // 增加设备实例 item
  82. ADDEQUIPITEM(state, item): void {
  83. state.equipmentItemList.push(item);
  84. state.equipmentItemNum = state.equipmentItemList.length;
  85. },
  86. // 删除设备实例 item
  87. EDITEQUIPITEM(state): void {
  88. // 如果设备实例数组中parent 为null 则删除该数组
  89. let arr1 = state.equipmentItemList;
  90. if (!arr1.length) return;
  91. for (var i = 0; i < arr1.length; i++) {
  92. if (!arr1[i].parent) {
  93. arr1.splice(i, 1);
  94. i--; //i需要自减,否则每次删除都会讲原数组索引发生变化
  95. }
  96. }
  97. state.equipmentItemList = arr1;
  98. state.equipmentItemNum = state.equipmentItemList.length;
  99. },
  100. // 初始化设备位置信息
  101. INITEQUIPOS(state, data) {
  102. state.equiPos = data;
  103. },
  104. // 初始化样式库信息
  105. INITSTYLE(state, data) {
  106. state.style = data;
  107. },
  108. // 添加样式信息
  109. ADDSTYLE(state, data) {
  110. // const {id, style} = {...data}
  111. // state.style[data.id] = style
  112. },
  113. // 增加设备实例item
  114. ADDEQUIP(state, item): void {
  115. // @ts-ignore
  116. if (!state.equipItemList[item.id]) {
  117. // @ts-ignore
  118. state.equipItemList[item.id] = item;
  119. state.equipItemNum = Object.keys(state.equipItemList).length;
  120. }
  121. },
  122. DELETEQUIP(state): void {
  123. // 如果设备实例数组中parent 为null 则删除该数组
  124. let arr1 = Object.keys(state.equipItemList);
  125. if (!arr1.length) return;
  126. arr1.forEach((key) => {
  127. // @ts-ignore
  128. if (!state.equipItemList[key].parent) {
  129. // @ts-ignore
  130. delete state.equipItemList[key];
  131. }
  132. });
  133. },
  134. },
  135. actions: {},
  136. modules: {},
  137. });