store.ts 945 B

123456789101112131415161718192021222324252627282930
  1. import { AddressSpace } from '@/ua/AddressSpace'
  2. import { UABaseNode } from '@/ua/UABaseNode'
  3. import type { UANodeSet } from '@/ua/UANodeSet'
  4. import { defineStore } from 'pinia'
  5. import { ref } from 'vue'
  6. import type { DynamicNode } from '@/ua/DynamicNode'
  7. import type { ServerConfig } from './sconfig'
  8. export const useStore = defineStore('user', {
  9. state: () => ({
  10. addressSpace: null as AddressSpace | null,
  11. rootNode: ref<UABaseNode | null>(null),
  12. selectedNode: ref<UABaseNode | null>(null),
  13. dynNode: ref<DynamicNode | null>(null),
  14. sConfig: ref<ServerConfig | null>(null)
  15. }),
  16. actions: {
  17. setAddressSpace(as: AddressSpace) {
  18. this.addressSpace=as;
  19. this.rootNode=as.findNode("ns=0;i=84")||null;
  20. this.selectedNode=null;
  21. },
  22. addNodeset(nodeset: UANodeSet) {
  23. this.addressSpace?.addNodeset(nodeset);
  24. this.rootNode=this.addressSpace?.findNode("ns=0;i=84")||null;
  25. }
  26. }
  27. })