Compare commits

...

2 Commits

Author SHA1 Message Date
Lykin e1f022908c perf: support double click to modify match keyword #149 2024-02-14 14:44:54 +08:00
Lykin c0415fe23d fix: support zset score +inf/-inf #148 2024-02-14 13:54:09 +08:00
4 changed files with 28 additions and 7 deletions

View File

@ -9,6 +9,7 @@ import (
"fmt" "fmt"
"github.com/redis/go-redis/v9" "github.com/redis/go-redis/v9"
"github.com/wailsapp/wails/v2/pkg/runtime" "github.com/wailsapp/wails/v2/pkg/runtime"
"math"
"net/url" "net/url"
"os" "os"
"slices" "slices"
@ -998,10 +999,17 @@ func (b *browserService) GetKeyDetail(param types.KeyDetailParam) (resp types.JS
if doFilter && !strings.Contains(val, param.MatchPattern) { if doFilter && !strings.Contains(val, param.MatchPattern) {
continue continue
} }
items = append(items, types.ZSetEntryItem{ entry := types.ZSetEntryItem{
Score: z.Score,
Value: val, Value: val,
}) }
if math.IsInf(z.Score, 1) {
entry.ScoreStr = "+inf"
} else if math.IsInf(z.Score, -1) {
entry.ScoreStr = "-inf"
} else {
entry.Score = z.Score
}
items = append(items, entry)
if doConvert { if doConvert {
if dv, _, _ := convutil.ConvertTo(val, param.Decode, param.Format, decoder); dv != val { if dv, _, _ := convutil.ConvertTo(val, param.Decode, param.Format, decoder); dv != val {
items[len(items)-1].DisplayValue = dv items[len(items)-1].DisplayValue = dv

View File

@ -31,6 +31,7 @@ type SetEntryItem struct {
type ZSetEntryItem struct { type ZSetEntryItem struct {
Score float64 `json:"s"` Score float64 `json:"s"`
ScoreStr string `json:"ss,omitempty"`
Value string `json:"v"` Value string `json:"v"`
DisplayValue string `json:"dv,omitempty"` DisplayValue string `json:"dv,omitempty"`
} }

View File

@ -68,6 +68,11 @@ const onClearFilter = () => {
onClearMatch() onClearMatch()
} }
const onUpdateMatch = () => {
inputData.filter = inputData.match
onClearMatch()
}
const onClearMatch = () => { const onClearMatch = () => {
const changed = !isEmpty(inputData.match) const changed = !isEmpty(inputData.match)
inputData.match = '' inputData.match = ''
@ -97,9 +102,9 @@ defineExpose({
@keyup.enter="onKeyup"> @keyup.enter="onKeyup">
<template #prefix> <template #prefix>
<slot name="prefix" /> <slot name="prefix" />
<n-tooltip v-if="hasMatch"> <n-tooltip v-if="hasMatch" placement="bottom">
<template #trigger> <template #trigger>
<n-tag closable size="small" @close="onClearMatch"> <n-tag closable size="small" @close="onClearMatch" @dblclick="onUpdateMatch">
{{ inputData.match }} {{ inputData.match }}
</n-tag> </n-tag>
</template> </template>
@ -141,4 +146,11 @@ defineExpose({
</n-input-group> </n-input-group>
</template> </template>
<style lang="scss" scoped></style> <style lang="scss" scoped>
//:deep(.n-input__prefix) {
// max-width: 50%;
//}
//:deep(.n-tag__content) {
// overflow: hidden;
//}
</style>

View File

@ -120,7 +120,7 @@ const scoreColumn = computed(() => ({
// return true // return true
// }, // },
render: (row) => { render: (row) => {
return row.s return row.ss || row.s
}, },
})) }))