perf: keep view format and decode method when reload the same key
This commit is contained in:
parent
51ed14dcf8
commit
ca8403d784
|
@ -13,6 +13,7 @@ import Copy from '@/components/icons/Copy.vue'
|
||||||
import { ClipboardSetText } from 'wailsjs/runtime/runtime.js'
|
import { ClipboardSetText } from 'wailsjs/runtime/runtime.js'
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
import { isEmpty, padStart } from 'lodash'
|
import { isEmpty, padStart } from 'lodash'
|
||||||
|
import { decodeTypes, formatTypes } from '@/consts/value_view_type.js'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
server: String,
|
server: String,
|
||||||
|
@ -33,6 +34,14 @@ const props = defineProps({
|
||||||
type: Number,
|
type: Number,
|
||||||
default: -1,
|
default: -1,
|
||||||
},
|
},
|
||||||
|
viewAs: {
|
||||||
|
type: String,
|
||||||
|
default: formatTypes.PLAIN_TEXT,
|
||||||
|
},
|
||||||
|
decode: {
|
||||||
|
type: String,
|
||||||
|
default: decodeTypes.NONE,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const dialogStore = useDialog()
|
const dialogStore = useDialog()
|
||||||
|
@ -69,7 +78,7 @@ const ttlString = computed(() => {
|
||||||
})
|
})
|
||||||
|
|
||||||
const onReloadKey = () => {
|
const onReloadKey = () => {
|
||||||
connectionStore.loadKeyValue(props.server, props.db, keyName.value)
|
connectionStore.loadKeyValue(props.server, props.db, keyName.value, props.viewAs, props.decode)
|
||||||
}
|
}
|
||||||
|
|
||||||
const onCopyKey = () => {
|
const onCopyKey = () => {
|
||||||
|
|
|
@ -10,6 +10,7 @@ import useDialogStore from 'stores/dialog.js'
|
||||||
import useConnectionStore from 'stores/connections.js'
|
import useConnectionStore from 'stores/connections.js'
|
||||||
import { isEmpty } from 'lodash'
|
import { isEmpty } from 'lodash'
|
||||||
import bytes from 'bytes'
|
import bytes from 'bytes'
|
||||||
|
import { decodeTypes, formatTypes } from '@/consts/value_view_type.js'
|
||||||
|
|
||||||
const i18n = useI18n()
|
const i18n = useI18n()
|
||||||
const themeVars = useThemeVars()
|
const themeVars = useThemeVars()
|
||||||
|
@ -29,6 +30,14 @@ const props = defineProps({
|
||||||
value: Object,
|
value: Object,
|
||||||
size: Number,
|
size: Number,
|
||||||
length: Number,
|
length: Number,
|
||||||
|
viewAs: {
|
||||||
|
type: String,
|
||||||
|
default: formatTypes.PLAIN_TEXT,
|
||||||
|
},
|
||||||
|
decode: {
|
||||||
|
type: String,
|
||||||
|
default: decodeTypes.NONE,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -259,11 +268,13 @@ const onUpdateFilter = (filters, sourceColumn) => {
|
||||||
<div class="content-wrapper flex-box-v">
|
<div class="content-wrapper flex-box-v">
|
||||||
<content-toolbar
|
<content-toolbar
|
||||||
:db="props.db"
|
:db="props.db"
|
||||||
|
:decode="props.decode"
|
||||||
:key-code="props.keyCode"
|
:key-code="props.keyCode"
|
||||||
:key-path="props.keyPath"
|
:key-path="props.keyPath"
|
||||||
:key-type="keyType"
|
:key-type="keyType"
|
||||||
:server="props.name"
|
:server="props.name"
|
||||||
:ttl="ttl"
|
:ttl="ttl"
|
||||||
|
:view-as="props.viewAs"
|
||||||
class="value-item-part" />
|
class="value-item-part" />
|
||||||
<div class="tb2 value-item-part flex-box-h">
|
<div class="tb2 value-item-part flex-box-h">
|
||||||
<div class="flex-box-h">
|
<div class="flex-box-h">
|
||||||
|
|
|
@ -10,6 +10,7 @@ import EditableTableColumn from '@/components/common/EditableTableColumn.vue'
|
||||||
import useDialogStore from 'stores/dialog.js'
|
import useDialogStore from 'stores/dialog.js'
|
||||||
import useConnectionStore from 'stores/connections.js'
|
import useConnectionStore from 'stores/connections.js'
|
||||||
import bytes from 'bytes'
|
import bytes from 'bytes'
|
||||||
|
import { decodeTypes, formatTypes } from '@/consts/value_view_type.js'
|
||||||
|
|
||||||
const i18n = useI18n()
|
const i18n = useI18n()
|
||||||
const themeVars = useThemeVars()
|
const themeVars = useThemeVars()
|
||||||
|
@ -29,6 +30,14 @@ const props = defineProps({
|
||||||
value: Object,
|
value: Object,
|
||||||
size: Number,
|
size: Number,
|
||||||
length: Number,
|
length: Number,
|
||||||
|
viewAs: {
|
||||||
|
type: String,
|
||||||
|
default: formatTypes.PLAIN_TEXT,
|
||||||
|
},
|
||||||
|
decode: {
|
||||||
|
type: String,
|
||||||
|
default: decodeTypes.NONE,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -191,11 +200,13 @@ const onUpdateFilter = (filters, sourceColumn) => {
|
||||||
<div class="content-wrapper flex-box-v">
|
<div class="content-wrapper flex-box-v">
|
||||||
<content-toolbar
|
<content-toolbar
|
||||||
:db="props.db"
|
:db="props.db"
|
||||||
|
:decode="props.decode"
|
||||||
:key-code="props.keyCode"
|
:key-code="props.keyCode"
|
||||||
:key-path="props.keyPath"
|
:key-path="props.keyPath"
|
||||||
:key-type="keyType"
|
:key-type="keyType"
|
||||||
:server="props.name"
|
:server="props.name"
|
||||||
:ttl="ttl"
|
:ttl="ttl"
|
||||||
|
:view-as="props.viewAs"
|
||||||
class="value-item-part" />
|
class="value-item-part" />
|
||||||
<div class="tb2 value-item-part flex-box-h">
|
<div class="tb2 value-item-part flex-box-h">
|
||||||
<div class="flex-box-h">
|
<div class="flex-box-h">
|
||||||
|
|
|
@ -10,6 +10,7 @@ import { types, types as redisTypes } from '@/consts/support_redis_type.js'
|
||||||
import EditableTableColumn from '@/components/common/EditableTableColumn.vue'
|
import EditableTableColumn from '@/components/common/EditableTableColumn.vue'
|
||||||
import useConnectionStore from 'stores/connections.js'
|
import useConnectionStore from 'stores/connections.js'
|
||||||
import bytes from 'bytes'
|
import bytes from 'bytes'
|
||||||
|
import { decodeTypes, formatTypes } from '@/consts/value_view_type.js'
|
||||||
|
|
||||||
const i18n = useI18n()
|
const i18n = useI18n()
|
||||||
const themeVars = useThemeVars()
|
const themeVars = useThemeVars()
|
||||||
|
@ -29,6 +30,14 @@ const props = defineProps({
|
||||||
value: Array,
|
value: Array,
|
||||||
size: Number,
|
size: Number,
|
||||||
length: Number,
|
length: Number,
|
||||||
|
viewAs: {
|
||||||
|
type: String,
|
||||||
|
default: formatTypes.PLAIN_TEXT,
|
||||||
|
},
|
||||||
|
decode: {
|
||||||
|
type: String,
|
||||||
|
default: decodeTypes.NONE,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -186,11 +195,13 @@ const onUpdateFilter = (filters, sourceColumn) => {
|
||||||
<div class="content-wrapper flex-box-v">
|
<div class="content-wrapper flex-box-v">
|
||||||
<content-toolbar
|
<content-toolbar
|
||||||
:db="props.db"
|
:db="props.db"
|
||||||
|
:decode="props.decode"
|
||||||
:key-code="props.keyCode"
|
:key-code="props.keyCode"
|
||||||
:key-path="props.keyPath"
|
:key-path="props.keyPath"
|
||||||
:key-type="keyType"
|
:key-type="keyType"
|
||||||
:server="props.name"
|
:server="props.name"
|
||||||
:ttl="ttl"
|
:ttl="ttl"
|
||||||
|
:view-as="props.viewAs"
|
||||||
class="value-item-part" />
|
class="value-item-part" />
|
||||||
<div class="tb2 value-item-part flex-box-h">
|
<div class="tb2 value-item-part flex-box-h">
|
||||||
<div class="flex-box-h">
|
<div class="flex-box-h">
|
||||||
|
|
|
@ -10,6 +10,7 @@ import useDialogStore from 'stores/dialog.js'
|
||||||
import useConnectionStore from 'stores/connections.js'
|
import useConnectionStore from 'stores/connections.js'
|
||||||
import { includes, isEmpty, keys, some, values } from 'lodash'
|
import { includes, isEmpty, keys, some, values } from 'lodash'
|
||||||
import bytes from 'bytes'
|
import bytes from 'bytes'
|
||||||
|
import { decodeTypes, formatTypes } from '@/consts/value_view_type.js'
|
||||||
|
|
||||||
const i18n = useI18n()
|
const i18n = useI18n()
|
||||||
const themeVars = useThemeVars()
|
const themeVars = useThemeVars()
|
||||||
|
@ -29,6 +30,14 @@ const props = defineProps({
|
||||||
value: Object,
|
value: Object,
|
||||||
size: Number,
|
size: Number,
|
||||||
length: Number,
|
length: Number,
|
||||||
|
viewAs: {
|
||||||
|
type: String,
|
||||||
|
default: formatTypes.PLAIN_TEXT,
|
||||||
|
},
|
||||||
|
decode: {
|
||||||
|
type: String,
|
||||||
|
default: decodeTypes.NONE,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -171,11 +180,13 @@ const onUpdateFilter = (filters, sourceColumn) => {
|
||||||
<div class="content-wrapper flex-box-v">
|
<div class="content-wrapper flex-box-v">
|
||||||
<content-toolbar
|
<content-toolbar
|
||||||
:db="props.db"
|
:db="props.db"
|
||||||
|
:decode="props.decode"
|
||||||
:key-code="props.keyCode"
|
:key-code="props.keyCode"
|
||||||
:key-path="props.keyPath"
|
:key-path="props.keyPath"
|
||||||
:key-type="keyType"
|
:key-type="keyType"
|
||||||
:server="props.name"
|
:server="props.name"
|
||||||
:ttl="ttl"
|
:ttl="ttl"
|
||||||
|
:view-as="props.viewAs"
|
||||||
class="value-item-part" />
|
class="value-item-part" />
|
||||||
<div class="tb2 value-item-part flex-box-h">
|
<div class="tb2 value-item-part flex-box-h">
|
||||||
<div class="flex-box-h">
|
<div class="flex-box-h">
|
||||||
|
|
|
@ -144,11 +144,13 @@ const onSaveValue = async () => {
|
||||||
<div class="content-wrapper flex-box-v">
|
<div class="content-wrapper flex-box-v">
|
||||||
<content-toolbar
|
<content-toolbar
|
||||||
:db="props.db"
|
:db="props.db"
|
||||||
|
:decode="props.decode"
|
||||||
:key-code="keyCode"
|
:key-code="keyCode"
|
||||||
:key-path="keyPath"
|
:key-path="keyPath"
|
||||||
:key-type="keyType"
|
:key-type="keyType"
|
||||||
:server="props.name"
|
:server="props.name"
|
||||||
:ttl="ttl"
|
:ttl="ttl"
|
||||||
|
:view-as="props.viewAs"
|
||||||
class="value-item-part" />
|
class="value-item-part" />
|
||||||
<div class="tb2 value-item-part flex-box-h">
|
<div class="tb2 value-item-part flex-box-h">
|
||||||
<div class="flex-item-expand"></div>
|
<div class="flex-item-expand"></div>
|
||||||
|
|
|
@ -10,6 +10,7 @@ import { isEmpty } from 'lodash'
|
||||||
import useDialogStore from 'stores/dialog.js'
|
import useDialogStore from 'stores/dialog.js'
|
||||||
import useConnectionStore from 'stores/connections.js'
|
import useConnectionStore from 'stores/connections.js'
|
||||||
import bytes from 'bytes'
|
import bytes from 'bytes'
|
||||||
|
import { decodeTypes, formatTypes } from '@/consts/value_view_type.js'
|
||||||
|
|
||||||
const i18n = useI18n()
|
const i18n = useI18n()
|
||||||
const themeVars = useThemeVars()
|
const themeVars = useThemeVars()
|
||||||
|
@ -29,6 +30,14 @@ const props = defineProps({
|
||||||
value: Object,
|
value: Object,
|
||||||
size: Number,
|
size: Number,
|
||||||
length: Number,
|
length: Number,
|
||||||
|
viewAs: {
|
||||||
|
type: String,
|
||||||
|
default: formatTypes.PLAIN_TEXT,
|
||||||
|
},
|
||||||
|
decode: {
|
||||||
|
type: String,
|
||||||
|
default: decodeTypes.NONE,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -284,11 +293,13 @@ const onUpdateFilter = (filters, sourceColumn) => {
|
||||||
<div class="content-wrapper flex-box-v">
|
<div class="content-wrapper flex-box-v">
|
||||||
<content-toolbar
|
<content-toolbar
|
||||||
:db="props.db"
|
:db="props.db"
|
||||||
|
:decode="props.decode"
|
||||||
:key-code="props.keyCode"
|
:key-code="props.keyCode"
|
||||||
:key-path="props.keyPath"
|
:key-path="props.keyPath"
|
||||||
:key-type="keyType"
|
:key-type="keyType"
|
||||||
:server="props.name"
|
:server="props.name"
|
||||||
:ttl="ttl"
|
:ttl="ttl"
|
||||||
|
:view-as="props.viewAs"
|
||||||
class="value-item-part" />
|
class="value-item-part" />
|
||||||
<div class="tb2 value-item-part flex-box-h">
|
<div class="tb2 value-item-part flex-box-h">
|
||||||
<div class="flex-box-h">
|
<div class="flex-box-h">
|
||||||
|
|
Loading…
Reference in New Issue