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

@@ -70,4 +70,5 @@
} }
} }
} }
} }

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 { .advanced-search--show-list .CodeMirror, .advanced-search--show-list .tag-search {
border: none; border: none;

View File

@@ -20,6 +20,7 @@
@changeMode="changeMode" @changeMode="changeMode"
@search="search" @search="search"
></tag-mode> ></tag-mode>
<!-- <div class="search-tip&#45;&#45;error">something error...</div>-->
</div> </div>
</template> </template>
@@ -29,7 +30,8 @@ import TextMode from '@/components/advancedSearch/TextMode'
import { defaultOperatorList, defaultConnectionList } from '@/components/advancedSearch/meta/meta' import { defaultOperatorList, defaultConnectionList } from '@/components/advancedSearch/meta/meta'
import _ from 'lodash' import _ from 'lodash'
import { ref } from 'vue' 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 { export default {
name: 'Index', name: 'Index',
components: { components: {
@@ -85,6 +87,8 @@ export default {
if (this.$_.isEmpty(errorList)) { if (this.$_.isEmpty(errorList)) {
const { metaList } = parser.formatSql() const { metaList } = parser.formatSql()
this.metaList = metaList 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 CodeMirror from 'codemirror'
import { toRaw } from 'vue' import { toRaw } from 'vue'
import { columnType } from '@/components/advancedSearch/meta/meta' import { columnType } from '@/components/advancedSearch/meta/meta'
import { ElMessage } from 'element-plus'
export default { export default {
name: 'TextMode', name: 'TextMode',
@@ -51,7 +52,6 @@ export default {
}, },
search () { search () {
let originalSql = this.codeMirror.getValue() let originalSql = this.codeMirror.getValue()
console.info(originalSql)
if (originalSql) { if (originalSql) {
originalSql = originalSql.replace(/"/g, '') originalSql = originalSql.replace(/"/g, '')
const parser = new SqlParser(originalSql, this.columnList) const parser = new SqlParser(originalSql, this.columnList)
@@ -61,7 +61,7 @@ export default {
toRaw(this.codeMirror).setValue(formatSql) toRaw(this.codeMirror).setValue(formatSql)
this.$emit('search', metaList, formatSql) this.$emit('search', metaList, formatSql)
} else { } else {
console.info(errorList) ElMessage.error(this.$t('tip.invalidExpression'))
} }
} else { } else {
this.$emit('search') this.$emit('search')

View File

@@ -198,17 +198,6 @@ export default {
methods: { methods: {
search (metaList, formatSql) { search (metaList, formatSql) {
let sql = 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以内 // 加入搜索记录将记录数量控制在30以内
if (sql) { if (sql) {
const oldHistory = localStorage.getItem(storageKey.entitySearchHistory) const oldHistory = localStorage.getItem(storageKey.entitySearchHistory)
@@ -226,6 +215,17 @@ export default {
} }
localStorage.setItem(storageKey.entitySearchHistory, JSON.stringify(arr)) 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) { addParams (params) {
this.$refs.search.addParams(params) this.$refs.search.addParams(params)