feat: 搜索历史调整上限为30个

This commit is contained in:
chenjinsong
2022-01-26 18:13:40 +08:00
parent d019a975a5
commit aef5bc95c0
2 changed files with 19 additions and 6 deletions

View File

@@ -66,6 +66,9 @@ export default {
this.$emit('search')
}
},
focus () {
this.codeMirror.focus()
},
changeMode () {
const originalSql = this.codeMirror.getValue()
const parser = new SqlParser(originalSql, this.columnList)

View File

@@ -28,11 +28,13 @@
</div>
<transition name="el-zoom-in-top">
<div class="search__history" v-show="showHistory" v-ele-click-outside="esc">
<div class="history__item" v-for="(h, i) in history" :key="i" @click="selectHistory(h.sql)">
<span class="item-date">{{h.date}}</span>
<div class="item-value" :title="h.sql">{{h.sql}}</div>
<div class="history__items">
<div class="history__item" v-for="(h, i) in history" :key="i" @click="selectHistory(h.sql)">
<span class="item-date">{{h.date}}</span>
<div class="item-value" :title="h.sql">{{h.sql}}</div>
</div>
</div>
<div class="history__item clear-all">
<div class="clear-all">
<span @click="clearHistory" v-if="!$_.isEmpty(history)">{{$t('overall.clear')}}</span>
<div v-else>暂无记录</div>
</div>
@@ -196,7 +198,7 @@ export default {
methods: {
search (metaList, formatSql) {
let sql = formatSql
if (metaList) {
if (metaList && this.$_.isArray(metaList)) {
// 全文搜索处理
const hasFullText = metaList.some(meta => {
return meta.column && meta.column.type === columnType.fullText
@@ -207,7 +209,7 @@ export default {
}
}
this.$emit('search', metaList, sql)
// 加入搜索记录
// 加入搜索记录将记录数量控制在30以内
if (sql) {
const oldHistory = localStorage.getItem(storageKey.entitySearchHistory)
let arr = []
@@ -216,6 +218,9 @@ export default {
const oldArr = JSON.parse(oldHistory)
oldArr.unshift(newItem)
arr = [...oldArr]
if (arr.length > 30) {
arr = arr.slice(0, 30)
}
} else {
arr.push(newItem)
}
@@ -228,6 +233,11 @@ export default {
selectHistory (sql) {
this.$refs.search.setSql(sql)
this.showHistory = false
this.$nextTick(() => {
if (this.$refs.search.$refs.textMode) {
this.$refs.search.$refs.textMode.focus()
}
})
},
clearHistory () {
localStorage.setItem(storageKey.entitySearchHistory, '')