From 0394a35a9fcfc735a0c1287e78efc1c3322c09f5 Mon Sep 17 00:00:00 2001 From: chenjinsong <523037378@qq.com> Date: Mon, 6 Jun 2022 17:34:55 +0800 Subject: [PATCH] =?UTF-8?q?CN-574=20feat:=20=E6=90=9C=E7=B4=A2=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E9=87=8D=E6=96=B0=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/advancedSearch/Index.vue | 31 +- src/components/advancedSearch/TagMode.vue | 43 +- src/components/advancedSearch/TextMode.vue | 73 +- src/components/advancedSearch/meta/error.js | 27 + src/components/advancedSearch/meta/parser.js | 741 ++++++++++++++++++ src/components/advancedSearch/meta/token.js | 41 + src/views/Temp.vue | 124 +-- src/views/detections/DetectionSearch.vue | 7 +- src/views/detections/Index.vue | 6 +- src/views/entityExplorer/EntityExplorer.vue | 17 +- src/views/entityExplorer/EntityTop.vue | 8 - .../entityExplorer/search/ExplorerSearch.vue | 36 +- src/views/testData.js | 635 --------------- 13 files changed, 909 insertions(+), 880 deletions(-) create mode 100644 src/components/advancedSearch/meta/error.js create mode 100644 src/components/advancedSearch/meta/parser.js create mode 100644 src/components/advancedSearch/meta/token.js delete mode 100644 src/views/testData.js diff --git a/src/components/advancedSearch/Index.vue b/src/components/advancedSearch/Index.vue index 72b42154..12d27f13 100644 --- a/src/components/advancedSearch/Index.vue +++ b/src/components/advancedSearch/Index.vue @@ -6,7 +6,7 @@ v-if="searchMode === 'text'" ref="textMode" :column-list="columnList" - :sql="sql" + :str="str" @changeMode="changeMode" @search="search" > @@ -29,8 +29,7 @@ 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 { ElMessage } from 'element-plus' +import Parser from '@/components/advancedSearch/meta/parser' export default { name: 'Index', components: { @@ -39,7 +38,7 @@ export default { }, data () { return { - sql: null, + str: null, metaList: null } }, @@ -62,15 +61,15 @@ export default { connectionList: Array }, methods: { - search (metaList, formatSql) { - this.$emit('search', metaList, formatSql) + search (parseData) { + this.$emit('search', parseData) }, - changeMode (mode, data) { + changeMode (mode, { str, metaList }) { this.searchMode = mode if (mode === 'text') { - this.sql = data + this.str = str } else if (mode === 'tag') { - this.metaList = data + this.metaList = metaList } }, // params: [{column, operator, value}, ...] @@ -88,17 +87,15 @@ export default { this.$refs.tagMode && this.$refs.tagMode.changeParams(params) this.$refs.textMode && this.$refs.textMode.changeParams(params) }, - setSql (sql) { + setStr (str) { if (this.searchMode === 'text') { - this.sql = sql + this.str = str } else if (this.searchMode === 'tag') { - const parser = new SqlParser(sql, this.columnList) - const errorList = parser.validate() - if (this.$_.isEmpty(errorList)) { - const { metaList } = parser.formatSql() + const parser = new Parser(this.columnList) + const errorList = parser.validateStr(str) + if (_.isEmpty(errorList)) { + const { metaList } = parser.parseStr(str) this.metaList = metaList - } else { - ElMessage.error(this.$t('tip.invalidExpression')) } } }, diff --git a/src/components/advancedSearch/TagMode.vue b/src/components/advancedSearch/TagMode.vue index 0be32174..fdcf2060 100644 --- a/src/components/advancedSearch/TagMode.vue +++ b/src/components/advancedSearch/TagMode.vue @@ -87,7 +87,7 @@ diff --git a/src/views/detections/DetectionSearch.vue b/src/views/detections/DetectionSearch.vue index 05c85803..c1b49ca4 100644 --- a/src/views/detections/DetectionSearch.vue +++ b/src/views/detections/DetectionSearch.vue @@ -22,8 +22,6 @@