TheInstance.vue 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <script setup lang="ts">
  2. import { useStore } from '@/store'
  3. import { storeToRefs } from 'pinia';
  4. import { computed } from 'vue';
  5. import VCollaps from './VCollaps.vue';
  6. const store = useStore()
  7. const { selectedNode } = storeToRefs(store)
  8. const nameSpaceName = computed(() => {
  9. if(!selectedNode.value)
  10. return "";
  11. let nsIdx=selectedNode.value.nodeId.namespace;
  12. return store.addressSpace?.nst.getUri(nsIdx);
  13. })
  14. const displayName=computed(() => {
  15. if(!selectedNode.value)
  16. return "";
  17. for( const dn of selectedNode.value.displayName) { //TODO: locale handling
  18. return dn.text;
  19. }
  20. return "";
  21. })
  22. function okPressed() {
  23. console.log('TODO: Handle OK Button');
  24. }
  25. defineExpose({ okPressed })
  26. </script>
  27. <template>
  28. <VCollaps :selected=true name="Node">
  29. <div class="card-text" v-if="selectedNode">
  30. <div class="input-group mb-3">
  31. <div class="input-group-prepend">
  32. <span class="input-group-text" id="inputGroup-sizing-default">DisplayName</span>
  33. </div>
  34. <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default" v-model="displayName">
  35. </div>
  36. <div class="input-group mb-3">
  37. <div class="input-group-prepend">
  38. <span class="input-group-text" id="inputGroup-sizing-default">BrowseName</span>
  39. </div>
  40. <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default" v-model="selectedNode.browseName">
  41. </div>
  42. <div class="input-group mb-3">
  43. <div class="input-group-prepend">
  44. <span class="input-group-text" id="inputGroup-sizing-default">NodeId</span>
  45. </div>
  46. <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default" v-model="selectedNode.nodeId">
  47. </div>
  48. <div class="input-group mb-3">
  49. <div class="input-group-prepend">
  50. <span class="input-group-text" id="inputGroup-sizing-default">NodeClass</span>
  51. </div>
  52. <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default" v-model="selectedNode.nodeClass">
  53. </div>
  54. <div class="input-group mb-3">
  55. <div class="input-group-prepend">
  56. <span class="input-group-text" id="inputGroup-sizing-default">Namespace</span>
  57. </div>
  58. <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default" v-model="nameSpaceName">
  59. </div>
  60. </div>
  61. </VCollaps>
  62. </template>
  63. <style scoped>
  64. </style>