index.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. graphId: '', //图 id 用于读图
  9. id: '', // id 用于读图
  10. isPub: 0, // 用于读图 区分读取 已发布 or 未发布
  11. projectId: 'Pj1101050029', // projectId
  12. categoryId: '', //类型id 用于读图
  13. tupoName: '', //拓扑图名称
  14. version: "", //版本号
  15. equipmentItemList: [], // 图上相关的设备实例
  16. equipmentItemNum: 0 //图上相关的设备实例的数量
  17. },
  18. mutations: {
  19. // 修改编辑器命令
  20. SETCHOICELEHEND(state, data) {
  21. state.editCmd = data;
  22. },
  23. // 修改编辑器图例
  24. SETLEGENDOBJ(state, data) {
  25. state.legendObj = data;
  26. },
  27. // 设置项目id
  28. SETPROJECT(state, data) {
  29. state.graphId = data.graphId; //图 id 用于读图
  30. state.id = data.id; // id 用于读图
  31. // projectId: '' // projectId
  32. },
  33. // 设置项目id
  34. SETISPUB(state, val) {
  35. state.isPub = val; // 是否发布 用于读图
  36. },
  37. // 设置类型id
  38. SETCATEGROY(state, val) {
  39. state.categoryId = val.categoryId;
  40. state.tupoName = val.name; //拓扑图名称
  41. state.version = val.version; //版本号
  42. },
  43. // 增加设备实例 item
  44. ADDEQUIPITEM(state, item): void {
  45. state.equipmentItemList.push(item);
  46. state.equipmentItemNum = state.equipmentItemList.length;
  47. },
  48. // 删除设备实例 item
  49. EDITEQUIPITEM(state): void {
  50. // 如果设备实例数组中parent 为null 则删除该数组
  51. let arr1 = state.equipmentItemList;
  52. if (!arr1.length) return;
  53. for (var i = 0; i < arr1.length; i++) {
  54. if (!arr1[i].parent) {
  55. arr1.splice(i, 1);
  56. i--;//i需要自减,否则每次删除都会讲原数组索引发生变化
  57. }
  58. };
  59. state.equipmentItemList = arr1;
  60. state.equipmentItemNum = state.equipmentItemList.length
  61. }
  62. },
  63. actions: {
  64. },
  65. modules: {
  66. }
  67. })