fix: 增加搜索表达式错误提示,修复历史记录sql问题

This commit is contained in:
chenjinsong
2022-01-27 10:38:11 +08:00
parent d648fde9da
commit bc9b296e8b
5 changed files with 23 additions and 14 deletions

View File

@@ -27,6 +27,10 @@
}
}
}
/*.search-tip--error {
font-size: 14px;
color: #F56C6C;
}*/
}
.advanced-search--show-list .CodeMirror, .advanced-search--show-list .tag-search {
border: none;

View File

@@ -20,6 +20,7 @@
@changeMode="changeMode"
@search="search"
></tag-mode>
<!-- <div class="search-tip&#45;&#45;error">something error...</div>-->
</div>
</template>
@@ -29,7 +30,8 @@ import TextMode from '@/components/advancedSearch/TextMode'
import { defaultOperatorList, defaultConnectionList } from '@/components/advancedSearch/meta/meta'
import _ from 'lodash'
import { ref } from 'vue'
import SqlParser from "@/components/advancedSearch/meta/sql-parser";
import SqlParser from '@/components/advancedSearch/meta/sql-parser'
import { ElMessage } from 'element-plus'
export default {
name: 'Index',
components: {
@@ -85,6 +87,8 @@ export default {
if (this.$_.isEmpty(errorList)) {
const { metaList } = parser.formatSql()
this.metaList = metaList
} else {
ElMessage.error(this.$t('tip.invalidExpression'))
}
}
}

View File

@@ -22,6 +22,7 @@ import SqlParser, { stringInQuot } from '@/components/advancedSearch/meta/sql-pa
import CodeMirror from 'codemirror'
import { toRaw } from 'vue'
import { columnType } from '@/components/advancedSearch/meta/meta'
import { ElMessage } from 'element-plus'
export default {
name: 'TextMode',
@@ -51,7 +52,6 @@ export default {
},
search () {
let originalSql = this.codeMirror.getValue()
console.info(originalSql)
if (originalSql) {
originalSql = originalSql.replace(/"/g, '')
const parser = new SqlParser(originalSql, this.columnList)
@@ -61,7 +61,7 @@ export default {
toRaw(this.codeMirror).setValue(formatSql)
this.$emit('search', metaList, formatSql)
} else {
console.info(errorList)
ElMessage.error(this.$t('tip.invalidExpression'))
}
} else {
this.$emit('search')

View File

@@ -198,17 +198,6 @@ export default {
methods: {
search (metaList, formatSql) {
let sql = formatSql
if (metaList && this.$_.isArray(metaList)) {
// 全文搜索处理
const hasFullText = metaList.some(meta => {
return meta.column && meta.column.type === columnType.fullText
})
if (hasFullText) {
const parser = new SqlParser(metaList, this.columnList)
sql = parser.parseMetaToSql(metaList, true)
}
}
this.$emit('search', metaList, sql)
// 加入搜索记录将记录数量控制在30以内
if (sql) {
const oldHistory = localStorage.getItem(storageKey.entitySearchHistory)
@@ -226,6 +215,17 @@ export default {
}
localStorage.setItem(storageKey.entitySearchHistory, JSON.stringify(arr))
}
if (metaList && this.$_.isArray(metaList)) {
// 全文搜索处理
const hasFullText = metaList.some(meta => {
return meta.column && meta.column.type === columnType.fullText
})
if (hasFullText) {
const parser = new SqlParser(metaList, this.columnList)
sql = parser.parseMetaToSql(metaList, true)
}
}
this.$emit('search', metaList, sql)
},
addParams (params) {
this.$refs.search.addParams(params)