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 @@