|
@@ -1,25 +1,25 @@
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
import { useStore } from '@/store'
|
|
import { useStore } from '@/store'
|
|
import { storeToRefs } from 'pinia';
|
|
import { storeToRefs } from 'pinia';
|
|
-import { computed } from 'vue';
|
|
|
|
|
|
+import { computed, ref, watch } from 'vue';
|
|
import VCollaps from './VCollaps.vue';
|
|
import VCollaps from './VCollaps.vue';
|
|
const store = useStore()
|
|
const store = useStore()
|
|
const { selectedNode } = storeToRefs(store)
|
|
const { selectedNode } = storeToRefs(store)
|
|
const nameSpaceName = computed(() => {
|
|
const nameSpaceName = computed(() => {
|
|
- if(!selectedNode.value)
|
|
|
|
|
|
+ if (!selectedNode.value)
|
|
return "";
|
|
return "";
|
|
- let nsIdx=selectedNode.value.nodeId.namespace;
|
|
|
|
|
|
+ let nsIdx = selectedNode.value.nodeId.namespace;
|
|
return store.addressSpace?.nst.getUri(nsIdx);
|
|
return store.addressSpace?.nst.getUri(nsIdx);
|
|
})
|
|
})
|
|
|
|
|
|
-const displayName=computed(() => {
|
|
|
|
- if(!selectedNode.value)
|
|
|
|
- return "";
|
|
|
|
- for( const dn of selectedNode.value.displayName) { //TODO: locale handling
|
|
|
|
- return dn.text;
|
|
|
|
- }
|
|
|
|
- return "";
|
|
|
|
-})
|
|
|
|
|
|
+const typeDef=ref("");
|
|
|
|
+
|
|
|
|
+watch(selectedNode, async (newNode, _oldNode) => {
|
|
|
|
+ if(!newNode)
|
|
|
|
+ return;
|
|
|
|
+ typeDef.value=newNode.getTypeDefinition()||"<undefind>";
|
|
|
|
+});
|
|
|
|
+
|
|
|
|
|
|
function okPressed() {
|
|
function okPressed() {
|
|
console.log('TODO: Handle OK Button');
|
|
console.log('TODO: Handle OK Button');
|
|
@@ -28,43 +28,40 @@ defineExpose({ okPressed })
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<template>
|
|
<template>
|
|
- <VCollaps :selected=true name="Node">
|
|
|
|
|
|
+ <VCollaps :selected=true name="Instance">
|
|
<div class="card-text" v-if="selectedNode">
|
|
<div class="card-text" v-if="selectedNode">
|
|
<div class="input-group mb-3">
|
|
<div class="input-group mb-3">
|
|
<div class="input-group-prepend">
|
|
<div class="input-group-prepend">
|
|
- <span class="input-group-text" id="inputGroup-sizing-default">DisplayName</span>
|
|
|
|
- </div>
|
|
|
|
- <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default" v-model="displayName">
|
|
|
|
- </div>
|
|
|
|
- <div class="input-group mb-3">
|
|
|
|
- <div class="input-group-prepend">
|
|
|
|
- <span class="input-group-text" id="inputGroup-sizing-default">BrowseName</span>
|
|
|
|
|
|
+ <span class="input-group-text" id="inputGroup-sizing-default">NodeClass</span>
|
|
</div>
|
|
</div>
|
|
- <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default" v-model="selectedNode.browseName">
|
|
|
|
|
|
+ <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default"
|
|
|
|
+ v-model="selectedNode.nodeClass">
|
|
</div>
|
|
</div>
|
|
<div class="input-group mb-3">
|
|
<div class="input-group mb-3">
|
|
<div class="input-group-prepend">
|
|
<div class="input-group-prepend">
|
|
- <span class="input-group-text" id="inputGroup-sizing-default">NodeId</span>
|
|
|
|
|
|
+ <span class="input-group-text" id="inputGroup-sizing-default">Namespace</span>
|
|
</div>
|
|
</div>
|
|
- <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default" v-model="selectedNode.nodeId">
|
|
|
|
|
|
+ <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default"
|
|
|
|
+ v-model="nameSpaceName">
|
|
</div>
|
|
</div>
|
|
<div class="input-group mb-3">
|
|
<div class="input-group mb-3">
|
|
<div class="input-group-prepend">
|
|
<div class="input-group-prepend">
|
|
- <span class="input-group-text" id="inputGroup-sizing-default">NodeClass</span>
|
|
|
|
|
|
+ <span class="input-group-text" id="inputGroup-sizing-default">Name</span>
|
|
</div>
|
|
</div>
|
|
- <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default" v-model="selectedNode.nodeClass">
|
|
|
|
|
|
+ <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default"
|
|
|
|
+ v-model="selectedNode.browseName">
|
|
</div>
|
|
</div>
|
|
<div class="input-group mb-3">
|
|
<div class="input-group mb-3">
|
|
<div class="input-group-prepend">
|
|
<div class="input-group-prepend">
|
|
- <span class="input-group-text" id="inputGroup-sizing-default">Namespace</span>
|
|
|
|
|
|
+ <span class="input-group-text" id="inputGroup-sizing-default">Type Definition</span>
|
|
</div>
|
|
</div>
|
|
- <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default" v-model="nameSpaceName">
|
|
|
|
|
|
+ <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default"
|
|
|
|
+ v-model="typeDef">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
</VCollaps>
|
|
</VCollaps>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
|
|
-<style scoped>
|
|
|
|
-
|
|
|
|
-</style>
|
|
|
|
|
|
+<style scoped></style>
|